rag2 / tg_app /try_bot.py
AlexanderKazakov
try telethon
9ca6868
raw
history blame
1.58 kB
import logging
from telethon import TelegramClient, events
from telethon.errors import ChannelPrivateError
logging.basicConfig(
format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s',
level=logging.WARNING
)
with open('data/tg_api_id.txt') as f:
api_id = f.read().strip()
with open('data/tg_app_api_hash.txt') as f:
api_hash = f.read().strip()
with open('data/tg_bot_token.txt') as f:
bot_token = f.read().strip()
channel_link = 'https://t.me/redakciya_channel'
client = TelegramClient('data/bot_session.session', api_id, api_hash)
""" для бота это всё не работает! """
@client.on(events.NewMessage(chats=channel_link))
async def on_new_message(event):
if '#ньюсдня' in event.raw_text:
print(event.message)
else:
print('@@@ other message: ')
print(event.message)
async def check_channel():
try:
channel = await client.get_entity(channel_link)
print(f'Channel open: {channel.title}')
async for msg in client.iter_messages(entity=channel, limit=100):
if msg.message.lower().find('#ньюсдня') != -1:
print(f'Last message:')
print(msg.message)
break
print(f'Listening for new messages...')
except ChannelPrivateError:
print("The channel is private and you don't seem to have access.")
except Exception as e:
print(f"An error occurred: {e}")
client.start(bot_token=bot_token)
client.loop.run_until_complete(check_channel())
client.run_until_disconnected()