mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-06 20:06:12 +08:00
use auto import
This commit is contained in:
parent
b02c1e9437
commit
c06cf5d70a
@ -1,8 +1,17 @@
|
|||||||
from .bilibili import Bilibili
|
from .platform import PlatformProto
|
||||||
from .rss import Rss
|
from pkgutil import iter_modules
|
||||||
from .weibo import Weibo
|
from pathlib import Path
|
||||||
from .wechat import Wechat
|
from importlib import import_module
|
||||||
from .utils import check_sub_target, fetch_and_send
|
|
||||||
from .platform import PlatformNoTarget
|
|
||||||
from .utils import platform_manager
|
|
||||||
|
|
||||||
|
_package_dir = str(Path(__file__).resolve().parent)
|
||||||
|
for (_, module_name, _) in iter_modules([_package_dir]):
|
||||||
|
import_module(f'{__name__}.{module_name}')
|
||||||
|
|
||||||
|
|
||||||
|
async def check_sub_target(target_type, target):
|
||||||
|
return await platform_manager[target_type].get_account_name(target)
|
||||||
|
|
||||||
|
platform_manager: dict[str, PlatformProto] = {
|
||||||
|
obj.platform_name: obj() for obj in \
|
||||||
|
filter(lambda platform: platform.enabled, PlatformProto.registory)
|
||||||
|
}
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
import nonebot
|
|
||||||
from nonebot import logger
|
|
||||||
from collections import defaultdict
|
|
||||||
from typing import Type
|
|
||||||
from .platform import PlatformProto
|
|
||||||
from ..config import Config
|
|
||||||
from ..post import Post
|
|
||||||
from ..send import send_msgs
|
|
||||||
|
|
||||||
async def check_sub_target(target_type, target):
|
|
||||||
return await platform_manager[target_type].get_account_name(target)
|
|
||||||
|
|
||||||
platform_manager: dict[str, PlatformProto] = {
|
|
||||||
obj.platform_name: obj() for obj in \
|
|
||||||
filter(lambda platform: platform.enabled, PlatformProto.registory)
|
|
||||||
}
|
|
||||||
|
|
||||||
async def fetch_and_send(target_type: str):
|
|
||||||
config = Config()
|
|
||||||
target = config.get_next_target(target_type)
|
|
||||||
if not target:
|
|
||||||
return
|
|
||||||
logger.debug('try to fecth new posts from {}, target: {}'.format(target_type, target))
|
|
||||||
send_list = config.target_user_cache[target_type][target]
|
|
||||||
bot_list = list(nonebot.get_bots().values())
|
|
||||||
bot = bot_list[0] if bot_list else None
|
|
||||||
to_send = await platform_manager[target_type].fetch_new_post(target, send_list)
|
|
||||||
for user, send_list in to_send:
|
|
||||||
for send_post in send_list:
|
|
||||||
logger.info('send to {}: {}'.format(user, send_post))
|
|
||||||
if not bot:
|
|
||||||
logger.warning('no bot connected')
|
|
||||||
else:
|
|
||||||
send_msgs(bot, user.user, user.user_type, await send_post.generate_messages())
|
|
@ -1,6 +1,9 @@
|
|||||||
|
import nonebot
|
||||||
from nonebot import get_driver, logger
|
from nonebot import get_driver, logger
|
||||||
from .send import do_send_msgs
|
from .send import do_send_msgs
|
||||||
from .platform import fetch_and_send, platform_manager
|
from .platform import platform_manager
|
||||||
|
from .config import Config
|
||||||
|
from .send import send_msgs
|
||||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||||
|
|
||||||
scheduler = AsyncIOScheduler()
|
scheduler = AsyncIOScheduler()
|
||||||
@ -11,6 +14,24 @@ async def _start():
|
|||||||
|
|
||||||
get_driver().on_startup(_start)
|
get_driver().on_startup(_start)
|
||||||
|
|
||||||
|
async def fetch_and_send(target_type: str):
|
||||||
|
config = Config()
|
||||||
|
target = config.get_next_target(target_type)
|
||||||
|
if not target:
|
||||||
|
return
|
||||||
|
logger.debug('try to fecth new posts from {}, target: {}'.format(target_type, target))
|
||||||
|
send_list = config.target_user_cache[target_type][target]
|
||||||
|
bot_list = list(nonebot.get_bots().values())
|
||||||
|
bot = bot_list[0] if bot_list else None
|
||||||
|
to_send = await platform_manager[target_type].fetch_new_post(target, send_list)
|
||||||
|
for user, send_list in to_send:
|
||||||
|
for send_post in send_list:
|
||||||
|
logger.info('send to {}: {}'.format(user, send_post))
|
||||||
|
if not bot:
|
||||||
|
logger.warning('no bot connected')
|
||||||
|
else:
|
||||||
|
send_msgs(bot, user.user, user.user_type, await send_post.generate_messages())
|
||||||
|
|
||||||
for platform_name, platform in platform_manager.items():
|
for platform_name, platform in platform_manager.items():
|
||||||
if isinstance(platform.schedule_interval, int):
|
if isinstance(platform.schedule_interval, int):
|
||||||
logger.info(f'start scheduler for {platform_name} with interval {platform.schedule_interval}')
|
logger.info(f'start scheduler for {platform_name} with interval {platform.schedule_interval}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user