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 :
2022-08-05 22:32:15 +08:00
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 ( "该用户数据不存在.." )