通用抽奖模块 - 使用 Dashboard 可视化管理、群聊报名、开奖动画和广播通知
Project description
ErisPulse-Raffle
通用抽奖模块 - 基于 ErisPulse Dashboard 可视化管理,支持群聊关键词报名、开奖动画、广播通知。
功能
- Dashboard 管理 - 可视化创建/编辑活动、管理参与者、黑白名单、一键开奖
- 关键词报名 - 用户在群聊中发送指定关键词即可参与,无需 @机器人
- 多平台支持 - 通过适配器同时支持云湖、Telegram、OneBot 等平台
- 开奖撤回 - 开奖后可撤回结果,恢复为报名中状态
- 活动通知 - 从 Dashboard 向任意平台/会话发送活动开始通知(支持多目标批量发送)
- 开奖广播 - 开奖后自动向所有关联群聊广播结果
- 富文本降级 -
/raffle命令根据平台能力自动选择 Html / Markdown / 纯文本 - 模板自定义 - 所有回复消息(报名、广播、通知等)均可自定义
安装
epsdk install Raffle
使用
群聊报名
用户在已关联的群聊中发送活动关键词即可自动报名:
抽奖 # 发送配置的关键词即可参与
查看活动
/raffle # 查看自己已参与的活动 + 当前群聊的活动
/活动 # 同上,中文别名
Dashboard 管理
安装 ErisPulse-Dashboard 后,在侧边栏「工具」分组中找到「抽奖管理」。
活动配置项
| 配置 | 说明 |
|---|---|
| 活动 ID | 唯一标识,留空自动生成 |
| 活动名称 | 显示名称 |
| 活动描述 | 简短描述 |
| 开奖人数 | 抽取的中奖者数量 |
| 触发关键词 | 逗号分隔,用户发送包含关键词的消息即视为报名 |
| 自动确认参与 | 开启后跳过「待录入」状态,直接加入已确认组 |
| 白名单模式 | 仅白名单中的用户可以参与 |
| 允许的群聊 | 指定哪些平台/群聊可以参与本次活动 |
通知功能
在 Dashboard 中点击活动旁的铃铛按钮,可向指定目标发送活动通知:
- 选择平台、会话类型(私聊/群聊/频道/服务器/话题)、目标 ID
- 可选指定机器人账号(多 Bot 场景)
- 支持添加自定义备注内容(追加到模板末尾)
- 支持多目标批量发送
- 发送历史记录 + 一键重发
回复模板
所有回复消息均可在 Dashboard「回复模板」区域自定义:
| 模板 | 触发场景 | 变量 |
|---|---|---|
| 报名成功 | 用户首次成功报名 | {name}, {count}, {activity_name} |
| 已报名提示 | 用户重复报名 | {name} |
| 待确认提示 | 手动确认模式下报名 | {name} |
| 开奖广播 | 开奖后广播到关联群聊 | {activity_name}, {winner_names}, {winner_count}, {total_participants} |
| 活动通知 | 从 Dashboard 发送通知 | {activity_name}, {description}, {draw_count}, {keywords} |
| 黑名单拦截 | 黑名单用户尝试报名 | - |
| 非白名单拦截 | 白名单模式下非白名单用户尝试 | - |
界面
API
模块注册以下 HTTP API(需 Dashboard Token 认证):
| 路由 | 方法 | 说明 |
|---|---|---|
/Raffle/api/platforms |
GET | 获取已注册平台列表 |
/Raffle/api/settings |
GET/PUT | 读取/更新模块设置 |
/Raffle/api/activities |
GET/POST | 列出/创建活动 |
/Raffle/api/activities/{id} |
GET/PUT/DELETE | 查看/更新/删除活动 |
/Raffle/api/activities/{id}/participants |
GET | 获取参与者列表 |
/Raffle/api/activities/{id}/participants/{uid} |
PUT/DELETE | 确认/撤回/移除参与者 |
/Raffle/api/activities/{id}/draw |
POST | 开奖 |
/Raffle/api/activities/{id}/draw/revert |
POST | 撤回开奖 |
/Raffle/api/activities/{id}/result |
GET | 获取开奖结果 |
/Raffle/api/activities/{id}/blacklist |
GET/PUT | 黑名单管理 |
/Raffle/api/activities/{id}/whitelist |
GET/PUT | 白名单管理 |
/Raffle/api/activities/{id}/notify |
POST | 发送活动通知 |
/Raffle/api/activities/{id}/notify/history |
GET | 获取通知发送历史 |
/Raffle/api/activities/{id}/notify/resend/{hid} |
POST | 重发通知 |
命令
| 命令 | 别名 | 说明 |
|---|---|---|
/raffle |
/活动 |
查看已参与的活动和当前群聊的活动 |
许可证
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file erispulse_raffle-1.0.0.tar.gz.
File metadata
- Download URL: erispulse_raffle-1.0.0.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0283daef588542be7f806774e87a76aa1771fdae65984948cd883499e32eb82
|
|
| MD5 |
6e9248f600624412e4a715ba34d3487f
|
|
| BLAKE2b-256 |
425b5e5b0a41c011430e3f66d6ed9ba9639e3f6cdf073fef8cdb33bfbc3dea70
|
Provenance
The following attestation bundles were made for erispulse_raffle-1.0.0.tar.gz:
Publisher:
python-publish.yml on ErisPulse/ErisPulse-Raffle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
erispulse_raffle-1.0.0.tar.gz -
Subject digest:
a0283daef588542be7f806774e87a76aa1771fdae65984948cd883499e32eb82 - Sigstore transparency entry: 1563125392
- Sigstore integration time:
-
Permalink:
ErisPulse/ErisPulse-Raffle@fa13f283eed5373037d1603b87ae96d56d8c5bed -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ErisPulse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fa13f283eed5373037d1603b87ae96d56d8c5bed -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file erispulse_raffle-1.0.0-py3-none-any.whl.
File metadata
- Download URL: erispulse_raffle-1.0.0-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77774922824b7badd0d4a9c5a5a1cdbc19983126234650def3eb3215c2454b8f
|
|
| MD5 |
133e84aae3f54d7b4cc202da2f8abe1f
|
|
| BLAKE2b-256 |
aac679878e8a583c1bbe8a4969156011042712a7f1041824edbc2a95d52e07b8
|
Provenance
The following attestation bundles were made for erispulse_raffle-1.0.0-py3-none-any.whl:
Publisher:
python-publish.yml on ErisPulse/ErisPulse-Raffle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
erispulse_raffle-1.0.0-py3-none-any.whl -
Subject digest:
77774922824b7badd0d4a9c5a5a1cdbc19983126234650def3eb3215c2454b8f - Sigstore transparency entry: 1563125396
- Sigstore integration time:
-
Permalink:
ErisPulse/ErisPulse-Raffle@fa13f283eed5373037d1603b87ae96d56d8c5bed -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ErisPulse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fa13f283eed5373037d1603b87ae96d56d8c5bed -
Trigger Event:
workflow_dispatch
-
Statement type: