首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python-telegram-bot删除群聊中超过2天的消息?

如何使用python-telegram-bot删除群聊中超过2天的消息?
EN

Stack Overflow用户
提问于 2019-03-23 15:47:55
回答 2查看 2.1K关注 0票数 0

我想做一个机器人,它获得了一个组中的所有消息(我的组中只有2个人,机器人),将它们存储在一个文件中,然后删除所有超过2天的消息,每天在特定的时间。我成功地获得了所有的消息并存储在文件中,但我不确定如何删除超过2天的消息。

这是我到现在为止的代码:

代码语言:javascript
运行
复制
from telegram.ext import Updater, MessageHandler, Filters
import schedule
import time
from datetime import datetime

#schedule.clear()

#Created an event handler
updater = Updater(token='')

# add a new event handler
dispatcher = updater.dispatcher

def job1(bot, update):
    #print(update.message.message_id)
    #bot.get_updates()[-1].message.chat_id
    #print(update.message.text)
    #print(update.message.from_user['username'])
    message_text = update.message.text
    if update.message.from_user['username'] == 'myusername':
        #print('person1')
        name = 'person1'
    else:
        #print('person2')
        name = 'person2'
    line = name + ',' + message_text + '\n'
    #print(line)
    f = open("chat.csv", "a")
    f.write(line)

def job2():
    print('works')

schedule.every().day.at('00:00').do(job2)

dispatcher.add_handler(MessageHandler(Filters.text, job1))

# start polling
updater.start_polling()

while 1:
    schedule.run_pending()
    time.sleep(1)

# # lets the  program end in terminal using ctrl+c
updater.idle()

我希望程序在job2函数中删除旧消息,但不确定如何删除。它每天在预期的时间工作。(还有什么建议可以让代码变得更好吗?)谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-23 16:30:28

尝试存储带有日期的消息id。您可以使用python字典。

票数 0
EN

Stack Overflow用户

发布于 2020-08-03 08:18:15

当使用Telegram BOT API时,您不能删除超过2天的消息。

A message can only be deleted if it was sent less than 48 hours ago.

删除超过2天的消息的唯一方法是使用TDLib,即Telegram API,而不是Telegram BOT API。请参阅https://core.telegram.org/api

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55311728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档