This commit is contained in:
hibiki 2021-06-17 19:22:07 +08:00
parent 22883cbf3a
commit 1d6c71cf1e
6 changed files with 83 additions and 12 deletions

View File

@ -12,7 +12,7 @@ USE_CONFIG_FILE = False
# API KEY必要 # API KEY必要
LOLICON_KEY: str = "" # lolicon(可不填lolicon已放开api限制) LOLICON_KEY: str = "" # lolicon(可不填lolicon已放开api限制)
RSSHUBAPP: str = "https://docs.rsshub.app/" # rsshub RSSHUBAPP: str = "https://rsshub.app/" # rsshub
# 图灵 # 图灵
TL_KEY: List[str] = [] TL_KEY: List[str] = []

View File

@ -6,6 +6,8 @@ from .data_source import get_pixiv_urls, download_pixiv_imgs, search_pixiv_urls
import time import time
from services.log import logger from services.log import logger
from nonebot.adapters.cqhttp.exception import NetworkError from nonebot.adapters.cqhttp.exception import NetworkError
from asyncio.exceptions import TimeoutError
from aiohttp.client_exceptions import ClientConnectorError
__plugin_name__ = 'P站' __plugin_name__ = 'P站'
@ -81,26 +83,30 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
text_list, urls, code = await get_pixiv_urls(rank_dict.get('1')) text_list, urls, code = await get_pixiv_urls(rank_dict.get('1'))
elif len(msg) == 1: elif len(msg) == 1:
if msg[0] not in ['1', '2', '3', '4', '5', '6', '7', '8', '9']: if msg[0] not in ['1', '2', '3', '4', '5', '6', '7', '8', '9']:
_ulmt.set_False(event.user_id)
await pixiv_rank.finish("要好好输入要看什么类型的排行榜呀!", at_sender=True) await pixiv_rank.finish("要好好输入要看什么类型的排行榜呀!", at_sender=True)
text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0])) text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0]))
elif len(msg) == 2: elif len(msg) == 2:
text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0]), int(msg[1])) text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0]), int(msg[1]))
elif len(msg) == 3: elif len(msg) == 3:
if not check_date(msg[2]): if not check_date(msg[2]):
_ulmt.set_False(event.user_id)
await pixiv_rank.finish('日期格式错误了', at_sender=True) await pixiv_rank.finish('日期格式错误了', at_sender=True)
text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0]), int(msg[1]), msg[2]) text_list, urls, code = await get_pixiv_urls(rank_dict.get(msg[0]), int(msg[1]), msg[2])
else: else:
_ulmt.set_False(event.user_id) _ulmt.set_False(event.user_id)
await pixiv_rank.finish('格式错了噢,看看帮助?', at_sender=True) await pixiv_rank.finish('格式错了噢,看看帮助?', at_sender=True)
if code != 200: if code != 200:
_ulmt.set_False(event.user_id)
await pixiv_keyword.finish(text_list[0]) await pixiv_keyword.finish(text_list[0])
else: else:
if not text_list or not urls: if not text_list or not urls:
_ulmt.set_False(event.user_id)
await pixiv_rank.finish('没有找到啊,等等再试试吧~V', at_sender=True) await pixiv_rank.finish('没有找到啊,等等再试试吧~V', at_sender=True)
for i in range(len(text_list)): for i in range(len(text_list)):
try: try:
await pixiv_rank.send(text_list[i] + await download_pixiv_imgs(urls[i], event.user_id)) await pixiv_rank.send(text_list[i] + await download_pixiv_imgs(urls[i], event.user_id))
except NetworkError: except (NetworkError, TimeoutError, ClientConnectorError):
await pixiv_keyword.send('这张图网络炸了!', at_sender=True) await pixiv_keyword.send('这张图网络炸了!', at_sender=True)
logger.info( logger.info(
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})" f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
@ -159,7 +165,7 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
for i in range(len(text_list)): for i in range(len(text_list)):
try: try:
await pixiv_keyword.send(text_list[i] + await download_pixiv_imgs(urls[i], event.user_id)) await pixiv_keyword.send(text_list[i] + await download_pixiv_imgs(urls[i], event.user_id))
except NetworkError: except (NetworkError, TimeoutError, ClientConnectorError):
await pixiv_keyword.send('这张图网络炸了!', at_sender=True) await pixiv_keyword.send('这张图网络炸了!', at_sender=True)
logger.info( logger.info(
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})" f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"

View File

@ -7,6 +7,8 @@ from bs4 import BeautifulSoup
import feedparser import feedparser
from util.init_result import image from util.init_result import image
from asyncio.exceptions import TimeoutError from asyncio.exceptions import TimeoutError
from configs.config import RSSHUBAPP
from aiohttp.client_exceptions import ClientConnectorError
import platform import platform
if platform.system() == 'Windows': if platform.system() == 'Windows':
import asyncio import asyncio
@ -14,11 +16,13 @@ if platform.system() == 'Windows':
async def get_pixiv_urls(mode: str, num: int = 5, date: str = '') -> 'list, list, int': async def get_pixiv_urls(mode: str, num: int = 5, date: str = '') -> 'list, list, int':
url = 'https://rsshub.app/pixiv/ranking/{}' url = f'{RSSHUBAPP}pixiv/ranking/{mode}'
iurl = url.format(mode)
if date: if date:
iurl += f'/{date}' url += f'/{date}'
return await parser_data(iurl, num) try:
return await parser_data(url, num)
except ClientConnectorError:
return get_pixiv_urls(mode, num, date)
async def download_pixiv_imgs(urls: list, user_id: int) -> str: async def download_pixiv_imgs(urls: list, user_id: int) -> str:

View File

@ -13,6 +13,11 @@ import re
from models.count_user import UserCount from models.count_user import UserCount
from aiohttp.client_exceptions import ClientConnectorError from aiohttp.client_exceptions import ClientConnectorError
from configs.config import MAX_SETU_R_COUNT from configs.config import MAX_SETU_R_COUNT
from configs.path_config import TXT_PATH
try:
import ujson as json
except ModuleNotFoundError:
import json
__plugin_name__ = '色图' __plugin_name__ = '色图'
__plugin_usage__ = f'''示例: __plugin_usage__ = f'''示例:
@ -59,7 +64,11 @@ async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
if _ulmt.check(event.user_id): if _ulmt.check(event.user_id):
await setu.finish(f"您有色图正在处理,请稍等") await setu.finish(f"您有色图正在处理,请稍等")
_ulmt.set_True(event.user_id) _ulmt.set_True(event.user_id)
setu_img, index = get_setu(img_id) try:
setu_data = json.load(open(f'{TXT_PATH}/setu_data.json', 'r', encoding='utf8'))
except Exception:
setu_data = {}
setu_img, index = get_setu(img_id, setu_data)
if setu_img: if setu_img:
try: try:
await setu.send(setu_img) await setu.send(setu_img)
@ -114,7 +123,11 @@ async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
if _ulmt.check(event.user_id): if _ulmt.check(event.user_id):
await setu.finish(f"您有色图正在处理,请稍等") await setu.finish(f"您有色图正在处理,请稍等")
_ulmt.set_True(event.user_id) _ulmt.set_True(event.user_id)
setu_img, index = get_setu(img_id) try:
setu_data = json.load(open(f'{TXT_PATH}/setu_data.json', 'r', encoding='utf8'))
except Exception:
setu_data = {}
setu_img, index = get_setu(img_id, setu_data)
if setu_img: if setu_img:
await setu.send(setu_img) await setu.send(setu_img)
logger.info( logger.info(
@ -221,10 +234,14 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
else: else:
return return
# try: # try:
try:
setu_data = json.load(open(f'{TXT_PATH}/setu_data.json', 'r', encoding='utf8'))
except Exception:
setu_data = {}
if not keyword: if not keyword:
for _ in range(num): for _ in range(num):
try: try:
img, index = get_setu('') img, index = get_setu('', setu_data)
if not img: if not img:
break break
await setu_reg.send(img) await setu_reg.send(img)

View File

@ -115,7 +115,7 @@ async def search_online_setu(url: str):
return '\n图片被小怪兽恰掉啦..!QAQ', -1 return '\n图片被小怪兽恰掉啦..!QAQ', -1
def get_setu(index: str): def get_setu(index: str, setu_data: dict):
length = len(os.listdir(IMAGE_PATH + path)) length = len(os.listdir(IMAGE_PATH + path))
if length == 0: if length == 0:
return None, None return None, None
@ -125,7 +125,14 @@ def get_setu(index: str):
if int(index) > length or int(index) < 0: if int(index) > length or int(index) < 0:
return f"超过当前上下限!({length - 1})", 999 return f"超过当前上下限!({length - 1})", 999
else: else:
return f'id{index}' + image(f'{index}.jpg', 'setu'), index if setu_data:
index = str(index)
return f'id{index}\n' \
f'title{setu_data[index]["title"]}\n' \
f'author{setu_data[index]["author"]}\n' \
f'PID{setu_data[index]["pid"]}' + image(f'{index}.jpg', path), index
else:
return f'id{index}' + image(f'{index}.jpg', path), index
return None, None return None, None

37
plugins/server_ip.py Normal file
View File

@ -0,0 +1,37 @@
from nonebot import on_command
from nonebot.adapters.cqhttp import Bot, PrivateMessageEvent, GroupMessageEvent
from nonebot.typing import T_State
from nonebot.rule import to_me
__plugin_name__ = '服务器'
__plugin_usage__ = '用法: 无'
server_ip = on_command("服务器", aliases={'ip'}, rule=to_me(), priority=5, block=True)
@server_ip.handle()
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
await server_ip.finish("|* 请不要发给其他人! *|\n"
"\t121.40.195.22\n"
"|* 请不要发给其他人! *|\n"
"csgo ~号键控制台输入 connect 121.40.195.22 进入服务器\n"
"然后再公屏输入 !diy 来使用皮肤(英文感叹号,注意)\n"
"【说不定可以凑到内战噢,欢迎~{娱乐为主}", at_sender=True)
@server_ip.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
if event.group_id == 698279647:
await server_ip.finish("嗨呀!当前服务器地址是:"
"\ncsgo:\n\tay: 121.40.195.22\n\t"
"wzt: 101.200.199.143\n\t夜之北枭: 101.132.170.254\n我的世界:\n\t47.111.1.22025565")
elif event.group_id == 1046451860:
await server_ip.finish("嗨呀!当前服务器地址是:\n121.40.195.22\n !diy")
else:
await server_ip.finish("不好意思呀小真寻不能为你使用此功能因为服务器IP是真寻的小秘密呀", at_sender=True)