軽量化
このコミットが含まれているのは:
@@ -4,6 +4,7 @@ import math
|
||||
import os
|
||||
import random
|
||||
import sys
|
||||
import time
|
||||
import wave
|
||||
from datetime import datetime, timedelta
|
||||
from enum import Enum, auto
|
||||
@@ -60,40 +61,48 @@ def main (
|
||||
pass
|
||||
|
||||
waiting_balloon = (False, '', '')
|
||||
last_flags_poll: float = 0
|
||||
|
||||
while True:
|
||||
now_m = time.monotonic ()
|
||||
|
||||
for event in pygame.event.get ():
|
||||
if event.type == pygame.QUIT:
|
||||
pygame.quit ()
|
||||
sys.exit ()
|
||||
|
||||
if (not balloon.enabled) and (not snack_time.enabled):
|
||||
if waiting_balloon[0]:
|
||||
deerjika.talk (waiting_balloon[1], waiting_balloon[2])
|
||||
waiting_balloon = (False, '', '')
|
||||
try:
|
||||
DB.begin_transaction ()
|
||||
answer_flags = (AnsweredFlag.where ('platform', Platform.YOUTUBE.value)
|
||||
.where ('answered', False)
|
||||
.get ())
|
||||
if answer_flags:
|
||||
answer_flag = random.choice (answer_flags)
|
||||
answer = Answer.find (answer_flag.answer_id)
|
||||
match QueryType (answer.query_rel.query_type):
|
||||
case QueryType.YOUTUBE_COMMENT:
|
||||
query = Query.find (answer.query_id)
|
||||
deerjika.talk (query.content, answer.content)
|
||||
answer_flag.answered = True
|
||||
answer_flag.save ()
|
||||
case QueryType.SNACK_TIME:
|
||||
snack_time.play ()
|
||||
query = Query.find (answer.query_id)
|
||||
waiting_balloon = (True, query.content, answer.content)
|
||||
answer_flag.answered = True
|
||||
answer_flag.save ()
|
||||
DB.commit ()
|
||||
add_query (broadcast)
|
||||
except Exception as ex:
|
||||
print (ex)
|
||||
|
||||
if now_m - last_flags_poll >= 10:
|
||||
last_flags_poll = now_m
|
||||
try:
|
||||
DB.begin_transaction ()
|
||||
answer_flags = (AnsweredFlag.where ('platform', Platform.YOUTUBE.value)
|
||||
.where ('answered', False)
|
||||
.get ())
|
||||
if answer_flags:
|
||||
answer_flag = random.choice (answer_flags)
|
||||
answer = Answer.find (answer_flag.answer_id)
|
||||
match QueryType (answer.query_rel.query_type):
|
||||
case QueryType.YOUTUBE_COMMENT:
|
||||
query = Query.find (answer.query_id)
|
||||
deerjika.talk (query.content, answer.content)
|
||||
answer_flag.answered = True
|
||||
answer_flag.save ()
|
||||
case QueryType.SNACK_TIME:
|
||||
snack_time.play ()
|
||||
query = Query.find (answer.query_id)
|
||||
waiting_balloon = (True, query.content, answer.content)
|
||||
answer_flag.answered = True
|
||||
answer_flag.save ()
|
||||
DB.commit ()
|
||||
add_query (broadcast)
|
||||
except Exception as ex:
|
||||
DB.rollback ()
|
||||
print (ex)
|
||||
game.redraw ()
|
||||
|
||||
|
||||
|
||||
新しい課題から参照
ユーザをブロックする