zhenxun_bot/plugins/genshin/query_user/bind/__init__.py

106 lines
4.3 KiB
Python
Raw Normal View History

2021-12-16 11:16:28 +08:00
from nonebot import on_command
2022-02-19 18:20:19 +08:00
from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message
from utils.utils import is_number
from .._models import Genshin
2021-12-16 11:16:28 +08:00
from services.log import logger
2022-02-19 18:20:19 +08:00
from nonebot.params import CommandArg, Command
from typing import Tuple
2021-12-16 11:16:28 +08:00
__zx_plugin_name__ = "原神绑定"
__plugin_usage__ = """
usage
绑定原神uid等数据cookie极为重要请谨慎绑定
** 如果对拥有者不熟悉并不建议添加cookie **
该项目只会对cookie用于米游社签到原神玩家查询原神便笺查询
指令
原神绑定uid [uid]
原神绑定米游社id [mys_id]
原神绑定cookie [cookie] # 该绑定请私聊
2021-12-26 22:14:01 +08:00
原神解绑
2021-12-16 11:16:28 +08:00
示例原神绑定uid 92342233
如果不明白怎么获取cookie请输入原神绑定cookie
""".strip()
__plugin_des__ = "绑定自己的原神uid等"
__plugin_cmd__ = ["原神绑定uid [uid]", "原神绑定米游社id [mys_id]", "原神绑定cookie [cookie]", "原神解绑"]
__plugin_type__ = ("原神相关",)
__plugin_version__ = 0.1
__plugin_author__ = "HibiKier"
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["原神绑定"],
}
bind = on_command(
"原神绑定uid", aliases={"原神绑定米游社id", "原神绑定cookie"}, priority=5, block=True
)
unbind = on_command("原神解绑", priority=5, block=True)
@bind.handle()
2022-02-19 18:20:19 +08:00
async def _(event: MessageEvent, cmd: Tuple[str, ...] = Command(), arg: Message = CommandArg()):
cmd = cmd[0]
msg = arg.extract_plain_text().strip()
if cmd in ["原神绑定uid", "原神绑定米游社id"]:
2021-12-16 11:16:28 +08:00
if not is_number(msg):
await bind.finish("uid/id必须为纯数字", at_senders=True)
msg = int(msg)
2022-02-19 18:20:19 +08:00
if cmd == "原神绑定uid":
2021-12-16 11:16:28 +08:00
uid = await Genshin.get_user_uid(event.user_id)
if uid:
await bind.finish(f"您已绑定过uid{uid}如果希望更换uid请先发送原神解绑")
flag = await Genshin.add_uid(event.user_id, msg)
if not flag:
await bind.finish("添加失败该uid可能已存在...")
_x = f"已成功添加原神uid{msg}"
2022-02-19 18:20:19 +08:00
elif cmd == "原神绑定米游社id":
2021-12-16 11:16:28 +08:00
uid = await Genshin.get_user_uid(event.user_id)
if not uid:
await bind.finish("请先绑定原神uid..")
await Genshin.set_mys_id(uid, msg)
_x = f"已成功为uid{uid} 设置米游社id{msg}"
else:
if not msg:
await bind.finish("""私聊发送!!
1.以无痕模式打开浏览器Edge请新建InPrivate窗口
2.打开http://bbs.mihoyo.com/ys/并登陆
3.登陆后打开http://user.mihoyo.com/进行登陆
4.按下F12打开控制台输入以下命令
var cookie=document.cookie;var ask=confirm('Cookie:'+cookie+'\\n\\nDo you want to copy the cookie to the clipboard?');if(ask==true){copy(cookie);msg=cookie}else{msg='Cancel'}
5.私聊发送原神绑定cookie 刚刚复制的cookie""")
2021-12-16 11:16:28 +08:00
if isinstance(event, GroupMessageEvent):
await bind.finish("请立即撤回你的消息并私聊发送!")
uid = await Genshin.get_user_uid(event.user_id)
if not uid:
await bind.finish("请先绑定原神uid..")
2022-02-09 20:05:49 +08:00
if msg.startswith('"') or msg.startswith("'"):
2021-12-16 11:16:28 +08:00
msg = msg[1:]
2022-02-09 20:05:49 +08:00
if msg.endswith('"') or msg.endswith("'"):
2021-12-16 11:16:28 +08:00
msg = msg[:-1]
await Genshin.set_cookie(uid, msg)
_x = f"已成功为uid{uid} 设置cookie"
2022-02-19 18:20:19 +08:00
if isinstance(event, GroupMessageEvent):
await Genshin.set_bind_group(uid, event.group_id)
2021-12-16 11:16:28 +08:00
await bind.send(_x)
logger.info(
f"(USER {event.user_id}, "
f"GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
2022-02-19 18:20:19 +08:00
f" {cmd}{msg}"
2021-12-16 11:16:28 +08:00
)
@unbind.handle()
2022-02-19 18:20:19 +08:00
async def _(event: MessageEvent):
2021-12-16 11:16:28 +08:00
if await Genshin.delete_user(event.user_id):
await unbind.send("用户数据删除成功...")
logger.info(
f"(USER {event.user_id}, GROUP "
f"{event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
f"原神解绑"
)
else:
await unbind.send("该用户数据不存在..")