Skip to content

MagicalAstrogy/VoteCalc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoteCalc - Discord 评价统计机器人 🎀

这是悠纪开发的一个用于 Discord 评价统计的小工具。

项目简介 📊

这个项目主要是帮助 Discord 服务器统计论坛频道中的反应投票情况的。在组织赛事投票的时候,存在某些用户的刷票情况,以及跨服务器的作品评价统计的问题,这个工具就是为了解决这些问题而生的~

主要功能 ✨

  • 智能投票统计:自动获取指定帖子的最高反应表情和投票用户
  • 有效用户筛选:根据最少投票数要求,筛选出真正参与的有效用户
  • 分组作品支持:支持将多个相关帖子视为同一作品进行统计(用 ~ 分隔)
  • 排序输出:结果按有效评价数量从多到少排序,一目了然呢

使用方法 🛠️

配置文件设置

首先需要创建 appsettings.json 配置文件(可以参考 appsettings.example.json):

{
  "Discord": {
    "Token": "你的机器人Token",
    "Proxy": "代理地址(可选)",
    "TestGuildIds": [服务器ID列表],
    "WhitelistUserIds": [白名单用户ID],
    "AllowedRoles": ["允许使用的角色名称"]
  }
}

斜杠命令使用

在 Discord 中使用 /analyze 命令:

/analyze urls:<Discord帖子链接> [min_votes:3] [output_users:false]

参数说明

  • urls:逗号分隔的 Discord 帖子链接
    • 支持单个链接:https://discord.com/channels/服务器ID/频道ID
    • 支持汇总帖子:https://discord.com/channels/服务器ID/频道ID/帖子ID
    • 支持多个链接:用逗号 , 分隔
    • 支持分组作品:用波浪号 ~ 连接同一作品的多个链接
  • min_votes:有效投票所需的最少投票作品数(默认为3)
  • output_users:是否输出有效用户列表(默认否)
  • global_visible: 输出内容是否所有人可见(默认否)
  • valid_reactions: 筛选哪些评价表情是有效的,以逗号分隔(默认不启用)
  • forum_weight:在统计上给特定分区的作品乘上权重,名字不需要严格匹配,只需要包含。例:{"纯净区": 8.0, "男性向": 1.0, "小众区": 5.0}
  • role_weight: json格式编码的,各个用户组的权重列表,例:{"黑百合": 3,"创作者": 1.5,"赛博议员": 2, "已验证": 1.01}(默认不启用)

使用示例

/analyze urls:https://discord.com/channels/123/456,https://discord.com/channels/123/789

分组作品示例(将两个帖子视为同一作品):

/analyze urls:https://discord.com/channels/123/456~https://discord.com/channels/123/789

技术架构 🏗️

这个项目使用了以下技术栈:

  • C# .NET 8.0:主要开发语言
  • DSharpPlus:Discord API 的 .NET 封装库
  • Slash Commands:现代化的 Discord 命令交互方式

部署说明 🚀

手动部署

# 克隆项目
git clone https://github.com/你的用户名/VoteCalc.git

# 进入项目目录
cd VoteCalc

# 构建项目
dotnet build

# 运行项目
dotnet run --project VoteCalc/VoteCalc.csproj

注意事项 ⚠️

  • 机器人需要有读取消息和反应的权限
  • 大量消息统计可能需要一些时间,请耐心等待
  • 确保配置文件中的 Token 安全,不要泄露哦

贡献指南 💝

如果你想为这个项目做贡献,我会很开心的呢!请遵循以下步骤:

  1. Fork 这个仓库
  2. 创建你的功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

如果有任何问题,可以在 Issues 中提出,我会尽快回复的~

许可证 📄

这个项目使用 AGPL 3.0 许可证 - 详情请查看 LICENSE 文件

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages