【问题标题】:How can I delete a post from a supergroup in telegram with telegram-cli?如何使用电报 cli 从电报中的超级组中删除帖子?
【发布时间】:2017-03-28 04:56:12
【问题描述】:

我们在电报中有一个群,我们有一条规则说没有人必须在上午 23 点到 7 点之间在群中留言,我想删除这些时间段自动进入群的消息。谁能告诉我如何使用电报 cli 或任何其他电报客户端来做到这一点?

【问题讨论】:

    标签: telegram


    【解决方案1】:

    使用新版本的telegram-cli。它不是完全开源的,但您可以从其网站下载二进制文件。你也可以在那里找到一些例子。

    我希望以下 JavaScript 中的 sn-p 可以帮助您实现目标。

    var spawn = require('child_process').spawn;
    var readline = require('readline');
    
    // delay between restarts of the client in case of failure
    const RESTARTING_DELAY = 1000;
    
    // the main object for a process of telegram-cli
    var tg;
    
    function launchTelegram() {
      tg = spawn('./telegram-cli', ['--json', '-DCR'],
                 { stdio: ['ipc', 'pipe', process.stderr] });
      readline.createInterface({ input: tg.stdout }).on('line', function(data) {
        try {
          var obj = JSON.parse(data);
        } catch (err) {
          if (err.name == 'SyntaxError') {
            // sometimes client sends not only json, plain text process is not
            // necessary, just output for easy debugging
            console.log(data.toString());
          } else {
            throw err;
          }
        }
        if (obj) {
          processUpdate(obj);
        }
      });
      tg.on('close', function(code) {
        // sometimes telegram-cli fails due to bugs, then try to restart it
        // skipping problematic messages
        setTimeout(function(tg) {
          tg.kill(); // the program terminates by sending double SIGINT
          tg.kill();
          tg.on('close', launchTelegram); // start again for updates
                                          // as soon as it is finished
        }, RESTARTING_DELAY, spawn('./telegram-cli', { stdio: 'inherit' }));
      });
    }
    
    function processUpdate(upd) {
      var currentHour = Date.now().getHours();
      if (23 <= currentHour && currentHour < 7 &&
          upd.ID='UpdateNewMessage' && upd.message_.can_be_deleted_) {
        // if the message meets certain criteria, send a command to telegram-cli to
        // delete it
        tg.send({
          'ID': 'DeleteMessages',
          'chat_id_': upd.message_.chat_id_,
          'message_ids_': [ upd.message_.id_ ]
        });
      }
    }
    
    launchTelegram(); // just launch these gizmos
    

    我们通过 --json 键激活 JSON 模式。 telegram-cli 将下划线附加到对象中的所有字段。查看full schema中的所有可用方法。

    【讨论】:

      猜你喜欢
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多