🎨 格式化代码导入

This commit is contained in:
Chenric 2024-08-01 13:28:38 +08:00
parent d73f8afb0d
commit 84d4096af1
7 changed files with 45 additions and 47 deletions

View File

@ -11,10 +11,12 @@
"dialectlist", "dialectlist",
"displayname", "displayname",
"htmlrender", "htmlrender",
"localstore",
"parameterless", "parameterless",
"pyecharts", "pyecharts",
"pygal", "pygal",
"sqlalchemy", "sqlalchemy",
"timecost",
"userinfo", "userinfo",
"whereclause", "whereclause",
"xaxis", "xaxis",

View File

@ -19,30 +19,22 @@ from arclet.alconna import ArparmaBehavior
from arclet.alconna.arparma import Arparma from arclet.alconna.arparma import Arparma
from nonebot.log import logger from nonebot.log import logger
from nonebot.params import Arg, Depends
from nonebot.typing import T_State from nonebot.typing import T_State
from nonebot.compat import model_dump from nonebot.compat import model_dump
from nonebot.adapters import Bot, Event, Message
from nonebot.params import Arg, Depends from nonebot.params import Arg, Depends
from nonebot.adapters import Bot, Event
from nonebot.permission import SUPERUSER from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata, inherit_supported_adapters from nonebot.plugin import PluginMetadata, inherit_supported_adapters
from nonebot.typing import T_State
from nonebot_plugin_alconna import ( from nonebot_plugin_alconna import (
Alconna,
AlconnaMatch,
AlconnaMatcher,
AlconnaQuery,
Option,
Args, Args,
Match,
Option, Option,
Query, Alconna,
image_fetch,
on_alconna, on_alconna,
) )
from nonebot_plugin_chatrecorder import get_message_records from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_userinfo import get_user_info from nonebot_plugin_userinfo import get_user_info
from nonebot_plugin_chatrecorder import get_message_records
from nonebot_plugin_session import Session, SessionIdType, extract_session from nonebot_plugin_session import Session, SessionIdType, extract_session
# from . import migrations #抄词云的部分代码,还不知道这有什么用 # from . import migrations #抄词云的部分代码,还不知道这有什么用
@ -58,10 +50,8 @@ from .model import UserRankInfo
from .utils import ( from .utils import (
got_rank, got_rank,
msg_counter, msg_counter,
persist_id2user_id,
user_id2persist_id,
group_id2persist_id,
get_rank_image, get_rank_image,
persist_id2user_id,
) )
__plugin_meta__ = PluginMetadata( __plugin_meta__ = PluginMetadata(
@ -300,16 +290,23 @@ async def handle_rank(
chatdatanum=rank2[i].user_bnum, chatdatanum=rank2[i].user_bnum,
) )
string += str_example string += str_example
msg = saa.Text(string) msg = saa.Text(string)
if plugin_config.visualization: if plugin_config.visualization:
image = await get_rank_image(rank2) image = await get_rank_image(rank2)
msg += saa.Image(image) msg += saa.Image(image)
if plugin_config.suffix: if plugin_config.suffix:
timecost = t.time() - state["t1"] timecost = t.time() - state["t1"]
suffix = saa.Text(plugin_config.string_suffix.format(timecost=timecost)) suffix = saa.Text(plugin_config.string_suffix.format(timecost=timecost))
msg += suffix msg += suffix
await msg.finish(reply=True) await msg.finish(reply=True)
@scheduler.scheduled_job(
"dialectlist", day="*/2", id="xxx", args=[1], kwargs={"arg2": 2}
)
async def __():
pass

View File

@ -1,19 +1,20 @@
from typing import Optional, Literal, List
from nonebot import get_driver, get_plugin_config
from pydantic import BaseModel from pydantic import BaseModel
from typing import Optional, List
from nonebot import get_driver, get_plugin_config
class ScopedConfig(BaseModel): class ScopedConfig(BaseModel):
font: str = "SimHei" # 字体格式
get_num: int = 5 # 获取人数数量 get_num: int = 5 # 获取人数数量
timezone: Optional[str] = "Asia/Shanghai" font: str = "SimHei" # 字体格式
excluded_self: bool = True
string_format: str = "{index}名:\n{nickname},{chatdatanum}条消息\n" # 消息格式
template_path: str = "./template/rank_template.j2" # 模板路径
visualization: bool = True # 是否可视化
excluded_people: List[str] = [] # 排除的人的QQ号
suffix: bool = False # 是否显示后缀 suffix: bool = False # 是否显示后缀
excluded_self: bool = True
visualization: bool = True # 是否可视化
counting_cache: bool = True
excluded_people: List[str] = [] # 排除的人的QQ号
timezone: Optional[str] = "Asia/Shanghai"
string_suffix: str = "统计花费时间:{timecost}" # 消息格式后缀 string_suffix: str = "统计花费时间:{timecost}" # 消息格式后缀
template_path: str = "./template/rank_template.j2" # 模板路径
string_format: str = "{index}名:\n{nickname},{chatdatanum}条消息\n" # 消息格式
class Config(BaseModel): class Config(BaseModel):

View File

@ -1,6 +1,6 @@
from typing import Optional, Literal, List, Union from typing import Union
from pydantic import BaseModel from nonebot_plugin_orm import Model
from nonebot_plugin_userinfo import get_user_info, UserInfo from nonebot_plugin_userinfo import UserInfo
class UserRankInfo(UserInfo): class UserRankInfo(UserInfo):
@ -9,3 +9,7 @@ class UserRankInfo(UserInfo):
user_nickname: str user_nickname: str
user_index: Union[int, str] user_index: Union[int, str]
user_avatar_bytes: bytes user_avatar_bytes: bytes
class MsgData(Model):
__table_args__ = {"extend_existing": True}

View File

@ -1 +1,2 @@
# TODO 使用计数缓存进行数据库查询优化,避免一次性查询过多消息导致内存爆炸。 # TODO 使用计数缓存进行数据库查询优化,避免一次性查询过多消息导致内存爆炸。
from nonebot_plugin_orm import Model

View File

@ -1,16 +1,15 @@
# TODO 时间处理模块,用于处理时间相关操作。 # TODO 时间处理模块,用于处理时间相关操作。
from datetime import datetime, time, tzinfo
from typing import Optional, Union
from zoneinfo import ZoneInfo from zoneinfo import ZoneInfo
from typing import Optional, Union
from datetime import datetime, time, tzinfo
from nonebot.typing import T_State
from nonebot.params import Arg from nonebot.params import Arg
from nonebot.typing import T_State
from nonebot.adapters import Message from nonebot.adapters import Message
from nonebot_plugin_apscheduler import scheduler from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_alconna import AlconnaMatcher from nonebot_plugin_alconna import AlconnaMatcher
from .config import plugin_config from .config import plugin_config

View File

@ -1,30 +1,24 @@
import os import os
import unicodedata import unicodedata
from typing import Optional, Dict, List, Union from typing import Dict, List
from pathlib import Path
from sqlalchemy import or_, select from sqlalchemy import or_, select
from sqlalchemy.sql import ColumnElement from sqlalchemy.sql import ColumnElement
from nonebot.log import logger from nonebot.log import logger
from nonebot.params import Arg, Depends from nonebot.params import Depends
from nonebot.typing import T_State
from nonebot.matcher import Matcher from nonebot.matcher import Matcher
from nonebot.adapters import Message
from nonebot_plugin_orm import get_session from nonebot_plugin_orm import get_session
from nonebot_plugin_session import Session, SessionLevel, extract_session from nonebot_plugin_session import Session, SessionLevel, extract_session
from nonebot_plugin_session_orm import SessionModel
from nonebot_plugin_userinfo import EventUserInfo, UserInfo
from nonebot_plugin_htmlrender import html_to_pic, template_to_pic
from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_chatrecorder import MessageRecord
from nonebot_plugin_localstore import get_cache_dir from nonebot_plugin_localstore import get_cache_dir
from nonebot_plugin_alconna import AlconnaMatcher from nonebot_plugin_htmlrender import template_to_pic
from nonebot_plugin_session_orm import SessionModel
from nonebot_plugin_chatrecorder import MessageRecord
from .config import plugin_config
from .model import UserRankInfo from .model import UserRankInfo
from .config import plugin_config
cache_path = get_cache_dir("nonebot_plugin_dialectlist") cache_path = get_cache_dir("nonebot_plugin_dialectlist")