|
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) |