You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js实现Telegram私有频道消息抓取并忽略回复消息

过滤Telegram频道回复消息的解决方案

要忽略频道里的回复消息,只需要在过滤条件里加个判断,排除带回复标记的消息就行。在MTProto的消息结构里,回复消息会带有reply_to字段,所以我们可以通过检查这个字段是否存在来过滤掉回复。

另外你代码里还有个语法错误:filter的箭头函数没闭合括号,这会导致代码跑不起来,得一起修好。

修改后的代码如下:

const { api } = require('./mtproto');

function startListener() {
    console.log('[+] starting listener');
    const newChannelMessages = [];

    api.mtproto.updates.on('updates', ({ updates }) => {
        const filteredMessages = updates
            .filter((update) => 
                update._ === 'updateNewChannelMessage' && 
                update.message.peer_id.channel_id == '12345678' && 
                // 排除回复消息
                !update.message.reply_to &&
                update.message.message.startsWith('$') &&
                !update.message.message.split(' ').some(word => ['T1', 'T2', 'T3', 'T4', 'T5', 'T6'].includes(word))
            ) // 修复:补充filter的闭合括号
            .map(({ message }) => message);
        
        newChannelMessages.push(...filteredMessages);

        for (const message of filteredMessages) {
            console.log(message.message);
        }
    });

    return newChannelMessages;
}

module.exports = {
    startListener,
};

关键修改点

  • 过滤回复消息:添加!update.message.reply_to判断,只有当消息没有reply_to字段时,才会被保留(即非回复消息)。
  • 修复语法错误:给filter的箭头函数补充了缺失的闭合括号,保证代码正常执行。

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:27:10