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)
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()
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,
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
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:
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)
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(
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
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="错误: 文件不存在,或者不是图片")
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
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))
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:
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:
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)
def on_dicerCmd(s, p): ''' 用正则匹配一下开头的中文句号以及忽略大小写 已经帮忙加了开头的点了,s直接填指令就行 ''' return on_regex("^(。|\.)" + s, re.I, priority=p)
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)
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:
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])
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']