🐛 修复:同步新的WikiAPI接口;优化:错误提示.
This commit is contained in:
parent
26f06c3138
commit
f8d7cce4c3
@ -1,17 +1,16 @@
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from os import sep
|
from os import sep
|
||||||
import requests, yaml, re
|
import requests
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from defs.character import repl
|
|
||||||
from defs.weapons import headers
|
from defs.weapons import headers
|
||||||
|
|
||||||
|
|
||||||
def get_url(name: str):
|
def get_url(name: str):
|
||||||
res = requests.get(url=f'https://api.minigg.cn/artifacts?query={name}', headers=headers)
|
res = requests.get(url=f'https://info.minigg.cn/artifacts?query={name}', headers=headers)
|
||||||
if res.text == "undefined\n":
|
if "errcode" in res.text:
|
||||||
raise JSONDecodeError("", "", 0)
|
raise JSONDecodeError("", "", 0)
|
||||||
py_dict = yaml.safe_load(re.sub(r'\[? *(, *)+\]?', repl, res.text))
|
py_dict = res.json()
|
||||||
return py_dict
|
return py_dict
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import difflib, json, re, requests, yaml
|
import difflib, json, re, requests
|
||||||
from os import getcwd, sep
|
from os import getcwd, sep
|
||||||
from xpinyin import Pinyin
|
from xpinyin import Pinyin
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
@ -17,38 +17,38 @@ def nic2name(name):
|
|||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
def repl(match):
|
# def repl(match):
|
||||||
content = re.sub(" ", "",match.group(0))
|
# content = re.sub(" ", "",match.group(0))
|
||||||
length = len(content) - 1
|
# length = len(content) - 1
|
||||||
result = ''
|
# result = ''
|
||||||
if content[0] == '[':
|
# if content[0] == '[':
|
||||||
result = '[""'
|
# result = '[""'
|
||||||
length -= 1
|
# length -= 1
|
||||||
|
#
|
||||||
after = ','
|
# after = ','
|
||||||
if content[-1] == ']':
|
# if content[-1] == ']':
|
||||||
length -= 1
|
# length -= 1
|
||||||
after += '""]'
|
# after += '""]'
|
||||||
|
#
|
||||||
return result + (',""' * length) + after
|
# return result + (',""' * length) + after
|
||||||
|
|
||||||
|
|
||||||
def get_json(name: str) -> dict:
|
def get_json(name: str) -> dict:
|
||||||
if name not in ["空", "荧"]:
|
if name not in ["空", "荧"]:
|
||||||
name = nic2name(name)
|
name = nic2name(name)
|
||||||
res = requests.get(f'https://api.minigg.cn/characters?query={name}')
|
res = requests.get(f'https://info.minigg.cn/characters?query={name}')
|
||||||
if res.text == "undefined\n":
|
if "errcode" in res.text:
|
||||||
raise JSONDecodeError("", "", 0)
|
raise JSONDecodeError("", "", 0)
|
||||||
py_dict = yaml.safe_load(re.sub(r'\[? *(, *)+\]?', repl, res.text))
|
py_dict = res.json()
|
||||||
return py_dict
|
return py_dict
|
||||||
|
|
||||||
|
|
||||||
def get_json_mz(name: str) -> dict:
|
def get_json_mz(name: str) -> dict:
|
||||||
name = nic2name(name)
|
name = nic2name(name)
|
||||||
res = requests.get(f'https://api.minigg.cn/constellations?query={name}')
|
res = requests.get(f'https://info.minigg.cn/constellations?query={name}')
|
||||||
if res.text == "undefined\n":
|
if "errcode" in res.text:
|
||||||
raise JSONDecodeError("", "", 0)
|
raise JSONDecodeError("", "", 0)
|
||||||
py_dict = yaml.safe_load(re.sub(r'\[? *(, *)+\]?', repl, res.text))
|
py_dict = res.json()
|
||||||
return py_dict
|
return py_dict
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import difflib, json, requests, yaml, re
|
import difflib, json, requests
|
||||||
from os import getcwd, sep
|
from os import getcwd, sep
|
||||||
from xpinyin import Pinyin
|
from xpinyin import Pinyin
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
from defs.character import repl
|
|
||||||
|
|
||||||
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
||||||
"Chrome/89.0.4389.82 Safari/537.36"}
|
"Chrome/89.0.4389.82 Safari/537.36"}
|
||||||
@ -13,10 +12,10 @@ weapon_type = {1: "单手剑", 2: "双手剑", 3: "弓", 4: "法器", 5: "长枪
|
|||||||
|
|
||||||
|
|
||||||
def get_url(name: str):
|
def get_url(name: str):
|
||||||
res = requests.get(url=f'https://api.minigg.cn/weapons?query={name}', headers=headers)
|
res = requests.get(url=f'https://info.minigg.cn/weapons?query={name}', headers=headers)
|
||||||
if res.text == "undefined\n":
|
if "errcode" in res.text:
|
||||||
raise JSONDecodeError("", "", 0)
|
raise JSONDecodeError("", "", 0)
|
||||||
py_dict = yaml.safe_load(re.sub(r'\[? *(, *)+\]?', repl, res.text))
|
py_dict = res.json()
|
||||||
return py_dict
|
return py_dict
|
||||||
|
|
||||||
|
|
||||||
@ -24,7 +23,7 @@ async def get_weapon(name: str):
|
|||||||
for i in weapon_all:
|
for i in weapon_all:
|
||||||
if name in i['name']:
|
if name in i['name']:
|
||||||
try:
|
try:
|
||||||
url = (get_url(i['name'][0]))["images"]["image"]
|
url = (get_url(i['name'][0]))["images"]["icon"]
|
||||||
except (JSONDecodeError, KeyError):
|
except (JSONDecodeError, KeyError):
|
||||||
url = None
|
url = None
|
||||||
text = f"<b>{i['name'][0]}</b> {'★' * i['star']}\n" \
|
text = f"<b>{i['name'][0]}</b> {'★' * i['star']}\n" \
|
||||||
|
@ -12,6 +12,7 @@ from defs.event import generate_event
|
|||||||
from defs.mys2 import award, sign, daily
|
from defs.mys2 import award, sign, daily
|
||||||
|
|
||||||
from ci import scheduler, app
|
from ci import scheduler, app
|
||||||
|
from defs.redis_load import redis
|
||||||
|
|
||||||
SUPERUSERS = []
|
SUPERUSERS = []
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ SUPERUSERS = []
|
|||||||
async def mys2_msg(client: Client, message: Message):
|
async def mys2_msg(client: Client, message: Message):
|
||||||
text = message.text.replace("米游社", "")
|
text = message.text.replace("米游社", "")
|
||||||
userid = message.from_user.id
|
userid = message.from_user.id
|
||||||
if '添加 ' in text:
|
if '添加' in text:
|
||||||
try:
|
try:
|
||||||
mes = text.replace('添加', '').strip()
|
mes = text.replace('添加', '').strip()
|
||||||
if not mes:
|
if not mes:
|
||||||
@ -35,7 +36,9 @@ async def mys2_msg(client: Client, message: Message):
|
|||||||
f'例如:<code>米游社绑定uid123456789</code>。')
|
f'例如:<code>米游社绑定uid123456789</code>。')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
await message.reply(f'校验失败!请输入正确的Cookies!', quote=True)
|
await message.reply(f'校验失败!请输入正确的Cookies!获取 Cookie 请参考:'
|
||||||
|
f'[link](https://github.com/Womsxd/AutoMihoyoBBS/'
|
||||||
|
f'#%E8%8E%B7%E5%8F%96%E7%B1%B3%E6%B8%B8%E7%A4%BEcookie)', quote=True)
|
||||||
elif '推送' in text:
|
elif '推送' in text:
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(userid, mode="uid")
|
uid = await selectDB(userid, mode="uid")
|
||||||
@ -46,7 +49,7 @@ async def mys2_msg(client: Client, message: Message):
|
|||||||
im = await OpenPush(int(uid[0]), userid, "off", "StatusA")
|
im = await OpenPush(int(uid[0]), userid, "off", "StatusA")
|
||||||
await message.reply(im, quote=True)
|
await message.reply(im, quote=True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
await message.reply("未找到uid绑定记录。", quote=True)
|
await message.reply("未找到uid绑定记录。", quote=True)
|
||||||
elif '自动签到' in text:
|
elif '自动签到' in text:
|
||||||
try:
|
try:
|
||||||
@ -58,7 +61,7 @@ async def mys2_msg(client: Client, message: Message):
|
|||||||
im = await OpenPush(int(uid[0]), userid, "off", "StatusA")
|
im = await OpenPush(int(uid[0]), userid, "off", "StatusA")
|
||||||
await message.reply(im, quote=True)
|
await message.reply(im, quote=True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
await message.reply("未找到uid绑定记录。", quote=True)
|
await message.reply("未找到uid绑定记录。", quote=True)
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +85,7 @@ async def mys2_qun_msg(client: Client, message: Message):
|
|||||||
im = await OpenPush(int(uid[0]), message.from_user.id, "off", "StatusB")
|
im = await OpenPush(int(uid[0]), message.from_user.id, "off", "StatusB")
|
||||||
await message.reply(im)
|
await message.reply(im)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
await message.reply("未绑定uid信息!")
|
await message.reply("未绑定uid信息!")
|
||||||
elif "推送" in text:
|
elif "推送" in text:
|
||||||
try:
|
try:
|
||||||
@ -99,7 +102,7 @@ async def mys2_qun_msg(client: Client, message: Message):
|
|||||||
im = await OpenPush(int(uid[0]), message.from_user.id, "off", "StatusA")
|
im = await OpenPush(int(uid[0]), message.from_user.id, "off", "StatusA")
|
||||||
await message.reply(im)
|
await message.reply(im)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
await message.reply("未绑定uid信息!")
|
await message.reply("未绑定uid信息!")
|
||||||
elif "每月统计" in text:
|
elif "每月统计" in text:
|
||||||
try:
|
try:
|
||||||
@ -117,7 +120,7 @@ async def mys2_qun_msg(client: Client, message: Message):
|
|||||||
im = await sign(uid)
|
im = await sign(uid)
|
||||||
await message.reply(im)
|
await message.reply(im)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
await message.reply('未找到绑定信息')
|
await message.reply('未找到绑定信息')
|
||||||
elif "效验全部" in text:
|
elif "效验全部" in text:
|
||||||
im = await CheckDB()
|
im = await CheckDB()
|
||||||
@ -129,7 +132,7 @@ async def mys2_qun_msg(client: Client, message: Message):
|
|||||||
mes = await daily("ask", uid)
|
mes = await daily("ask", uid)
|
||||||
im = mes[0]['message']
|
im = mes[0]['message']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e.with_traceback)
|
traceback.print_exc()
|
||||||
im = "没有找到绑定信息。"
|
im = "没有找到绑定信息。"
|
||||||
await message.reply(im)
|
await message.reply(im)
|
||||||
elif "绑定uid" in text:
|
elif "绑定uid" in text:
|
||||||
@ -148,6 +151,16 @@ async def push():
|
|||||||
daily_data = await daily()
|
daily_data = await daily()
|
||||||
if daily_data is not None:
|
if daily_data is not None:
|
||||||
for i in daily_data:
|
for i in daily_data:
|
||||||
|
# 过滤重复推送
|
||||||
|
data = i['message'].split('==============')
|
||||||
|
if len(data) > 2:
|
||||||
|
text = "".join(data[1:-1])
|
||||||
|
data = redis.get("daily_" + str(i['qid']))
|
||||||
|
if data:
|
||||||
|
if text == data.decode():
|
||||||
|
continue
|
||||||
|
redis.set("daily_" + str(i['qid']), text)
|
||||||
|
|
||||||
if i['gid'] == "on":
|
if i['gid'] == "on":
|
||||||
await app.send_message(int(i['qid']), i['message'])
|
await app.send_message(int(i['qid']), i['message'])
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user