Задать вопрос
@B3rn4dette

Как с помощью дискорд бота отправлять фотографии в телеграм канал?

Всем привет, имеется код, который пересылает сообщения из выбранных каналов дискорда путем подключения через юзер токен (потому что сервер не мой и добавить своего бота невозможно) в канал в телеграмме через бота в телеге. Проблема заключается в том, что этот код имеет минимальные возможности. К примеру, те же эмодзи он отправляет в виде их айди, соответсвенно с фотографиями такая же беда - отправляет в виде ссылок. Для ознакомления сам код представлен ниже:
from telegram import Bot
from keys import *  
import discord

dc = discord.Client()
tg = Bot(token=TELEGRAM_TOKEN)

@dc.event
async def on_message(message): 
    if message.channel.id in DISCORD_CHANNELS:
        if message.attachments:
            attachers = ""
            for attachment in message.attachments:
                attachers += f"{attachment} "
            print(f'{message.content} {attachers}')
            tg.sendMessage(TELEGRAM_CHAT_ID, f'{message.content} {attachers}')
        else:
            print(f"{message.content}")
            tg.sendMessage(TELEGRAM_CHAT_ID, message.content)

def main():
    print("Бот запущен")
    dc.run(DISCORD_TOKEN)

Какие нужны библиотеки для решения данного вопроса? Или что нужно изменить в коде?
  • Вопрос задан
  • 916 просмотров
Подписаться Средний Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Во-первых, причем тут парсинг?
Во-вторых, какая библиотека используется для телеги и как в неё отправлять фото? Найди этот кусок документации, он потребуется.
В-третьих, нужно проверить наличие приложенных фото в сообщении дискорда, скачать их в файл, отправить в телегу, удалить файл. Каждое из этих действий гуглится.
Если либа для телеги принимает для отправки фото файловый объект (а не имя файла!), то можно схитрить и использовать что-то типа пакета requests для скачивания. requests даёт для скачиваемого ресурса "как бы файл", который можно напрямую скормить в библиотеку для телеграмма. Тогда не придётся возиться со временными файлами, будет чуток проще.
Готовый код не проси.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы