Browse Source

安全性

main
みてるぞ 1 week ago
parent
commit
11551b8abc
1 changed files with 26 additions and 10 deletions
  1. +26
    -10
      main.py

+ 26
- 10
main.py View File

@@ -164,7 +164,11 @@ def fetch_kiriban_list (
env = os.environ,
capture_output = True,
text = True)
kl: list[list[int | str]] = json.loads (result.stdout)
kl: list[list[int | str]]
try:
kl = json.loads (result.stdout)
except Exception:
kl = []

return [(cast (int, k[0]), video_info, str_to_datetime (cast (str, k[2])))
for k in kl
@@ -287,14 +291,25 @@ async def report_hot_spring_time (
async def reconnect_db (
) -> None:
while True:
await asyncio.sleep (1800)
try:
await asyncio.sleep (600)
run_with_mysql_retry (DB.reconnect, 'mysql')


def ensure_mysql_alive ():
conn = DB.connection ('mysql').get_connection ()
conn.ping (True)


def run_with_mysql_retry (fn, *args, **kwargs):
try:
ensure_mysql_alive ()
return fn (*args, **kwargs)
except Exception as ex:
if getattr (ex, 'args', [None])[0] in (2006, 2013):
DB.reconnect ('mysql')
except Exception as e:
if getattr (e, 'args', [None])[0] == 2006:
print ('堕ちたな(確信).')
else:
raise
ensure_mysql_alive ()
return fn (*args, **kwargs)
raise


def _add_query (
@@ -310,8 +325,9 @@ def _add_query (
query.model = GPTModel.GPT4_O.value
query.sent_at = datetime.now ()
query.answered = False
query.transfer_data = transfer_data
query.save ()
if transfer_data is not None:
query.transfer_data = transfer_data
run_with_mysql_retry (query.save)


def _format_elapsed (


Loading…
Cancel
Save