✨ v0.4.5 米游社添加支持直接绑定账号
This commit is contained in:
parent
85cd202ce8
commit
00851aebf8
@ -17,18 +17,22 @@ async def weapon_adv(name):
|
|||||||
ws = wb.active
|
ws = wb.active
|
||||||
|
|
||||||
weapon_name = ""
|
weapon_name = ""
|
||||||
char_list = []
|
weapons = {}
|
||||||
for c in range(2, 5):
|
for c in range(2, 5):
|
||||||
for r in range(2, 300):
|
for r in range(2, 300):
|
||||||
if ws.cell(r, c).value:
|
if ws.cell(r, c).value:
|
||||||
# if all(i in ws.cell(r,c).value for i in name):
|
# if all(i in ws.cell(r,c).value for i in name):
|
||||||
if name in ws.cell(r, c).value:
|
if name in ws.cell(r, c).value:
|
||||||
weapon_name = ws.cell(r, c).value
|
weapon_name = ws.cell(r, c).value
|
||||||
char_list.append(ws.cell(2 + ((r - 2) // 5) * 5, 1).value)
|
weapon = weapons.get(weapon_name, [])
|
||||||
|
weapon.append(ws.cell(2 + ((r - 2) // 5) * 5, 1).value)
|
||||||
|
weapons[weapon_name] = weapon
|
||||||
|
|
||||||
if char_list:
|
if weapons:
|
||||||
im = ','.join(char_list)
|
im = []
|
||||||
im = im + " 可能会用到【{}】".format(weapon_name)
|
for k, v in weapons.items():
|
||||||
|
im.append(f'{"、".join(v)}可能会用到【{k}】')
|
||||||
|
im = '\n'.join(im)
|
||||||
else:
|
else:
|
||||||
im = " 没有角色能使用【{}】".format(weapon_name if weapon_name else name)
|
im = " 没有角色能使用【{}】".format(weapon_name if weapon_name else name)
|
||||||
return im
|
return im
|
||||||
|
@ -3,10 +3,12 @@ import random
|
|||||||
import re
|
import re
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import traceback
|
import traceback
|
||||||
|
from genshin import ChineseClient
|
||||||
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from pyrogram import Client
|
from pyrogram import Client, ContinuePropagation, filters
|
||||||
from pyrogram.types import Message
|
from pyrogram.types import Message, KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove
|
||||||
|
|
||||||
from defs.db import deal_ck, selectDB, OpenPush, CheckDB, connectDB, deletecache
|
from defs.db import deal_ck, selectDB, OpenPush, CheckDB, connectDB, deletecache
|
||||||
from defs.event import generate_event
|
from defs.event import generate_event
|
||||||
@ -19,13 +21,56 @@ from defs.spiral_abyss import draw_abyss_pic, draw_abyss0_pic
|
|||||||
from defs.spiral_abyss_text import get_user_abyss
|
from defs.spiral_abyss_text import get_user_abyss
|
||||||
|
|
||||||
SUPERUSERS = [admin_id]
|
SUPERUSERS = [admin_id]
|
||||||
|
Cookie_Right_Text = """
|
||||||
|
Cookie 有效,请在 30 秒内选择您要绑定的账号:
|
||||||
|
"""
|
||||||
|
Bind_Right_Text = """
|
||||||
|
账号绑定成功,欢迎使用!
|
||||||
|
"""
|
||||||
|
No_Account_Text = """
|
||||||
|
暂无账号信息,请先前往 APP 绑定账号!
|
||||||
|
"""
|
||||||
|
|
||||||
def is_chinese(x: Union[int, str]) -> bool:
|
def is_chinese(x: Union[int, str]) -> bool:
|
||||||
"""Recognizes whether the server/uid is chinese."""
|
"""Recognizes whether the server/uid is chinese."""
|
||||||
return str(x).startswith(("1", "2", "5"))
|
return str(x).startswith(("1", "2", "5"))
|
||||||
|
|
||||||
|
|
||||||
|
async def choose_account(message: Message, results: list,
|
||||||
|
client: Union[ChineseClient] = None):
|
||||||
|
# 选择账号
|
||||||
|
if results:
|
||||||
|
keyboard = []
|
||||||
|
data = {}
|
||||||
|
for i in results:
|
||||||
|
data[str(i.uid)] = i
|
||||||
|
keyboard.append(KeyboardButton(text=f"{i.uid} - {i.nickname} - lv.{i.level}"))
|
||||||
|
msg = await message.reply(Cookie_Right_Text,
|
||||||
|
reply_to_message_id=message.message_id,
|
||||||
|
reply_markup=ReplyKeyboardMarkup([keyboard]))
|
||||||
|
try:
|
||||||
|
ask = await app.listen(message.from_user.id, filters=filters.text, timeout=30) # noqa
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
await msg.delete()
|
||||||
|
await message.reply("您的操作超时,请重试。", reply_markup=ReplyKeyboardRemove())
|
||||||
|
raise ContinuePropagation
|
||||||
|
except Exception as e:
|
||||||
|
await msg.delete()
|
||||||
|
await message.reply(f"出现错误:{e}", reply_markup=ReplyKeyboardRemove())
|
||||||
|
raise ContinuePropagation
|
||||||
|
try:
|
||||||
|
data = data[ask.text.split(" - ")[0]]
|
||||||
|
except (AttributeError, IndexError, KeyError):
|
||||||
|
await ask.reply("您的操作错误,请重试。", quote=True)
|
||||||
|
raise ContinuePropagation
|
||||||
|
except Exception as e:
|
||||||
|
await ask.reply_text(f"出现错误:{e}", quote=True)
|
||||||
|
raise ContinuePropagation
|
||||||
|
# 写入数据
|
||||||
|
await connectDB(message.from_user.id, data.uid)
|
||||||
|
await connectDB(message.from_user.id, None, client.hoyolab_uid)
|
||||||
|
|
||||||
|
|
||||||
async def mys2_msg(client: Client, message: Message):
|
async def mys2_msg(client: Client, message: Message):
|
||||||
text = message.text.replace("米游社", "")
|
text = message.text.replace("米游社", "")
|
||||||
userid = message.from_user.id
|
userid = message.from_user.id
|
||||||
@ -36,13 +81,19 @@ async def mys2_msg(client: Client, message: Message):
|
|||||||
return await message.reply_text("获取 Cookie 请参考:[link](https://github.com/Womsxd/AutoMihoyoBBS/"
|
return await message.reply_text("获取 Cookie 请参考:[link](https://github.com/Womsxd/AutoMihoyoBBS/"
|
||||||
"#%E8%8E%B7%E5%8F%96%E7%B1%B3%E6%B8%B8%E7%A4%BEcookie)", quote=True)
|
"#%E8%8E%B7%E5%8F%96%E7%B1%B3%E6%B8%B8%E7%A4%BEcookie)", quote=True)
|
||||||
await deal_ck(mes, userid)
|
await deal_ck(mes, userid)
|
||||||
await message.reply(f'添加Cookies成功!\n'
|
# 开始绑定 uid
|
||||||
|
client_ = ChineseClient()
|
||||||
|
client_.set_cookies(mes)
|
||||||
|
results = await client_.genshin_accounts()
|
||||||
|
await client_.close()
|
||||||
|
await choose_account(message, results, client_)
|
||||||
|
await message.reply(f'<code>=============</code>\n'
|
||||||
|
f'添加Cookies成功!\n'
|
||||||
f'Cookies属于个人重要信息,如果你是在不知情的情况下添加,'
|
f'Cookies属于个人重要信息,如果你是在不知情的情况下添加,'
|
||||||
f'请马上修改米游社账户密码,保护个人隐私!\n'
|
f'请马上修改米游社账户密码,保护个人隐私!\n'
|
||||||
f'<code>=============</code>\n'
|
f'<code>=============</code>', reply_markup=ReplyKeyboardRemove(), quote=True)
|
||||||
f'如果需要【开启自动签到】和【开启推送】还需要使用命令 '
|
except ContinuePropagation:
|
||||||
f'<code>米游社绑定uid</code>绑定你的uid。\n'
|
raise ContinuePropagation
|
||||||
f'例如:<code>米游社绑定uid123456789</code>。')
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
await message.reply(f'校验失败!请输入正确的Cookies!获取 Cookie 请参考:'
|
await message.reply(f'校验失败!请输入正确的Cookies!获取 Cookie 请参考:'
|
||||||
|
@ -4,7 +4,7 @@ from pyrogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineK
|
|||||||
ReplyKeyboardRemove
|
ReplyKeyboardRemove
|
||||||
|
|
||||||
HELP_MSG_PRE = '<a href="https://gitlab.com/Xtao-Labs/Telegram_PaimonBot">PaimonBot</a> ' \
|
HELP_MSG_PRE = '<a href="https://gitlab.com/Xtao-Labs/Telegram_PaimonBot">PaimonBot</a> ' \
|
||||||
'0.4.4beta By Xtao-Labs\n\n' \
|
'0.4.5beta By Xtao-Labs\n\n' \
|
||||||
'🔅 以下是小派蒙我学会了的功能(部分):\n'
|
'🔅 以下是小派蒙我学会了的功能(部分):\n'
|
||||||
HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器
|
HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器
|
||||||
② [天赋/今日天赋] 查看今日天赋材料和角色
|
② [天赋/今日天赋] 查看今日天赋材料和角色
|
||||||
|
@ -16,3 +16,4 @@ numpy
|
|||||||
sqlitedict
|
sqlitedict
|
||||||
openpyxl>=3.0.9
|
openpyxl>=3.0.9
|
||||||
pydantic
|
pydantic
|
||||||
|
genshin
|
||||||
|
Loading…
Reference in New Issue
Block a user