OCR 打卡机器人:解决健身打卡群的统计难题

2024-10-29
来源:网络整理

可以OCR打孔卡并生成统计框图的机器人。

项目背景

由于疫情影响,大家都减少了不必要的外出,很多互联网行业的公司都在家办公。它带来的问题之一是大家外出锻炼的时间减少了,几乎所有人都呆在家里。许多人开始体重增加。于是我的朋友创建了一个健身打卡群。大家每天在家锻炼身体,然后在群里打卡。这是一件非常好的事情。唯一的缺点是打卡行为只能有意识地约束,无法很好地记录打卡了多少天?连续签到?也不可能准确地知道签到最积极的人并给予一些奖励。

这时,我想到了微信机器人。其实我很多年前就从事过微信机器人的工作。后来因为网页版掉线太频繁,所以一度放弃了。这次趁这个机会又在网上搜索了一下,看到iPad协议机器人支持非常好,于是我决定重操旧业,开发一款开放机器人。

项目需求支持关键字签到,例如:发送“签到”即可成功签到,并记录签到人的详细信息,包括昵称、备注、头像、签到时间等。入住成功,生成精美图卡,并包含入住日期统计图表。对群内分享的图片(保留截图等)进行OCR识别,提前自动签入关键词,支持机器人聊天,实现活跃群氛围项目

感谢提供的框架,该项目现在已经实现了上述所有功能,并且还添加了一些额外的小功能。这里分享一下实现过程中的几个功能点。

开发框架

首先,在编码之前,我们应该设计一些代码目录结构和基本框架。一个好的框架可以让开发变得更简单,提高效率。

|-tiny-bot |-Dockerfile |-README.md |-package.json |-src | |-api | | |-constellation.js | | |-turing.js | | |-unsplash.js | |-config.js | |-lib | | |-adDetect.js | | |-admin.js | | |-common.js | | |-file.js | | |-forward.js | | |-logger.js | | |-room.js | | |-utils.js | |-listeners | | |-on-filehelper-message.js | | |-on-friend-message.js | | |-on-friend.js | | |-on-login.js | | |-on-logout.js | | |-on-message.js | | |-on-room-admin-message.js | | |-on-room-invite.js | | |-on-room-join.js | | |-on-room-leave.js | | |-on-room-mention.js | | |-on-room-message.js | | |-on-room-topic.js | | |-on-scan.js | | |-on-superadmin-message.js | |-robot.js | |-tpl | | |-punch.html | |-util | | |-callerFileName.js

目录对消息类型进行了分类,以便当需要添加特定消息的业务逻辑时,可以清楚地添加。项目中所有的动态配置项都是在.js中提供的。 tpl/目录下存放的是代码的签入模板。可以点击查看效果(手机版)

签到模板实施

签到模板是一个纯HTML文件,逻辑非常简单,就是从URL中读取用户的昵称、头像、数据并渲染页面。可视化库F2用于绘制签入框图。

图像生成

手机微信机器人怎么弄_微信人机怎么弄_弄机器微信手机人怎么弄

图像生成在服务器端实现,主要利用无头浏览器的截图功能。相当于浏览器访问tpl.html地址,对生成的页面进行截图,然后通过File-box返回给用户,实现了打卡生成图片的功能。

OCR 打卡

手动输入签到关键词进行签到对于一些懒惰的同学来说还是比较麻烦。 OCR技术可以实现非感知签到。用户将keep 截图发送到群聊时,可以利用OCR技术识别关键词并签到。这里调用的主接口是腾讯AI开放平台的通用图像识别技术。

功能强化

至此,你已经能够实现一个好的签到机器人了。但实际上我们可以做更多,我也在开发,敬请期待,例如:

OCR 识别运动时长并生成更详细的签到记录。通过计划任务主动提醒长时间未签到的人员。将优质体育公众号文章智能转发至群聊。支持保留小程序签到...体验

目前代码已经开源,大家可以下来体验一下,项目地址:,博客地址:

也欢迎大家添加我的机器人张三来体验。

:@公众号代码:@tiny-bot

分享