Chan Meng commited on
Commit
e1f685d
·
1 Parent(s): 4c75812

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -14
app.py CHANGED
@@ -196,11 +196,11 @@ def main():
196
  st.set_page_config(page_title="Emoji Story Generator", page_icon="📚")
197
  st.title("Emoji Story Generator")
198
 
199
- # 初始化session state来存储选中的emoji
200
  if 'selected_emojis' not in st.session_state:
201
  st.session_state.selected_emojis = []
202
 
203
- # 创建选项卡布局
204
  ENGLISH_CATEGORIES = {
205
  "Faces & Emotions": EMOJI_CATEGORIES["表情与情绪"],
206
  "Animals": EMOJI_CATEGORIES["动物"],
@@ -214,33 +214,30 @@ def main():
214
 
215
  tabs = st.tabs(list(ENGLISH_CATEGORIES.keys()))
216
 
217
- # 在每个选项卡中显示对应类别的emoji
218
  for tab, (category, emojis) in zip(tabs, ENGLISH_CATEGORIES.items()):
219
  with tab:
220
  st.write(f"Select {category}:")
221
- # 将emoji列表分成多列显示
222
- cols = st.columns(8) # 每行8个emoji
223
  for i, emoji in enumerate(emojis):
224
  if cols[i % 8].button(emoji, key=f"{category}_{emoji}"):
225
  if emoji not in st.session_state.selected_emojis:
226
- if len(st.session_state.selected_emojis) < 5: # 限制最多选择5个emoji
227
  st.session_state.selected_emojis.append(emoji)
228
  else:
229
  st.warning("Maximum 5 emojis allowed!")
230
 
231
- # 显示已选择的emoji
232
  if st.session_state.selected_emojis:
233
  st.write("---")
234
  st.write("Selected emojis:", " ".join(st.session_state.selected_emojis))
235
 
236
- # 添加清除选择按钮
237
  col1, col2 = st.columns([1, 4])
238
  with col1:
239
  if st.button("Clear Selection"):
240
  st.session_state.selected_emojis = []
241
- st.experimental_rerun()
242
 
243
- # 生成故事按钮
244
  with col2:
245
  if st.button("Generate Story"):
246
  story = generate_story_with_ai(st.session_state.selected_emojis)
@@ -252,17 +249,15 @@ def main():
252
  else:
253
  st.write("Please select at least one emoji.")
254
 
255
- # 显示已保存的故事
256
  if st.session_state.stories:
257
  st.markdown("---")
258
  st.header("Generated Stories")
259
 
260
- # 按点赞数排序故事
261
  sorted_stories = sorted(st.session_state.stories,
262
  key=lambda x: x['votes'],
263
  reverse=True)
264
 
265
- # 使用列布局显示故事和点赞按钮
266
  for idx, story_data in enumerate(sorted_stories):
267
  col1, col2 = st.columns([4, 1])
268
  with col1:
@@ -272,7 +267,7 @@ def main():
272
  story_data['votes'] += 1
273
  update_votes()
274
  st.success("Liked!")
275
- st.experimental_rerun()
276
 
277
  if __name__ == "__main__":
278
  main()
 
196
  st.set_page_config(page_title="Emoji Story Generator", page_icon="📚")
197
  st.title("Emoji Story Generator")
198
 
199
+ # Initialize session state for selected emojis
200
  if 'selected_emojis' not in st.session_state:
201
  st.session_state.selected_emojis = []
202
 
203
+ # Create tab layout
204
  ENGLISH_CATEGORIES = {
205
  "Faces & Emotions": EMOJI_CATEGORIES["表情与情绪"],
206
  "Animals": EMOJI_CATEGORIES["动物"],
 
214
 
215
  tabs = st.tabs(list(ENGLISH_CATEGORIES.keys()))
216
 
217
+ # Display emojis in each tab
218
  for tab, (category, emojis) in zip(tabs, ENGLISH_CATEGORIES.items()):
219
  with tab:
220
  st.write(f"Select {category}:")
221
+ cols = st.columns(8)
 
222
  for i, emoji in enumerate(emojis):
223
  if cols[i % 8].button(emoji, key=f"{category}_{emoji}"):
224
  if emoji not in st.session_state.selected_emojis:
225
+ if len(st.session_state.selected_emojis) < 5:
226
  st.session_state.selected_emojis.append(emoji)
227
  else:
228
  st.warning("Maximum 5 emojis allowed!")
229
 
230
+ # Display selected emojis
231
  if st.session_state.selected_emojis:
232
  st.write("---")
233
  st.write("Selected emojis:", " ".join(st.session_state.selected_emojis))
234
 
 
235
  col1, col2 = st.columns([1, 4])
236
  with col1:
237
  if st.button("Clear Selection"):
238
  st.session_state.selected_emojis = []
239
+ st.rerun()
240
 
 
241
  with col2:
242
  if st.button("Generate Story"):
243
  story = generate_story_with_ai(st.session_state.selected_emojis)
 
249
  else:
250
  st.write("Please select at least one emoji.")
251
 
252
+ # Display saved stories
253
  if st.session_state.stories:
254
  st.markdown("---")
255
  st.header("Generated Stories")
256
 
 
257
  sorted_stories = sorted(st.session_state.stories,
258
  key=lambda x: x['votes'],
259
  reverse=True)
260
 
 
261
  for idx, story_data in enumerate(sorted_stories):
262
  col1, col2 = st.columns([4, 1])
263
  with col1:
 
267
  story_data['votes'] += 1
268
  update_votes()
269
  st.success("Liked!")
270
+ st.rerun()
271
 
272
  if __name__ == "__main__":
273
  main()