Compare commits
1 Commits
version3.4
...
fix-user-u
| Author | SHA1 | Date | |
|---|---|---|---|
| cefa3921c4 |
8
main.py
8
main.py
@ -155,7 +155,7 @@ def main():
|
|||||||
click_handle = functional[k]["Button"].click(fn=ArgsGeneralWrapper(predict), inputs=[*input_combo, gr.State(True), gr.State(k)], outputs=output_combo)
|
click_handle = functional[k]["Button"].click(fn=ArgsGeneralWrapper(predict), inputs=[*input_combo, gr.State(True), gr.State(k)], outputs=output_combo)
|
||||||
cancel_handles.append(click_handle)
|
cancel_handles.append(click_handle)
|
||||||
# 文件上传区,接收文件后与chatbot的互动
|
# 文件上传区,接收文件后与chatbot的互动
|
||||||
file_upload.upload(on_file_uploaded, [file_upload, chatbot, txt, txt2, checkboxes], [chatbot, txt, txt2])
|
file_upload.upload(on_file_uploaded, [file_upload, chatbot, txt, txt2, checkboxes, cookies], [chatbot, txt, txt2])
|
||||||
# 函数插件-固定按钮区
|
# 函数插件-固定按钮区
|
||||||
for k in crazy_fns:
|
for k in crazy_fns:
|
||||||
if not crazy_fns[k].get("AsButton", True): continue
|
if not crazy_fns[k].get("AsButton", True): continue
|
||||||
@ -185,6 +185,12 @@ def main():
|
|||||||
# 终止按钮的回调函数注册
|
# 终止按钮的回调函数注册
|
||||||
stopBtn.click(fn=None, inputs=None, outputs=None, cancels=cancel_handles)
|
stopBtn.click(fn=None, inputs=None, outputs=None, cancels=cancel_handles)
|
||||||
stopBtn2.click(fn=None, inputs=None, outputs=None, cancels=cancel_handles)
|
stopBtn2.click(fn=None, inputs=None, outputs=None, cancels=cancel_handles)
|
||||||
|
def init_cookie(cookies, chatbot):
|
||||||
|
# 为每一位访问的用户赋予一个独一无二的uuid编码
|
||||||
|
import uuid
|
||||||
|
cookies.update({'user-uuid': 'user-'+uuid.uuid4().hex})
|
||||||
|
return cookies
|
||||||
|
demo.load(init_cookie, inputs=[cookies, chatbot], outputs=[cookies])
|
||||||
|
|
||||||
# gradio的inbrowser触发不太稳定,回滚代码到原始的浏览器打开函数
|
# gradio的inbrowser触发不太稳定,回滚代码到原始的浏览器打开函数
|
||||||
def auto_opentab_delay():
|
def auto_opentab_delay():
|
||||||
|
|||||||
23
toolbox.py
23
toolbox.py
@ -452,7 +452,7 @@ def promote_file_to_downloadzone(file, rename_file=None, chatbot=None):
|
|||||||
else: current = []
|
else: current = []
|
||||||
chatbot._cookies.update({'file_to_promote': [new_path] + current})
|
chatbot._cookies.update({'file_to_promote': [new_path] + current})
|
||||||
|
|
||||||
def on_file_uploaded(files, chatbot, txt, txt2, checkboxes):
|
def on_file_uploaded(files, chatbot, txt, txt2, checkboxes, cookies):
|
||||||
"""
|
"""
|
||||||
当文件被上传时的回调函数
|
当文件被上传时的回调函数
|
||||||
"""
|
"""
|
||||||
@ -463,24 +463,23 @@ def on_file_uploaded(files, chatbot, txt, txt2, checkboxes):
|
|||||||
import time
|
import time
|
||||||
import glob
|
import glob
|
||||||
from toolbox import extract_archive
|
from toolbox import extract_archive
|
||||||
try:
|
user_uuid = cookies.get('user-uuid', 'unknown_user')
|
||||||
shutil.rmtree('./private_upload/')
|
try: shutil.rmtree(f'./private_upload/{user_uuid}')
|
||||||
except:
|
except: pass
|
||||||
pass
|
|
||||||
time_tag = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
time_tag = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
||||||
os.makedirs(f'private_upload/{time_tag}', exist_ok=True)
|
os.makedirs(f'private_upload/{user_uuid}/{time_tag}', exist_ok=True)
|
||||||
err_msg = ''
|
err_msg = ''
|
||||||
for file in files:
|
for file in files:
|
||||||
file_origin_name = os.path.basename(file.orig_name)
|
file_origin_name = os.path.basename(file.orig_name)
|
||||||
shutil.copy(file.name, f'private_upload/{time_tag}/{file_origin_name}')
|
shutil.copy(file.name, f'private_upload/{user_uuid}/{time_tag}/{file_origin_name}')
|
||||||
err_msg += extract_archive(f'private_upload/{time_tag}/{file_origin_name}',
|
err_msg += extract_archive(f'private_upload/{user_uuid}/{time_tag}/{file_origin_name}',
|
||||||
dest_dir=f'private_upload/{time_tag}/{file_origin_name}.extract')
|
dest_dir=f'private_upload/{user_uuid}/{time_tag}/{file_origin_name}.extract')
|
||||||
moved_files = [fp for fp in glob.glob('private_upload/**/*', recursive=True)]
|
moved_files = [fp for fp in glob.glob(f'private_upload/{user_uuid}/**/*', recursive=True)]
|
||||||
if "底部输入区" in checkboxes:
|
if "底部输入区" in checkboxes:
|
||||||
txt = ""
|
txt = ""
|
||||||
txt2 = f'private_upload/{time_tag}'
|
txt2 = f'private_upload/{user_uuid}/{time_tag}'
|
||||||
else:
|
else:
|
||||||
txt = f'private_upload/{time_tag}'
|
txt = f'private_upload/{user_uuid}/{time_tag}'
|
||||||
txt2 = ""
|
txt2 = ""
|
||||||
moved_files_str = '\t\n\n'.join(moved_files)
|
moved_files_str = '\t\n\n'.join(moved_files)
|
||||||
chatbot.append(['我上传了文件,请查收',
|
chatbot.append(['我上传了文件,请查收',
|
||||||
|
|||||||
Reference in New Issue
Block a user