Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 (复制来的)
早就开始吸引我了,最近开始看Go语言的教程,先写个简单的TG机器人来练练手吧.

Golang语言环境

安装

因为使用的是Linux系统(Manjaro), 环境配置方面非常简单.
使用命令 sudo pacman -S golang 就能解决一切.
RedHat系列和Debian系列安装起来也很简单, 基本都是一句话的事.
centos: sudo yum install -y golang
debian: sudo apt install -y golang (ubuntu\deepin等也是用这个)

或者可以直接去官网下载编译好的二进制文件, 解压即可.

修改环境变量

安装完需要修改一下环境变量
主要是修改/etc/profile或者用户目录下的.profile文件.
这里使用sudo vi .profile打开文件, 将下列信息复制到文件的末尾.

1
2
3
4
5
6
7
export GOPATH=/opt/go
export GOROOT=/usr/local/go
export GOARCH=386
export GOOS=linux
export GOBIN=$GOROOT/bin/
export GOTOOLS=$GOROOT/pkg/tool/
export PATH=$PATH:$GOBIN:$GOTOOLS

写tg机器人

这里主要是要说一下怎样写一个简单的tg机器人, 所以关于Go语言的其他方面不再赘述.
这里以一个简单的关键词统计机器人为例,说一下怎样用Go语言在一个小时内完成一个tg机器人.

下载依赖

telegram官网推荐了一个Go语言写tg机器人的库,非常不错.

首先我们来拖一下这个库.
使用命令 go get -u github.com/go-telegram-bot-api/telegram-bot-api 即可把这个库拖到本地.
会存放在我们定义的GOROOT下pkg里面.

同样的方法,这个机器人我们还需要使用另外两个库.
用来进行定时任务的库: go get -u github.com/robfig/cron
用来使用sqllite数据库的库: go get -u github.com/mattn/go-sqlite3

开始动手

需求

我们这个关键词统计机器人的需求很简单.
用户会在群里发送很多找什么东西的消息, 我们需要统计用户查找的关键词.
例如: “找耳机” 那”耳机”就是关键词,需要加入统计.

我们需要实现:

  • 按照小时\天\周\月\年\总量 统计关键词查询的次数
  • 自助查询相关统计结果
  • 每个小时\每天 自动推送相关结果

如何实现

首选需要考虑如何实现这个简单的需求.
这里我的做法是:

  1. 以关键词为主键向数据表一条数据,分别统计每个关键词的年\月\周\日\小时的查询命中率
  2. 用户每查询一个关键词,就给这个关键词的每一个统计项+1
  3. 设置定时任务, 按照每小时\每天\每周\每月\每年, 分别给相应数据字段清零.
    通过上面3条,即可实现关键词统计的效果.

有了上面这个统计数据表,后面的查询功能就能够很容易实现了.
对于推送更简单,就是个定时任务的事.

后续再更新吧