Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -12,111 +12,111 @@ from pptx import Presentation
|
|
12 |
|
13 |
import presentation_assistant.presentation_assistant as pa
|
14 |
|
15 |
-
tab1, tab2, tab3 = st.tabs(['
|
16 |
|
17 |
with tab1:
|
18 |
-
st.header('
|
19 |
-
st.title('PA!(Presentation Assistant)
|
20 |
contents = """
|
21 |
-
▶
|
22 |
-
|
23 |
st.markdown(contents)
|
24 |
st.markdown('-------------------------')
|
25 |
-
st.header('
|
26 |
-
st.subheader('
|
27 |
contents = """
|
28 |
-
▶
|
29 |
-
|
30 |
st.markdown(contents)
|
31 |
-
st.subheader('
|
32 |
contents = """
|
33 |
-
▶
|
34 |
st.markdown(contents)
|
35 |
|
36 |
-
#
|
37 |
# test_ppt_theme = "--reference-doc="+"/home/user/app/template/blue"+".pptx"
|
38 |
# subprocess.run(["/home/user/app/pandoc-2.14.2/bin/pandoc", "text2ppt_test.md", "-t", "pptx", test_ppt_theme, "-o", "output.pptx"], capture_output=True)
|
39 |
# print(os.listdir(os.getcwd()))
|
40 |
# prs = Presentation("output.pptx")
|
41 |
# binary_output = BytesIO()
|
42 |
# prs.save(binary_output)
|
43 |
-
# st.download_button(label="
|
44 |
# data = binary_output.getvalue(),
|
45 |
# file_name="export_output.pptx",
|
46 |
# mime='application/octet-stream', key = "<Text2PPT_test_download>")
|
47 |
|
48 |
|
49 |
with tab2:
|
50 |
-
st.header('
|
51 |
-
st.subheader(':computer:
|
52 |
|
53 |
-
|
54 |
-
'
|
55 |
-
['
|
56 |
|
57 |
-
if
|
58 |
-
uploaded_template_file = st.file_uploader('
|
59 |
|
60 |
st.markdown('-------------------------')
|
61 |
|
62 |
-
page_choice = st.slider('
|
63 |
|
64 |
st.markdown('-------------------------')
|
65 |
|
66 |
-
my_order = ['
|
67 |
-
status = st.radio('
|
68 |
|
69 |
-
#
|
70 |
if status == my_order[0]:
|
71 |
-
input_text = st.text_area('
|
72 |
|
73 |
elif status == my_order[1]:
|
74 |
-
input_text = st.text_area('
|
75 |
|
76 |
elif status == my_order[2]:
|
77 |
-
input_text = st.file_uploader('
|
78 |
|
79 |
-
input_text_check = st.button('
|
80 |
|
81 |
st.markdown('-------------------------')
|
82 |
|
83 |
if input_text_check == True:
|
84 |
-
with st.spinner('
|
85 |
-
pa.text2ppt(pa.generate_text2ppt_input_prompt(status, input_text, page_choice),
|
86 |
prs = Presentation("text2ppt_output.pptx")
|
87 |
binary_output = BytesIO()
|
88 |
prs.save(binary_output)
|
89 |
-
st.success('
|
90 |
-
st.download_button(label="
|
91 |
data = binary_output.getvalue(),
|
92 |
file_name="export_output.pptx",
|
93 |
mime='application/octet-stream', key = "<Text2PPT_download>")
|
94 |
|
95 |
with tab3:
|
96 |
-
st.header('
|
97 |
-
st.subheader(':computer:
|
98 |
st.markdown('-------------------------')
|
99 |
|
100 |
-
st.subheader(':bookmark:
|
101 |
|
102 |
-
file_order = ['PDF', '
|
103 |
-
choose = st.radio('
|
104 |
|
105 |
if choose == file_order[0]:
|
106 |
-
uploaded_file = st.file_uploader('
|
107 |
elif choose == file_order[1]:
|
108 |
-
uploaded_file = st.file_uploader('
|
109 |
|
110 |
-
input_file_check = st.button('
|
111 |
st.markdown('-------------------------')
|
112 |
|
113 |
if input_file_check == True:
|
114 |
-
with st.spinner('
|
115 |
with open(uploaded_file.name, mode='wb') as w:
|
116 |
w.write(uploaded_file.getvalue())
|
117 |
|
118 |
script = pa.ppt2script(uploaded_file.name, choose)
|
119 |
|
120 |
-
st.success('
|
121 |
-
st.download_button('
|
122 |
-
data=script, file_name="script_output.txt", key="<PPT2Script_download>")
|
|
|
12 |
|
13 |
import presentation_assistant.presentation_assistant as pa
|
14 |
|
15 |
+
tab1, tab2, tab3 = st.tabs(['Что такое PA!?', 'Текст в ППТ', 'ППТ в сценарий'])
|
16 |
|
17 |
with tab1:
|
18 |
+
st.header('Введение')
|
19 |
+
st.title('PA!(Presentation Assistant)')
|
20 |
contents = """
|
21 |
+
▶ На основе контента, введенного пользователем, он :blue[автоматически создает] ППТ и
|
22 |
+
предоставляет :red[сценарий] презентации, чтобы улучшить навыки презентации!"""
|
23 |
st.markdown(contents)
|
24 |
st.markdown('-------------------------')
|
25 |
+
st.header('Как использовать')
|
26 |
+
st.subheader('Текст в ППТ')
|
27 |
contents = """
|
28 |
+
▶ Если пользователь предоставляет ссылку или файл, мы :blue[создадим презентационный материал] для вас!
|
29 |
+
Пользователю нужно только выбрать желаемый тип темы (шаблон) и количество страниц!"""
|
30 |
st.markdown(contents)
|
31 |
+
st.subheader('ППТ в сценарий')
|
32 |
contents = """
|
33 |
+
▶ Если пользователь предоставляет презентационные материалы в формате ППТ или PDF, мы автоматически создадим :blue[сценарий презентации] для вас!"""
|
34 |
st.markdown(contents)
|
35 |
|
36 |
+
# Тест
|
37 |
# test_ppt_theme = "--reference-doc="+"/home/user/app/template/blue"+".pptx"
|
38 |
# subprocess.run(["/home/user/app/pandoc-2.14.2/bin/pandoc", "text2ppt_test.md", "-t", "pptx", test_ppt_theme, "-o", "output.pptx"], capture_output=True)
|
39 |
# print(os.listdir(os.getcwd()))
|
40 |
# prs = Presentation("output.pptx")
|
41 |
# binary_output = BytesIO()
|
42 |
# prs.save(binary_output)
|
43 |
+
# st.download_button(label="Скачать ППТ",
|
44 |
# data = binary_output.getvalue(),
|
45 |
# file_name="export_output.pptx",
|
46 |
# mime='application/octet-stream', key = "<Text2PPT_test_download>")
|
47 |
|
48 |
|
49 |
with tab2:
|
50 |
+
st.header('Текст в ППТ')
|
51 |
+
st.subheader(':computer: Автоматический генератор ППТ :computer:')
|
52 |
|
53 |
+
theme_select = st.selectbox(
|
54 |
+
'Выберите шаблон, который вы хотите:',
|
55 |
+
['по умолчанию', 'желтый', 'зеленая градация', 'синий', 'зеленый', 'пользовательский'])
|
56 |
|
57 |
+
if theme_select == "пользовательский":
|
58 |
+
uploaded_template_file = st.file_uploader('Выберите файл!', type='pptx', key="<template_uploader>")
|
59 |
|
60 |
st.markdown('-------------------------')
|
61 |
|
62 |
+
page_choice = st.slider('Количество страниц ППТ', min_value=2, max_value=12, step=1, value=5)
|
63 |
|
64 |
st.markdown('-------------------------')
|
65 |
|
66 |
+
my_order = ['Текст', 'Ссылка', 'PDF']
|
67 |
+
status = st.radio('Выберите тип файла и введите содержимое! :smile: ', my_order)
|
68 |
|
69 |
+
# Первый метод
|
70 |
if status == my_order[0]:
|
71 |
+
input_text = st.text_area('Введите ТЕКСТ', height=5)
|
72 |
|
73 |
elif status == my_order[1]:
|
74 |
+
input_text = st.text_area('Введите URL', height=5)
|
75 |
|
76 |
elif status == my_order[2]:
|
77 |
+
input_text = st.file_uploader('Загрузите PDF', type=['pdf'])
|
78 |
|
79 |
+
input_text_check = st.button('Подтвердить', key="<Text2PPT_start>")
|
80 |
|
81 |
st.markdown('-------------------------')
|
82 |
|
83 |
if input_text_check == True:
|
84 |
+
with st.spinner('Подождите...'):
|
85 |
+
pa.text2ppt(pa.generate_text2ppt_input_prompt(status, input_text, page_choice), theme_select)
|
86 |
prs = Presentation("text2ppt_output.pptx")
|
87 |
binary_output = BytesIO()
|
88 |
prs.save(binary_output)
|
89 |
+
st.success('Готово!')
|
90 |
+
st.download_button(label="Скачать ППТ",
|
91 |
data = binary_output.getvalue(),
|
92 |
file_name="export_output.pptx",
|
93 |
mime='application/octet-stream', key = "<Text2PPT_download>")
|
94 |
|
95 |
with tab3:
|
96 |
+
st.header('ППТ в сценарий')
|
97 |
+
st.subheader(':computer: Автоматический генератор сценариев :computer:')
|
98 |
st.markdown('-------------------------')
|
99 |
|
100 |
+
st.subheader(':bookmark: Генератор сценариев презентаций')
|
101 |
|
102 |
+
file_order = ['PDF', 'ППТ']
|
103 |
+
choose = st.radio('Выберите формат файла презентационного материала', file_order)
|
104 |
|
105 |
if choose == file_order[0]:
|
106 |
+
uploaded_file = st.file_uploader('Выберите файл!', type='pdf', key="<PPT2Script_pdf_uploader>")
|
107 |
elif choose == file_order[1]:
|
108 |
+
uploaded_file = st.file_uploader('Выберите файл!', type='pptx', key="<PPT2Script_ppt_uploader>")
|
109 |
|
110 |
+
input_file_check = st.button('Подтвердить', key="<PPT2Script_start>") # При нажатии на эту кнопку должен передаваться входной файл
|
111 |
st.markdown('-------------------------')
|
112 |
|
113 |
if input_file_check == True:
|
114 |
+
with st.spinner('Подождите...'):
|
115 |
with open(uploaded_file.name, mode='wb') as w:
|
116 |
w.write(uploaded_file.getvalue())
|
117 |
|
118 |
script = pa.ppt2script(uploaded_file.name, choose)
|
119 |
|
120 |
+
st.success('Готово!')
|
121 |
+
st.download_button('Скачать сценарий',
|
122 |
+
data=script, file_name="script_output.txt", key="<PPT2Script_download>")
|