このコミットが含まれているのは:
2025-12-02 00:40:31 +09:00
コミット cf7eed84bc
+33 -24
ファイルの表示
@@ -4,6 +4,7 @@ import math
import os import os
import random import random
import sys import sys
import time
import wave import wave
from datetime import datetime, timedelta from datetime import datetime, timedelta
from enum import Enum, auto from enum import Enum, auto
@@ -60,40 +61,48 @@ def main (
pass pass
waiting_balloon = (False, '', '') waiting_balloon = (False, '', '')
last_flags_poll: float = 0
while True: while True:
now_m = time.monotonic ()
for event in pygame.event.get (): for event in pygame.event.get ():
if event.type == pygame.QUIT: if event.type == pygame.QUIT:
pygame.quit () pygame.quit ()
sys.exit () sys.exit ()
if (not balloon.enabled) and (not snack_time.enabled): if (not balloon.enabled) and (not snack_time.enabled):
if waiting_balloon[0]: if waiting_balloon[0]:
deerjika.talk (waiting_balloon[1], waiting_balloon[2]) deerjika.talk (waiting_balloon[1], waiting_balloon[2])
waiting_balloon = (False, '', '') waiting_balloon = (False, '', '')
try:
DB.begin_transaction () if now_m - last_flags_poll >= 10:
answer_flags = (AnsweredFlag.where ('platform', Platform.YOUTUBE.value) last_flags_poll = now_m
.where ('answered', False) try:
.get ()) DB.begin_transaction ()
if answer_flags: answer_flags = (AnsweredFlag.where ('platform', Platform.YOUTUBE.value)
answer_flag = random.choice (answer_flags) .where ('answered', False)
answer = Answer.find (answer_flag.answer_id) .get ())
match QueryType (answer.query_rel.query_type): if answer_flags:
case QueryType.YOUTUBE_COMMENT: answer_flag = random.choice (answer_flags)
query = Query.find (answer.query_id) answer = Answer.find (answer_flag.answer_id)
deerjika.talk (query.content, answer.content) match QueryType (answer.query_rel.query_type):
answer_flag.answered = True case QueryType.YOUTUBE_COMMENT:
answer_flag.save () query = Query.find (answer.query_id)
case QueryType.SNACK_TIME: deerjika.talk (query.content, answer.content)
snack_time.play () answer_flag.answered = True
query = Query.find (answer.query_id) answer_flag.save ()
waiting_balloon = (True, query.content, answer.content) case QueryType.SNACK_TIME:
answer_flag.answered = True snack_time.play ()
answer_flag.save () query = Query.find (answer.query_id)
DB.commit () waiting_balloon = (True, query.content, answer.content)
add_query (broadcast) answer_flag.answered = True
except Exception as ex: answer_flag.save ()
print (ex) DB.commit ()
add_query (broadcast)
except Exception as ex:
DB.rollback ()
print (ex)
game.redraw () game.redraw ()