diff --git a/defs/db2.py b/defs/db2.py
index cc1dd84..d2ec978 100644
--- a/defs/db2.py
+++ b/defs/db2.py
@@ -1,6 +1,7 @@
import sqlite3
import re
import traceback
+from datetime import datetime
from shutil import copyfile
import genshinstats as gs
@@ -132,6 +133,17 @@ async def OwnerCookies(uid):
return cookies
+async def GetAward(Uid):
+ try:
+ gs.set_cookie(await OwnerCookies(Uid))
+ return gs.fetch_endpoint("https://hk4e-api-os.mihoyo.com/event/ysledgeros/month_info",
+ params=dict(uid=Uid, region=gs.utils.recognize_server(Uid),
+ month=datetime.now().month, lang='zh=cn'))
+ except:
+ traceback.print_exc()
+ print("访问失败,请重试!")
+
+
async def MysSign(Uid):
try:
gs.set_cookie(await OwnerCookies(Uid))
diff --git a/defs/mihoyo.py b/defs/mihoyo.py
index 3e98af3..897840e 100644
--- a/defs/mihoyo.py
+++ b/defs/mihoyo.py
@@ -11,7 +11,7 @@ from wordcloud import WordCloud
from PIL import Image, ImageDraw, ImageFilter
from pyrogram.types import Message
-from defs.db2 import MysSign, GetDaily, cacheDB, GetMysInfo, errorDB, GetInfo, GetSpiralAbyssInfo
+from defs.db2 import MysSign, GetDaily, cacheDB, GetMysInfo, errorDB, GetInfo, GetSpiralAbyssInfo, GetAward
from defs.event import ys_font
from genshinstats.daily import DailyRewardInfo
@@ -65,6 +65,15 @@ avatar_json = {
"Kokomi": "珊瑚宫心海",
"Shenhe": "申鹤"
}
+award_json = {
+ "Mail": "邮件奖励",
+ "Events": "活动奖励",
+ "Adventure": "冒险奖励",
+ "Daily Activity": "每日活跃",
+ "Quests": "任务奖励",
+ "Spiral Abyss": "深境螺旋",
+ "Other": "其他",
+}
daily_im = '''
*数据刷新可能存在一定延迟,请以当前游戏实际数据为准{}
==============
@@ -75,6 +84,52 @@ daily_im = '''
探索派遣:
总数/完成/上限:{}/{}/{}
{}'''
+month_im = '''
+==============
+{}
+UID:{}
+==============
+本日获取原石:{}
+本日获取摩拉:{}
+==============
+本月获取原石:{}
+本月获取摩拉:{}
+==============
+上月获取原石:{}
+上月获取摩拉:{}
+==============
+原石收入组成:
+{}=============='''
+
+
+def trans_award(string: str) -> str:
+ if string in award_json:
+ return award_json[string]
+ else:
+ return string
+
+
+async def award(uid):
+ data = await GetAward(uid)
+ if data is None:
+ # 等级太低,或者不够活跃
+ return "暂无每月统计信息"
+ nickname = data['nickname']
+ day_stone = data['day_data']['current_primogems']
+ day_mora = data['day_data']['current_mora']
+ month_stone = data['month_data']['current_primogems']
+ month_mora = data['month_data']['current_mora']
+ lastmonth_stone = data['month_data']['last_primogems']
+ lastmonth_mora = data['month_data']['last_mora']
+ group_str = ''
+ for i in data['month_data']['group_by']:
+ group_str = group_str + \
+ trans_award(i['action']) + ":" + str(i['num']) + \
+ "(" + str(i['percent']) + "%)" + '\n'
+
+ im = month_im.format(nickname, uid, day_stone, day_mora, month_stone, month_mora,
+ lastmonth_stone, lastmonth_mora, group_str)
+ return im
# 签到函数
diff --git a/plugins/artifacts.py b/plugins/artifacts.py
index 296cad0..f4df5b3 100644
--- a/plugins/artifacts.py
+++ b/plugins/artifacts.py
@@ -4,7 +4,7 @@ from defs.artifacts import get_artifacts
async def artifacts_msg(client: Client, message: Message):
- name = message.text.replace('圣遗物详情', '').strip()
+ name = message.text.replace('圣遗物查询', '').strip()
text, url = await get_artifacts(name)
if url:
await message.reply_photo(photo=url, caption=text, quote=True)
diff --git a/plugins/mihoyo.py b/plugins/mihoyo.py
index da6b114..1a95776 100644
--- a/plugins/mihoyo.py
+++ b/plugins/mihoyo.py
@@ -8,7 +8,7 @@ from pyrogram import Client
from pyrogram.types import Message
from defs.db2 import deal_ck, selectDB, OpenPush, CheckDB, connectDB, deletecache
-from defs.mihoyo import sign, daily, draw_pic, draw_wordcloud
+from defs.mihoyo import sign, daily, draw_pic, draw_wordcloud, award
from ci import scheduler, app, admin_id
from defs.redis_load import redis
@@ -62,6 +62,15 @@ async def mihoyo_msg(client: Client, message: Message):
except Exception as e:
traceback.print_exc()
await message.reply("未找到uid绑定记录。", quote=True)
+ elif "每月统计" in text:
+ try:
+ uid = await selectDB(message.from_user.id, mode="uid")
+ uid = uid[0]
+ im = await award(uid)
+ await message.reply(im, quote=True)
+ except Exception as e:
+ traceback.print_exc()
+ await message.reply('未找到绑定信息', quote=True)
elif "签到" in text:
try:
uid = await selectDB(message.from_user.id, mode="uid")
@@ -134,8 +143,14 @@ async def mihoyo_qun_msg(client: Client, message: Message):
traceback.print_exc()
await message.reply("未绑定uid信息!")
elif "每月统计" in text:
- # need auth_key 不支持
- await message.reply('暂不支持!')
+ try:
+ uid = await selectDB(message.from_user.id, mode="uid")
+ uid = uid[0]
+ im = await award(uid)
+ await message.reply(im)
+ except Exception as e:
+ traceback.print_exc()
+ await message.reply('未找到绑定信息')
elif "签到" in text:
try:
uid = await selectDB(message.from_user.id, mode="uid")
diff --git a/plugins/process.py b/plugins/process.py
index b296f51..9fa1d1e 100644
--- a/plugins/process.py
+++ b/plugins/process.py
@@ -94,7 +94,7 @@ async def process_private_msg(client: Client, message: Message):
await fortunate_msg(client, message)
await log(client, message, '查询今日运势')
# 圣遗物查询
- if '圣遗物详情' in message.text:
+ if '圣遗物查询' in message.text:
await artifacts_msg(client, message)
await log(client, message, '查询圣遗物详情')
# 圣遗物评分
@@ -173,7 +173,7 @@ async def process_group_msg(client: Client, message: Message):
await set_fortunate_img(client, message)
await log(client, message, '设置运势角色')
# 圣遗物查询
- if text.startswith('圣遗物详情'):
+ if text.startswith('圣遗物查询'):
await artifacts_msg(client, message)
await log(client, message, '查询圣遗物详情')
# 圣遗物评分
diff --git a/plugins/start.py b/plugins/start.py
index 9c79e2a..dc95696 100644
--- a/plugins/start.py
+++ b/plugins/start.py
@@ -2,7 +2,7 @@ from ci import admin_id
from pyrogram import Client
from pyrogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton
-HELP_MSG_PRE = 'PaimonBot 0.3.3beta By Xtao-Labs\n\n' \
+HELP_MSG_PRE = 'PaimonBot 0.3.4beta By Xtao-Labs\n\n' \
'🔅 以下是小派蒙我学会了的功能(部分):\n'
HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器
② [天赋/今日天赋] 查看今日天赋材料和角色
@@ -20,8 +20,8 @@ HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器
💠 原魔查询 丘丘人
⑨ [食物查询] 查看食物资料
💠 食物查询 甜甜花/甜甜花酿鸡
-⑩ [武器查询 武器名] 查看武器资料
- 💠 武器查询 沐浴龙血的剑
+⑩ [圣遗物查询 武器名] 查看武器资料
+ 💠 圣遗物查询 逆飞的流星
======
(11) [原神黄历] 查看随机生成的原神黄历
(12) [活动列表] 查看今日活动列表和祈愿列表