Skip to content

Instantly share code, notes, and snippets.

@idealhack
Last active March 9, 2020 11:12
Show Gist options
  • Save idealhack/55f36b7f21c544470aaf0ee95807c8fa to your computer and use it in GitHub Desktop.
Save idealhack/55f36b7f21c544470aaf0ee95807c8fa to your computer and use it in GitHub Desktop.
telegram-chat-cleaner
# create a telegram application at https://my.telegram.org/apps
TELEGRAM_CHAT_NAME="" \
TELEGRAM_CLEAN_DELTA_DAYS="" \
TELEGRAM_API_ID="" \
TELEGRAM_API_NAME="" \
TELEGRAM_API_HASH="" \
python3 telegram-chat-cleaner.py
# runs every hour
0 * * * * clean-telegram-chat.sh
#!/usr/bin/env python3
# fork from https://github.com/loicpirez/DeleteEveryTelegramMessage
import os
import datetime
import pytz
from telethon import TelegramClient, events, sync
from telethon import utils
from telethon.utils import get_display_name
from telethon.tl.functions.messages import DeleteMessagesRequest
utc=pytz.UTC
today = datetime.datetime.today()
delta_days = int(os.environ.get('TELEGRAM_CLEAN_DELTA_DAYS'))
delta = today - datetime.timedelta(days=delta_days)
delta = utc.localize(delta)
chat_name = os.environ.get('TELEGRAM_CHAT_NAME')
api_id = int(os.environ.get('TELEGRAM_API_ID'))
api_hash = os.environ.get('TELEGRAM_API_HASH')
client = TelegramClient(os.environ.get('TELEGRAM_API_NAME'), api_id, api_hash)
client.start()
for chat in client.get_dialogs(limit=None):
if chat.name == chat_name:
# for message in client.iter_messages(chat.id, limit=None):
# if message.date < delta:
# print(message.message)
# result = client.delete_messages(chat, message.id)
# print(result)
for message in client.iter_messages(chat.id, limit=None, offset_date=delta):
print(message.message)
results = client.delete_messages(chat, message.id)
for result in results:
print(result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment