mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-05-09 18:27:56 +08:00
Merge branch 'main' into dev
This commit is contained in:
@@ -13,6 +13,11 @@ from .platform import platform_manager, check_sub_target
|
||||
from .utils import parse_text
|
||||
from .types import Target
|
||||
|
||||
def _gen_prompt_template(prompt: str):
|
||||
if hasattr(Message, 'template'):
|
||||
return Message.template(prompt)
|
||||
return prompt
|
||||
|
||||
common_platform = [p.platform_name for p in \
|
||||
filter(lambda platform: platform.enabled and platform.is_common,
|
||||
platform_manager.values())
|
||||
@@ -45,7 +50,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
else:
|
||||
await add_sub.reject('平台输入错误')
|
||||
|
||||
@add_sub.got('platform', '{_prompt}', parse_platform)
|
||||
@add_sub.got('platform', _gen_prompt_template('{_prompt}'), parse_platform)
|
||||
@add_sub.handle()
|
||||
async def init_id(bot: Bot, event: Event, state: T_State):
|
||||
if platform_manager[state['platform']].has_target:
|
||||
@@ -62,7 +67,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
state['id'] = target
|
||||
state['name'] = name
|
||||
|
||||
@add_sub.got('id', '{_prompt}', parse_id)
|
||||
@add_sub.got('id', _gen_prompt_template('{_prompt}'), parse_id)
|
||||
@add_sub.handle()
|
||||
async def init_cat(bot: Bot, event: Event, state: T_State):
|
||||
if not platform_manager[state['platform']].categories:
|
||||
@@ -79,7 +84,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
res.append(platform_manager[state['platform']].reverse_category[cat])
|
||||
state['cats'] = res
|
||||
|
||||
@add_sub.got('cats', '{_prompt}', parser_cats)
|
||||
@add_sub.got('cats', _gen_prompt_template('{_prompt}'), parser_cats)
|
||||
@add_sub.handle()
|
||||
async def init_tag(bot: Bot, event: Event, state: T_State):
|
||||
if not platform_manager[state['platform']].enable_tag:
|
||||
@@ -93,7 +98,7 @@ def do_add_sub(add_sub: Type[Matcher]):
|
||||
else:
|
||||
state['tags'] = str(event.get_message()).strip().split()
|
||||
|
||||
@add_sub.got('tags', '{_prompt}', parser_tags)
|
||||
@add_sub.got('tags', _gen_prompt_template('{_prompt}'), parser_tags)
|
||||
@add_sub.handle()
|
||||
async def add_sub_process(bot: Bot, event: Event, state: T_State):
|
||||
config = Config()
|
||||
|
||||
@@ -110,7 +110,10 @@ class Post:
|
||||
msgs = []
|
||||
text = ''
|
||||
if self.text:
|
||||
text += '{}'.format(self.text if len(self.text) < 500 else self.text[:500] + '...')
|
||||
if self._use_pic():
|
||||
text += '{}'.format(self.text)
|
||||
else:
|
||||
text += '{}'.format(self.text if len(self.text) < 500 else self.text[:500] + '...')
|
||||
text += '\n来源: {}'.format(self.target_type)
|
||||
if self.target_name:
|
||||
text += ' {}'.format(self.target_name)
|
||||
|
||||
@@ -22,11 +22,14 @@ async def do_send_msgs():
|
||||
bot, user, user_type, msg, retry_time = QUEUE.pop(0)
|
||||
try:
|
||||
await _do_send(bot, user, user_type, msg)
|
||||
except:
|
||||
except Exception as e:
|
||||
if retry_time > 0:
|
||||
QUEUE.insert(0, (bot, user, user_type, msg, retry_time - 1))
|
||||
else:
|
||||
logger.warning('send msg err {}'.format(msg))
|
||||
msg_str = str(msg)
|
||||
if len(msg_str) > 50:
|
||||
msg_str = msg_str[:50] + '...'
|
||||
logger.warning(f'send msg err {e} {msg_str}')
|
||||
LAST_SEND_TIME = time.time()
|
||||
|
||||
async def send_msgs(bot, user, user_type, msgs):
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import asyncio
|
||||
import base64
|
||||
from html import escape
|
||||
import os
|
||||
from time import asctime
|
||||
from typing import Awaitable, Callable, Optional
|
||||
from urllib.parse import quote
|
||||
from nonebot.adapters.cqhttp.message import MessageSegment
|
||||
|
||||
from nonebot.adapters.cqhttp.message import MessageSegment
|
||||
from nonebot.log import logger
|
||||
from pyppeteer import connect, launch
|
||||
from pyppeteer.browser import Browser
|
||||
from pyppeteer.chromium_downloader import check_chromium, download_chromium
|
||||
from pyppeteer.page import Page
|
||||
|
||||
from .plugin_config import plugin_config
|
||||
@@ -19,6 +21,10 @@ class Singleton(type):
|
||||
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
|
||||
return cls._instances[cls]
|
||||
|
||||
if not plugin_config.hk_reporter_browser and not plugin_config.hk_reporter_use_local \
|
||||
and not check_chromium():
|
||||
os.environ['PYPPETEER_DOWNLOAD_HOST'] = 'http://npm.taobao.org/mirrors'
|
||||
download_chromium()
|
||||
|
||||
class Render(metaclass=Singleton):
|
||||
|
||||
@@ -60,8 +66,7 @@ class Render(metaclass=Singleton):
|
||||
# self.lock.release()
|
||||
|
||||
def _inter_log(self, message: str) -> None:
|
||||
# self.interval_log += asctime() + '' + message + '\n'
|
||||
logger.debug(message)
|
||||
self.interval_log += asctime() + '' + message + '\n'
|
||||
|
||||
async def do_render(self, url: str, viewport: Optional[dict] = None, target: Optional[str] = None,
|
||||
operation: Optional[Callable[[Page], Awaitable[None]]] = None) -> Optional[bytes]:
|
||||
|
||||
Reference in New Issue
Block a user