removal of tags

This commit is contained in:
2023-12-27 11:10:58 -05:00
parent 6241b57172
commit 62a412b465

47
bot.py
View File

@@ -6,7 +6,7 @@ from telethon import TelegramClient, events
from telethon.tl.types import InputChannel from telethon.tl.types import InputChannel
from telethon.errors import FloodWaitError from telethon.errors import FloodWaitError
import asyncio, json, time, sys, yaml, os, time import asyncio, json, time, sys, yaml, os, time, re
from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.schedulers.asyncio import AsyncIOScheduler
from datetime import ( from datetime import (
datetime, datetime,
@@ -20,6 +20,14 @@ job_defaults = {
'max_instances': 1 'max_instances': 1
} }
# Regexp patterns to remove from group
patterns = [
'https:\/\/t.me\/\w*',
'@[Ww]hite[Aa]ction'
]
combined_patterns = r'|'.join(map(r'(?:{})'.format, patterns))
# Start Scheduler # Start Scheduler
scheduler = AsyncIOScheduler(job_defaults=job_defaults) scheduler = AsyncIOScheduler(job_defaults=job_defaults)
@@ -65,29 +73,38 @@ async def _indexer(client, config):
path = await client.download_media(message.media, file='usermedia/', progress_callback=callback) path = await client.download_media(message.media, file='usermedia/', progress_callback=callback)
if path is not None: if path is not None:
logging.info(f'Sending file to {output_channel}.') if message.text:
await client.send_file( logging.info(f'Sending file to {output_channel}.')
output_channel, txt = re.sub(combined_patterns, '', message.text)
path,
caption=message.text await client.send_file(
) output_channel,
path,
caption=txt
)
else:
await client.send_file(
output_channel,
path
)
# Remove file after upload # Remove file after upload
os.remove(path) os.remove(path)
else: elif message.text:
if message.text: logging.info(f'Sending message to {output_channel}..')
logging.info(f'Sending message to {output_channel}..') txt = re.sub(combined_patterns, '', message.text)
await client.send_message( await client.send_message(
output_channel, output_channel,
message.text txt
) )
elif message.text: elif message.text:
logging.info(f'Sending message to {output_channel}.') logging.info(f'Sending message to {output_channel}.')
txt = re.sub(combined_patterns, '', message.text)
await client.send_message( await client.send_message(
output_channel, output_channel,
message.text txt
) )
except FloodWaitError as e: except FloodWaitError as e:
logging.error(f'Flood wait for {e.seconds} for _indexer.') logging.error(f'Flood wait for {e.seconds} for _indexer.')