From 985834295c0b4fa82248620f0da3bf73b899cc68 Mon Sep 17 00:00:00 2001 From: xtaodada Date: Fri, 9 Jul 2021 11:40:02 +0800 Subject: [PATCH] =?UTF-8?q?vip=20=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=AE=98=E6=96=B9=E6=BA=90=E8=8E=B7=E5=8F=96=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- list.json | 2 +- vip.py | 45 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/list.json b/list.json index ae63f6e..6e3072e 100644 --- a/list.json +++ b/list.json @@ -342,7 +342,7 @@ }, { "name": "vip", - "version": "0.40", + "version": "0.41", "section": "chat", "maintainer": "xtaodada", "size": "4.0 kb", diff --git a/vip.py b/vip.py index 6be85e4..cab84c4 100644 --- a/vip.py +++ b/vip.py @@ -3,11 +3,19 @@ import io from requests import get from os import remove from telethon.tl.types import MessageMediaPhoto -from pagermaid import bot +from pagermaid import bot, redis, redis_status from pagermaid.listener import listener from pagermaid.utils import obtain_message, alias_command +p_headers = { + "Referer": 'https://www.pixiv.net', + 'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 ' + 'Safari/537.36', +} + + @listener(is_plugin=True, outgoing=True, command=alias_command("duckduckgo"), description="Duckduckgo 搜索", parameters="") @@ -63,10 +71,37 @@ async def weather(context): @listener(is_plugin=True, outgoing=True, command=alias_command("pixiv"), - description="查询插画信息 (或者回复一条消息)", + description="查询插画信息 (或者回复一条消息)。使用 set [num] 更改镜像源,序号 2 为官方源。", parameters="[<图片链接>] <图片序号>") async def pixiv(context): await context.edit("获取中 . . .") + if len(context.parameter) == 2: + if context.parameter[0] == 'set': + if not redis_status: + await context.edit('redis 数据库离线 无法更改镜像源。') + return + else: + try: + num = int(context.parameter[1]) + except ValueError: + await context.edit('镜像源序号错误。') + return + if 0 < num < 3: + redis.set("pixiv_num", num) + await context.edit('镜像源已更改。') + return + else: + await context.edit('镜像源序号错误。') + return + else: + pass + if not redis_status: + num = 1 + else: + try: + num = int(redis.get("pixiv_num").decode()) + except AttributeError: + num = 1 try: message = await obtain_message(context) except ValueError: @@ -77,6 +112,8 @@ async def pixiv(context): chat_response = await conversation.get_response() await bot.send_read_acknowledge(conversation.chat_id) pixiv_text = chat_response.text + if num == 2: + pixiv_text = pixiv_text.replace('i.pixiv.cat', 'i.pximg.net') pixiv_list = pixiv_text.split('|||||') if len(pixiv_list) == 2: pixiv_albums = pixiv_list[1].split('|||') @@ -85,9 +122,9 @@ async def pixiv(context): if len(pixiv_albums) > 8: await context.edit('获取的图片数大于 8 ,将只发送前8张图片,下载图片中 . . .') for i in range(0, min(len(pixiv_albums), 8)): - r = get(pixiv_albums[i]) + r = get(pixiv_albums[i], headers=p_headers) with open("pixiv." + str(i) + ".jpg", "wb") as code: - code.write(r.content) + code.write(r.content) pixiv_album.extend(["pixiv." + str(i) + ".jpg"]) await context.client.send_file(context.chat_id, pixiv_album, caption=pixiv_list[0])