Exemple #1
0
import re
from nonebot.adapters.cqhttp import Bot, Event, unescape
from nonebot.plugin import on_command, on_message, on_regex
from Pbot.utils import cksafe, getSetuHigh
from Pbot.rule import ckimg
import Pbot.cq as cq
from datetime import datetime

setu = on_regex("^来.*份.*(涩|色)图")


@setu.handle()
async def sst(bot: Bot, event: Event, state: dict):
    msg = str(event.message).strip()
    if event.detail_type == "group":
        safe = await cksafe(event.group_id)
    else:
        safe = False
    if ("r18" in msg or "R18" in msg) and not safe:
        r18 = True
    else:
        r18 = False

    msg = re.sub("(r|R)18", "", msg)
    fd = re.search("份.*(涩|色)", msg)
    try:
        keyword = msg[fd.start() + 1 : fd.end() - 1]
    except:
        keyword = ""

    pic, data = await getSetuHigh(bot, r18, keyword)
Exemple #2
0
from nonebot import require
from nonebot import on_command, on_startswith
from nonebot.plugin import on_regex
from nonebot.rule import to_me
from nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message, message
import nonebot
from datetime import datetime
import aiohttp
import re
import os
import random
# 识别参数 并且给state 赋值

ygo = on_regex(pattern="^ygo\ ")

headers = {
    'user-agent':
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
    'referer': 'https://ygocdb.com'
}


@ygo.handle()
async def ygo_rev(bot: Bot, event: Event, state: dict):
    # print(event.get_message())
    msg = str(event.get_message())[4:]
    url = f"https://ygocdb.com/?search={msg}"
    # print(url)
    async with aiohttp.ClientSession() as session:
        async with session.get(url=url, headers=headers) as response:
            txt = await response.text()
Exemple #3
0
import os
import re
import datetime
import aiohttp
from config import lolicon_api, masterList, setu_path
from httpx import AsyncClient
from nonebot import get_driver
from nonebot.adapters.cqhttp import Bot
from nonebot.adapters.cqhttp.event import (Event, GroupMessageEvent,
                                           PrivateMessageEvent)
from nonebot.adapters.cqhttp.message import Message
from nonebot.plugin import on_command, on_regex

global last_time_command, last_time_Rrandom, resetTime
command_setu = on_command("setu", priority=5, rule=check_white_list_all())
regex_setu_random = on_regex(
    pattern=r'^[来整]点[涩色活好康][的图儿]$|^[色涩]图来$|^冲[亿1一]发$|^冲$|^[色涩黄]图$')
regex_setu_search = on_regex(
    pattern=r'^[来整]点.\S*[色涩黄]图$|^[来整][几.\S*][张份个]\S*[色涩黄]图$')

last_time_command, last_time_Rrandom, resetTime = '', '', True
download_urls = []
word_to_int = {
    "一": 1,
    "二": 2,
    "两": 2,
    "三": 3,
    "四": 4,
    "五": 5,
    "六": 6,
    "七": 7,
    "八": 8,
Exemple #4
0
from nonebot.plugin import on_regex
from nonebot.rule import regex, to_me, Rule
from nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message
import subprocess
import asyncio

cmd = on_regex(pattern="^cmd\ ")


@cmd.handle()
async def cmd_rev(bot: Bot, event: Event, state: dict):
    msg = str(event.message).strip()[3:]
    user_id = event.user_id
    if user_id == 1793268622:
        await bot.send(event=event, message="机器人你别命令我")
        return
    if user_id == 1761512493 or user_id == 2822103204 or user_id == 1928906357:
        if "exit" in msg or "shutdown" in msg:
            await bot.send(event=event, message="别想着干坏事")
            return
        msgg = await run(f"cd ;{msg}")
        if msgg != "":
            if len(msgg) >= 7000:
                msgg = msgg[:7000]
            await bot.send(event=event, message=Message(msgg))
        else:
            await bot.send(event=event, message="您的指令是没有返回值的")
    else:
        if "exit" in msg or "shutdown" in msg:
            await bot.send(event=event, message="别的干坏事")
            return
Exemple #5
0
    headers = {
        'origin':
        'https://lab.magiconch.com',
        'referer':
        'https://lab.magiconch.com/nbnhhsh/',
        'user-agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    }
    data = {"text": f"{word}"}
    async with aiohttp.ClientSession() as session:
        async with session.post(url=url, headers=headers, data=data) as resp:
            msg = await resp.json()
            return msg if msg else []


sx = on_regex("^sx\ |^缩写\ ")

# 识别参数 并且给state 赋值


@sx.handle()
async def sx_rev(bot: Bot, event: Event, state: dict):
    msg = str(event.message)[2:].strip()
    date = await get_sx(msg)
    try:
        name = date[0]['name']
        print(name)
        content = date[0]['trans']
        print(content)
        await bot.send(event=event, message=name + "\n" + str(content))
    except:
Exemple #6
0
    zymc = data['zymc'] if data['zymc'] else 'none'  #专业
    fxzy = data['fxzy'] if data['fxzy'] else 'none'  #辅修专业
    bj = data['bj'] if data['bj'] else 'none'  #班级
    rxnf = data['rxnf'] if data['rxnf'] else 'none'  #入学年份
    nj = data['nj'] if data['nj'] else 'none'  #所在年级
    return '姓' + chr(12288) * 2 + '名:\t' + name + '\n' + '性' + chr(
        12288) * 2 + '别:\t' + xb + '\n' + '学' + chr(
            12288
        ) * 2 + '院:\t' + yxmc + '\n' + '专' + chr(
            12288
        ) * 2 + '业:\t' + zymc + '\n' + '辅修专业:\t' + fxzy + '\n' + '班' + chr(
            12288
        ) * 2 + '级:\t' + bj + '\n' + '入学年份:\t' + rxnf + '\n' + '所在年级:\t' + nj


command_test = on_regex('查询学号 [\d]{12}')


@command_test.handle()
async def _echo(
    bot: Bot,
    event: MessageEvent,
):
    try:
        if event.get_user_id() != get_attr('SUPER')[0]:
            text = "你暂无此权限"
        else:
            name = event.get_plaintext()[5:]
            text = get_info(name)
    except Exception as e:
        text = '错误提示' + str(e)
Exemple #7
0
import time
import nonebot


def pingbi(event: Event) -> bool:
    goup_id = event.dict().get('group_id')
    if goup_id:
        if str(goup_id) in ['389410891']:
            return True
    return False


export = nonebot.require("nonebot_plugin_navicat")
clien = export.redis_client  # redis的

setu = on_regex("^st$|^cu$|^涩图$|^来站涩图$")


@setu.handle()
async def setu_rev(bot: Bot, event: Event, state: dict):
    if pingbi(event):
        return
    path_prefix = "/root/QQbotFiles/img/"
    img_list = await get_img_list(path_prefix)
    if not img_list:
        await setu.finish("色图库已经空了")
    else:
        rd.seed(time.time())
        path = img_list[rd.randint(0, len(img_list) - 1)]
        await bot.send(event=event,
                       message=MessageSegment.image(
Exemple #8
0
    bot = get_bots()[config.bot_id]
    await bot.send_private_msg(user_id=acinfo["admin"], Message=f"猫猫登录错误:{msg}")


bclient = bsdkclient(acinfo, captchaVerifier, errlogger)
client = pcrclient(bclient)


async def validate(bot: Bot, event: Event, state: T_State):
    global validate
    validate = state["_matched_groups"][0]
    # print(validate)
    captcha_lck.release()


on_regex(r"/pcrval (.*)", handlers=[validate])


async def check(bot: Bot = get_bots(), event: Event = {}):
    print("ev", event)
    bot = get_bots()[config.bot_id]
    while client.shouldLogin:
        await client.login()

    if os.path.exists(plugin_path + "/data.json"):
        with open(plugin_path + "/data.json", "rb") as f:
            data_save = json.loads(f.read())
    else:
        data_save = ""
    result = []
    # /clan/info
Exemple #9
0
from nonebot import on_command, on_startswith, on_keyword, on_message
from nonebot.plugin import on_notice, on_regex
from nonebot.rule import Rule, regex, to_me
from nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message, event, message
from nonebot.typing import T_State
import os
sendImg = on_regex(pattern="^send\ ")


@sendImg.handle()
async def love_rev(bot: Bot, event: Event, state: dict):
    msg = "/root/" + str(event.get_message())[5:]
    print(msg)
    if os.path.exists(msg):
        await bot.send(event=event,
                       message=MessageSegment.image(f"file:///{msg}"))
    else:
        await bot.send(event=event, message="错误: 文件不存在,或者不是图片")
Exemple #10
0

pixivURL = on_message(rule=isPixivURL())


@pixivURL.handle()
async def pixivURL(bot: Bot, event: Event, state: dict):
    pid = re.findall("https://www.pixiv.net/artworks/(\d+)|illust_id=(\d+)",
                     str(event.get_message()))
    if pid:
        pid = [x for x in pid[0] if x][0]
        await send(pid, event, bot)


# pixiv = on_command(cmd="pixiv")
pixiv = on_regex(pattern="^pixiv\ ")

# 识别参数 并且给state 赋值


@pixiv.handle()
async def pixiv_rev(bot: Bot, event: Event, state: dict):
    pid = str(event.message).strip()[6:].strip()
    await send(pid, event, bot)


headers = {
    'referer':
    'https://www.pixiv.net',
    'user-agent':
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    headers = {
        'origin':
        'https://lab.magiconch.com',
        'referer':
        'https://lab.magiconch.com/nbnhhsh/',
        'user-agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    }
    data = {"text": f"{word}"}
    async with aiohttp.ClientSession() as session:
        async with session.post(url=url, headers=headers, data=data) as resp:
            msg = await resp.json()
            return msg if msg else []


sx = on_regex(pattern="^sx\ |^缩写\ (.*)")


@sx.handle()
async def _(bot: Bot, event: Event, state: T_State = State()):
    msg = str(event.get_message())[3:]
    data = await get_sx(msg)
    result = ""
    try:
        data = data[0]
        name = data['name']
        try:
            content = data['trans']
            result += ' , '.join(content)
        except KeyError:
            pass
Exemple #12
0

def add_sepi(user: int) -> None:
    """将目标移入涩批名单"""
    global SP_list
    SP_list.append(user)


def del_sepi(user: int) -> None:
    """将目标移出涩批名单"""
    global SP_list
    SP_list.remove(user)


setu = on_regex(
    r"来[点丶张份副个幅][涩色瑟][图圖]|[涩色瑟][图圖]来|[涩色瑟][图圖][gkd|GKD|搞快点]|[gkd|GKD|搞快点][涩色瑟][图圖]",
    rule=check_banlist() & check_switch(plugin_name_2, False))


@setu.handle()
async def _(bot: Bot, event: Event, state: dict) -> None:
    global SP_temp_list
    user = event.user_id
    group = event.group_id
    res = randint(1, 5)

    check_sepi()

    if countX(SP_temp_list, user) == 5:
        add_sepi(user)  # type: ignore
        SP_temp_list = list(set(SP_temp_list))
Exemple #13
0
from nonebot import require
from nonebot import on_command, on_startswith
from nonebot.plugin import on_regex
from nonebot.rule import to_me
from nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message, message
import nonebot
from datetime import datetime
import aiohttp
# 识别参数 并且给state 赋值

xinwen = on_regex(pattern="^xw$")


@xinwen.handle()
async def xinwen_rev(bot: Bot, event: Event, state: dict):
    date = (await main())['data']
    msg = ""
    for index, x in enumerate(date[:10]):
        msg += (str(index + 1) + ":  " + x['name'] + "\n")
    await xinwen.finish(message=msg)


scheduler = require("nonebot_plugin_apscheduler").scheduler


@scheduler.scheduled_job("cron", id="xinwen", hour="0", minute="0")
async def xinwen_scheduler():
    date = (await main())['data']
    msg = ""
    for index, x in enumerate(date[:10]):
        if "习近平" in x:
Exemple #14
0
import os
from nonebot import on_command, on_startswith
from nonebot.plugin import on_regex
from nonebot.rule import to_me
from nonebot.adapters.cqhttp import Bot, Event, MessageSegment, Message
import time
import asyncio

xr = on_regex(pattern="^xr\ ")
# 识别参数 并且给state 赋值


@xr.handle()
async def xr_rev(bot: Bot, event: Event, state: dict):
    msg = str(event.message).strip()[3:].strip()
    s = time.time()
    if not (msg.startswith("http://") or msg.startswith("https://")):
        msg = f"http://{msg}"
    img = await run(
        f"/root/miniconda3/bin/python /root/my_nonebot2/nb2/plugins/xuanran/screenShot.py {msg}"
    )
    print(img)
    print(img.endswith(".png\n"))
    print(img.startswith("True:截图成功!!!"))
    if img and img.endswith(".png\n") and img.startswith("True:截图成功!!!"):
        img = img.split("\n")[1]
        await bot.send(
            event=event,
            message=MessageSegment.image("file:///" + "/root/QQbotFiles/xr/" +
                                         img) + f"耗时:{time.time()-s}")
    else:
Exemple #15
0

async def get_weather(cityName):
    url = f"https://tianqiapi.com/api?version=v1&appid=21492898&appsecret=V0eHZaI2&city={cityName}"

    headers = {
        'user-agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    }
    async with aiohttp.ClientSession() as session:
        async with session.post(url=url, headers=headers) as resp:
            msg = await resp.json()
            return msg


weather = on_regex(pattern="^天气\ ")

# 识别参数 并且给state 赋值


@weather.handle()
async def sx_rev(bot: Bot, event: Event, state: dict):
    msg = str(event.get_message()).strip()[3:].strip()
    print(msg)
    try:
        date = await get_weather(msg)
        msgs = str(date['city'] + "\n")
        date = date['data'][0]['hours']
        for x in date:
            msgs += (x['hours'] + "->" + x['wea'] + "->" + x['tem'] + "摄氏度\n")
        await bot.send(event=event, message=msgs)
Exemple #16
0
def on_dicerCmd(s, p):
    '''
    用正则匹配一下开头的中文句号以及忽略大小写
    已经帮忙加了开头的点了,s直接填指令就行
    '''
    return on_regex("^(。|\.)" + s, re.I, priority=p)
Exemple #17
0
                classroom = i['jsmc'] if i['jsmc'] else "?"
                start_time = i['kssj'] if i['kssj'] else "?"
                end_time = i['jssj'] if i['jssj'] else "?"
                zc = str(j)
                week = i['kcsj'][0:1] if i['kcsj'] else "?"
                #print(sql)
                #sql3='insert into class values'+sql
                #print("insert into class values('{}','{}','{}','{}','{}','{}','{}')".format(event.get_user_id(),classname,classroom,start_time,end_time,zc,week))
                conn.execute(
                    "insert into class values({},'{}','{}','{}','{}',{},{})".
                    format(event.get_user_id(), classname, classroom,
                           start_time, end_time, zc, week))
                conn.commit()


command_test = on_regex('绑定学号 [\d]{12}')


@command_test.handle()
async def _echo(bot: Bot, event: MessageEvent):
    name = event.get_plaintext()[5:]
    if event.get_user_id() not in get_attr('SUPER') and name in get_attr(
            'SUPERNAME'):
        text = '你暂无此权限'
    else:
        try:
            conn = connsql()  #判断是否信息表存在  再更新
            if not sql_isempty(event.get_user_id(), conn):
                sql = '(' + event.get_user_id(
                ) + ',' + name + ',' + "'aaa'" + ')'
                conn.execute("insert into new values" + sql)
Exemple #18
0
def en_lsp(user: str):
    global lsp_list
    if user not in lsp_list:
        lsp_list[user] = 1
    else:
        lsp_list[user] += 1


def de_lsp(user: str):
    global lsp_list
    del lsp_list[user]


setu_get = on_regex(
    r"来[张份个幅][涩色瑟][图]|[涩色瑟][图]来|[涩色瑟][图][gkd|GKD|搞快点]|[gkd|GKD|搞快点]",
    rule=is_banned() & to_me(),
    priority=8)


@setu_get.handle()
async def _(bot: Bot, event: Event, state: dict):
    global lsp_stack, search_type
    user = str(event.user_id)
    group = str(event.group_id)

    if not is_enabled(_func_name, True, group):
        await setu_get.finish("该功能不可用")
    if check_list(user):
        await setu_get.finish("冲的太多了,休息一下吧")

    if counter(lsp_stack, user) == 5:
Exemple #19
0
                if (index + 1) % 5 == 0:
                    data = {
                        "type": "node",
                        "data": {
                            "name": "猫猫",
                            "uin": "1475166415",
                            "content": reply
                        }
                    }
                    li.append(data)
                    reply = ""
            reply += f"============\n猫猫共查询到结果{len(res)}条"
            data = {
                "type": "node",
                "data": {
                    "name": "猫猫",
                    "uin": "1475166415",
                    "content": reply
                }
            }
            li.append(data)
            gid = event.group_id
            await bot.send_group_forward_msg(group_id=gid, messages=li)
        else:
            with open(json_path, "r", encoding="utf8") as fp:
                json_data = json.load(fp)
            await bot.send(event, "猫猫没有找到呢~喵~\n请再次尝试或者联系管理员")


on_regex(r"^(help|帮助) (.*)$", handlers=[search])
Exemple #20
0
    headers = {
        'origin': 'https://lab.magiconch.com',
        'referer': 'https://lab.magiconch.com/nbnhhsh/',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    }
    data = {
        "text": f"{word}"
    }
    async with aiohttp.ClientSession() as session:
        async with session.post(url=url, headers=headers, data=data) as resp:
            msg = await resp.json()
            return msg if msg else []


sx = on_regex(r'([a-zA-Z]+)是(?:什么|啥)[??]?$', rule=sv_sw(plugin_name, plguin_usage, hierarchy='其它'), priority=2)


@sx.handle()
async def sx_rev(bot: Bot, event: MessageEvent, state: T_State):
    logger.debug(f'Match sx {state["_matched_groups"]}')
    abbr = state["_matched_groups"][0]
    try:
        data = await get_sx(abbr)
    except aiohttp.ClientError as err:
        logger.error(f'query sx {abbr} error: {err}')
        await sx.finish("查询出错了,要不要稍后再试试?")
    try:
        name = data[0]['name']
        logger.debug(f'查询缩写:{name}')
        content = data[0]['trans']