V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
askfermi
V2EX  ›  分享创造

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

  •  
  •   askfermi ·
    xzyaoi · 2020-05-25 09:02:20 +08:00 · 2884 次点击
    这是一个创建于 1646 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • @notihubot 获取自己的 id 。关注这个 bot,发送 /myid 即可。
    • release page 下载二进制包,放到系统的 PATH 里。
    • 执行命令时,只需tg [YOUR_ID] [YOUR COMMAND]即可,例如tg 000000 ls

    效果图:Snipaste_2020-05-25_03-00-12.png

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

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

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

    4 条回复    2020-06-07 07:17:02 +08:00
    Shazoo
        1
    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
        2
    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
        3
    runking  
       2020-05-30 15:03:28 +08:00
    借这个主题问一下
    弄了个机器人转发备用机的未接来电和短信

    使用的是 http get

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

    这种怎么可以把特殊给处理下能在机器人中正常显示
    askfermi
        4
    askfermi  
    OP
       2020-06-07 07:17:02 +08:00
    @runking 没有搞过这种,为什么不用 post 呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:00 · PVG 05:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.