Merge branch 'main' into nonebot-b1

This commit is contained in:
felinae98
2022-02-12 11:21:20 +08:00
52 changed files with 959 additions and 708 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
from typing import Union
from nonebot import on_request
from nonebot.log import logger
from nonebot.adapters.onebot.v11 import Bot
from nonebot.adapters.onebot.v11.event import GroupRequestEvent, FriendRequestEvent
from nonebot.adapters.onebot.v11.event import FriendRequestEvent, GroupRequestEvent
from nonebot.log import logger
friend_req = on_request(priority=5)
+5 -8
View File
@@ -1,18 +1,15 @@
import nonebot
from . import (
admin_page,
config,
config_manager,
platform,
post,
scheduler,
send,
types,
utils,
config,
platform,
scheduler,
admin_page,
config_manager,
)
__help__version__ = "0.4.3"
__help__plugin__name__ = "nonebot_bison"
__usage__ = "本bot可以提供b站、微博等社交媒体的消息订阅,详情" "请查看本bot文档,或者at本bot发送“添加订阅”订阅第一个帐号"
__module_name__ = "nonebot-bison"
+2 -2
View File
@@ -1,10 +1,10 @@
import nonebot
from nonebot.adapters.onebot.v11.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
from ..platform import check_sub_target, platform_manager
from ..config import Config, NoSuchUserException, NoSuchSubscribeException
async def test():
+1 -1
View File
@@ -1,6 +1,6 @@
import datetime
import random
import string
import datetime
from typing import Optional
import jwt
+4 -4
View File
@@ -1,16 +1,16 @@
from collections import defaultdict
import os
from os import path
from collections import defaultdict
from typing import Literal, Mapping, TypedDict, DefaultDict
from typing import DefaultDict, Literal, Mapping, TypedDict
import nonebot
from nonebot import logger
from tinydb import Query, TinyDB
from .utils import Singleton
from .types import User, Target
from .platform import platform_manager
from .plugin_config import plugin_config
from .types import Target, User
from .utils import Singleton
supported_target_type = platform_manager.keys()
+8 -8
View File
@@ -1,20 +1,20 @@
from typing import Type
from nonebot import on_command
from nonebot.rule import to_me
from nonebot.typing import T_State
from nonebot.matcher import Matcher
from nonebot.permission import SUPERUSER
from nonebot.params import State, Depends
from nonebot.adapters._event import Event as AbstractEvent
from nonebot.adapters.onebot.v11 import Bot, Event
from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters._event import Event as AbstractEvent
from nonebot.adapters.onebot.v11.permission import GROUP_ADMIN, GROUP_OWNER
from nonebot.matcher import Matcher
from nonebot.params import Depends, State
from nonebot.permission import SUPERUSER
from nonebot.rule import to_me
from nonebot.typing import T_State
from .config import Config
from .utils import parse_text
from .types import Target, Category
from .platform import check_sub_target, platform_manager
from .types import Category, Target
from .utils import parse_text
def _gen_prompt_template(prompt: str):
@@ -1,9 +1,9 @@
from pathlib import Path
from pkgutil import iter_modules
from collections import defaultdict
from importlib import import_module
from pathlib import Path
from pkgutil import iter_modules
from .platform import Platform, NoTargetGroup
from .platform import NoTargetGroup, Platform
_package_dir = str(Path(__file__).resolve().parent)
for (_, module_name, _) in iter_modules([_package_dir]):
@@ -4,8 +4,8 @@ from typing import Any, Optional
import httpx
from ..post import Post
from ..types import Tag, Target, RawPost, Category
from .platform import NewMessage, CategoryNotSupport
from ..types import Category, RawPost, Tag, Target
from .platform import CategoryNotSupport, NewMessage
class Bilibili(NewMessage):
@@ -3,8 +3,8 @@ from typing import Any, Optional
import httpx
from ..post import Post
from ..types import RawPost, Target
from .platform import NewMessage
from ..types import Target, RawPost
class NcmArtist(NewMessage):
@@ -3,8 +3,8 @@ from typing import Any, Optional
import httpx
from ..post import Post
from ..types import RawPost, Target
from .platform import NewMessage
from ..types import Target, RawPost
class NcmRadio(NewMessage):
@@ -1,15 +1,15 @@
import time
from dataclasses import dataclass
from abc import ABC, abstractmethod
from collections import defaultdict
from typing import Any, Literal, Optional, Collection
from dataclasses import dataclass
import time
from typing import Any, Collection, Literal, Optional
import httpx
from nonebot import logger
from ..post import Post
from ..plugin_config import plugin_config
from ..types import Tag, User, Target, RawPost, Category, UserSubInfo
from ..post import Post
from ..types import Category, RawPost, Tag, Target, User, UserSubInfo
class CategoryNotSupport(Exception):
+3 -3
View File
@@ -1,13 +1,13 @@
import calendar
from typing import Any, Optional
import httpx
import feedparser
from bs4 import BeautifulSoup as bs
import feedparser
import httpx
from ..post import Post
from ..types import RawPost, Target
from .platform import NewMessage
from ..types import Target, RawPost
class Rss(NewMessage):
+4 -5
View File
@@ -1,14 +1,13 @@
import re
import json
import hashlib
from datetime import datetime
import hashlib
import json
import re
from typing import Any, Optional
import httpx
from bs4 import BeautifulSoup as bs
import httpx
from ..types import *
from ..post import Post
# from .platform import Platform
+5 -5
View File
@@ -1,16 +1,16 @@
import base64
from io import BytesIO
from dataclasses import dataclass, field
from functools import reduce
from typing import Union, Optional
from dataclasses import field, dataclass
from io import BytesIO
from typing import Optional, Union
import httpx
from PIL import Image
import httpx
from nonebot import logger
from nonebot.adapters.onebot.v11.message import Message, MessageSegment
from .utils import parse_text
from .plugin_config import plugin_config
from .utils import parse_text
@dataclass
+5 -6
View File
@@ -1,16 +1,15 @@
import asyncio
import logging
import nonebot
from nonebot.log import LoguruHandler
from nonebot import logger, get_driver
from apscheduler.schedulers.asyncio import AsyncIOScheduler
import nonebot
from nonebot import get_driver, logger
from nonebot.log import LoguruHandler
from .config import Config
from .types import UserSubInfo
from .platform import platform_manager
from .plugin_config import plugin_config
from .send import send_msgs, do_send_msgs
from .send import do_send_msgs, send_msgs
from .types import UserSubInfo
scheduler = AsyncIOScheduler(timezone="Asia/Shanghai")
+1 -1
View File
@@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import Any, NewType, Callable, NamedTuple
from typing import Any, Callable, NamedTuple, NewType
RawPost = NewType("RawPost", Any)
Target = NewType("Target", str)
+39 -10
View File
@@ -1,19 +1,23 @@
import os
import re
import sys
import base64
import asyncio
import subprocess
import base64
from html import escape
import os
from pathlib import Path
import platform
import re
import subprocess
import sys
from time import asctime
from typing import Union, Callable, Optional, Awaitable
from typing import Awaitable, Callable, Optional, Union
import nonebot
from bs4 import BeautifulSoup as bs
from nonebot.log import logger, default_format
import nonebot
from nonebot.adapters.onebot.v11.message import MessageSegment
from nonebot.log import default_format, logger
from playwright._impl._driver import compute_driver_executable
from playwright.async_api import Page, Browser, Playwright, async_playwright
from playwright.async_api import Browser, Page, Playwright, async_playwright
from uvicorn import config
from uvicorn.loops import asyncio as _asyncio
from .plugin_config import plugin_config
@@ -30,6 +34,16 @@ class Singleton(type):
@nonebot.get_driver().on_startup
def download_browser():
if not plugin_config.bison_browser and not plugin_config.bison_use_local:
system = platform.system()
if system == "Linux":
browser_path = Path.home() / ".cache" / "ms-playwright"
elif system == "Windows":
browser_path = Path.home() / "AppData" / "Local" / "ms-playwright"
else:
raise RuntimeError("platform not supported")
if browser_path.exists() and os.listdir(str(browser_path)):
logger.warning("Browser Exists, skip")
return
env = os.environ.copy()
driver_executable = compute_driver_executable()
env["PW_CLI_TARGET_LANG"] = "python"
@@ -219,4 +233,19 @@ if plugin_config.bison_filter_log:
if config.log_level is None
else config.log_level
)
logger.warning("test")
# monkey patch
def asyncio_setup():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
@property
def should_reload(self):
return False
if platform.system() == "Windows":
_asyncio.asyncio_setup = asyncio_setup
config.Config.should_reload = should_reload # type:ignore
logger.warning("检测到当前为 Windows 系统,已自动注入猴子补丁")