✨ 提供新webui api (#1673)

This commit is contained in:
HibiKier
2024-10-03 23:56:17 +08:00
committed by GitHub
parent 42b6e94564
commit f08114f6c5
12 changed files with 368 additions and 67 deletions
+36 -20
View File
@@ -1,16 +1,21 @@
import uuid
from datetime import datetime
import nonebot
import ujson as json
from nonebot import require
from nonebot.drivers import Driver
from tortoise import Tortoise
from nonebot.adapters import Bot
from nonebot.drivers import Driver
from tortoise.exceptions import OperationalError
from zhenxun.models.goods_info import GoodsInfo
from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.models.sign_user import SignUser
from zhenxun.models.user_console import UserConsole
from zhenxun.services.log import logger
from zhenxun.models.sign_user import SignUser
from zhenxun.models.goods_info import GoodsInfo
from zhenxun.models.user_console import UserConsole
from zhenxun.utils.decorator.shop import shop_register
from zhenxun.models.bot_connect_log import BotConnectLog
from zhenxun.models.group_member_info import GroupInfoUser
require("nonebot_plugin_apscheduler")
require("nonebot_plugin_alconna")
@@ -19,16 +24,30 @@ require("nonebot_plugin_userinfo")
require("nonebot_plugin_htmlrender")
import nonebot
import ujson as json
driver: Driver = nonebot.get_driver()
@driver.on_bot_connect
async def _(bot: Bot):
logger.debug(f"Bot: {bot.self_id} 建立连接...")
await BotConnectLog.create(
bot_id=bot.self_id, platform=bot.adapter, connect_time=datetime.now(), type=1
)
@driver.on_bot_disconnect
async def _(bot: Bot):
logger.debug(f"Bot: {bot.self_id} 断开连接...")
await BotConnectLog.create(
bot_id=bot.self_id, platform=bot.adapter, connect_time=datetime.now(), type=0
)
SIGN_SQL = """
select distinct on("user_id") t1.user_id, t1.checkin_count, t1.add_probability, t1.specify_probability, t1.impression
select distinct on("user_id") t1.user_id, t1.checkin_count, t1.add_probability,
t1.specify_probability, t1.impression
from public.sign_group_users t1
join (
join (
select user_id, max(t2.impression) as max_impression
from public.sign_group_users t2
group by user_id
@@ -38,7 +57,7 @@ from public.sign_group_users t1
BAG_SQL = """
select t1.user_id, t1.gold, t1.property
from public.bag_users t1
join (
join (
select user_id, max(t2.gold) as max_gold
from public.bag_users t2
group by user_id
@@ -74,15 +93,12 @@ async def _():
}
create_list = []
sign_id_list = []
max_uid = 0
if user2uid:
max_uid = max(user2uid.values()) + 1
max_uid = max(user2uid.values()) + 1 if user2uid else 0
for old_sign in old_sign_list:
sign_id_list.append(old_sign["user_id"])
old_bag = [
if old_bag := [
b for b in old_bag_list if b["user_id"] == old_sign["user_id"]
]
if old_bag:
]:
old_bag = old_bag[0]
property = json.loads(old_bag["property"])
props = {}
@@ -115,9 +131,9 @@ async def _():
create_list.clear()
uc_dict = {u.user_id: u for u in await UserConsole.all()}
for old_sign in old_sign_list:
user_console = uc_dict.get(old_sign["user_id"])
if not user_console:
user_console = await UserConsole.get_user(old_sign["user_id"], "qq")
user_console = uc_dict.get(
old_sign["user_id"]
) or await UserConsole.get_user(old_sign["user_id"], "qq")
create_list.append(
SignUser(
user_id=old_sign["user_id"],