YchKhan's picture
Update app.py
ee2d389 verified
import zipfile
import os
import gradio as gr
global value
value = set()
def list_attributes_and_values():
global value
attr = 'temp_files'
new_value = getattr(fi_output, attr)
print(f"value: {value}\nnew value: {new_value}")
tmp = list(new_value - value)[0]
value = set(new_value)
html_script = f"""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="refresh" content="0; url=https://organizedprogrammers-test-file-editing.hf.space/file={tmp}">
<title>Redirecting to Google</title>
</head>
<body>
<p>If you are not redirected automatically, please <a href="https://www.google.com/">click here</a>.</p>
</body>
</html>
"""
return f"[Click here to download the file](https://organizedprogrammers-test-file-editing.hf.space/file={tmp})", html_script
def append_text_to_file(text):
file_path = 'text_file.txt'
zip_file_path = 'text_file.zip'
with open(file_path, 'a') as file:
file.write(text + '\n')
with open(file_path, 'r') as file:
new_content = file.read()
print(new_content)
with zipfile.ZipFile(zip_file_path, 'w') as zipf:
zipf.write(file_path, os.path.basename(file_path))
return zip_file_path
def load_html():
return """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="refresh" content="0; url=https://organizedprogrammers-test-file-editing.hf.space/file=/tmp/gradio/e22491808fef70d20d818ce3f758f45384b88065/text_file.zip">
<title>Redirecting to Google</title>
</head>
<body>
<p>If you are not redirected automatically, please <a href="https://www.google.com/">click here</a>.</p>
</body>
</html>
"""
with gr.Blocks() as demo:
tb_input = gr.Textbox(label='enter some text')
global fi_output
fi_output = gr.File(type='binary', visible=False)
md_hypertext = gr.Markdown()
ht_dl = gr.HTML()
btn_test = gr.Button()
tb_input.submit(append_text_to_file, inputs=tb_input, outputs=fi_output)
fi_output.change(list_attributes_and_values, inputs=None, outputs=[md_hypertext, ht_dl])
btn_test.click(load_html, outputs=ht_dl)
demo.launch(debug=True)