Как получить сообщение с ветки Discord Python?
Необходимо при появлении текста в определенной ветке Дискорда(чужого) отправлять его в Телеграм. Вот что нашла в интернете. Но как их объединить не знаю. Помогите пожалуйста.
1 работает но получает сообщения со всех каналов и веток.
2 не работает
from discord.ext import commands import discord bot = commands.Bot(command_prefix='.', self_bot=True) @bot.listen() async def on_ready(): print(f'Logged in as ') @bot.listen() async def on_message(message:discord.Message): # https://discordpy-self.readthedocs.io/en/latest/api.html?highlight=message#discord.Message print(message.author, message.content) bot.run("your user token") from urllib.parse import quote import requests auth = "" # the token that you received from BotFather. chatID = "" # id of the telegram channel to forward the message to. encoded = quote(f"a & b ?my") res = requests.post(f"https://api.telegram.org/bot/sendMessage?chat_id=&text=") print(res.status_code, res.text) # https://core.telegram.org/bots/api#sendmessage
from discord.ext import commands import telegram.ext from telegram.ext import MessageHandler, filters, Updater telegram_token = 'токен' telegram_group = 'айди' discord_discord_channel = 'айди' @bot.listen() async def on_ready(): print(f'Logged in as ') class repeater(commands.Cog): def __init__(self, bot): self.bot = bot @commands.Cog.listener() async def on_message(self, message): homechannel = self.bot.get_channel(discord_channel) if message.channel == homechannel: Tele_Bot = telegram.Bot(token=telegram_token) Tele_Bot.sendMessage(chat_id=telegram_group, text=f'::\n') print('Message Detected from Discord & Sent')
- Вопрос задан более года назад
- 163 просмотра
2 комментария
Простой 2 комментария
Как получить сообщение на которое ответили? discord.py
Как получить сообщение, в ответ на которое была отправлена команда, и ответить на него же. То-есть например:
User1 - text User2 - reply user1: !command Bot - reply user1: text2
Отслеживать
задан 28 дек 2022 в 14:54
92 2 2 серебряных знака 19 19 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для этого создайте команду. Пусть будет .say
@client.command() async def say(ctx, text):
Добавляем проверку для сообщения. То есть если пользователь ответил на сообщение командой .say
if ctx.message.reference: original = await ctx.fetch_message(ctx.message.reference.message_id) await original.reply(f'Вам сообщение: ')
Таким образом бот ответит на сообщение на которое ответили Вы.
Получения сообщение от пользователя Discord.py
Как получить сообщение от пользователя? Там при выводе on_message(message) нигде нету сообщения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
import discord from dotenv import load_dotenv from discord.ext import commands from datetime import datetime load_dotenv() intents = discord.Intents.default() intents.members = True client = commands.Bot(command_prefix=".", intents=intents) #client = discord.Client() @client.event async def on_ready(): print(f' has connected to Discord!') @client.event async def on_message(message): if message.author.bot == False: now = datetime.now() current_time = now.strftime("%D:%H:%M:%S") print(f" | chanel: | user: | message:") print(message) client.run("token")
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как получить id пользователя discord.py автоматически
Подскажите, пожалуйста как получить id пользователя в @bot.event async def on_member_join(member).
Discord.js проверка нахождения пользователя в голосовом чате
У меня есть тестовый сервер, в нем единственный голосовой чат Я подключен к этому чату, включен.
Как получить аватарку и имя пользователя Discord API Oauth2
Здравствуйте, сделал бота который авторизует пользователя. Бот получает его аватарку и имя. Как.
Discord.py как сделать что-бы бот мутил пользователя на определенное время?
у меня есть команда мут в которую вводится: async def mute(ctx, member: discord.Member, time: int.
Включить Discord.Intents для Discord бота
Доброго времени суток, уважаемые Форумчане. Возникла следующая трудность не могу никак понять как.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Работа с голосовыми каналами в Discord (Discord.Net v 2.0.1)
Интересует вопрос о вызове аудиопотока в Discord и выгрузке в этот аудиопоток музыки. Попытки.
VK API и получения айди пользователя
Пишу скрипт на PHP, и понадобился для него скрипт на JS, раньше никогда его не изучал. Прочитал.
Ожидание получения сигнала от пользователя в цикле игры
Добрый день. Имеется игра, скажем к примеру монополия. Взаимодействие компонентов осуществлено на.
Запрос на ввод от пользователя до получения нужного результата
Всем привет, как реализовать запрос, например, ввода пароля до тех пор, пока юзер не введет верный.
Переход к листу после получения данных от пользователя
Добрый день Уважаемые программисты! Прошу вашей помощи так как не силен в VBA, но требуется решить.
Или воспользуйтесь поиском по форуму:
Discord.py
Для этого вам придётся зайти на сайт Discord’а по разработки приложений. Далее создаём приложение с помощью кнопки New Application.
Нужно дополнить этот отдел информацией и изображениями
Шаг 2 — Hello World! [ ]
Напишем сначала просто код для того чтобы бот запускался.
import discord client = discord.Client() client.run("Insert here token of bot")
Кстати, токен бота обычно хранят в отдельном файле. Далее создаём событие через @client.event и пишем асинхронную функцию on_message.
@client.event async def on_message(message): if message.content.startswith(".hello"): await message.channel.send("Hello World!")
Также в разработке Discord ботов пример Hello World заменяется «Ping Pong». Выглядит так: пишешь команду ping, получаешь ответ Pong! Теперь напишем событие во время запуска. Оно необязательно, но благодаря ему можно узнать когда можно использовать бота + некоторые команды (например client.change_presence()) лучше использовать именно в этом событии.
@client.event async def on_ready(): print("I'm ready!")
Шаг 2.1 — Создание бота через commands.Bot() [ ]
Особо ничем не отличается т.к. является классом-наследником от Client, однако имеет возможности которые значительно облегчают разработку. Вот так выглядит обычный код с запуском бота и Ping Pong:
import discord from discord.ext import commands client = commands.Bot() @client.command() async def ping(ctx): await ctx.send("Pong!") client.run("Insert here token of bot")
В командах необходимо писать ctx даже если он не используется!