# 解小黑屋实现 # 未完工 from Config import * from API_TitleServer import * from GetPreview import apiGetUserPreview from HelperLogInOut import apiLogout import json from loguru import logger import time import datetime def isUserLoggedIn(userId): return json.loads(apiGetUserPreview(userId))['isLogin'] def logOut(userId, Timestamp): try: result = apiLogout(Timestamp, userId) loadedResult = json.loads(result) if loadedResult['returnCode'] == 1: return True except: return False def forceLogout(userId, beginTimestamp): # 将人类可读的时间转换为 Unix 时间戳 original_timestamp = beginTimestamp # 定义时间范围(前后 20 分钟) time_range = 20 * 60 # 20 分钟,以秒为单位 # 尝试从原始时间戳开始,逐步向两边扩展 for offset in range(0, time_range + 1): # 尝试往前 offset 秒 timestamp = original_timestamp - offset logger.info(f"尝试时间戳: {timestamp}") if logout_user(timestamp, userid): if not is_user_logged_in(userid): print(f"用户 {userid} 已成功登出,使用的时间戳: {timestamp}") return # 尝试往后 offset 秒 timestamp = original_timestamp + offset if logout_user(timestamp, userid): if not is_user_logged_in(userid): print(f"用户 {userid} 已成功登出,使用的时间戳: {timestamp}") return print(f"无法在前后 20 分钟内登出用户 {userid}") # 示例使用 userId = testUid human_time = "2023-10-01 12:00:00" # 用户输入的人类可读时间 forceLogout(userId, human_time)