需求

为了统计群友黑本的记录,所以采用这个形式来快捷管理与统计

形如这样的数据

  1. 日期

  2. 黑本人

  3. 掉落简写

  4. 工资

  5. 副本名称

技术选型

QQ机器人: LLOneBot

后端语言: Kotlin1.93

后端框架: ChaoBot(自研) TabooLib

前端框架: Vue3.4.37

前端UI库: Vue DevUI

数据管理平台: 飞书

为了让数据更加方便管理,所以数据部分并不存在服务器内

服务器仅做统计,管理,绘制,发布

截图框架: Selenium

设计流程

  1. 首先LLOneBot接受消息给 ChaoBot传递指令

  2. ChaoBot 携带数据 通过Selenium进行对网页绘制

  3. 并返回图片

  4. ChaoBot 返回图片给 LLOneBot

  5. LLOneBot实现QQ协议 进行发布消息

数据角度

首先要解决数据问题,开始对接飞书,准备账号与表格

账号已经有了 复用,主要是表格因为飞书的数据都依赖表格

🤓👆 想起来飞书的表格可以做统计与绘图 那直接进行截图就可以了

这破东西竟然是限免,还是自己写吧!

https://xv5zac7cto.feishu.cn/base/UR2gbq7LDact7qsDTn2cVQo8n4c?table=tblf9dHHx8b8GWly&view=vewpvjajPr

利用工具查询一下 25PT冷龙峰的黑本记录

请求体

{
  "view_id": "vewpvjajPr",
  "sort": [
    {
      "field_name": "工资",
      "desc": true
    }
  ],
  "filter": {
    "conjunction": "and",
    "conditions": [
      {
        "field_name": "目标副本",
        "operator": "contains",
        "value": [
          "25PT冷龙峰"
        ]
      }
    ]
  },
  "automatic_fields": true
}

返回值

数据已脱敏

{
  "code": 0,
  "data": {
    "has_more": false,
    "items": [
      {
        "created_by": {
          "avatar_url": "...",
          "email": "",
          "en_name": "枫溪",
          "id": "ou_a917b2e23f*************",
          "name": "枫溪"
        },
        "created_time": 1723267679000,
        "fields": {
          "工资": 4600,
          "掉落简写": [
            {
              "text": "1伤4疗 特效小荷翻",
              "type": "text"
            }
          ],
          "目标副本": [
            {
              "text": "25PT冷龙峰",
              "type": "text"
            }
          ],
          "记录日期": 1722787200000,
          "黑本人": [
            {
              "text": "杨逸飞",
              "type": "text"
            }
          ]
        },
        "last_modified_by": {
          "avatar_url": "...",
          "email": "",
          "en_name": "枫溪",
          "id": "ou_a917b2e23f*************",
          "name": "枫溪"
        },
        "last_modified_time": 1723268498000,
        "record_id": "rec9bKivBs"
      },
      {
        "created_by": {
          "avatar_url": "...",
          "email": "",
          "en_name": "枫溪",
          "id": "ou_a917b2e23f*************",
          "name": "枫溪"
        },
        "created_time": 1723267679000,
        "fields": {
          "工资": 3645,
          "掉落简写": [
            {
              "text": "1伤3疗1御 水特效盒子",
              "type": "text"
            }
          ],
          "目标副本": [
            {
              "text": "25PT冷龙峰",
              "type": "text"
            }
          ],
          "记录日期": 1722873600000,
          "黑本人": [
            {
              "text": "柳夭夭",
              "type": "text"
            }
          ]
        },
        "last_modified_by": {
          "avatar_url": "...",
          "email": "",
          "en_name": "枫溪",
          "id": "ou_a917b2e23f*************",
          "name": "枫溪"
        },
        "last_modified_time": 1723268454000,
        "record_id": "rec4fqG9O2"
      }
    ],
    "total": 2
  },
  "msg": "success"
}

准备展示页面

采用网页然后利用截图来实现

传递内容: