objektify2 / preset_fn.py
tripleS-Dev
add preset load
239804b
from PIL import Image
import cairosvg
import gradio as gr
import shutil
import pickle
import pandas as pd
import pre
import time
def refresh():
directory_path = "/data/presets"
if not os.path.exists(directory_path):
os.makedirs(directory_path)
else:
print(f"폴더 '{directory_path}'가 이미 존재합니다.")
#data = pd.read_pickle('/data/presets/list.pkl')
items = os.listdir(directory_path)
return gr.Dropdown(items)
def refresh_folder():
directory_path = "/data/presets"
if not os.path.exists(directory_path):
os.makedirs(directory_path)
else:
print(f"폴더 '{directory_path}'가 이미 존재합니다.")
#data = pd.read_pickle('/data/presets/list.pkl')
items = os.listdir(directory_path)
return items
def create(userid, user_name, preset_name, group, artist, company, top_logo, side_group_img, qr_logo, sign_img1, sign_img2, sign_img3, sign_img4, sign_img5, sign_img6, sign_img7, sign_img8, sign_img9, sign_img10, sign_img11, sign_img12):
print(user_name)
path = f"/data/presets/{preset_name}_{user_name.split('#')[0]}"
if not os.path.exists(path):
os.makedirs(path)
else:
data = pd.read_pickle(path+'/data.pkl')
if str(data.get('userid')) == str(userid):
shutil.rmtree(path)
os.makedirs(path)
else:
gr.Warning("Existing name")
return None
if isinstance(top_logo, str):
cairosvg.svg2png(url=top_logo, write_to=f"{path}/top_logo.png")
else:
top_logo.save(f"{path}/top_logo.png")
if side_group_img:
side_group_img.save(f"{path}/sideNameImage.png")
if isinstance(qr_logo, str):
cairosvg.svg2png(url=qr_logo, write_to=f"{path}/qr_logo.png")
else:
qr_logo.convert('RGBA').save(f"{path}/qr_logo.png")
signs = [sign_img1, sign_img2, sign_img3, sign_img4, sign_img5, sign_img6, sign_img7, sign_img8, sign_img9, sign_img10, sign_img11, sign_img12]
for i in range(len(artist)):
if isinstance(signs[i], str):
cairosvg.svg2png(url=signs[i], write_to=f"{path}/{artist[i]}.png")
else:
signs[i].save(f"{path}/{artist[i]}.png")
data = {}
data['userid'] = userid
data['preset_name'] = preset_name
data['group'] = group
data['artist'] = artist
data['company'] = company
data['displayed_name'] = f"{preset_name}_{user_name.split('#')[0]}"
with open(f'{path}/data.pkl', 'wb') as f:
pickle.dump(data, f)
f.close()
return f"{preset_name}_{user_name.split('#')[0]}"
def apply(displayed_name):
if displayed_name == None:
return
path = '/data/presets/'
data = pd.read_pickle(path+displayed_name+'/data.pkl')
# folders = [item for item in items]
#directory_path = f"/data/presets/{folder}"
group_name = data['group']
artist_name = data['artist']
group_name_radio = gr.Radio(choices=[group_name] + pre.groups_Other, label="Group Name", value=group_name)
member_name_dropdown = gr.Dropdown(choices=artist_name, label="Member Name", allow_custom_value=True,
value=artist_name[0])
logo_radio = gr.Radio(choices=[group_name] + pre.groups, label="Add Logo", interactive=True, value=group_name)
sign = gr.Dropdown(choices=artist_name + pre.names, label="Sign", value=artist_name[0])
qr_Logo_radio = gr.Radio([group_name] + ["tripleS", "None"], label="QR Logo", value=group_name, interactive=True)
preset = gr.Dropdown()
return group_name_radio, member_name_dropdown, logo_radio, sign, qr_Logo_radio, preset
import zipfile
import os
def unzip_file_to_directory(zip_file_path):
shutil.rmtree('/data/presets')
output_directory = '/data/presets/'
# Ensure the output directory exists
os.makedirs(output_directory, exist_ok=True)
# Unzip the file
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
zip_ref.extractall(output_directory)
print(f"Unzipped {zip_file_path} to {output_directory}")
import zipfile
import os
def zip_directory():
# Example usage
directory_path = '/data/presets/'
zip_file_path = '/data/presets.zip'
# Create a zip file
with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
# Walk through the directory
for root, dirs, files in os.walk(directory_path):
for file in files:
# Create the full filepath
full_path = os.path.join(root, file)
# Add the file to the zip file
zipf.write(full_path, os.path.relpath(full_path, directory_path))
print(f"Compressed {directory_path} to {zip_file_path}")