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
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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'
                      '顺带一提,年轻人要学会控制自己的欲望~~~')
Exemple #6
0
# 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())
Exemple #7
0
        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:
Exemple #8
0
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(
Exemple #9
0

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", "")