Guest User

Untitled

a guest
Nov 15th, 2024
770
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.60 KB | None | 0 0
  1. import sqlite3
  2. import asyncio
  3. from telethon import TelegramClient
  4.  
  5. # Ваши api_id и api_hash
  6. api_id = '88888888'
  7. api_hash = '88888888888888888888888888888888'
  8. phone_number = '+88888888'
  9.  
  10.  
  11.  
  12. # Функция для получения первых 15 каналов без ID
  13. def get_channels_without_id():
  14.     conn = sqlite3.connect('channels.db')
  15.     cursor = conn.cursor()
  16.    
  17.     # Выбираем первые 15 каналов, у которых поле channel_tail (ID) пусто
  18.     cursor.execute("SELECT channel FROM channels WHERE channel_tail IS NULL LIMIT 15")
  19.     channels = cursor.fetchall()
  20.    
  21.     conn.close()
  22.    
  23.     # Преобразуем результат в список usernames
  24.     return [channel[0] for channel in channels]
  25.  
  26. # Функция для обновления ID каналов в базе данных
  27. def update_channel_id(username, channel_id):
  28.     conn = sqlite3.connect('channels.db')
  29.     cursor = conn.cursor()
  30.  
  31.     # Обновляем поле channel_tail для соответствующего канала
  32.     cursor.execute("UPDATE channels SET channel_tail = ? WHERE channel = ?", (channel_id, username))
  33.    
  34.     conn.commit()
  35.     conn.close()
  36.  
  37. # Основная асинхронная функция
  38. async def main():
  39.     # Авторизация
  40.     await client.start(phone=phone_number)
  41.    
  42.     # Получаем список каналов без ID
  43.     usernames = get_channels_without_id()
  44.    
  45.     if not usernames:
  46.         print("Все каналы уже имеют ID.")
  47.         return
  48.  
  49.     # Проходим по каждому username
  50.     for username in usernames:
  51.         try:
  52.             # Получаем сущность канала
  53.             channel = await client.get_entity(username)
  54.            
  55.             # Получаем ID канала
  56.             channel_id = str(channel.id)
  57.             print(f"Канал {username} имеет ID {channel_id}")
  58.            
  59.             # Обновляем ID канала в базе данных
  60.             update_channel_id(username, channel_id)
  61.            
  62.             # Таймер на 5 секунд между запросами
  63.             await asyncio.sleep(5)
  64.        
  65.         except Exception as e:
  66.             print(f"Ошибка при обработке канала {username}: {e}")
  67.  
  68. # Создаем клиента Telethon
  69. client = TelegramClient('session_name', api_id, api_hash)
  70.  
  71. # Запускаем клиент и выполняем основную функцию
  72. with client:
  73.     client.loop.run_until_complete(main())
  74.  
Advertisement
Add Comment
Please, Sign In to add comment