You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
from nonebot import require
|
|
from nonebot.adapters.cqhttp import Message
|
|
from asyncio import sleep
|
|
from pandas import DataFrame
|
|
|
|
from .config import Config
|
|
|
|
mysql = require("botdb").MySQLdbMethods()
|
|
config = Config()
|
|
|
|
|
|
class UserName:
|
|
def __init__(self, users: list):
|
|
self.users = users
|
|
self.reply = ""
|
|
self.sleep = 5
|
|
|
|
async def select_user(self):
|
|
await mysql.execute(f"select * from {config.user_table} where qq in({','.join(['%s'] * len(self.users))})",
|
|
self.users)
|
|
return mysql.form()
|
|
|
|
async def __aenter__(self):
|
|
self.all_user: DataFrame = await self.select_user()
|
|
return self
|
|
|
|
def load_text(self):
|
|
return Message(f"请稍等,预计需要{self.all_user.shape[0] * self.sleep}秒完成!")
|
|
|
|
async def reset_name(self, group_id: int, func):
|
|
for index, user in self.all_user.iterrows():
|
|
await sleep(self.sleep)
|
|
# print(f"{user['姓名']} {user['寝室']} {user['联系方式']}")
|
|
await func(group_id=group_id, user_id=user["QQ"], card=f"{user['姓名']} {user['寝室']} {user['联系方式']}")
|
|
self.reply = "重命名成功"
|
|
|
|
def text(self):
|
|
return Message(self.reply)
|
|
|
|
async def __aexit__(self, *args):
|
|
...
|