タイムスタンプのバグを修正

自動停止処理が時間をおいて起動するように
This commit is contained in:
suti7yk5032 2024-08-10 18:10:35 +09:00
parent b9d9e797d3
commit ba9f227e09

View file

@ -155,10 +155,10 @@ class Bot(discord.Client):
result = {"result": "pc_already_in_use_by_other"} result = {"result": "pc_already_in_use_by_other"}
else: else:
if user_info["detail"] == None: if user_info["detail"] == None:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, current_timestamp)", (user_record[0][0], user_info["pc_number"], user_info["device_number"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, clock_timestamp())", (user_record[0][0], user_info["pc_number"], user_info["device_number"]))
#使用用途があるとき #使用用途があるとき
else: else:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, current_timestamp, %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, clock_timestamp(), %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"]))
cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"])) cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"]))
cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"])) cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"]))
@ -173,10 +173,10 @@ class Bot(discord.Client):
result = {"result": "pc_already_in_use_by_other"} result = {"result": "pc_already_in_use_by_other"}
else: else:
if user_info["detail"] == None: if user_info["detail"] == None:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, current_timestamp)", (user_record[0][0], user_info["pc_number"], user_info["device_number"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, clock_timestamp())", (user_record[0][0], user_info["pc_number"], user_info["device_number"]))
#使用用途があるとき #使用用途があるとき
else: else:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, current_timestamp, %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, clock_timestamp(), %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"]))
cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"])) cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"]))
cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"])) cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"]))
@ -184,10 +184,10 @@ class Bot(discord.Client):
result = {"result": "ok", "password": str(password), "name": str(user_record[0][1])} result = {"result": "ok", "password": str(password), "name": str(user_record[0][1])}
else: else:
if user_info["detail"] == None: if user_info["detail"] == None:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, current_timestamp)", (user_record[0][0], user_info["pc_number"], user_info["device_number"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time) VALUES (%s, %s, %s, clock_timestamp())", (user_record[0][0], user_info["pc_number"], user_info["device_number"]))
#使用用途があるとき #使用用途があるとき
else: else:
cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, current_timestamp, %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"])) cursor.execute("INSERT INTO pc_usage_history (member_id, pc_number, device_number, start_use_time, use_detail) VALUES (%s, %s, %s, clock_timestamp(), %s)", (user_record[0][0], user_info["pc_number"], user_info["device_number"], user_info["detail"]))
cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"])) cursor.execute("UPDATE pc_list SET using_user_id = %s WHERE pc_number = %s", (user_record[0][0], user_info["pc_number"]))
cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"])) cursor.execute("UPDATE pc_list SET password_hash = %s WHERE pc_number = %s", (password_hash, user_info["pc_number"]))
@ -219,7 +219,7 @@ class Bot(discord.Client):
if not pc_usage_history_record[0][5] == None: if not pc_usage_history_record[0][5] == None:
result = {"result": "unused"} result = {"result": "unused"}
else: else:
cursor.execute("UPDATE pc_usage_history SET end_use_time = current_timestamp WHERE id = %s", (pc_usage_history_record[0][0],)) cursor.execute("UPDATE pc_usage_history SET end_use_time = clock_timestamp() WHERE id = %s", (pc_usage_history_record[0][0],))
cursor.execute("UPDATE pc_list SET using_user_id = NULL WHERE pc_number = %s", (pc_usage_history_record[0][2],)) cursor.execute("UPDATE pc_list SET using_user_id = NULL WHERE pc_number = %s", (pc_usage_history_record[0][2],))
cursor.execute("UPDATE pc_list SET password_hash = NULL WHERE pc_number = %s", (pc_usage_history_record[0][2],)) cursor.execute("UPDATE pc_list SET password_hash = NULL WHERE pc_number = %s", (pc_usage_history_record[0][2],))
dislocker.db.commit() dislocker.db.commit()
@ -376,7 +376,7 @@ class Bot(discord.Client):
cursor.execute("SELECT * FROM pc_usage_history WHERE member_id = %s AND pc_number = %s ORDER BY id DESC LIMIT 1", (pc_list_record[0][1], pc_number)) cursor.execute("SELECT * FROM pc_usage_history WHERE member_id = %s AND pc_number = %s ORDER BY id DESC LIMIT 1", (pc_list_record[0][1], pc_number))
pc_usage_history_record = cursor.fetchall() pc_usage_history_record = cursor.fetchall()
cursor.execute("UPDATE pc_usage_history SET end_use_time = current_timestamp WHERE id = %s", (pc_usage_history_record[0][0],)) cursor.execute("UPDATE pc_usage_history SET end_use_time = clock_timestamp() WHERE id = %s", (pc_usage_history_record[0][0],))
dislocker.db.commit() dislocker.db.commit()
result = {"result": "ok"} result = {"result": "ok"}
@ -642,6 +642,7 @@ class Monitor():
def __init__(self, **kwargs) -> None: def __init__(self, **kwargs) -> None:
self.serach_time = kwargs["search_time"] self.serach_time = kwargs["search_time"]
self.allowable_time = kwargs["allowable_time"] self.allowable_time = kwargs["allowable_time"]
self.init_wait_time = 10
def start(self, **kwargs): def start(self, **kwargs):
serach_thread = threading.Thread(target=self.search) serach_thread = threading.Thread(target=self.search)
@ -650,6 +651,7 @@ class Monitor():
def search(self): def search(self):
try: try:
time.sleep(self.init_wait_time)
while True: while True:
cursor = dislocker.db.cursor() cursor = dislocker.db.cursor()
cursor.execute("SELECT * FROM pc_list WHERE password_hash IS NOT NULL") cursor.execute("SELECT * FROM pc_list WHERE password_hash IS NOT NULL")
@ -675,7 +677,7 @@ class Monitor():
stop = bot.stop(user_id=user_info[0][3]) stop = bot.stop(user_id=user_info[0][3])
bot.timeout_notify(pc_number=pc_list[0][0], discord_display_name=user_info[0][1]) bot.timeout_notify(pc_number=pc_list[0][0], discord_display_name=user_info[0][1])
time.sleep(1) result = {"result": "STOP"}
else: else:
result = {"result": "BUT SAFE"} result = {"result": "BUT SAFE"}
@ -699,7 +701,7 @@ class Monitor():
stop = bot.stop(user_id=user_info[0][3]) stop = bot.stop(user_id=user_info[0][3])
bot.timeout_notify(pc_number=i[0], discord_display_name=user_info[0][1]) bot.timeout_notify(pc_number=i[0], discord_display_name=user_info[0][1])
time.sleep(0.1) result = {"result": "STOP"}
else: else:
result = {"result": "BUT SAFE"} result = {"result": "BUT SAFE"}
@ -766,7 +768,7 @@ if dislocker.init_result == "ok":
intents = discord.Intents.default() intents = discord.Intents.default()
intents.message_content = True intents.message_content = True
bot = Bot(intents=intents) bot = Bot(intents=intents)
monitor = Monitor(search_time=1, allowable_time=300) monitor = Monitor(search_time=1, allowable_time=60)
monitor.start() monitor.start()
bot.run(dislocker.server_config['bot']['token']) bot.run(dislocker.server_config['bot']['token'])
else: else: