Yoon-gu Hwang commited on
Commit
8a477cd
·
1 Parent(s): cd601c3

버튼을 업데이트하는 방식으로!

Browse files
Files changed (1) hide show
  1. app.py +20 -14
app.py CHANGED
@@ -95,7 +95,6 @@ with gr.Blocks() as demo:
95
  with gr.Row():
96
  play = gr.Button(value="퀴즈 시작", label="퀴즈 시작")
97
  skip = gr.Button(value="문제 넘어가기", label="문제 스킵")
98
- stop = gr.Button(value="퀴즈 종료", label="퀴즈 종료")
99
  chatbot = gr.Chatbot(bubble_full_width=False,
100
  avatar_images=["https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/images/No_0001_이상해씨.png",
101
  "https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/images/No_0155_브케인.png"])
@@ -127,7 +126,7 @@ with gr.Blocks() as demo:
127
  info[user]['count'] += 1
128
  bot_message = f"🎉정답입니다! 다음 문제입니다.\n{q}\n- 현재 점수: {info[user]['score']}점\n- 소요 시간: {time.time() - info[user]['time']:4.3f}초"
129
 
130
- elif "퀴즈종료" == message.replace(" ", ""):
131
  bot_message = f"퀴즈를 강제 종료합니다."
132
  info[user]['done'] = True
133
  elif "문제 넘어가기" == message:
@@ -157,7 +156,7 @@ with gr.Blocks() as demo:
157
  info[user]['best_score'] = info[user]['score']
158
  info[user]['best_time'] = min(time.time() - info[user]['time'], info[user]['best_time'])
159
  info[user]['best_time'] = round(info[user]['best_time'], 2)
160
- info[user]['comment'] = f"{gen}+{types}"
161
  with open("info.json", "w") as f:
162
  json.dump(info, f, indent=4)
163
  with open("users.json", "w") as f:
@@ -174,23 +173,25 @@ with gr.Blocks() as demo:
174
  lbdf.rename(columns={'name': "이름", 'best_score': "최고점수", 'best_time': "시간기록", 'comment': "퀴즈유형"}, inplace=True)
175
  lbdf.index += 1
176
  md = lbdf[['이름', '최고점수', '시간기록', '퀴즈유형']]
177
- return "", chat_history, md
 
 
 
 
178
 
179
  play.click(respond,
180
  inputs=[play, chatbot, user, quiz_count, generation, poke_types],
181
- outputs=[msg, chatbot, leader_board])
182
  skip.click(respond,
183
  inputs=[skip, chatbot, user, quiz_count, generation, poke_types],
184
- outputs=[msg, chatbot, leader_board])
185
- stop.click(respond,
186
- inputs=[stop, chatbot, user, quiz_count, generation, poke_types],
187
- outputs=[msg, chatbot, leader_board])
188
 
189
  def rs_change(rs):
190
  global USERS
191
  if rs not in USERS:
192
  USERS += [rs]
193
- return gr.update(choices=sorted(USERS), value=rs)
 
194
 
195
  user.blur(rs_change, user, user)
196
 
@@ -199,13 +200,18 @@ with gr.Blocks() as demo:
199
  lbdf = pd.DataFrame([dict(**a[1], name=a[0]) for a in leader_board])
200
  lbdf.rename(columns={'name': "이름", 'best_score': "최고점수", 'best_time': "시간기록", 'comment': "퀴즈유형"}, inplace=True)
201
  lbdf.index += 1
202
- print(len(lbdf))
203
  md = lbdf[['이름', '최고점수', '시간기록', '퀴즈유형']]
204
- return md, gr.Dropdown(USERS, value=user, label="사용자", info="당신은 누구신가요?", allow_custom_value=True)
 
 
 
 
 
 
205
  demo.load(update_table,
206
  inputs=user,
207
- outputs=[leader_board, user])
208
- msg.submit(respond, [msg, chatbot, user, quiz_count, generation, poke_types], [msg, chatbot, leader_board])
209
 
210
  demo.queue(concurrency_count=1)
211
  demo.launch()
 
95
  with gr.Row():
96
  play = gr.Button(value="퀴즈 시작", label="퀴즈 시작")
97
  skip = gr.Button(value="문제 넘어가기", label="문제 스킵")
 
98
  chatbot = gr.Chatbot(bubble_full_width=False,
99
  avatar_images=["https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/images/No_0001_이상해씨.png",
100
  "https://huggingface.co/spaces/yoon-gu/pokemon/resolve/main/images/No_0155_브케인.png"])
 
126
  info[user]['count'] += 1
127
  bot_message = f"🎉정답입니다! 다음 문제입니다.\n{q}\n- 현재 점수: {info[user]['score']}점\n- 소요 시간: {time.time() - info[user]['time']:4.3f}초"
128
 
129
+ elif "포기하기" == message.replace(" ", ""):
130
  bot_message = f"퀴즈를 강제 종료합니다."
131
  info[user]['done'] = True
132
  elif "문제 넘어가기" == message:
 
156
  info[user]['best_score'] = info[user]['score']
157
  info[user]['best_time'] = min(time.time() - info[user]['time'], info[user]['best_time'])
158
  info[user]['best_time'] = round(info[user]['best_time'], 2)
159
+ info[user]['comment'] = f"{gen.replace(' ', '')}+{types.replace(' ', '')}"
160
  with open("info.json", "w") as f:
161
  json.dump(info, f, indent=4)
162
  with open("users.json", "w") as f:
 
173
  lbdf.rename(columns={'name': "이름", 'best_score': "최고점수", 'best_time': "시간기록", 'comment': "퀴즈유형"}, inplace=True)
174
  lbdf.index += 1
175
  md = lbdf[['이름', '최고점수', '시간기록', '퀴즈유형']]
176
+ if info[user]['done']:
177
+ btn = gr.Button(value="퀴즈 시작", label="퀴즈 시작")
178
+ else:
179
+ btn = gr.Button(value="포기하기", label="퀴즈 중단")
180
+ return btn, "", chat_history, md
181
 
182
  play.click(respond,
183
  inputs=[play, chatbot, user, quiz_count, generation, poke_types],
184
+ outputs=[play, msg, chatbot, leader_board])
185
  skip.click(respond,
186
  inputs=[skip, chatbot, user, quiz_count, generation, poke_types],
187
+ outputs=[play, msg, chatbot, leader_board])
 
 
 
188
 
189
  def rs_change(rs):
190
  global USERS
191
  if rs not in USERS:
192
  USERS += [rs]
193
+ new_dropdown = gr.Dropdown(sorted(USERS), value=rs, label="사용자", info="당신은 누구신가요?", allow_custom_value=True)
194
+ return new_dropdown
195
 
196
  user.blur(rs_change, user, user)
197
 
 
200
  lbdf = pd.DataFrame([dict(**a[1], name=a[0]) for a in leader_board])
201
  lbdf.rename(columns={'name': "이름", 'best_score': "최고점수", 'best_time': "시간기록", 'comment': "퀴즈유형"}, inplace=True)
202
  lbdf.index += 1
 
203
  md = lbdf[['이름', '최고점수', '시간기록', '퀴즈유형']]
204
+
205
+ if info[user]['done']:
206
+ btn = gr.Button(value="퀴즈 시작", label="퀴즈 시작")
207
+ else:
208
+ btn = gr.Button(value="포기하기", label="퀴즈 중단")
209
+
210
+ return btn, md, gr.Dropdown(USERS, value=user, label="사용자", info="당신은 누구신가요?", allow_custom_value=True)
211
  demo.load(update_table,
212
  inputs=user,
213
+ outputs=[play, leader_board, user])
214
+ msg.submit(respond, [msg, chatbot, user, quiz_count, generation, poke_types], [play, msg, chatbot, leader_board])
215
 
216
  demo.queue(concurrency_count=1)
217
  demo.launch()