koishi-plugin-message-counter 是一个基于 Koishi 的机器人插件,用于统计群聊中用户的发言次数,并生成各种排行榜,包括日榜、周榜、月榜、年榜、总榜和圣龙王榜。🐉
该插件可以自动推送排行榜,也可以手动查询。还可以选择是否统计机器人自己的发言,以及是否禁言每天发言最多的用户(即龙王)。🤐
该插件使用了 node-schedule 来实现定时任务,以及 Koishi 的数据库接口来存储用户数据。📚
前往 Koishi 插件市场添加该插件即可 🚀
- 该插件仅记录群聊消息,私聊消息不会被统计。🙈
- 该插件建议为指令添加指令别名,以方便用户快速查询。🚀
- 水平柱状图样式 3,可以为用户添加自定义图标,可在
data/messageCounterIcons
文件夹下添加用户图标,文件名为 userId,例如:1234567890.png
。🎨- 同一个用户可以添加多个图标,会同时显示。多个图片请使用文件名形如:
1234567890-1.png
,1234567890-2.png
(防止文件名相同)。🎨
- 同一个用户可以添加多个图标,会同时显示。多个图片请使用文件名形如:
- 水平柱状图样式 3,可以为用户添加自定义水平柱状条,可在
data/messageCounterBarBgImgs
文件夹下添加水平柱状条,图片大小请最好设置宽高为 850*50,文件名为 userId,例如:1234567890.png
。🎨- 同一个用户可以添加多个水平柱状条,会随机选择一个。多个图片请使用文件名形如:
1234567890-1.png
,1234567890-2.png
(防止文件名相同)。🎨
- 同一个用户可以添加多个水平柱状条,会随机选择一个。多个图片请使用文件名形如:
添加完图片后,记得重启插件哦 ~
-
defaultMaxDisplayCount
:排行榜默认显示的人数,默认为20
。👥 -
isTimeInfoSupplementEnabled
:是否在显示排行榜时补充时间信息,默认值为true
。 -
isUserMessagePercentageVisible
:是否在排行榜中显示用户消息占比,默认值为false
。 -
hiddenUserIdsInLeaderboard
:在排行榜中隐藏的用户 ID 列表,默认为空。👤 -
hiddenChannelIdsInLeaderboard
:在排行榜中隐藏的频道 ID 列表,默认为空。📡
-
isBotMessageTrackingEnabled
:是否统计机器人自己发送的消息,默认为false
。🤖
-
isTextToImageConversionEnabled
:是否开启将文本转为图片的功能(可选),如需启用,需要启用markdownToImage
服务。🤖 -
isLeaderboardToHorizontalBarChartConversionEnabled
:是否开启排行榜转为水平柱状图的功能(可选),如需启用,需要启用markdownToImage
服务。🤖 -
imageType
:图片类型,可选值为png
、jpeg
、webp
,默认为png
。🤖 -
width
:图片宽度,默认为600
。🤖 -
isFirstProgressFullyVisible
:横向柱状图第一名的进度条是否占满(对样式 3 无效)。🤖 -
maxHorizontalBarLabelLengthBeforeTruncation
:横向柱状图标签最大长度,超过则截断,默认为10
。🤖 -
waitUntil
:(仅样式 3)等待页面加载的事件。🤖 -
shouldMoveIconToBarEndLeft
:(仅样式 3)是否将自定义图标移动到水平柱状条末端的左侧(默认则是放在用户名的右侧)。🤖 -
horizontalBarBackgroundOpacity
:(仅样式 3)水平柱状图背景图片不透明度,默认为0.6
。🤖 -
horizontalBarBackgroundFullOpacity
:(仅样式 3)水平柱状图背景图片整条的不透明度,默认为0
。🤖 -
horizontalBarChartStyle
:水平柱状图样式,可选值为1
、2
、3
,默认为3
。🤖
-
autoPush
:是否自动推送排行榜,默认为false
。👌-
shouldSendDailyLeaderboardAtMidnight
:是否在每日 0 点自动发送排行榜,默认为true
。🌞 -
dailyScheduledTimers
:每日定时发送用户今日发言排行榜的时间列表(中国北京时间),例如08:00
、18:45
。如果开启上面的选项,则自动包含 0 点。🌞 -
isGeneratingRankingListPromptVisible
:是否在生成排行榜时显示提示信息,默认为true
。🌞 -
leaderboardGenerationWaitTime
:提示消息发送后,自动生成排行榜的等待时间,单位是秒,默认为3
。⌚️ -
pushChannelIds
:启用自动推送排行榜功能的频道列表。⌚️ -
shouldSendLeaderboardNotificationsToAllChannels
:是否向所有频道推送排行榜,默认为false
。🌐 -
excludedLeaderboardChannels
:不推送排行榜的频道列表,默认为false
。🌐 -
delayBetweenGroupPushesInSeconds
:群组推送之间的延迟时间,单位是秒,默认为5
。⌚️ -
groupPushDelayRandomizationSeconds
:群组推送延迟时间的随机化时间,单位是秒,默认为10
。⌚️
-
-
enableMostActiveUserMuting
:是否禁言每天发言最多的用户,即龙王,默认为false
。🙊-
dragonKingDetainmentTime
:关押龙王的等待时间,单位是秒,默认为5
。🙊 -
detentionDuration
:关押时长,单位是天,默认为1
。🙊 -
muteChannelIds
:启用关押龙王功能的频道列表。⌚️
-
-
messageCounter
:查看 messageCounter 帮助。❓ -
messageCounter.初始化
:初始化,清空数据表,将插件还原,需要权限等级 3 级及以上。🙏 -
messageCounter.查询 [targetUser]
:查询指定用户的发言次数信息(次数[排名])。🔍-
--yesterday
:昨日发言次数[排名]。⬅️ -
-d
:今日发言次数[排名]。🌞 -
-w
:本周发言次数[排名]。🌙 -
-m
:本月发言次数[排名]。📅 -
-y
:今年发言次数[排名]。🎊 -
-t
:总发言次数[排名]。👑 -
--ydag
:跨群昨日发言次数[排名]。👑 -
--dag
:跨群今日发言次数[排名]。👑 -
--wag
:跨群本周发言次数[排名]。👑 -
--mag
:跨群本月发言次数[排名]。👑 -
--yag
:跨群今年发言次数[排名]。👑 -
-a
:跨群发言总次数[排名]。🐲
-
-
messageCounter.排行榜 [number]
:发言排行榜,可以指定显示的人数,也可以使用以下选项来指定排行榜的类型:🏆-
--whites
:白名单,只显示白名单用户,可用空格
、中英文逗号
和、
作为分隔符。👼 -
--blacks
:黑名单,不显示黑名单用户,可用空格
、中英文逗号
和、
作为分隔符。👿 -
--yesterday
:昨日发言榜。⬅️ -
-d
:今日发言榜。🌞 -
-w
:本周发言榜。🌙 -
-m
:本月发言榜。📅 -
-y
:今年发言榜。🎊 -
-t
:总发言榜。👑 -
--ydag
:跨群昨日发言榜。👑 -
--dag
:跨群今日发言榜。👑 -
--wag
:跨群本周发言榜。👑 -
--mag
:跨群本月发言榜。👑 -
--yag
:跨群今年发言榜。👑 -
--dragon
:圣龙王榜,显示每个用户在所有群中的总发言次数。🐲 - 若未指定排行榜类型,则默认为今日发言榜。💬
-
-
messageCounter.群排行榜 [number:number]
:各个群聊的发言排行榜,可以指定显示的数量,也可以使用以下选项来指定排行榜的类型:🏆-
--whites
:白名单,只显示白名单群,可用空格
、中英文逗号
和、
作为分隔符。👼 -
--blacks
:黑名单,不显示黑名单群,可用空格
、中英文逗号
和、
作为分隔符。👿 -
-d
:今日发言榜。🌞 -
-w
:本周发言榜。🌙 -
-m
:本月发言榜。📅 -
-y
:今年发言榜。🎊 -
-t
:总发言榜。👑 -
--yesterday
:昨日发言榜。⬅️ - 若未指定排行榜类型,则默认为今日发言榜。💬
-
特此感谢 nullbczd 大人!喵 ~!!!
- Koishi - 机器人框架 🤖
- Akisa - Akisa 大人我爱你!💖
- node-schedule - 定时任务库 🕒
- shangxue - 感谢上学大人对推送所有频道配置项的建议!👍
- nullbczd - 感谢 nullbczd 大人对水平柱状图样式等功能的贡献!👍
- 956758505
MIT License © 2024
希望您喜欢这款插件! 💫
如有任何问题或建议,欢迎联系我哈~ 🎈