• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysyłanie przez bota wiadomości na określony kanał na discordzie

Object Storage Arubacloud
+1 głos
7,142 wizyt
pytanie zadane 27 czerwca 2020 w Python przez EteerYT Początkujący (480 p.)
Witam, nie mam pojęcia jakie polecenie wpisać żeby mój bot na discordzie wysłał wiadomość przez określony przeze mnie kanał tekstowy, dodam że korzystam z biblioteki discord.py

Jeśli ktoś byłby mi w stanie pomóc to byłbym wdzięczny ponieważ szukałem na internecie rozwiązania, ale żadne z tych na które natrafiłem nie rozwiązało mojego problemu :/

1 odpowiedź

+1 głos
odpowiedź 27 czerwca 2020 przez DeBos123 Nałogowiec (44,950 p.)

Musisz użyć metody channel.send

Tutaj masz dokumentacje discord.pyhttps://discordpy.readthedocs.io/en/latest/api.html

komentarz 27 czerwca 2020 przez EteerYT Początkujący (480 p.)
No tak, wiem ze takie cos istnieje i to uzywam, ale dziala to tylko w funkcji on_message, a ja bym chcial zrobic osobna funkcje ktora bedzie sie uruchamiala w odpowiednim momencie i wysle okreslona przeze mnie wiadomosc na odpowiedni kanal.
komentarz 27 czerwca 2020 przez DeBos123 Nałogowiec (44,950 p.)

Możesz użyć metody client.get_channel i wtedy po ID znaleźć kanał na który potem możesz wysłać wiadomość.

komentarz 27 czerwca 2020 przez EteerYT Początkujący (480 p.)

Zrobiłem jak mówiłeś i otrzymałem następujący błąd: RuntimeWarning: Enable tracemalloc to get the object allocation traceback, a oto funkcja która owy błąd spowodowala:

async def info():
    channel=client.get_channel(725975588338270218)
    await channel.send('test')

 

komentarz 27 czerwca 2020 przez DeBos123 Nałogowiec (44,950 p.)

Z tego co wiem brakuje Ci gdzieś await w kodzie, ale łatwiej by było jakbyś pokazał cały kod.

komentarz 27 czerwca 2020 przez EteerYT Początkujący (480 p.)
import discord
client=discord.Client()
token=''

async def info():
    channel=client.get_channel(725975588338270218)
    await channel.send('test')

@client.event
async def on_message(m):
    info()
    await m.channel.send(f""""{m.author.name} napisał {m.content}""")

client.run(token)

 

komentarz 27 czerwca 2020 przez DeBos123 Nałogowiec (44,950 p.)

await info() może w 11 linii?

komentarz 27 czerwca 2020 przez EteerYT Początkujący (480 p.)
Hmm tak zadziałało, dodałem await przed info(), ale wysłało mi 5 razy wiadomość "test" na kanał i to za każdym razem tak się dzieje :/
komentarz 28 czerwca 2020 przez EteerYT Początkujący (480 p.)

@DeBos123, poradziłem sobie korzystając z globalnej zmiennej typu bool, bardzo dziękuje za pomoc :)

komentarz 28 czerwca 2020 przez DeBos123 Nałogowiec (44,950 p.)
Nie ma sprawy. Dobrze, że sobie poradziłeś, bo szczerze to nie wiedziałem co może być w tym przypadku problemem, ponieważ taka sytuacja się dzieje głównie wtedy kiedy się nie wyłączy dobrze programu i działa dalej w tle.

Podobne pytania

0 głosów
0 odpowiedzi 80 wizyt
0 głosów
0 odpowiedzi 289 wizyt
0 głosów
0 odpowiedzi 649 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...