mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-06 04:10:02 +08:00
数据库中所有user_qq改名以及user_id和group_id改为字符串
This commit is contained in:
@@ -13,7 +13,7 @@ class Genshin(Model):
|
||||
|
||||
id = fields.IntField(pk=True, generated=True, auto_increment=True)
|
||||
"""自增id"""
|
||||
user_qq = fields.BigIntField()
|
||||
user_id = fields.CharField(255)
|
||||
"""用户id"""
|
||||
uid = fields.BigIntField()
|
||||
"""uid"""
|
||||
@@ -43,7 +43,7 @@ class Genshin(Model):
|
||||
class Meta:
|
||||
table = "genshin"
|
||||
table_description = "原神数据表"
|
||||
unique_together = ("user_qq", "uid")
|
||||
unique_together = ("user_id", "uid")
|
||||
|
||||
@classmethod
|
||||
async def random_sign_time(cls, uid: int) -> Optional[datetime]:
|
||||
@@ -103,4 +103,6 @@ class Genshin(Model):
|
||||
"ALTER TABLE genshin ADD login_ticket VARCHAR(255) DEFAULT '';",
|
||||
"ALTER TABLE genshin ADD stuid VARCHAR(255) DEFAULT '';",
|
||||
"ALTER TABLE genshin ADD stoken VARCHAR(255) DEFAULT '';",
|
||||
"ALTER TABLE genshin RENAME COLUMN user_qq TO user_id;", # 将user_qq改为user_id
|
||||
"ALTER TABLE genshin ALTER COLUMN user_id TYPE character varying(255);",
|
||||
]
|
||||
|
||||
@@ -55,7 +55,7 @@ bbs_Cookie_url2 = (
|
||||
@bind.handle()
|
||||
async def _(event: MessageEvent, cmd: str = OneCommand(), arg: Message = CommandArg()):
|
||||
msg = arg.extract_plain_text().strip()
|
||||
user = await Genshin.get_or_none(user_qq=event.user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(event.user_id))
|
||||
if cmd in ["原神绑定uid", "原神绑定米游社id"]:
|
||||
if not is_number(msg):
|
||||
await bind.finish("uid/id必须为纯数字!", at_senders=True)
|
||||
@@ -63,9 +63,9 @@ async def _(event: MessageEvent, cmd: str = OneCommand(), arg: Message = Command
|
||||
if cmd == "原神绑定uid":
|
||||
if user:
|
||||
await bind.finish(f"您已绑定过uid:{user.uid},如果希望更换uid,请先发送原神解绑")
|
||||
if await Genshin.get_or_none(user_qq=event.user_id, uid=msg):
|
||||
if await Genshin.get_or_none(user_id=str(event.user_id), uid=msg):
|
||||
await bind.finish("添加失败,该uid可能已存在...")
|
||||
user = await Genshin.create(user_qq=event.user_id, uid=msg)
|
||||
user = await Genshin.create(user_id=str(event.user_id), uid=msg)
|
||||
_x = f"已成功添加原神uid:{msg}"
|
||||
elif cmd == "原神绑定米游社id":
|
||||
if not user:
|
||||
@@ -144,7 +144,7 @@ async def _(event: MessageEvent, cmd: str = OneCommand(), arg: Message = Command
|
||||
|
||||
@unbind.handle()
|
||||
async def _(event: MessageEvent):
|
||||
await Genshin.filter(user_qq=event.user_id).delete()
|
||||
await Genshin.filter(user_id=str(event.user_id)).delete()
|
||||
await unbind.send("用户数据删除成功...")
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP "
|
||||
|
||||
@@ -43,7 +43,7 @@ genshin_matcher = on_command(
|
||||
|
||||
@genshin_matcher.handle()
|
||||
async def _(event: MessageEvent, cmd: str = OneCommand()):
|
||||
user = await Genshin.get_or_none(user_qq=event.user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(event.user_id))
|
||||
if not user:
|
||||
await genshin_matcher.finish("请先绑定user.uid...")
|
||||
if cmd == "查看我的cookie":
|
||||
|
||||
@@ -31,11 +31,11 @@ async def _():
|
||||
_sign,
|
||||
"date",
|
||||
run_date=date.replace(microsecond=0),
|
||||
id=f"genshin_auto_sign_{u.uid}_{u.user_qq}_0",
|
||||
args=[u.user_qq, u.uid, 0],
|
||||
id=f"genshin_auto_sign_{u.uid}_{u.user_id}_0",
|
||||
args=[u.user_id, u.uid, 0],
|
||||
)
|
||||
logger.info(
|
||||
f"genshin_sign add_job:USER:{u.user_qq} UID:{u.uid} "
|
||||
f"genshin_sign add_job:USER:{u.user_id} UID:{u.uid} "
|
||||
f"{date} 原神自动签到"
|
||||
)
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ async def _(event: MessageEvent, cmd: Tuple[str, ...] = Command()):
|
||||
|
||||
|
||||
async def mihoyobbs_sign(user_id):
|
||||
user = await Genshin.get_or_none(user_qq=user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(user_id))
|
||||
if not user or not user.uid or not user.cookie:
|
||||
await mihoyobbs_matcher.finish("请先绑定uid和cookie!", at_sender=True)
|
||||
bbs = mihoyobbs.Mihoyobbs(stuid=user.stuid, stoken=user.stoken, cookie=user.cookie)
|
||||
|
||||
@@ -35,7 +35,7 @@ query_memo_matcher = on_command(
|
||||
|
||||
@query_memo_matcher.handle()
|
||||
async def _(event: MessageEvent):
|
||||
user = await Genshin.get_or_none(user_qq=event.user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(event.user_id))
|
||||
if not user or not user.uid or not user.cookie:
|
||||
await query_memo_matcher.finish("请先绑定uid和cookie!")
|
||||
if isinstance(event, GroupMessageEvent):
|
||||
|
||||
@@ -44,7 +44,7 @@ async def _(event: MessageEvent, arg: Message = CommandArg()):
|
||||
await query_role_info_matcher.finish("查询uid必须为数字!")
|
||||
msg = int(msg)
|
||||
uid = None
|
||||
user = await Genshin.get_or_none(user_qq=event.user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(event.user_id))
|
||||
if not msg and user:
|
||||
uid = user.uid
|
||||
else:
|
||||
|
||||
@@ -52,7 +52,7 @@ resin_remind = on_command("开原神树脂提醒", aliases={"关原神树脂提
|
||||
|
||||
@resin_remind.handle()
|
||||
async def _(event: MessageEvent, cmd: str = OneCommand()):
|
||||
user = await Genshin.get_or_none(user_qq=event.user_id)
|
||||
user = await Genshin.get_or_none(user_id=str(event.user_id))
|
||||
if not user or not user.uid or not user.cookie:
|
||||
await resin_remind.finish("请先绑定uid和cookie!")
|
||||
try:
|
||||
|
||||
@@ -88,35 +88,27 @@ async def _():
|
||||
if u.resin_recovery_time and u.resin_recovery_time > datetime.now(
|
||||
pytz.timezone("Asia/Shanghai")
|
||||
):
|
||||
# date = await Genshin.get_user_resin_recovery_time(u.uid) # 不能要,因为可能在这期间用户使用了树脂
|
||||
add_job(u.user_qq, u.uid)
|
||||
# scheduler.add_job(
|
||||
# _remind,
|
||||
# "date",
|
||||
# run_date=date.replace(microsecond=0),
|
||||
# id=f"genshin_resin_remind_{u.uid}_{u.user_qq}",
|
||||
# args=[u.user_qq, u.uid],
|
||||
# )
|
||||
add_job(u.user_id, u.uid)
|
||||
logger.info(
|
||||
f"genshin_resin_remind add_job:USER:{u.user_qq} UID:{u.uid}启动原神树脂提醒 "
|
||||
f"genshin_resin_remind add_job:USER:{u.user_id} UID:{u.uid}启动原神树脂提醒 "
|
||||
)
|
||||
else:
|
||||
u.resin_recovery_time = None # type: ignore
|
||||
update_list.append(u)
|
||||
add_job(u.user_qq, u.uid)
|
||||
add_job(u.user_id, u.uid)
|
||||
logger.info(
|
||||
f"genshin_resin_remind add_job CHECK:USER:{u.user_qq} UID:{u.uid}启动原神树脂提醒 "
|
||||
f"genshin_resin_remind add_job CHECK:USER:{u.user_id} UID:{u.uid}启动原神树脂提醒 "
|
||||
)
|
||||
else:
|
||||
add_job(u.user_qq, u.uid)
|
||||
add_job(u.user_id, u.uid)
|
||||
logger.info(
|
||||
f"genshin_resin_remind add_job CHECK:USER:{u.user_qq} UID:{u.uid}启动原神树脂提醒 "
|
||||
f"genshin_resin_remind add_job CHECK:USER:{u.user_id} UID:{u.uid}启动原神树脂提醒 "
|
||||
)
|
||||
if update_list:
|
||||
await Genshin.bulk_update(update_list, ["resin_recovery_time"])
|
||||
|
||||
|
||||
def add_job(user_id: int, uid: int):
|
||||
def add_job(user_id: str, uid: int):
|
||||
# 移除
|
||||
try:
|
||||
scheduler.remove_job(f"genshin_resin_remind_{uid}_{user_id}")
|
||||
@@ -136,7 +128,7 @@ def add_job(user_id: int, uid: int):
|
||||
|
||||
|
||||
async def _remind(user_id: int, uid: str):
|
||||
user = await Genshin.get_or_none(user_qq=user_id, uid=int(uid))
|
||||
user = await Genshin.get_or_none(user_id=str(user_id), uid=int(uid))
|
||||
uid = str(uid)
|
||||
if uid[0] in ["1", "2"]:
|
||||
server_id = "cn_gf01"
|
||||
|
||||
Reference in New Issue
Block a user