async def parse(self, raw_post: RawPost) -> Post: announce_url = raw_post["webUrl"] text = "" async with http_client() as client: raw_html = await client.get(announce_url) soup = bs(raw_html.text, "html.parser") pics = [] if soup.find("div", class_="standerd-container"): # 图文 require("nonebot_plugin_htmlrender") from nonebot_plugin_htmlrender import capture_element pic_data = await capture_element( announce_url, "div.main", viewport={"width": 320, "height": 6400}, device_scale_factor=3, ) # render = Render() # viewport = {"width": 320, "height": 6400, "deviceScaleFactor": 3} # pic_data = await render.render( # announce_url, viewport=viewport, target="div.main" # ) if pic_data: pics.append(pic_data) else: text = "图片渲染失败" elif pic := soup.find("img", class_="banner-image"): pics.append(pic["src"]) # type: ignore
async def parse_text(text: str) -> MessageSegment: "return raw text if don't use pic, otherwise return rendered opcode" if plugin_config.bison_use_pic: require("nonebot_plugin_htmlrender") from nonebot_plugin_htmlrender import text_to_pic as _text_to_pic return MessageSegment.image(await _text_to_pic(text)) else: return MessageSegment.text(text)
async def _(bot: Bot, event: GroupMessageEvent): result = "ZANUKA 4.0" result += "\n信息: 警报 | 入侵 | 裂隙 | 突击 | 仲裁 | 电波 | 特价 | 奸商" result += "\n时间: 地球时间 | 平原时间 | 山谷时间 | 幽都时间 | 紫卡时间" result += "\n查价: wm | rm" result += "\n其他: 涩图(不稳定)" result += "\n监控关键词:" keywords = require("monitor").keywords for i in keywords: result += " [{0}]".format(i) result += "\n项目地址: Kougami132/ZanukaBot" await help.send(result)
from nonebot import on_command from nonebot.plugin import require from nonebot.adapters.cqhttp import Bot, Event from datetime import datetime, timedelta import requests import json import re import copy export = require("tools") Translate = export.translate DeltaStr = export.deltastr nightwave = on_command("电波") @nightwave.handle() async def _(bot: Bot, event: Event): try: response = requests.get(url="https://api.warframestat.us/pc/nightwave") data = json.loads(response.text) nodes = [] node = { "type": "node", "data": { "uin": f"{bot.self_id}", "name": "ZANUKA" } } for i in data["activeChallenges"]: content = "——————————"
from httpx import AsyncClient from nonebot import get_driver, get_bots from nonebot.adapters.cqhttp import Bot from nonebot.adapters.cqhttp.message import Message from nonebot.adapters.cqhttp.event import (FriendRequestEvent, GroupBanNoticeEvent, GroupDecreaseNoticeEvent, GroupIncreaseNoticeEvent, LuckyKingNotifyEvent) from nonebot.plugin import on_notice, on_request, require WelcomePath = os.path.join(os.getcwd(), 'DataBase', 'Json', 'studylib.json') with open(WelcomePath, 'r', encoding="utf-8") as fr: handle_new_member = json.load( fr)['public']['preinstall_words']['handle_new_member'] scheduler = require('nonebot_plugin_apscheduler').scheduler # 定义计划任务 member_var = on_notice(priority=5, rule=check_white_list_group()) ban_members = on_notice(priority=5, rule=check_white_list_group()) lucky_king = on_notice(priority=5, rule=check_white_list_group()) friend_add = on_request(priority=5) gaokao_time = datetime.datetime(datetime.datetime.now().year, 6, 7) @member_var.handle() # 群成员变化检测 迎新 退群通告 async def _change_menbers(bot: Bot, event): if isinstance(event, GroupIncreaseNoticeEvent): # 增加 WelcomeTence = random.choice(handle_new_member) msg = Message(f'[CQ:at,qq={str(event.user_id)}]\n' f'{WelcomeTence}\n' '我只是个无情的机器人,请通过#help查看帮助\n' '顺带一提,年轻人要学会控制自己的欲望~~~')
# from momobot.src.plugins import momobot_main from typing import Coroutine import requests import json import time import hashlib from . import rsacr import urllib # from hoshino.aiorequests import post from nonebot.plugin import require post = require("momobot_main")["post"] # post = require("_sub_plugin") # print("post:", post) bililogin = "******" async def sendpost(url, data): header = { "User-Agent": "Mozilla/5.0 BSGameSDK", "Content-Type": "application/x-www-form-urlencoded", "Host": "line1-sdk-center-login-sh.biligame.net", } res = await (await post(url=url, data=data, headers=header)).content return json.loads(res) def setsign(data): data["timestamp"] = int(time.time())
return cls._instances[cls] async def parse_text(text: str) -> MessageSegment: "return raw text if don't use pic, otherwise return rendered opcode" if plugin_config.bison_use_pic: require("nonebot_plugin_htmlrender") from nonebot_plugin_htmlrender import text_to_pic as _text_to_pic return MessageSegment.image(await _text_to_pic(text)) else: return MessageSegment.text(text) if not plugin_config.bison_skip_browser_check: require("nonebot_plugin_htmlrender") def html_to_text(html: str, query_dict: dict = {}) -> str: html = re.sub(r"<br\s*/?>", "<br>\n", html) html = html.replace("</p>", "</p>\n") soup = bs(html, "html.parser") if query_dict: node = soup.find(**query_dict) else: node = soup assert node is not None return node.text.strip() class Filter:
from nonebot.plugin import on_shell_command, require from nonebot.typing import T_State from nonebot.adapters.cqhttp import ( unescape, Bot, Event, Message, PrivateMessageEvent, GroupMessageEvent, ) from nonebot import get_bots from .parser import todo_parser, handle_scheduler scheduler = require("nonebot_plugin_apscheduler").scheduler # 注册 shell_like 事件响应器 todo = on_shell_command("todo", parser=todo_parser, priority=5) # 每分钟进行一次检测 @scheduler.scheduled_job("cron", minute="*", id="todo") async def _(): bots = get_bots() args = handle_scheduler() for bot in bots.values(): for job in args.jobs: await bot.send_msg(
def Save_Config(): global groups, keywords, cp, ex cp.set("monitor", "groups", ",".join(groups)) cp.set("monitor", "keywords", ",".join(keywords)) cp.write(open("./src/data/monitor/config.ini", "w")) ex.groups = groups ex.keywords = keywords cp = configparser.ConfigParser() groups = keywords = [] ex = export() export = require("tools") Translate = export.translate DeltaStr = export.deltastr scheduler = require('nonebot_plugin_apscheduler').scheduler if not os.path.isdir("./src/data/monitor"): os.makedirs("./src/data/monitor") if not os.path.isfile("./src/data/monitor/config.ini"): open("./src/data/monitor/config.ini", "w") cp.read("./src/data/monitor/config.ini") if not cp.has_section("monitor"): cp.add_section("monitor") cp.write(open("./src/data/monitor/config.ini", "w")) if not cp.has_option("monitor", "groups"): cp.set("monitor", "groups", "")