Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- import asyncio
- from telethon import TelegramClient
- # Ваши api_id и api_hash
- api_id = '88888888'
- api_hash = '88888888888888888888888888888888'
- phone_number = '+88888888'
- # Функция для получения первых 15 каналов без ID
- def get_channels_without_id():
- conn = sqlite3.connect('channels.db')
- cursor = conn.cursor()
- # Выбираем первые 15 каналов, у которых поле channel_tail (ID) пусто
- cursor.execute("SELECT channel FROM channels WHERE channel_tail IS NULL LIMIT 15")
- channels = cursor.fetchall()
- conn.close()
- # Преобразуем результат в список usernames
- return [channel[0] for channel in channels]
- # Функция для обновления ID каналов в базе данных
- def update_channel_id(username, channel_id):
- conn = sqlite3.connect('channels.db')
- cursor = conn.cursor()
- # Обновляем поле channel_tail для соответствующего канала
- cursor.execute("UPDATE channels SET channel_tail = ? WHERE channel = ?", (channel_id, username))
- conn.commit()
- conn.close()
- # Основная асинхронная функция
- async def main():
- # Авторизация
- await client.start(phone=phone_number)
- # Получаем список каналов без ID
- usernames = get_channels_without_id()
- if not usernames:
- print("Все каналы уже имеют ID.")
- return
- # Проходим по каждому username
- for username in usernames:
- try:
- # Получаем сущность канала
- channel = await client.get_entity(username)
- # Получаем ID канала
- channel_id = str(channel.id)
- print(f"Канал {username} имеет ID {channel_id}")
- # Обновляем ID канала в базе данных
- update_channel_id(username, channel_id)
- # Таймер на 5 секунд между запросами
- await asyncio.sleep(5)
- except Exception as e:
- print(f"Ошибка при обработке канала {username}: {e}")
- # Создаем клиента Telethon
- client = TelegramClient('session_name', api_id, api_hash)
- # Запускаем клиент и выполняем основную функцию
- with client:
- client.loop.run_until_complete(main())
Advertisement
Add Comment
Please, Sign In to add comment