🐛 修复今日材料报错,优化import

This commit is contained in:
CMHopeSunshine 2022-11-05 17:57:21 +08:00
parent b9e6b07eda
commit b0c2576ffd
76 changed files with 295 additions and 209 deletions

View File

@ -2,7 +2,7 @@ from pathlib import Path
from nonebot import load_plugins, get_driver, logger, load_plugin
from typing import List
# from LittlePaimon.utils.migration import migrate_database
from LittlePaimon import database
from LittlePaimon.utils.tool import check_resource
DRIVER = get_driver()
@ -10,13 +10,13 @@ __version__ = '3.0.0rc2'
try:
SUPERUSERS: List[int] = [int(s) for s in DRIVER.config.superusers]
except KeyError:
except Exception:
SUPERUSERS = []
logger.warning('请在.env.prod文件中中配置超级用户SUPERUSERS')
try:
NICKNAME: str = list(DRIVER.config.nickname)[0]
except KeyError:
except Exception:
NICKNAME = '派蒙'
logo = """<g>
@ -30,18 +30,13 @@ logo = """<g>
@DRIVER.on_startup
async def startup():
from LittlePaimon.database import connect
logger.opt(colors=True).info(logo)
await connect()
await database.connect()
from LittlePaimon import web
# await migrate_database()
await check_resource()
@DRIVER.on_shutdown
async def shutdown():
from LittlePaimon.database import disconnect
await disconnect()
DRIVER.on_shutdown(database.disconnect)
load_plugins(str(Path(__file__).parent / 'plugins'))

View File

@ -1,4 +1,3 @@
from .path import *
from .config.manage import ConfigManager, ConfigModel
from .plugin.manage import PluginManager, HIDDEN_PLUGINS, MatcherInfo, PluginInfo

View File

@ -1,5 +1,5 @@
from LittlePaimon.utils.files import load_yaml, save_yaml
from LittlePaimon.config.path import PAIMON_CONFIG
from LittlePaimon.utils.path import PAIMON_CONFIG
from .model import ConfigModel

View File

@ -10,7 +10,7 @@ from nonebot.message import run_preprocessor
from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent, GroupMessageEvent
from LittlePaimon import DRIVER, SUPERUSERS
from LittlePaimon.utils import logger
from LittlePaimon.config.path import PLUGIN_CONFIG
from LittlePaimon.utils.path import PLUGIN_CONFIG
from LittlePaimon.utils.files import load_yaml, save_yaml
from LittlePaimon.database.models import PluginPermission, PluginStatistics
from .model import MatcherInfo, PluginInfo

View File

@ -4,7 +4,7 @@ from pathlib import Path
from tortoise import Tortoise
from nonebot.log import logger
from LittlePaimon.utils import scheduler
from LittlePaimon.config.path import GENSHIN_DB_PATH, SUB_DB_PATH, GENSHIN_VOICE_DB_PATH, MANAGER_DB_PATH, \
from LittlePaimon.utils.path import GENSHIN_DB_PATH, SUB_DB_PATH, GENSHIN_VOICE_DB_PATH, MANAGER_DB_PATH, \
LEARNING_CHAT_DB_PATH, YSC_TEMP_IMG_PATH
from .models import *

View File

@ -5,7 +5,7 @@ from typing import Optional, Dict, Iterator
from tortoise import fields
from tortoise.models import Model
from LittlePaimon.config import JSON_DATA
from LittlePaimon.utils.path import JSON_DATA
from LittlePaimon.utils.alias import get_name_by_id
from LittlePaimon.utils.files import load_json
from LittlePaimon.utils.typing import *

View File

@ -6,7 +6,7 @@ from pathlib import Path
from typing import Optional
from dateutil.relativedelta import relativedelta
from LittlePaimon.utils import aiorequests
from LittlePaimon.utils.requests import aiorequests
res = Path(__file__).parent / 'template'
# type 0 普通常驻任务深渊 1 新闻 2 蛋池 3 限时活动H5

View File

@ -2,16 +2,16 @@ import random
from typing import Union
from nonebot import on_command
from nonebot.adapters.onebot.v11.exception import ActionFailed
from nonebot.adapters.onebot.v11 import Message, MessageEvent, GroupMessageEvent, PrivateMessageEvent
from nonebot.adapters.onebot.v11.exception import ActionFailed
from nonebot.params import CommandArg
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
from LittlePaimon.config import config
from LittlePaimon.utils.message import CommandCharacter, CommandLang, MessageBuild
from LittlePaimon.utils.alias import get_match_alias
from LittlePaimon.database import GenshinVoice
from LittlePaimon.utils.alias import get_match_alias
from LittlePaimon.utils.message import CommandCharacter, CommandLang, MessageBuild
from .handler import GuessVoice, get_character_voice, get_rank, get_voice_list
from .resources import update_voice_resources

View File

@ -1,10 +1,11 @@
import asyncio
from typing import List
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.database import GenshinVoice
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
async def draw_table_line(img: PMImage, voice_id: int, voice_name: str, voice_content: str, i: int):

View File

@ -5,8 +5,8 @@ from typing import Dict, Optional
from lxml import etree
from LittlePaimon.database import GenshinVoice
from LittlePaimon.utils import aiorequests
from LittlePaimon.utils import logger
from LittlePaimon.utils.requests import aiorequests
async def get_character_list() -> Optional[Dict[str, int]]:

View File

@ -1,5 +1,5 @@
from typing import Dict, Union
from LittlePaimon.config import GREET_CONFIG, GREET_CONFIG_DEFAULT
from LittlePaimon.utils.path import GREET_CONFIG, GREET_CONFIG_DEFAULT
from LittlePaimon.utils.files import load_yaml, save_yaml

View File

@ -1,15 +1,16 @@
import datetime
from typing import Dict, Any, Tuple
from collections import defaultdict
from typing import Dict, Any, Tuple
import pytz
from nonebot import get_bot
from LittlePaimon.database import AbyssInfo
from LittlePaimon.utils import aiorequests
from LittlePaimon.utils.files import load_image
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.image import PMImage, font_manager as fm, get_qq_avatar
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.requests import aiorequests
async def get_user_avatar(user_id: str, size: Tuple[int, int] = (60, 60)):

View File

@ -1,11 +1,11 @@
import asyncio
import datetime
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.database import AbyssInfo
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
def datetime_to_cn(time: datetime.datetime) -> str:

View File

@ -1,6 +1,7 @@
from typing import List, Tuple
from pydantic import parse_obj_as
from LittlePaimon.utils.requests import aiorequests
from .models import TeamRateResult, TeamRate

View File

@ -2,11 +2,11 @@ import asyncio
from typing import List
from LittlePaimon.database import Character, LastQuery
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.alias import get_chara_icon
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from .api import get_team_rate
from .models import TeamRate

View File

@ -1,17 +1,17 @@
from typing import Union
from nonebot import on_command
from nonebot.rule import to_me
from nonebot.permission import SUPERUSER
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
from nonebot.rule import to_me
from LittlePaimon.database import MihoyoBBSSub, PrivateCookie
from LittlePaimon.utils import logger
from LittlePaimon.utils.message import CommandUID, CommandSwitch
from .coin_handle import mhy_bbs_coin, bbs_auto_coin
from .sign_handle import mhy_bbs_sign, bbs_auto_sign
from .draw import draw_result
from .sign_handle import mhy_bbs_sign, bbs_auto_sign
__plugin_meta__ = PluginMetadata(
name='米游社签到及获取',

View File

@ -6,9 +6,11 @@ from collections import defaultdict
from typing import Tuple
from nonebot import get_bot
from LittlePaimon.config import config
from LittlePaimon.database import PrivateCookie, MihoyoBBSSub, LastQuery
from LittlePaimon.utils import logger, aiorequests, scheduler
from LittlePaimon.utils import logger, scheduler
from LittlePaimon.utils.requests import aiorequests
from LittlePaimon.utils.api import random_text, random_hex, get_old_version_ds, get_ds
# 米游社的API列表

View File

@ -1,10 +1,11 @@
import math
from enum import IntEnum, auto
from collections import defaultdict
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.message import MessageBuild
from enum import IntEnum, auto
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
class SignResult(IntEnum):

View File

@ -3,14 +3,17 @@ import datetime
import json
import random
import time
from nonebot import get_bot
from collections import defaultdict
from typing import Tuple, Dict, Any, Optional, Union
from nonebot import get_bot
from LittlePaimon import DRIVER
from LittlePaimon.config import config
from LittlePaimon.database import MihoyoBBSSub, LastQuery, PrivateCookie
from LittlePaimon.utils import logger, scheduler, aiorequests
from LittlePaimon.utils import logger, scheduler
from LittlePaimon.utils.api import get_mihoyo_private_data, get_sign_reward_list, mihoyo_sign_headers, check_retcode
from LittlePaimon.utils.requests import aiorequests
from .draw import SignResult, draw_result
SIGN_ACTION_API = 'https://api-takumi.mihoyo.com/event/bbs_sign_reward/sign'

View File

@ -11,7 +11,8 @@ from nonebot.typing import T_State
from LittlePaimon import NICKNAME
from LittlePaimon.config import config
from LittlePaimon.database import LastQuery, PrivateCookie, PublicCookie, Character, PlayerInfo, DailyNoteSub, MihoyoBBSSub
from LittlePaimon.database import LastQuery, PrivateCookie, PublicCookie, Character, PlayerInfo, DailyNoteSub, \
MihoyoBBSSub
from LittlePaimon.utils import logger
from LittlePaimon.utils.api import get_bind_game_info, get_stoken_by_cookie
from LittlePaimon.utils.message import recall_message

View File

@ -1,13 +1,13 @@
import re
import uuid
from nonebot import on_command
from nonebot.params import CommandArg, ArgPlainText
from nonebot.adapters.onebot.v11 import MessageEvent, Message, GroupMessageEvent
from nonebot.params import CommandArg, ArgPlainText
from nonebot.plugin import PluginMetadata
from nonebot.typing import T_State
from LittlePaimon.database import CloudGenshinSub
from .handler import get_cloud_genshin_info
__plugin_meta__ = PluginMetadata(

View File

@ -1,4 +1,4 @@
from LittlePaimon.utils import aiorequests
from LittlePaimon.utils.requests import aiorequests
host = 'https://api-cloudgame.mihoyo.com/'

View File

@ -1,11 +1,11 @@
import datetime
import random
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils import load_image
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage
from LittlePaimon.utils.image import font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
async def draw_daily_note_card(data, uid):

View File

@ -6,8 +6,8 @@ import time
import pytz
from nonebot import get_bot
from nonebot.params import CommandArg, Depends
from nonebot.adapters.onebot.v11 import Message
from nonebot.params import CommandArg, Depends
from LittlePaimon.config import config
from LittlePaimon.database import DailyNoteSub, Player

View File

@ -4,9 +4,9 @@ from nonebot import on_command, on_regex
from nonebot.adapters.onebot.v11 import MessageEvent, Message, GroupMessageEvent
from nonebot.params import RegexDict, CommandArg
from nonebot.plugin import PluginMetadata
from LittlePaimon.config import config
from LittlePaimon.utils.tool import freq_limiter
from .data_handle import load_user_data
from .draw import draw_gacha_img

View File

@ -1,5 +1,5 @@
from LittlePaimon.config.path import GACHA_SIM
from LittlePaimon.utils import load_json, save_json
from LittlePaimon.utils.files import load_json, save_json
from LittlePaimon.utils.path import GACHA_SIM
def load_user_data(user_id: int) -> dict:

View File

@ -3,9 +3,9 @@ from io import BytesIO
from PIL import Image, ImageDraw
from LittlePaimon.config.path import GACHA_RES
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.image import font_manager
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import GACHA_RES
from .data_handle import load_json
from .data_source import get_once_data, get_gacha_data

View File

@ -1,4 +1,5 @@
from typing import Union
from nonebot import on_command
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent, PrivateMessageEvent
from nonebot.plugin import PluginMetadata

View File

@ -1,20 +1,22 @@
import asyncio
import time
from typing import Dict, Union, Tuple, Optional
from pathlib import Path
import datetime
import time
from pathlib import Path
from typing import Dict, Union, Tuple, Optional
from nonebot import on_notice
from nonebot.rule import Rule
from nonebot.adapters.onebot.v11 import GroupUploadNoticeEvent, NoticeEvent
from nonebot.rule import Rule
from LittlePaimon import __version__
from LittlePaimon.database import PlayerInfo
from LittlePaimon.config import GACHA_LOG
from LittlePaimon.utils import logger
from LittlePaimon.utils.requests import aiorequests
from LittlePaimon.utils.api import get_authkey_by_stoken
from LittlePaimon.utils import aiorequests, logger
from LittlePaimon.utils.files import load_json, save_json
from .models import GachaItem, GachaLogInfo, GACHA_TYPE_LIST
from LittlePaimon.utils.path import GACHA_LOG
from .draw import draw_gacha_log
from .models import GachaItem, GachaLogInfo, GACHA_TYPE_LIST
GACHA_LOG_API = 'https://hk4e-api.mihoyo.com/event/gacha_info/api/getGachaLog'
HEADERS: Dict[str, str] = {

View File

@ -4,10 +4,10 @@ import math
import random
from typing import Tuple, List, Optional
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.image import PMImage, get_qq_avatar, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from .models import GachaLogInfo, FiveStarItem, FourStarItem
avatar_point = [69, 156, 259, 358, 456, 558, 645, 746, 840, 945]

View File

@ -1,6 +1,8 @@
import datetime
from typing import List, Dict, Tuple, Optional
from pydantic import BaseModel
from LittlePaimon.utils.alias import get_chara_icon, get_weapon_icon
GACHA_TYPE_LIST = {'100': '新手祈愿', '200': '常驻祈愿', '302': '武器祈愿', '301': '角色祈愿', '400': '角色祈愿'}

View File

@ -8,8 +8,8 @@ from nonebot.typing import T_State
from LittlePaimon import NICKNAME
from LittlePaimon.database import PlayerAlias
from LittlePaimon.config import YSC_TEMP_IMG_PATH
from LittlePaimon.utils import logger
from LittlePaimon.utils.path import YSC_TEMP_IMG_PATH
from LittlePaimon.utils.message import CommandPlayer, CommandCharacter, CommandUID
from LittlePaimon.utils.genshin import GenshinInfoManager
from LittlePaimon.utils.tool import freq_limiter

View File

@ -1,7 +1,7 @@
import random
from typing import Tuple, Dict, Optional, List, Union
from LittlePaimon.config.path import JSON_DATA
from LittlePaimon.utils.path import JSON_DATA
from LittlePaimon.utils.files import load_json
from LittlePaimon.utils.genshin import GenshinTools
from LittlePaimon.utils.image import PMImage, font_manager

View File

@ -3,13 +3,13 @@ import datetime
import math
from typing import List
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.database import Character, PlayerInfo, Player
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.alias import get_chara_icon
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.genshin import GenshinTools
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from .draw_player_card import get_avatar, draw_weapon_icon
RESOURCES = RESOURCE_BASE_PATH / 'chara_bag'

View File

@ -1,12 +1,12 @@
import math
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.database import Character
from LittlePaimon.utils import aiorequests
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.genshin import GenshinTools
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.requests import aiorequests
ICON = RESOURCE_BASE_PATH / 'icon'
ARTIFACT_ICON = RESOURCE_BASE_PATH / 'artifact'

View File

@ -1,12 +1,12 @@
from nonebot import logger
from LittlePaimon.config.path import ENKA_RES, RESOURCE_BASE_PATH
from LittlePaimon.utils import load_image
from LittlePaimon.database import Character
from LittlePaimon.utils.alias import get_chara_icon
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.genshin import GenshinTools
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.alias import get_chara_icon
from LittlePaimon.database import Character
from LittlePaimon.utils.path import ENKA_RES, RESOURCE_BASE_PATH
from .damage_cal import get_role_dmg
# weapon_url = 'https://upload-bbs.mihoyo.com/game_record/genshin/equip/{}.png'

View File

@ -1,12 +1,12 @@
import asyncio
from typing import List, Tuple, Optional
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.database import PlayerInfo, Character, PlayerWorldInfo, Weapon, Player
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.alias import get_chara_icon
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, get_qq_avatar, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
RESOURCES = RESOURCE_BASE_PATH / 'player_card'
ICON = RESOURCE_BASE_PATH / 'icon'

View File

@ -1,9 +1,9 @@
import random
from LittlePaimon.config.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
RES = RESOURCE_BASE_PATH / 'monthinfo'

View File

@ -1,6 +1,6 @@
from LittlePaimon.database import Player
from LittlePaimon.utils.api import get_mihoyo_private_data
from LittlePaimon.utils import logger
from LittlePaimon.utils.api import get_mihoyo_private_data
from .draw import draw_monthinfo_card

View File

@ -1,23 +1,22 @@
import time
import datetime
from nonebot import on_regex, on_command
from nonebot.adapters.onebot.v11 import MessageEvent, Message, MessageSegment, GroupMessageEvent
from nonebot.adapters.onebot.v11.helpers import HandleCancellation
from nonebot.adapters.onebot.v11.exception import ActionFailed
from nonebot.adapters.onebot.v11.helpers import HandleCancellation
from nonebot.params import RegexDict, ArgPlainText, CommandArg, Arg
from nonebot.plugin import PluginMetadata
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
from nonebot.typing import T_State
from LittlePaimon import NICKNAME
from LittlePaimon.utils.alias import get_match_alias
from LittlePaimon.utils.tool import freq_limiter
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.database import PlayerAlias
from LittlePaimon.config import RESOURCE_BASE_PATH
from .draw_map import init_map, draw_map, get_full_map
from LittlePaimon.utils.alias import get_match_alias
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.tool import freq_limiter
from .draw_daily_material import draw_material
from .draw_map import init_map, draw_map, get_full_map
__paimon_help__ = {
'type': '原神Wiki',
@ -44,12 +43,13 @@ __plugin_meta__ = PluginMetadata(
}
)
daily_material = on_regex(r'(?P<day>现在|(今|明|后)(天|日)|周(一|二|三|四|五|六|日))(天赋|角色|武器)?材料', priority=11, block=True, state={
daily_material = on_regex(r'^(?P<day>现在|(今|明|后)(天|日)|周(一|二|三|四|五|六|日))(天赋|角色|武器)?材料$',
priority=11, block=True, state={
'pm_name': '每日材料',
'pm_description': '查看某日开放材料刷取的角色和武器',
'pm_usage': '<今天|周几>材料',
'pm_priority': 8
})
})
material_map = on_command('材料图鉴', priority=11, block=True, state={
'pm_name': '材料图鉴',
'pm_description': '查看某个材料的介绍和采集点。',
@ -69,31 +69,27 @@ generate_map = on_command('生成地图', priority=1, block=True, permission=SUP
'pm_priority': 11
})
week_str = ['周一', '周二', '周三', '周四', '周五', '周六']
@daily_material.handle()
async def _(event: MessageEvent, regex_dict: dict = RegexDict()):
await daily_material.send('开始获取每日材料,请稍候...')
if regex_dict['day'] in ['今日', '今天', '现在']:
day = time.strftime("%w")
elif regex_dict['day'] in ['明日', '明天']:
day = str(int(time.strftime("%w")) + 1)
elif regex_dict['day'] in ['后日', '后天']:
day = str(int(time.strftime("%w")) + 2)
if regex_dict['day'] in {'今日', '今天', '现在'}:
day = datetime.datetime.now().weekday()
elif regex_dict['day'] in {'明日', '明天'}:
day = (datetime.datetime.now() + datetime.timedelta(days=1)).weekday()
elif regex_dict['day'] in {'后日', '后天'}:
day = (datetime.datetime.now() + datetime.timedelta(days=2)).weekday()
elif regex_dict['day'] == '周日':
await daily_material.finish('周日所有材料都可以刷哦!', at_sender=True)
elif regex_dict['day'].startswith(''):
await daily_material.send('开始获取每日材料,请稍候...')
await daily_material.finish(await draw_material(str(event.user_id), regex_dict['day']))
if day == '0':
if day == 6:
await daily_material.finish('周日所有材料都可以刷哦!', at_sender=True)
else:
await daily_material.finish(await draw_material(str(event.user_id), {
'1': '周一',
'2': '周二',
'3': '周三',
'4': '周四',
'5': '周五',
'6': '周六',
}[day]), at_sender=True)
await daily_material.send('开始获取每日材料,请稍候...')
await daily_material.finish(await draw_material(str(event.user_id), week_str[day]), at_sender=True)
@material_map.handle()
@ -119,7 +115,8 @@ async def _(event: MessageEvent, state: T_State, map_: str = ArgPlainText('map')
state['map'] = Message(map_)
@material_map.got('name', prompt='请输入要查询的材料名称,或回答【取消】退出', parameterless=[HandleCancellation(f'好吧,有需要再找{NICKNAME}')])
@material_map.got('name', prompt='请输入要查询的材料名称,或回答【取消】退出',
parameterless=[HandleCancellation(f'好吧,有需要再找{NICKNAME}')])
async def _(event: MessageEvent, map_: str = ArgPlainText('map'), name: str = ArgPlainText('name')):
if (file_path := RESOURCE_BASE_PATH / 'genshin_map' / 'results' / f'{map_}_{name}.png').exists():
await material_map.finish(MessageSegment.image(file_path), at_sender=True)
@ -245,12 +242,14 @@ def create_wiki_matcher(pattern: str, help_fun: str, help_name: str):
if choice not in match_alias:
state['times'] = state['times'] + 1 if 'times' in state else 1
if state['times'] == 1:
await maps.reject(f'请旅行者从上面的{state["type"]}中选一个问{NICKNAME}\n回答\"取消\"可以取消查询', at_sender=True)
await maps.reject(f'请旅行者从上面的{state["type"]}中选一个问{NICKNAME}\n回答\"取消\"可以取消查询',
at_sender=True)
elif state['times'] == 2:
await maps.reject(f'别调戏{NICKNAME}啦,快选一个吧,不想问了请回答\"取消\"', at_sender=True)
elif state['times'] >= 3:
await maps.finish(f'看来旅行者您有点神志不清哦(,下次再问{NICKNAME}{MessageSegment.face(146)}', at_sender=True)
await maps.finish(f'看来旅行者您有点神志不清哦(,下次再问{NICKNAME}{MessageSegment.face(146)}',
at_sender=True)
try:
await maps.finish(MessageSegment.image(state['img_url'].format(choice)))
except ActionFailed:

View File

@ -1,11 +1,13 @@
import math
from pathlib import Path
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils import aiorequests, scheduler
from LittlePaimon.database import Character, LastQuery
from LittlePaimon.utils import scheduler
from LittlePaimon.utils.files import save_json, load_json, load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.database import Character, LastQuery
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.requests import aiorequests
week_cn = {
'monday': '周一',

View File

@ -1,14 +1,16 @@
import math
from typing import List
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils import logger, aiorequests
from PIL import Image, ImageFile, ImageOps
from LittlePaimon.utils import logger
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from LittlePaimon.utils.requests import aiorequests
from .genshinmap import utils, models, request, img, XYPoint
from PIL import Image, ImageFile, ImageOps
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None

View File

@ -1,21 +1,55 @@
import asyncio
from nonebot import on_regex, on_command
from nonebot.adapters.onebot.v11 import Message, GroupMessageEvent, PrivateMessageEvent, MessageEvent
from nonebot.params import RegexDict, CommandArg
from nonebot.permission import SUPERUSER
from nonebot.adapters.onebot.v11 import Message, GroupMessageEvent, PrivateMessageEvent, MessageEvent
from nonebot.plugin import PluginMetadata
from nonebot.rule import Rule
from nonebot.typing import T_State
from LittlePaimon import SUPERUSERS
from LittlePaimon.config import ConfigManager, PluginManager
from LittlePaimon.database import PluginPermission
from LittlePaimon.utils import logger
from LittlePaimon.utils.message import CommandObjectID
from LittlePaimon.database import PluginPermission
from .draw_help import draw_help
manage_cmd = on_regex(r'^pm (?P<func>ban|unban) (?P<plugin>([\w ]*)|all|全部) ?(-g (?P<group>[\d ]*) ?)?(-u (?P<user>[\d ]*) ?)?(?P<reserve>-r)?', priority=1)
help_cmd = on_command('help', aliases={'帮助', '菜单', 'pm help'}, priority=1)
set_config_cmd = on_command('pm set', priority=1, permission=SUPERUSER)
__plugin_meta__ = PluginMetadata(
name="插件管理",
description="对派蒙插件进行管理",
usage='...',
extra={
'author': '惜月',
'priority': 99,
}
)
def fullmatch(msg: Message = CommandArg()) -> bool:
return not bool(msg)
manage_cmd = on_regex(
r'^pm (?P<func>ban|unban) (?P<plugin>([\w ]*)|all|全部) ?(-g (?P<group>[\d ]*) ?)?(-u (?P<user>[\d ]*) ?)?(?P<reserve>-r)?',
priority=1, state={
'pm_name': 'pm-ban|unban',
'pm_description': '禁用|取消禁用插件的群|用户使用权限',
'pm_usage': 'pm ban|unban <插件名>',
'pm_priority': 1
})
help_cmd = on_command('help', aliases={'帮助', '菜单', 'pm help'}, priority=1, rule=Rule(fullmatch), state={
'pm_name': 'pm-help',
'pm_description': '查看本帮助',
'pm_usage': 'help',
'pm_priority': 3
})
set_config_cmd = on_command('pm set', priority=1, permission=SUPERUSER, state={
'pm_name': 'pm-set',
'pm_description': '设置bot的配置项',
'pm_usage': 'pm set<配置名> <值>',
'pm_priority': 2
})
cache_help = {}
@ -31,7 +65,8 @@ async def _(event: GroupMessageEvent, state: T_State, match: dict = RegexDict(),
for plugin in match['plugin'].strip().split(' '):
if plugin in PluginManager.plugins.keys() or plugin in ['all', '全部']:
state['plugin'].append(plugin)
elif module_name := list(filter(lambda x: PluginManager.plugins[x].name == plugin, PluginManager.plugins.keys())):
elif module_name := list(
filter(lambda x: PluginManager.plugins[x].name == plugin, PluginManager.plugins.keys())):
state['plugin'].append(module_name[0])
else:
state['plugin_no_exist'].append(plugin)
@ -53,7 +88,8 @@ async def _(event: PrivateMessageEvent, state: T_State, match: dict = RegexDict(
for plugin in match['plugin'].strip().split(' '):
if plugin in PluginManager.plugins.keys() or plugin in ['all', '全部']:
state['plugin'].append(plugin)
elif module_name := list(filter(lambda x: PluginManager.plugins[x].name == plugin, PluginManager.plugins.keys())):
elif module_name := list(
filter(lambda x: PluginManager.plugins[x].name == plugin, PluginManager.plugins.keys())):
state['plugin'].append(module_name[0])
else:
state['plugin_no_exist'].append(plugin)
@ -75,31 +111,42 @@ async def _(state: T_State):
if 'all' in state['plugin']:
await PluginPermission.filter(session_id=group_id, session_type='group').update(status=state['bool'])
else:
await asyncio.gather(*[PluginPermission.filter(name=plugin, session_id=group_id, session_type='group').update(status=state['bool']) for plugin in state['plugin']])
logger.info('插件管理器', f'{"<g>启用</g>" if state["bool"] else "<r>禁用</r>"}群<m>{" ".join(map(str, state["group"]))}</m>的插件<m>{" ".join(state["plugin"])}</m>使用权限')
await manage_cmd.finish(f'{"启用" if state["bool"] else "禁用"}{" ".join(map(str, state["group"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
await asyncio.gather(*[
PluginPermission.filter(name=plugin, session_id=group_id, session_type='group').update(
status=state['bool']) for plugin in state['plugin']])
logger.info('插件管理器',
f'{"<g>启用</g>" if state["bool"] else "<r>禁用</r>"}群<m>{" ".join(map(str, state["group"]))}</m>的插件<m>{" ".join(state["plugin"])}</m>使用权限')
await manage_cmd.finish(
f'{"启用" if state["bool"] else "禁用"}{" ".join(map(str, state["group"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
elif state['user'] and not state['group']:
for user_id in state['user']:
if 'all' in state['plugin']:
await PluginPermission.filter(session_id=user_id, session_type='user').update(status=state['bool'])
else:
await asyncio.gather(*[PluginPermission.filter(name=plugin, session_id=user_id, session_type='user').update(status=state['bool']) for plugin in state['plugin']])
await asyncio.gather(*[
PluginPermission.filter(name=plugin, session_id=user_id, session_type='user').update(
status=state['bool']) for plugin in state['plugin']])
logger.info('插件管理器',
f'{"<g>启用</g>" if state["bool"] else "<r>禁用</r>"}用户<m>{" ".join(map(str, state["user"]))}</m>的插件<m>{" ".join(state["plugin"])}</m>使用权限')
await manage_cmd.finish(f'{"启用" if state["bool"] else "禁用"}用户{" ".join(map(str, state["user"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
await manage_cmd.finish(
f'{"启用" if state["bool"] else "禁用"}用户{" ".join(map(str, state["user"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
else:
for group_id in state['group']:
if 'all' in state['plugin']:
plugin_list = await PluginPermission.filter(session_id=group_id, session_type='group').all()
else:
plugin_list = list(await asyncio.gather(*[PluginPermission.get_or_none(name=p, session_id=group_id, session_type='group') for p in state['plugin']]))
plugin_list = list(await asyncio.gather(
*[PluginPermission.get_or_none(name=p, session_id=group_id, session_type='group') for p in
state['plugin']]))
for plugin in plugin_list:
if plugin is not None:
plugin.ban = list(set(plugin.ban) - set(state['user'])) if state['bool'] else list(set(plugin.ban) | set(state['user']))
plugin.ban = list(set(plugin.ban) - set(state['user'])) if state['bool'] else list(
set(plugin.ban) | set(state['user']))
await plugin.save()
logger.info('插件管理器',
f'{"<g>启用</g>" if state["bool"] else "<r>禁用</r>"}群<m>{" ".join(map(str, state["group"]))}</m>中用户<m>{" ".join(map(str, state["user"]))}</m>的插件<m>{" ".join(state["plugin"])}</m>使用权限')
await manage_cmd.finish(f'{"启用" if state["bool"] else "禁用"}{" ".join(map(str, state["group"]))}中用户{" ".join(map(str, state["user"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
await manage_cmd.finish(
f'{"启用" if state["bool"] else "禁用"}{" ".join(map(str, state["group"]))}中用户{" ".join(map(str, state["user"]))}的插件{" ".join(state["plugin"])}使用权限{extra_msg}')
@help_cmd.handle()
@ -107,7 +154,9 @@ async def _(event: MessageEvent, session_id: int = CommandObjectID()):
if session_id in cache_help:
await help_cmd.finish(cache_help[session_id])
else:
plugin_list = await PluginManager.get_plugin_list(event.message_type, event.user_id if isinstance(event, PrivateMessageEvent) else event.group_id if isinstance(event, GroupMessageEvent) else event.guild_id)
plugin_list = await PluginManager.get_plugin_list(event.message_type, event.user_id if isinstance(event,
PrivateMessageEvent) else event.group_id if isinstance(
event, GroupMessageEvent) else event.guild_id)
img = await draw_help(plugin_list)
cache_help[session_id] = img
await help_cmd.finish(img)
@ -121,4 +170,3 @@ async def _(event: MessageEvent, msg: Message = CommandArg()):
else:
result = ConfigManager.set_config(msg[0], msg[1])
await set_config_cmd.finish(result)

View File

@ -2,11 +2,11 @@ import math
from typing import List
from LittlePaimon import __version__
from LittlePaimon.config import RESOURCE_BASE_PATH
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.config import PluginInfo
from LittlePaimon.utils.files import load_image
from LittlePaimon.utils.image import PMImage, font_manager as fm
from LittlePaimon.utils.message import MessageBuild
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
async def draw_plugin_card(plugin: PluginInfo):

View File

@ -1,8 +1,9 @@
from nonebot import on_command
from nonebot.params import CommandArg
from nonebot.rule import Rule
from nonebot.adapters.onebot.v11 import Message, MessageEvent, MessageSegment
from nonebot.params import CommandArg
from nonebot.plugin import PluginMetadata
from nonebot.rule import Rule
from LittlePaimon import SUPERUSERS
from LittlePaimon.config import config
from LittlePaimon.utils.brower import screenshot

View File

@ -1,4 +1,2 @@
from .files import *
from .requests import aiorequests
from .logger import logger
from .scheduler import scheduler

View File

@ -2,7 +2,7 @@ import difflib
from typing import Union, Literal, List, Optional
from .files import load_json
from LittlePaimon.config import JSON_DATA
from .path import JSON_DATA
alias_file = load_json(JSON_DATA / 'alias.json')
info_file = load_json(JSON_DATA / 'genshin_info.json')

View File

@ -1,16 +1,16 @@
import hashlib
import json
import random
import re
import string
import time
import json
from typing import Optional, Literal, Union, Tuple
from LittlePaimon.utils import logger
from nonebot import logger as nb_logger
from tortoise.queryset import Q
from LittlePaimon.database import PublicCookie, PrivateCookie, CookieCache
from LittlePaimon.utils import logger
from .requests import aiorequests
# MIHOYO_API = 'https://api-takumi-record.mihoyo.com/'

View File

@ -1,7 +1,8 @@
from typing import Optional, Literal, Tuple, Union, List, AsyncGenerator, AsyncIterator
from playwright.async_api import Page, Browser, Playwright, async_playwright, Error
from contextlib import asynccontextmanager
from contextlib import suppress
from typing import Optional, Literal, Tuple, Union, List, AsyncGenerator, AsyncIterator
from playwright.async_api import Page, Browser, Playwright, async_playwright, Error
from LittlePaimon import DRIVER
from LittlePaimon.utils import logger

View File

@ -2,16 +2,25 @@ try:
import ujson as json
except ImportError:
import json
import hashlib
from pathlib import Path
from typing import Union, Optional, Tuple, Dict
from ssl import SSLCertVerificationError
from typing import Union, Optional, Tuple, Dict
import httpx
from PIL import Image
from .requests import aiorequests
import tqdm.asyncio
from PIL import Image
from ruamel import yaml
from LittlePaimon.utils.path import RESOURCE_BASE_PATH
from .requests import aiorequests
# 删除从安柏计划下载的问号图标
if (temp_path := RESOURCE_BASE_PATH / 'avatar' / 'UI_AvatarIcon_Wanderer.png').exists() and hashlib.md5(temp_path.read_bytes()).hexdigest() == 'a8827dfecb36640e59b319d1dd6190f4':
temp_path.unlink()
if (temp_path := RESOURCE_BASE_PATH / 'avatar' / 'UI_AvatarIcon_Faruzan.png').exists() and hashlib.md5(temp_path.read_bytes()).hexdigest() == 'a8827dfecb36640e59b319d1dd6190f4':
temp_path.unlink()
cache_image: Dict[str, any] = {}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}

View File

@ -3,7 +3,7 @@ from typing import Union
from nonebot.adapters.onebot.v11 import Message
from LittlePaimon.config import JSON_DATA
from .path import JSON_DATA
class DFAFilter:

View File

@ -4,15 +4,16 @@ from typing import Optional, List, Union, Tuple
import pytz
from LittlePaimon.config import JSON_DATA, config
from LittlePaimon.database import PlayerInfo, Character, LastQuery, PrivateCookie, AbyssInfo
from LittlePaimon.config import config
from LittlePaimon.database import Artifact, CharacterProperty, Artifacts, Talents, Talent
from LittlePaimon.utils import logger
from LittlePaimon.utils.files import load_json
from LittlePaimon.utils.api import get_enka_data, get_mihoyo_public_data, get_mihoyo_private_data
from LittlePaimon.utils.typing import DataSourceType
from LittlePaimon.utils.alias import get_name_by_id
from LittlePaimon.utils.typing import CHARACTERS
from LittlePaimon.database import PlayerInfo, Character, LastQuery, PrivateCookie, AbyssInfo
from .alias import get_name_by_id
from .api import get_enka_data, get_mihoyo_public_data, get_mihoyo_private_data
from .files import load_json
from .logger import logger
from .path import JSON_DATA
from .typing import CHARACTERS
from .typing import DataSourceType
ra_score = load_json(JSON_DATA / 'score.json')
talent_map = load_json(JSON_DATA / 'role_skill.json')

View File

@ -1,16 +1,14 @@
import contextlib
import hashlib
from io import BytesIO
from pathlib import Path
from typing import Tuple, Union, Literal, List
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont, ImageOps
from LittlePaimon.config import FONTS_PATH
from LittlePaimon.utils.requests import aiorequests
from nonebot.utils import run_sync
from .path import FONTS_PATH
from .requests import aiorequests
plt.switch_backend('agg')

View File

@ -1,6 +1,7 @@
from nonebot import logger as nb_logger
from typing import Dict
from nonebot import logger as nb_logger
class logger:
"""

View File

@ -14,11 +14,12 @@ from nonebot.typing import T_State
from LittlePaimon import NICKNAME
from LittlePaimon.database import LastQuery, PrivateCookie, Player, PlayerAlias
from LittlePaimon.utils import aiorequests, load_image
from LittlePaimon.utils.alias import get_match_alias
from LittlePaimon.utils.image import PMImage
from LittlePaimon.utils.filter import filter_msg
from LittlePaimon.utils.typing import CHARACTERS, MALE_CHARACTERS, FEMALE_CHARACTERS, GIRL_CHARACTERS, BOY_CHARACTERS, \
from .alias import get_match_alias
from .files import load_image
from .filter import filter_msg
from .image import PMImage
from .requests import aiorequests
from .typing import CHARACTERS, MALE_CHARACTERS, FEMALE_CHARACTERS, GIRL_CHARACTERS, BOY_CHARACTERS, \
LOLI_CHARACTERS

View File

@ -1,8 +1,9 @@
import datetime
import sqlite3
from pathlib import Path
import datetime
from LittlePaimon.utils import logger
from LittlePaimon.database import PublicCookie, PrivateCookie, LastQuery, DailyNoteSub, MihoyoBBSSub
from .logger import logger
async def migrate_database():

View File

@ -41,7 +41,7 @@ GACHA_LOG.mkdir(parents=True, exist_ok=True)
FONTS_PATH = Path() / 'resources' / 'fonts'
FONTS_PATH.mkdir(parents=True, exist_ok=True)
# JSON数据路径
JSON_DATA = Path(__file__).parent / 'data'
JSON_DATA = Path(__file__).parent.parent / 'config' / 'data'
# 插件管理器文件存放目录
PLUGIN_CONFIG = Path() / 'config' / 'plugins'
PLUGIN_CONFIG.mkdir(parents=True, exist_ok=True)

View File

@ -5,8 +5,8 @@ from ssl import SSLCertVerificationError
from typing import Dict, Optional, Any, Union, Tuple
import httpx
from PIL import Image
import tqdm.asyncio
from PIL import Image
from nonebot import logger
@ -97,6 +97,9 @@ class aiorequests:
params=params,
timeout=timeout,
**kwargs)
# 不保存安柏计划的问号图标
if resp.headers.get('etag') == 'W/"6363798a-13c7"':
save_path = False
resp = resp.read()
if b'NoSuchKey' in resp or b'character not exists' in resp:
return 'No Such File'
@ -108,6 +111,8 @@ class aiorequests:
params=params,
timeout=timeout,
**kwargs)
if resp.headers.get('etag') == 'W/"6363798a-13c7"':
save_path = False
resp = resp.read()
if b'error' in resp:
return 'No Such File'

View File

@ -1,9 +1,8 @@
import logging
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from nonebot import get_driver
from nonebot.log import LoguruHandler, logger
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from pydantic import Field, BaseSettings

View File

@ -1,5 +1,6 @@
import asyncio
import datetime
import psutil
from nonebot import get_bot

View File

@ -7,7 +7,8 @@ import time
from collections import defaultdict
from pathlib import Path
from LittlePaimon.utils import aiorequests, logger
from .logger import logger
from .requests import aiorequests
RESOURCE_BASE_PATH = Path() / 'resources' / 'LittlePaimon'

View File

@ -1,5 +1,7 @@
from typing import Literal, List
from pydantic import BaseModel, parse_raw_as
try:
import ujson as json
except ImportError:

View File

@ -1,10 +1,12 @@
import datetime
from pathlib import Path
import git
from nonebot.utils import run_sync
from git.exc import GitCommandError, InvalidGitRepositoryError
from nonebot.utils import run_sync
from LittlePaimon import __version__, NICKNAME
from LittlePaimon.utils import aiorequests
from .requests import aiorequests
async def check_update():

View File

@ -1,11 +1,12 @@
import nonebot
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from LittlePaimon import DRIVER
from LittlePaimon.utils import logger
from LittlePaimon.config import config
from .pages import admin_app, login_page, bind_cookie_page, blank_page
from LittlePaimon.utils import logger
from .api import BaseApiRouter
from .pages import admin_app, login_page, bind_cookie_page, blank_page
app: FastAPI = nonebot.get_app()
app.include_router(BaseApiRouter)

View File

@ -1,10 +1,12 @@
from fastapi import APIRouter
from .cookie import route as cookie_route
from .plugin import route as plugin_route
from .bot_info import route as bot_info_route
from .status import route as status_route
from .cookie import route as cookie_route
from .login import route as login_route
from .plugin import route as plugin_route
from .status import route as status_route
from .utils import authentication
# from .learning_chat import route as chat_route
BaseApiRouter = APIRouter(prefix='/LittlePaimon/api')

View File

@ -4,14 +4,15 @@ import os
import sys
from pathlib import Path
from fastapi.responses import JSONResponse
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from nonebot import get_bot
from nonebot.adapters.onebot.v11 import Bot
from LittlePaimon import SUPERUSERS
from LittlePaimon.utils.update import update
from LittlePaimon.utils.files import save_json
from LittlePaimon.utils.tool import cache
from LittlePaimon.utils.update import update
from .utils import authentication
route = APIRouter()

View File

@ -1,10 +1,11 @@
import datetime
from typing import Optional
from LittlePaimon.database import PublicCookie, PrivateCookie, LastQuery
from fastapi.responses import JSONResponse
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from pydantic import BaseModel
from LittlePaimon.database import PublicCookie, PrivateCookie, LastQuery
from LittlePaimon.utils.api import get_bind_game_info, get_stoken_by_cookie
from .utils import authentication

View File

@ -1,6 +1,7 @@
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from pydantic import BaseModel
from LittlePaimon import SUPERUSERS
from LittlePaimon.config import config
from .utils import create_token

View File

@ -1,11 +1,12 @@
import datetime
from pathlib import Path
from fastapi.responses import JSONResponse
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from LittlePaimon.config import ConfigManager, ConfigModel, PluginManager, PluginInfo
from LittlePaimon.database import PluginPermission
try:
from LittlePaimon.plugins.plugin_manager import cache_help
except Exception:

View File

@ -1,13 +1,10 @@
import asyncio
# from nonebot import logger
# from nonebot.log import default_filter, default_format
# from LittlePaimon import DRIVER
from LittlePaimon.utils.status import get_status
from fastapi.responses import JSONResponse
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from LittlePaimon.utils.status import get_status
from .utils import authentication
show_logs = []

View File

@ -3,6 +3,7 @@ from typing import Optional
from fastapi import Header, HTTPException, Depends
from jose import jwt
from LittlePaimon import SUPERUSERS
from LittlePaimon.config import config

View File

@ -1,3 +1,3 @@
from .main import admin_app, blank_page
from .login import login_page
from .bind_cookie import bind_cookie_page
from .login import login_page
from .main import admin_app, blank_page

View File

@ -1,6 +1,5 @@
from amis import AmisAPI, Collapse, Form, InputNumber, Textarea, Action, LevelEnum, Divider, Page, Html, Remark
from LittlePaimon import __version__
from amis import AmisAPI, Collapse, Form, InputNumber, Textarea, Action, LevelEnum, Divider, Page, Html
collapse_text = "<h2>重要提醒:</h2>Cookie的作用相当于账号密码非常重要如是非可信任的机器人请勿绑定<br><h2>获取方法:</h2>详见<a href='https://docs.qq.com/doc/DQ3JLWk1vQVllZ2Z1'>Cookie获取教程</a>"
api = AmisAPI(method='post', url='/LittlePaimon/api/bind_cookie')

View File

@ -1,4 +1,5 @@
from amis import Action, Divider, Form, InputText, LevelEnum, Page, PageSchema, Switch, Remark, InputNumber, InputTime, InputTimeRange, Alert, Editor, Tabs, TabsModeEnum, Select
from amis import Action, Divider, Form, InputText, LevelEnum, Page, PageSchema, Switch, Remark, InputNumber, InputTime, InputTimeRange, Alert, Editor, \
Select
action_button = [Action(label='保存', level=LevelEnum.success, type='submit'),
Action(label='重置', level=LevelEnum.warning, type='reset')]

View File

@ -1,5 +1,5 @@
from amis import Page, PageSchema, Html, Property, Service, Flex, ActionType, LevelEnum, Divider
from LittlePaimon import __version__
from amis import Page, PageSchema, Html, Property, Service, Flex, ActionType, LevelEnum, Divider
logo = Html(html=f'''
<p align="center">

View File

@ -1,10 +1,10 @@
from LittlePaimon import __version__
from amis import App, PageSchema, Tpl, Page, DropDownButton, ActionType, LevelEnum, Flex
from .public_cookie import page as public_cookie_page
from .private_cookie import page as private_cookie_page
from .plugin_manage import page as plugin_manage_page
from .home_page import page as home_page
from amis import App, PageSchema, Tpl, Page, Flex
from .config_manage import page as config_page
from .home_page import page as home_page
from .plugin_manage import page as plugin_manage_page
from .private_cookie import page as private_cookie_page
from .public_cookie import page as public_cookie_page
# from .learning_chat_manage import page as learning_chat_page