3
0

v0.4.5 米游社添加支持直接绑定账号

This commit is contained in:
xtaodada 2022-04-09 16:01:13 +08:00
parent 85cd202ce8
commit 00851aebf8
Signed by: xtaodada
GPG Key ID: 4CBB3F4FA8C85659
4 changed files with 70 additions and 14 deletions

View File

@ -17,18 +17,22 @@ async def weapon_adv(name):
ws = wb.active
weapon_name = ""
char_list = []
weapons = {}
for c in range(2, 5):
for r in range(2, 300):
if ws.cell(r, c).value:
# if all(i in ws.cell(r,c).value for i in name):
if name in 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:
im = ''.join(char_list)
im = im + " 可能会用到【{}".format(weapon_name)
if weapons:
im = []
for k, v in weapons.items():
im.append(f'{"".join(v)}可能会用到【{k}')
im = '\n'.join(im)
else:
im = " 没有角色能使用【{}".format(weapon_name if weapon_name else name)
return im

View File

@ -3,10 +3,12 @@ import random
import re
import sqlite3
import traceback
from genshin import ChineseClient
from typing import Union
from pyrogram import Client
from pyrogram.types import Message
from pyrogram import Client, ContinuePropagation, filters
from pyrogram.types import Message, KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove
from defs.db import deal_ck, selectDB, OpenPush, CheckDB, connectDB, deletecache
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
SUPERUSERS = [admin_id]
Cookie_Right_Text = """
Cookie 有效请在 30 秒内选择您要绑定的账号
"""
Bind_Right_Text = """
账号绑定成功欢迎使用
"""
No_Account_Text = """
暂无账号信息请先前往 APP 绑定账号
"""
def is_chinese(x: Union[int, str]) -> bool:
"""Recognizes whether the server/uid is chinese."""
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):
text = message.text.replace("米游社", "")
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/"
"#%E8%8E%B7%E5%8F%96%E7%B1%B3%E6%B8%B8%E7%A4%BEcookie)", quote=True)
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'请马上修改米游社账户密码,保护个人隐私!\n'
f'<code>=============</code>\n'
f'如果需要【开启自动签到】和【开启推送】还需要使用命令 '
f'<code>米游社绑定uid</code>绑定你的uid。\n'
f'例如:<code>米游社绑定uid123456789</code>。')
f'<code>=============</code>', reply_markup=ReplyKeyboardRemove(), quote=True)
except ContinuePropagation:
raise ContinuePropagation
except Exception as e:
traceback.print_exc()
await message.reply(f'校验失败请输入正确的Cookies获取 Cookie 请参考:'

View File

@ -4,7 +4,7 @@ from pyrogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineK
ReplyKeyboardRemove
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'
HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器
[天赋/今日天赋] 查看今日天赋材料和角色

View File

@ -16,3 +16,4 @@ numpy
sqlitedict
openpyxl>=3.0.9
pydantic
genshin