大力事件继续发酵中,忐忑
参见 https://blog.yessure.org/index.php/archives/76/
不好收场了,别人等着看笑话捅刀子。。。
做这些破事,好处半点没有,一不留神就可以闯个大祸。
躺平才是王道。
参见 https://blog.yessure.org/index.php/archives/76/
不好收场了,别人等着看笑话捅刀子。。。
做这些破事,好处半点没有,一不留神就可以闯个大祸。
躺平才是王道。
yaml示例:
account:
mode: "pooling" 或者是 webhook
token: "aaaaa" @botfather建立bot时得到的token
owner: 12345678 需要转发的目地user id
endpoint: "https://www.foo.bar" webook的接收消息地址。pooling时随便填。完整的endpoint是 https://www.foo.bar/{token}。 telegram的要求必须是https协议。
port: 80 服务监听端口,pooling时随便填。代码使用的http,因为前端会用cloudflare等反代,没必要弄https,还要折腾证书,烦一个字。
继续接着 上次的事 来弄
完美的做法当然是仔细的通过事务和数据锁等等来解决这个,但,大家都很忙,能有简单但有效的解决办法么?
当然。
有的时候,不想把自己的telegram号给别人,用个机器人来转发就很有必要了
@LivegramBot是实现同样功能的,不过,本着折腾精神,自己写一个。
原理就是,机器人会把收到的消息转发给自己的主号,主号回复的转发消息,提取出来文字/图片/视频后把它发给消息的原始发送者。
偶尔会crash掉,还有待继续debug,找到crash的地方。
**crash原因已发现,如果用户在隐藏模式下,就是禁止group转发时,无法获得原始的转发人id故而出错。明天发修正的源码。
逻辑: tgfwd.go
TG接口: telegram.go
配置文件: bot.yaml
先执行select sn from xxxx where oid=xxxx, 找指定的oid的记录,如果错误,就是记录不存在(数据库挂了?不可能的啦。。),然后既然不存在,那就新增对应oid的一条记录。这是常用的如果有就读出来没有就创建新记录的机制。
逻辑和流程没问题?
笑话,大力出奇迹,板砖也能飞上天!
同时并发一堆这请求,只要力气够大速度够快,大家都可以同时在select还没来得及insert的时候进入if err!=nil,就产生了一堆相同oid的记录。
啥?没这么巧?系统因为这个重复一大堆,现在都还不知道怎么擦这屁股。。。