R6战绩TGbot开发记录

项目背景

也算是彩六老玩家了,一直有一个TG的群和网上的小伙伴一起开黑,最近因为某些原因不得不弃坑,但是心里还是念着R6。(其实非常忙,只不过是想要在紧张的生活中通过写写代码来放松就是了。)Tg的特色之一就是他的bot了。网上找到的现有的R6 TG bot操作繁琐,效果相当不理想,没有做本地化。也不是不能用,就是不舒服罢了。所以就想要自己开发一个吧。这个post就用来做开发日记吧。

开发日志

- 2019-07-24 -

项目立项,选定语言,python还是JS纠结很久,python更熟练一些,但是有想要通过这个项目真正的学习一下JS。(说的我好像python就很熟练似的,其实很渣……)。最后部署在服务器上两个都挺简单的,也没有啥区别。

查看TG官方推荐的几个BOT API,nodeJS支持API版本在最新的4.3上,而python是4.1,差距不大,感觉也用不到新特性。

但感觉自己主动写个小玩具也不容易,就借此学一门语言吧,项目完成预估时间应该就延长了,但是鸽了就鸽了吧,nodeJS就决定是你了!

项目框架选用官方推荐的Telegraf

语言决定好了,不着急开始写。上网搜几篇别人的BOT理论教程学学基础理论。

Telegram Bot 开发手记:理论篇 作者:sandtears
从零开始写一个Telegram Bot 作者:深红

简单了解后,用botfather创建好自己的bot。然后便开始寻找r6战绩的API,然而非常惨淡,github上的基本上全部过期,就在快要废项时,意外发现自己经常用的一个查询R6战绩的网站 r6stats.com 正在准备将自己做的API对外开放,目前已经进入了beta阶段。就试着向他们网站发了份邮件问了问,结果对面非常爽快的同意了我的请求,并且表示不久后就会发给我我的API的token,等稳定后也会将document和正式API第一时间给我。(果然社区的力量是无穷尽的)

等收到token时已经是晚上11点了,我早已在床上,因此今天的记录到此。

- 2019-07-25 -

写完今天的作业,今天打算早睡,因此留给自己的时间不多。

先测试了一下token,可用,目前只有两个endpoint,但是基本上所有的我需要的data都封装好了,很高兴。

在github上立项,并拖下来init初始环境。https://github.com/amaothree/R6statsTGbot

然后就要去睡觉了……(阿毛真有你的,真是摸了一手好鱼)

- 2019-07-26 -

简单配置一下vscode(没有webstorm感觉是牛刀杀鸡),选用了eslint,JavaScript (ES6) code snippets 这两个纠错和智能提醒的插件,用下面的命令安装初始化一下项目内的eslint。

1
2
3
sudo npm intsall -g eslint
cd ./xxxxxxx
eslint --init

按照指南自己选择最适合自己的设置就好了。

然后想要防止telegram和r6stat的两个token通过git传到github上去,就要单独提炼出一个文件写进gitignore里。简单的查问了一下,就用了module(require)和export方法,这样就可以让其他js文件访问其他模块中的常变量了。还是比较方便的。

(花了3个小时解决vscode智能提示失败后……)
WTMD,劳资换webstorm了!喷气脑子真香!

- 2019-07-27 -

摸鱼一整天,不过也是学了一些东西的。

主要今天是卡在nodejs的response上了,第一次接触到nodejs的web模块还是不好上手,照着官方文档品味许久才摸出一些语法。

因为一直没有整明白异步方法,导致一直不明白咋把异步方法内的变量提出来,后来才发现用var定义一个高一级的变量赋值就可以了,之前一直用的let,就一直失败。

telegraf的API也是,不知道如何存储用户的键入值。这个在研究研究。(28号更新,通过询问多方大佬的意见,得到只能用DB解决,就这样吧。)

总之已经能够获取R6那边的查询数据的JSON了,下一步是加入参量,把目前可运行的web结构放进一个方法里,可以自定义查询的用户名,目前测试还是用的常量,但是感觉操作起来不会很难,就是API等还不太熟练。如果一切正常,3天内能出一个alpha版本了。(疯狂立flag)

学校留的作业还没开始动笔,淦。

=================

8月与群内成员意见分歧,故停止开发。