mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2024-12-16 13:40:53 +08:00
🐛 修复今日材料
报错,优化import
This commit is contained in:
parent
b9e6b07eda
commit
b0c2576ffd
@ -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'))
|
||||
|
@ -1,4 +1,3 @@
|
||||
from .path import *
|
||||
from .config.manage import ConfigManager, ConfigModel
|
||||
from .plugin.manage import PluginManager, HIDDEN_PLUGINS, MatcherInfo, PluginInfo
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 *
|
||||
|
||||
|
@ -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 *
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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]]:
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)):
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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='米游社签到及获取',
|
||||
|
@ -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列表
|
||||
|
@ -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):
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
@ -1,4 +1,4 @@
|
||||
from LittlePaimon.utils import aiorequests
|
||||
from LittlePaimon.utils.requests import aiorequests
|
||||
|
||||
host = 'https://api-cloudgame.mihoyo.com/'
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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] = {
|
||||
|
@ -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]
|
||||
|
@ -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': '角色祈愿'}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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={
|
||||
'pm_name': '每日材料',
|
||||
'pm_description': '查看某日开放材料刷取的角色和武器',
|
||||
'pm_usage': '<今天|周几>材料',
|
||||
'pm_priority': 8
|
||||
})
|
||||
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:
|
||||
|
@ -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': '周一',
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,2 @@
|
||||
from .files import *
|
||||
from .requests import aiorequests
|
||||
from .logger import logger
|
||||
from .scheduler import scheduler
|
||||
|
@ -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')
|
||||
|
@ -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/'
|
||||
|
@ -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
|
||||
|
@ -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'}
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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')
|
||||
|
@ -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')
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
from nonebot import logger as nb_logger
|
||||
from typing import Dict
|
||||
|
||||
from nonebot import logger as nb_logger
|
||||
|
||||
|
||||
class logger:
|
||||
"""
|
||||
|
@ -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
|
||||
|
||||
|
||||
@ -97,9 +98,9 @@ class MessageBuild:
|
||||
def CommandPlayer(limit: int = 3, only_cn: bool = True) -> List[Player]:
|
||||
"""
|
||||
获取查询操作中的user_id、uid和图片,并将过滤uid后的msg存放到T_State中
|
||||
:param limit: 限制个数
|
||||
:param only_cn: 是否只接受国服uid
|
||||
:return: 查询对象列表
|
||||
:param limit: 限制个数
|
||||
:param only_cn: 是否只接受国服uid
|
||||
:return: 查询对象列表
|
||||
"""
|
||||
|
||||
async def _player(event: MessageEvent, matcher: Matcher, state: T_State, msg: Message = CommandArg()) -> List[
|
||||
|
@ -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():
|
||||
|
@ -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)
|
@ -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'
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
import asyncio
|
||||
import datetime
|
||||
|
||||
import psutil
|
||||
from nonebot import get_bot
|
||||
|
||||
|
@ -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'
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
from typing import Literal, List
|
||||
|
||||
from pydantic import BaseModel, parse_raw_as
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
except ImportError:
|
||||
|
@ -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():
|
||||
|
@ -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)
|
||||
|
@ -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')
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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 = []
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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')
|
||||
|
@ -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')]
|
||||
|
@ -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">
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user