Skip to content

Repository files navigation

Daily-Attendance-plugin

📅 Daily-Attendance-plugin

✨ Yunzai-Bot 每日运势插件,支持运势生成、等级系统、随机一言、搞怪黄历等丰富功能!

插件 by QingYing & AI


📦 简介

Daily-Attendance-plugin 是一个为 Yunzai-Bot 开发的每日运势插件,提供运势生成、等级系统、随机一言、搞怪黄历等功能。通过本插件,用户可以每日签到获取运势,累积经验值提升等级,享受丰富的互动体验。


🌟 功能特点

  • 每日运势生成 - 基于用户ID和日期的伪随机运势,确保每日不同
  • 等级系统 - 经验值累积,50个等级等你挑战
  • 随机一言 - 来自一言API的精选语录
  • 搞怪黄历 - 每日宜忌事项,趣味十足
  • 时间问候 - 根据当前时间智能问候
  • 动态背景 - 来自API的随机背景图片
  • 美观渲染 - 基于HTML模板的精美展示
  • JSON配置 - 所有数据配置化,便于修改和维护
  • Base64 图片发送 - 图片直接以 base64 格式发送,无需存储到磁盘,提升性能
  • 自动清理 - 快照数据自动清理,节省磁盘空间

🚀 安装方法

1. 克隆仓库

Gitee(国内推荐)

git clone https://gitee.com/qingyingxbot/Daily-Attendance-plugin.git ./plugins/Daily-Attendance-plugin/

GitHub

git clone https://github.com/QingYingX-Bot/Daily-Attendance-plugin.git ./plugins/Daily-Attendance-plugin/

2. 安装依赖

pnpm install --filter=Daily-Attendance-plugin

📝 使用说明

基础命令

  • #今日运势#jrys#孑然一身 —— 获取今日运势
  • #运势统计#ystj —— 查看个人统计信息
  • #运势帮助#ysbz —— 查看本帮助
  • #运势数据#yssj —— 查询当前群聊今日签到情况
  • #运势总数据#yszsj —— 查询总的今日签到情况(仅当日数据)
  • #运势排行榜#ysphb —— 查看全局运势排行榜
  • #一言统计#yytj —— 查看备用一言库统计信息

⚙️ 配置说明

配置文件说明

插件采用 JSON 文件配置方式,所有配置数据存储在 config/ 目录下:

  • config/levelData.json - 等级数据配置
  • config/fortuneData.json - 运势描述配置
  • config/timeGreetings.json - 时间问候语配置
  • config/Things.json - 黄历事件配置(包含宜忌事项)
  • config/apis.json - API 地址配置
  • config/specialDates.json - 特殊日期配置(可选,用于设置特定日期的运势、一言等)
  • config/hitokotoBackup.json - 备用一言库(自动生成,无需手动配置)

配置示例

等级数据配置(config/levelData.json)

[
  { "level": 0, "exp": 0, "name": "不知名杂鱼" },
  { "level": 1, "exp": 500, "name": "荒野漫步者" },
  { "level": 2, "exp": 1000, "name": "拓荒者" }
]

运势描述配置(config/fortuneData.json)

[
  { "range": [0, 4], "description": "走平坦的路但会摔倒的程度" },
  { "range": [5, 14], "description": "吃泡面会没有调味包的程度" }
]

API 配置(config/apis.json)

{
  "HITOKOTO_API": "https://v1.hitokoto.cn/",
  "BG_API": "https://t.alcy.cc/fj"
}

🗂️ 项目结构

Daily-Attendance-plugin/
├── config/                 # 配置文件目录
│   ├── levelData.json     # 等级数据配置
│   ├── fortuneData.json   # 运势描述配置
│   ├── timeGreetings.json # 时间问候语配置
│   ├── Things.json        # 黄历事件配置
│   ├── apis.json          # API 地址配置
│   ├── specialDates.json  # 特殊日期配置(可选)
│   └── hitokotoBackup.json # 备用一言库(自动生成)
├── controllers/            # 控制器模块
│   └── fortuneController.js # 运势控制器
├── services/              # 服务层模块
│   ├── dataManager.js     # 数据管理服务
│   └── snapshotCleanup.js # 快照清理服务
├── core/                  # 核心功能模块
│   ├── utils.js           # 工具函数
│   ├── logger.js          # 日志工具
│   └── path.js            # 路径管理
├── resources/             # 资源文件目录
│   └── templates/         # HTML 模板目录
│       └── attendance.html # 运势展示模板
├── data/                  # 数据存储目录
│   ├── user_signs/        # 用户签到数据
│   ├── snapshot/          # 快照数据(每日自动清理)
│   └── expired/           # 过期用户数据(2个月未签到)
├── index.js              # 插件入口文件
├── package.json          # 项目配置文件
└── README.md             # 说明文档

💾 数据存储说明

用户数据存储

  • 位置data/user_signs/{user_id}.json
  • 结构
{
  "exp": 1500,
  "signDays": 10,
  "lastSign": "2024-01-01",
  "consecutiveDays": 0
}

快照数据存储

  • 位置data/snapshot/
  • 命名{userId}_{date}.json
  • 清理:每天00:00 定时清空

🔧 开发说明

主要模块

  • fortuneController.js - 插件主控制器,负责指令注册与主流程调度
  • dataManager.js - 用户数据管理,负责读写用户签到数据
  • snapshotCleanup.js - 每日快照清理服务
  • 运势图片通过 Yunzai 标准渲染器生成
  • utils.js - 等级、运势、问候语等业务纯函数
  • logger.js - 统一日志工具
  • path.js - 路径管理工具
  • attendance.html - 运势展示模板

配置修改

所有配置数据都存储在 config/ 目录下的 JSON 文件中,修改后重启插件即可生效。


💬 问题反馈

如有任何问题,欢迎提交 Issue | GitHub Issues 反馈。

📄 许可证

本项目采用 MIT 许可证


免责声明:本插件仅供娱乐使用,运势内容为随机生成,请勿迷信。

About

Daily-Attendance-plugin 是一个为 Yunzai-Bot 开发的每日签到插件

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages