fix 药丸签到1.1增加签到历史

This commit is contained in:
thsrite
2023-11-21 18:21:19 +08:00
parent bcc29ec389
commit 4962cce0d2
2 changed files with 231 additions and 119 deletions

View File

@@ -263,7 +263,7 @@
"InvitesSignin": {
"name": "药丸签到",
"description": "药丸论坛签到。",
"version": "1.0",
"version": "1.1",
"icon": "invites.png",
"color": "#FFFFFF",
"author": "thsrite",

View File

@@ -24,7 +24,7 @@ class InvitesSignin(_PluginBase):
# 主题色
plugin_color = "#FFFFFF"
# 插件版本
plugin_version = "1.0"
plugin_version = "1.1"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -157,6 +157,17 @@ class InvitesSignin(_PluginBase):
text=f"累计签到 {totalContinuousCheckIn} \n"
f"剩余药丸 {money}")
# 读取历史记录
history = self.get_data('history') or []
history.append({
"date": datetime.today().strftime('%Y-%m-%d %H:%M:%S'),
"totalContinuousCheckIn": totalContinuousCheckIn,
"money": money
})
# 保存签到历史
self.save_data(key="history", value=history)
def get_state(self) -> bool:
return self._enabled
@@ -172,131 +183,232 @@ class InvitesSignin(_PluginBase):
拼装插件配置页面需要返回两块数据1、页面配置2、数据结构
"""
return [
{
'component': 'VForm',
'content': [
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VSwitch',
'props': {
'model': 'enabled',
'label': '启用插件',
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VSwitch',
'props': {
'model': 'notify',
'label': '开启通知',
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VSwitch',
'props': {
'model': 'onlyonce',
'label': '立即运行一次',
}
}
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 6
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'cron',
'label': '签到周期'
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 6
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'cookie',
'label': '药丸cookie'
}
}
]
}
]
},
{
'component': 'VRow',
{
'component': 'VForm',
'content': [
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VCol',
'component': 'VSwitch',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'type': 'info',
'variant': 'tonal',
'text': '整点定时签到失败?不妨换个时间试试'
}
}
]
'model': 'enabled',
'label': '启用插件',
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VSwitch',
'props': {
'model': 'notify',
'label': '开启通知',
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
},
'content': [
{
'component': 'VSwitch',
'props': {
'model': 'onlyonce',
'label': '立即运行一次',
}
}
]
}
]
}
], {
"enabled": False,
"onlyonce": False,
"notify": False,
"cookie": "",
"cron": "0 9 * * *"
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 6
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'cron',
'label': '签到周期'
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 6
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'cookie',
'label': '药丸cookie'
}
}
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'type': 'info',
'variant': 'tonal',
'text': '整点定时签到失败?不妨换个时间试试'
}
}
]
}
]
}
]
}
], {
"enabled": False,
"onlyonce": False,
"notify": False,
"cookie": "",
"cron": "0 9 * * *"
}
def get_page(self) -> List[dict]:
# 查询同步详情
historys = self.get_data('history')
if not historys:
return [
{
'component': 'div',
'text': '暂无数据',
'props': {
'class': 'text-center',
}
}
]
if not isinstance(historys, list):
historys = [historys]
# 按照签到时间倒序
historys = sorted(historys, key=lambda x: x.get("date") or 0, reverse=True)
# 签到消息
sign_msgs = [
{
'component': 'tr',
'props': {
'class': 'text-sm'
},
'content': [
{
'component': 'td',
'props': {
'class': 'whitespace-nowrap break-keep text-high-emphasis'
},
'text': history.get("date")
},
{
'component': 'td',
'text': history.get("totalContinuousCheckIn")
},
{
'component': 'td',
'text': history.get("money")
}
]
} for history in historys
]
# 拼装页面
return [
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VTable',
'props': {
'hover': True
},
'content': [
{
'component': 'thead',
'content': [
{
'component': 'th',
'props': {
'class': 'text-start ps-4'
},
'text': '时间'
},
{
'component': 'th',
'props': {
'class': 'text-start ps-4'
},
'text': '连续签到次数'
},
{
'component': 'th',
'props': {
'class': 'text-start ps-4'
},
'text': '剩余药丸'
},
]
},
{
'component': 'tbody',
'content': sign_msgs
}
]
}
]
}
]
}
]
pass
def stop_service(self):