askanton

Пересылка сообщений из телеграм в твиттер

Oct 17th, 2021 (edited)
1,080
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. manual https://youtu.be/ujsDGvZ11kU
  2.  
  3. from telethon import TelegramClient, events  # импортируем нужные модули телетона
  4. from twython import Twython  # импортируем библиотеку твиттера
  5.  
  6. api_id = ******* # задаем апи нашего аккаунта в телеграмм
  7. api_hash = "**********************************"  # задаем хеш нашего аккаунта в телеграмм
  8. client = TelegramClient('my_account', api_id, api_hash)  # собираем телеграм клиента
  9. consumer_key = "**********************************"
  10. consumer_secret = "**********************************"
  11. access_token = "**********************************-**********************************"
  12. access_token_secret = "**********************************"
  13.  
  14. channel_list = [-1001230182875]  # список каналов на которые будет реагировать скрипт
  15. twitter = Twython(consumer_key, consumer_secret, access_token, access_token_secret)  # Собираем клиента твиттера
  16.  
  17.  
  18. @client.on(events.NewMessage)  # обработчик который запускаеться при получении нового сообщения
  19. async def my_event_handler(event):  # берем событие
  20.     if event.chat_id in channel_list:  # проверяем пришло ли событие из канала который входит в наш список
  21.         try:  # проверяем есть в сообщении картинка
  22.             file = await client.download_media(event.message.media, file="buffer.jpg")  # качаем найденную картинку
  23.             image = open(file, 'rb')  # готовим файл к отправке
  24.             response = twitter.upload_media(media=image)  # загружаем картинку в твиттер
  25.             media_id = [response['media_id']]  # получаем данные про загруженное сообщение
  26.             try:  # проверяем есть ли у картинки подпись
  27.                 print("Picture detected")
  28.                 chan = str(event.message.caption[:250]) + "... " + "https://t.me/s/it_news_for_all/" + str(
  29.                     event.message.id)  # создаем сообщение из подписи к картинке
  30.             except Exception as y:  # если подписи нет то берем в работу сообщение
  31.                 # print(y) # при необходимости смотрим ошибку
  32.                 print("But no caption text")
  33.                 chan = str(event.message.message[:250]) + "... " + "https://t.me/s/it_news_for_all/" + str(
  34.                     event.message.id)  #
  35.             twitter.update_status(status=chan, media_ids=media_id)  # пересылаем сообщение в наш твиттер
  36.         except Exception as e:  # создаем сообщение текста сообщения в телеграм
  37.             # print(e)  # при необходимости смотрим ошибку
  38.             print("No picture detected")
  39.             chan = str(event.message.message[:250]) + "... " + "https://t.me/s/it_news_for_all/" + str(
  40.                 event.message.id)  #
  41.             twitter.update_status(status=chan)  # модифицируем найденное сообщение в нашем твиттере
  42.  
  43.         print("Tweeted: %s" % chan)  # выводим в консоль твит
  44.         print("************************************************************************************************")
  45.  
  46.  
  47. client.start()  # запускаем нашего клиента
  48. client.run_until_disconnected()  # назначаем ему бесконечный цикл выполнения
  49.  
RAW Paste Data