Como fazer a discórdia bot notificar-me apenas quando um usuário se juntar canal de voz e já deixando canal de voz mais do que 5 minutos antes

0

Pergunta

@client.event
async def on_voice_state_update(member, before, after):
    # This function is called when not only member join to the voice channel,
    # but also member changed their status to mute.
    # So, it is necessary to catch only events that joining channel.
    if before.channel != after.channel:
        if after.channel is not None and after.channel.id == int(VOICE_CHANNEL_ID1):
            _name = member.nick if member.nick else member.name
            message = {
                "message": "\n" + _name + " Join The Livestream Channel"
            }
            requests.post(LINE_NOTIFY_API_URL, headers=HEADERS, data=message)
    if before.channel != after.channel:
        if after.channel is not None and after.channel.id == int(VOICE_CHANNEL_ID2):
            _name = member.nick if member.nick else member.name
            message = {
                "message": "\n" + _name + " Join The Nongskuy Channel"
            }
            requests.post(LINE_NOTIFY_API_URL, headers=HEADERS, data=message)

client.run(DISCORD_BOT_ACCESS_TOKEN)

então, eu estou tentando fazer um bot que pode notificar a minha LINHA de grupo sempre que alguém aderir canal de voz em minha discórdia servidor. O problema é, meu amigo, muitas vezes, de jogar com o meu bot por sair e se juntar o canal de voz repeatly e meu bot irá spam no meu grupo de LINHA se alguém juntar o canal de voz.Então, eu preciso de uma ajuda para fazer o meu bot apenas notificar a minha LINHA de grupo, se um usuário já está deixando de canal de voz por 5 minutos e juntar novamente para o canal de voz

discord
2021-11-23 15:55:57
1

Melhor resposta

0

Parece que essencialmente você deseja verificar se 5 ou mais minutos se passaram entre cada canal de voz sair/associação de um usuário. Você pode usar o datetime módulo para obter o tempo de quando um usuário entrou e deixou o canal. Como obter a hora atual em Python. Uma vez que você chegar a tempo, você pode começar a minutos do tempo assim:

>>> now = datetime.now()
>>> print(now)
2021-11-23 14:05:31.787939
>>> print(now.minute)
5

Então você pode apenas armazenar now.minute em outra variável e usá-lo para comparação posterior.

2021-11-23 19:11:34

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................