使用 python 的 Discord 机器人

时间:2021-02-21 19:54:38

标签: python discord discord.py

我使用 python 创建了一个不和谐机器人,但问题是当我停止 PyCharm 进程时机器人不再工作。我需要一些帮助谢谢。

这是代码的一部分:

import discord

client = discord.Client()

@client.event
async def on_message(message):
    id = client.get_guild(id)

    if message.content.find("!about") != -1:
        await message.channel.send( "Hello, my name it is Py-Boot i am a beta version created by @Marin#2404, am not fully functionaly and Hello ")

    elif message.content == "!Users":
        await message.channel.send(f""" List of members: {id.member_count} """)

client.run('token')

2 个答案:

答案 0 :(得分:0)

如果你停止 Pycharm。然后机器人将停止运行。查看 crontab 来临时运行您的机器人,或者如果您希望它永远运行并始终可用,则使用某种形式的托管。否则,您需要手动保持进程运行。

答案 1 :(得分:0)

从技术上讲,您可以通过将 UptimeRobot 与 repl.it 一起使用,让您的机器人 24/7 全天候免费运行,我也是 discord.py 场景的新手,但我已经设法实现了这一点

https://www.youtube.com/watch?v=SPTfmiYiuok

这是一个快速教程的链接,但这里有一个粗略的解释

转到 UptimeRobot 并创建一个帐户,然后使用您的 discord.py 链接(repl 链接)添加一个新监视器,然后该网站将每 5 分钟 ping 您的代码,这将使您的机器人无法休眠

还要在您的 discord.py 文件旁边创建一个名为 keep_alive 的新 .py 文件并将此代码复制到

from flask import Flask
from threading import Thread

app = Flask('')

@app.route('/')
def home():
    return "Hello. I am alive!"

def run():
  app.run(host='0.0.0.0',port=8080)

def keep_alive():
    t = Thread(target=run)
    t.start()

然后将文件名导入主discord.py文件

from keep_alive import keep_alive

我很确定你不能在 pycharm 中做到这一点,因为它不能被任何东西“ping”,所以当你关闭你的电脑时它会关闭。但是很容易将您的代码转移到 repl.it,因为它只是一个复制粘贴。