搞了一个转发长任务的 shell 命令结果到 telegram 的机器人

2020-05-25 09:02:20 +08:00
 askfermi

最近遇到很多长任务,后台跑着跑着就忘了:( 花了几分钟搞了一个把 shell 命令运行的结果转发到 telegram 的 bot,用于提醒自己命令的执行情况。使用起来比较简单:

效果图:

GitHub: https://github.com/xzyaoi/tg

顺便发一个分享创造的电报群: https://t.me/chuangzao101

求个 star :),而且我对 go 的 os/exec 不是特别了解,如果有实现上的错误麻烦大佬指出。

2876 次点击
所在节点    分享创造
4 条回复
Shazoo
2020-05-26 14:02:02 +08:00
为啥要这么麻烦?

```
curl --location --request POST 'https://api.telegram.org/bot<YourBotToken>/sendMessage' \
--form 'text=`<YourCommandHere>`' \
--form 'chat_id=<YourChatId>' \
--form 'parse_mode=markdown'
```
c0xt30a
2020-05-26 19:24:28 +08:00
@Shazoo

发送消息记得过滤下特殊字符:

```
special_chars = ['~', "'", '[', '\\', '@', '^', '{', '%', '(', '"', '*', '|', ',', '&', '<', '`', '}', ']', '!', '>', ')']
```

还可以发送图片,我用的命令行是:
```
f'/usr/bin/curl -s -X POST https://api.telegram.org/{token}/sendPhoto -F chat_id={id} -F photo="@{photo_path}"'
```

发送文件是:
```
f'/usr/bin/curl -F document="@{file_path}" https://api.telegram.org/{token}/sendDocument?chat_id={id}'
runking
2020-05-30 15:03:28 +08:00
借这个主题问一下
弄了个机器人转发备用机的未接来电和短信

使用的是 http get

然后,短信里面如果有特殊字符,特殊字符后面的内容就看不到了

这种怎么可以把特殊给处理下能在机器人中正常显示
askfermi
2020-06-07 07:17:02 +08:00
@runking 没有搞过这种,为什么不用 post 呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675075

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX