Skip to content

Instantly share code, notes, and snippets.

@garywill
Created November 26, 2023 12:05
Show Gist options
  • Save garywill/04470635b276d79ed15c0fdd7b4295ab to your computer and use it in GitHub Desktop.
Save garywill/04470635b276d79ed15c0fdd7b4295ab to your computer and use it in GitHub Desktop.
gradio
#!/usr/bin/python3.11
import sys, os
os.system('uname -a')
os.system('id')
os.system('cat /etc/os-release')
from datetime import datetime
app_start_time = datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f")
print('App start time: ', app_start_time)
import glob
print("trying to import backend")
sys.path.append(os.path.join(os.path.dirname(__file__), './kkkkkk'))
import main
print('finish importing backend')
print("trying to import gradio")
import gradio as gr
print('finish importing gradio')
############################################################
def greet(video, enable_area, ymin, ymax, xmin, xmax):
print('输入的文件为', video)
debug_output = ""
srt_file_content = ""
srt_file_path = None
if not video:
debug_output += "ERROR: input video is not true \n"
srt_file_content = "ERROR: input video is not true"
if enable_area:
subtitle_area = (ymin, ymax, xmin, xmax)
else:
subtitle_area = None
if video:
print("检测到输入video对象,准备开始处理")
print('开始于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") )
debug_output += '开始于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n'
( srt_file_content , srt_file_path , sub_debug_output) = main.main(video, subtitle_area )
print('完成于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") )
debug_output += '完成于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n'
debug_output += sub_debug_output + '\n'
print('---------运行输出结果------\n\n')
print(srt_file_content)
print('\n-------------------------\n')
if not srt_file_path or (srt_file_path and not os.path.isfile(srt_file_path) ) :
debug_output += 'ERROR: srt file path ' + srt_file_path + ' file not valid \n'
srt_file_path = None
return \
srt_file_content , \
srt_file_path, \
debug_output, \
############################################################
allFilesGlob = '/tmp/gradio/*/**'
def getAllFiles():
all_possible_files = []
for x in glob.glob(allFilesGlob, recursive=True):
if os.path.isfile(x):
print('找到个可能文件',x)
all_possible_files.append(x)
print(all_possible_files)
return all_possible_files
def delAllFiles():
for x in glob.glob(allFilesGlob, recursive=True):
if os.path.isfile(x):
print('deleting file', x)
os.remove(x)
return "Finished deleting all files in " + allFilesGlob
####################################################################
print('setting gradio interface')
with gr.Blocks() as app:
gr.Markdown("kkkkkkkkkkkkkkk")
with gr.Tab("VSE"):
with gr.Row():
with gr.Column():
inputs = [
gr.Video(label='input video with enbedded subtitle'),
gr.Checkbox(label='enable area'),
gr.Slider(0, 10000, value=800, step=1, label="y min"),
gr.Slider(0, 10000, value=1079, step=1, label="y max"),
gr.Slider(0, 20000, value=1, step=1, label="x min"),
gr.Slider(0, 20000, value=1910, step=1, label="x max"),
]
btn_vse = gr.Button("Run VSE")
with gr.Column():
outputs = [
gr.Textbox(label="subtitle srt content"),
gr.File(label="output subtitle srt file"),
gr.Textbox(label="debug output"),
]
with gr.Tab("get files"):
btn_allfiles = gr.Button("Get all files")
outputs2 = [gr.File(label='all possible files')]
with gr.Tab('del files'):
btn_delfiles = gr.Button("Delete all gradio tmp files")
outputs3 = [gr.Textbox()]
btn_vse.click(greet, inputs=inputs, outputs=outputs)
btn_allfiles.click(getAllFiles, inputs=[], outputs=outputs2)
btn_delfiles.click(delAllFiles, inputs=[], outputs=outputs3)
# app = gr.Interface(fn=greet, inputs=inputs, outputs=outputs)
print('launching gradio app')
app.queue(max_size=30, api_open=True)
app.launch( show_error=True, server_name='0.0.0.0' )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment