:recycles: 仿照 platform_manager 添加 site_manager

This commit is contained in:
2024-09-09 10:04:19 +08:00
parent 4db7e7b911
commit f959e3ee08
7 changed files with 58 additions and 45 deletions
+9 -9
View File
@@ -1,25 +1,25 @@
import difflib
import re
import sys
import difflib
import nonebot
from nonebot.plugin import require
from bs4 import BeautifulSoup as bs
from nonebot.log import logger, default_format
from nonebot.plugin import require
from nonebot_plugin_saa import Text, Image, MessageSegmentFactory
from .site import Site as Site
from ..plugin_config import plugin_config
from .image import pic_merge as pic_merge
from .context import ProcessContext as ProcessContext
from .http import http_client as http_client
from .image import capture_html as capture_html
from .site import ClientManager as ClientManager
from .image import text_to_image as text_to_image
from .site import anonymous_site as anonymous_site
from .context import ProcessContext as ProcessContext
from .image import is_pics_mergable as is_pics_mergable
from .image import pic_merge as pic_merge
from .image import pic_url_to_image as pic_url_to_image
from .image import text_to_image as text_to_image
from .site import ClientManager as ClientManager
from .site import DefaultClientManager as DefaultClientManager
from .site import Site as Site
from .site import anonymous_site as anonymous_site
from ..plugin_config import plugin_config
class Singleton(type):
+5 -2
View File
@@ -7,8 +7,9 @@ from datetime import datetime, timedelta
import httpx
from httpx import AsyncClient
from nonebot.log import logger
from sqlalchemy.testing.suite.test_reflection import metadata
from ..types import Target
from ..types import Target, RegistryMeta
from ..config import config
from .http import http_client
from ..config.db_model import Cookie
@@ -163,12 +164,14 @@ def create_cookie_client_manager(platform_name: str):
class Site:
class Site(metaclass=RegistryMeta,base=True):
schedule_type: Literal["date", "interval", "cron"]
schedule_setting: dict
name: str
client_mgr: type[ClientManager] = DefaultClientManager
require_browser: bool = False
registry: list[type["Site"]]
def __str__(self):
return f"[{self.name}]-{self.name}-{self.schedule_setting}"