Как удалить сообщения старше 2 дней в групповом чате с помощью python-telegram-bot? - PullRequest
0 голосов
/ 23 марта 2019

я хочу создать бота, который получит все сообщения в группе (в моей группе только 2 человека и бот), сохранит их в файле, затем удалит все сообщения старше 2 дней, каждый день вопределенное время.Мне удалось получить все сообщения и сохранить их в файле, но я не уверен, как удалять сообщения старше 2 дней.

Это мой код до сих пор:

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, но не знаю, как это сделать.Это работает в ожидаемое время каждый день.(также есть предложения по улучшению кода?) Спасибо!

1 Ответ

0 голосов
/ 23 марта 2019

попробуйте сохранить идентификатор сообщения с указанием даты.Вы можете использовать словарь Python

...