Попытка создать диссон-бота, используя python для выполнения повторяющихся задач - PullRequest
1 голос
/ 01 марта 2020

Я пытаюсь создать бот-диск, используя python, чтобы публиковать мой новый IP-адрес на дискорд при каждом изменении. Мое намерение с приведенным ниже кодом состоит в том, что после запуска он должен каждую минуту проверять текущий IP-адрес, чтобы увидеть, изменился ли он, а затем публиковать новый IP-адрес. Однако для тестирования я удалил «not», поэтому теперь он должен публиковать сообщение каждую минуту, пока IP-адрес не изменится.

Проблема в том, что бот не отправляет сообщения и не сообщает об ошибках интерпретатору. У кого-нибудь есть идеи? (Я почти абсолютный новичок в python, поэтому мне действительно нужны инструкции, которые включают в себя, какой код добавить / изменить и где его добавить / изменить)

import os
import discord
import socket
import asyncio

from discord.ext import tasks, commands

prefix = "!"
bot = commands.Bot(command_prefix=prefix)

from dotenv import load_dotenv

load_dotenv()
token = os.getenv('DISCORD_TOKEN')
Survival_Port = os.getenv('Survival_Port')
Creative_Port = os.getenv('Creative_Port')
Announcements_ID = os.getenv('Announcements_ID')

def Get_IP():
    hostname = socket.gethostname()
    IPAddress = socket.gethostbyname(hostname)
    return IPAddress

@bot.event
async def on_ready():
    print('Connected')

@tasks.loop(minutes=1)
async def IP_Address_Check():
    if IPAddress==IPAddress0:
        IPAddress0=Get_IP()
        print(IPAddress0)
        await announcements.send(f'New Server IP Address \n  \n Survival Server: {IPAddress}:{Survival_Port} \n Creative Server: {IPAddress}:{Creative_Port}')

@IP_Address_Check.before_loop
async def wait_for_bot():
    await bot.wait_until_ready
    announcements = self.get_channel(Announcements_ID)
    IPAddress=Get_IP()
    print(IPAddress)

IP_Address_Check.start()
bot.run(token)

Заранее спасибо

...