公共的插件数据收集分析平台

注意细节的朋友可能注意到了,我主要维护的两大插件: cs-lookupmc-server-status 最近添加了一个 匿名数据收集 的功能:

此功能由我基于开源平台 umami 搭建,数据收集与发送的代码由不愿意透露姓名的大佬 173gvQY8MFaDk9Jt 编写。

整个平台的功能包括:

  • 收集用户触发时的指令和参数
  • 收集用户触发时的环境 (koishi 版本, 插件版本, koishi 运行的系统的版本)
  • 收集用户的地理位置 (精确到城市)
    类似这样:

    (网页就是指令,来源域名和浏览器可以无视)

于是乎,某个不知名小人物准备将这个功能开放给广大 口:male_sign:一洗 开发者门使用,如何使用呢,很简单,首先,邮箱联系 admin@itzdrli.com 申请注册一个账号 (提供你想要的用户名和你的github/npmjs用户名即可,会为你随机生成一个新密码), 然后进入 https://data.itzdrli.com/ 登陆,然后前往设置


点击右上角添加网站,然后名字为你的插件的名字 (如 cs-lookup),网址随意 (后续用不着)

创建完成后,点击对应的 编辑 按钮

然后复制 网站 ID

然后前往 GitHub - itzdrli/umami-for-koishi 下载/复制里面的 umami.ts 并添加到你的插件根目录:


并修改里面的 website 值至刚刚复制的 网站 ID

你可以对其他部分进行修改,但是请不要修改 User-Agent 中的内容,否则可能无法被平台接收到数据

然后返回你的插件代码,新增一个 import

import Umami from './umami'; // -> 或者是任何你存放 `umami.ts` 的地方

并在需要进行数据收集的地方 (比如触发指令时) 加上这个一行(几行):

Umami.send({
  ctx,
  url: '/getid', // -> 换成你的指令或者事件啥的
  urlSearchParams: {
    args: session.argv.args?.join(', '),
    ...(session.argv.options || {}),
  }
});

就像这样:


然后就可以用辣

这样,当用户触发你的条件后,其相关信息就会被记录并发送至 data.itzdrli.com ,然后你可以登陆你的账号进行查看并分析你的用户辣

隐私政策

2 个赞

好好好好好

2 个赞

我怕我用了之后陷入深深的自卑

2 个赞

不会,小游戏插件的用户活跃度还是很高的

1 个赞

有没有考虑继续深入一点,比如做一个错误日志的收集?

1 个赞

可以把这里的 url 换成 error 之类的,下面的 args 可以换成 error_log 之类的,然后把错误日志发上去进行收集了

就像这样:

Umami.send({
  ctx,
  url: '/error',
  urlSearchParams: {
    error_log: error // 原本要 logger.error 输出的内容
  }
});
1 个赞

我知道了,就是需要手动调用么()还以为和其他日志收集框架一样快速集成的

1 个赞

是这样的,所以快来用啊()

1 个赞

建议写一个 umami 服务插件

试过,太菜,写不出来,帮我.jpg