mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-05-10 18:57:56 +08:00
update
This commit is contained in:
@@ -9,3 +9,8 @@ from . import platform
|
||||
from . import types
|
||||
from . import utils
|
||||
from . import admin_page
|
||||
|
||||
__help__version__ = '0.4.3'
|
||||
__help__plugin__name__ = 'nonebot_bison'
|
||||
__usage__ = ('本bot可以提供b站、微博等社交媒体的消息订阅,详情'
|
||||
'请查看本bot文档,或者at本bot发送“添加订阅”订阅第一个帐号')
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Union
|
||||
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from nonebot import get_driver, on_command
|
||||
import nonebot
|
||||
from nonebot.adapters.cqhttp.bot import Bot
|
||||
from nonebot.adapters.cqhttp.event import GroupMessageEvent, PrivateMessageEvent
|
||||
from nonebot.drivers.fastapi import Driver
|
||||
@@ -14,14 +12,20 @@ from nonebot.log import logger
|
||||
from nonebot.rule import to_me
|
||||
from nonebot.typing import T_State
|
||||
import socketio
|
||||
import functools
|
||||
|
||||
from starlette.requests import Request
|
||||
|
||||
from .api import del_group_sub, test, get_global_conf, auth, get_subs_info, get_target_name, add_group_sub, update_group_sub
|
||||
from .token_manager import token_manager as tm
|
||||
from .jwt import load_jwt
|
||||
from ..plugin_config import plugin_config
|
||||
from .api import (
|
||||
add_group_sub,
|
||||
auth,
|
||||
del_group_sub,
|
||||
get_global_conf,
|
||||
get_subs_info,
|
||||
get_target_name,
|
||||
test,
|
||||
update_group_sub,
|
||||
)
|
||||
from .jwt import load_jwt
|
||||
from .token_manager import token_manager as tm
|
||||
|
||||
URL_BASE = '/bison/'
|
||||
GLOBAL_CONF_URL = f'{URL_BASE}api/global_conf'
|
||||
@@ -122,9 +126,11 @@ if (STATIC_PATH / 'index.html').exists():
|
||||
|
||||
get_token = on_command('后台管理', rule=to_me(), priority=5)
|
||||
@get_token.handle()
|
||||
async def send_token(bot: "Bot", event: PrivateMessageEvent, state: T_State):
|
||||
driver = nonebot.get_driver()
|
||||
async def send_token(_: "Bot", event: PrivateMessageEvent, state: T_State):
|
||||
token = tm.get_user_token((event.get_user_id(), event.sender.nickname))
|
||||
await get_token.finish(f'请访问: {plugin_config.bison_outer_url}auth/{token}')
|
||||
get_token.__help__name__ = '获取后台管理地址'
|
||||
get_token.__help__info__ = ('获取管理bot后台的地址,该地址会'
|
||||
'在一段时间过后过期,请不要泄漏该地址')
|
||||
else:
|
||||
logger.warning("Frontend file not found, please compile it or use docker or pypi version")
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from ..platform import platform_manager, check_sub_target
|
||||
from .token_manager import token_manager
|
||||
from .jwt import pack_jwt
|
||||
from ..config import Config, NoSuchSubscribeException, NoSuchUserException
|
||||
import nonebot
|
||||
from nonebot.adapters.cqhttp.bot import Bot
|
||||
|
||||
from ..config import Config, NoSuchSubscribeException, NoSuchUserException
|
||||
from ..platform import check_sub_target, platform_manager
|
||||
from .jwt import pack_jwt
|
||||
from .token_manager import token_manager
|
||||
|
||||
async def test():
|
||||
return {"status": 200, "text": "test"}
|
||||
|
||||
@@ -88,7 +89,7 @@ async def get_target_name(platform_name: str, target: str, jwt_obj: dict):
|
||||
return {'targetName': await check_sub_target(platform_name, target)}
|
||||
|
||||
async def add_group_sub(group_number: str, platform_name: str, target: str,
|
||||
target_name: str, cats: list[str], tags: list[str]):
|
||||
target_name: str, cats: list[int], tags: list[str]):
|
||||
config = Config()
|
||||
config.add_subscribe(int(group_number), 'group', target, target_name, platform_name, cats, tags)
|
||||
return { 'status': 200, 'msg': '' }
|
||||
@@ -103,7 +104,7 @@ async def del_group_sub(group_number: str, platform_name: str, target: str):
|
||||
|
||||
|
||||
async def update_group_sub(group_number: str, platform_name: str, target: str,
|
||||
target_name: str, cats: list[str], tags: list[str]):
|
||||
target_name: str, cats: list[int], tags: list[str]):
|
||||
config = Config()
|
||||
try:
|
||||
config.update_subscribe(int(group_number), 'group',
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
from typing import Type
|
||||
|
||||
from nonebot import logger, on_command
|
||||
from nonebot.adapters._bot import Bot as AbstractBot
|
||||
from nonebot.adapters._event import Event as AbstractEvent
|
||||
from nonebot.adapters.cqhttp import Bot, Event, GroupMessageEvent
|
||||
from nonebot.adapters.cqhttp.message import Message
|
||||
from nonebot.adapters.cqhttp.permission import GROUP_ADMIN, GROUP_MEMBER, GROUP_OWNER
|
||||
from nonebot.matcher import Matcher
|
||||
from nonebot.permission import Permission, SUPERUSER
|
||||
from nonebot.rule import to_me
|
||||
from nonebot.typing import T_State
|
||||
from nonebot.matcher import Matcher
|
||||
|
||||
from .config import Config, NoSuchSubscribeException
|
||||
from .platform import platform_manager, check_sub_target
|
||||
from .utils import parse_text
|
||||
from .platform import check_sub_target, platform_manager
|
||||
from .types import Target
|
||||
from .utils import parse_text
|
||||
|
||||
def _gen_prompt_template(prompt: str):
|
||||
if hasattr(Message, 'template'):
|
||||
@@ -38,7 +41,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
for platform_name in common_platform]) + \
|
||||
'要查看全部平台请输入:“全部”'
|
||||
|
||||
async def parse_platform(bot: Bot, event: Event, state: T_State) -> None:
|
||||
async def parse_platform(bot: AbstractBot, event: AbstractEvent, state: T_State) -> None:
|
||||
platform = str(event.get_message()).strip()
|
||||
if platform == '全部':
|
||||
message = '全部平台\n' + \
|
||||
@@ -59,7 +62,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
state['id'] = 'default'
|
||||
state['name'] = await platform_manager[state['platform']].get_target_name(Target(''))
|
||||
|
||||
async def parse_id(bot: Bot, event: Event, state: T_State):
|
||||
async def parse_id(bot: AbstractBot, event: AbstractEvent, state: T_State):
|
||||
target = str(event.get_message()).strip()
|
||||
name = await check_sub_target(state['platform'], target)
|
||||
if not name:
|
||||
@@ -76,7 +79,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
state['_prompt'] = '请输入要订阅的类别,以空格分隔,支持的类别有:{}'.format(
|
||||
' '.join(list(platform_manager[state['platform']].categories.values())))
|
||||
|
||||
async def parser_cats(bot: Bot, event: Event, state: T_State):
|
||||
async def parser_cats(bot: AbstractBot, event: AbstractEvent, state: T_State):
|
||||
res = []
|
||||
for cat in str(event.get_message()).strip().split():
|
||||
if cat not in platform_manager[state['platform']].reverse_category:
|
||||
@@ -92,7 +95,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
return
|
||||
state['_prompt'] = '请输入要订阅的tag,订阅所有tag输入"全部标签"'
|
||||
|
||||
async def parser_tags(bot: Bot, event: Event, state: T_State):
|
||||
async def parser_tags(bot: AbstractBot, event: AbstractEvent, state: T_State):
|
||||
if str(event.get_message()).strip() == '全部标签':
|
||||
state['tags'] = []
|
||||
else:
|
||||
@@ -155,7 +158,7 @@ def do_del_sub(del_sub: Type[Matcher]):
|
||||
else:
|
||||
await del_sub.finish('删除成功')
|
||||
|
||||
async def parse_group_number(bot: Bot, event: Event, state: T_State):
|
||||
async def parse_group_number(bot: AbstractBot, event: AbstractEvent, state: T_State):
|
||||
state[state["_current_key"]] = int(str(event.get_message()))
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from abc import abstractmethod, ABC
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from functools import reduce
|
||||
import time
|
||||
from typing import Any, Collection, Optional, Literal
|
||||
|
||||
|
||||
Reference in New Issue
Block a user