Рубрики
Без рубрики

Постройте бот Chuck Norris Discord в Python [Discord. Py] для начинающих

Это быстрое руководство по созданию шуток Чака Норриса, используя шутки Чака Норриса … Tagged с Python, Discord, JavaScript, программирование.

Это быстрое руководство по созданию шуток Chuck Norris Discord Bot, используя API Chuck Norris Jokes в Python, используя пакет Discord.py.

У меня есть видео по этому вопросу, если вы хотите проверить это

https://www.youtube.com/watch?v=-bsfhun62ym&t=17s

Здесь я демонстрирую, как создать бот Discord в JavaScript и Python Но я также объясняю все, что я знаю о Coroutines, обратных вызовах, асинхронизации/ожидании синтаксиса и циклов событий в контексте раздора, конечно. Я также кратко затронул в библиотеке Асинсио в Питоне; Некоторое отличное позднее дополнение к Python.

ОК, вернемся к бизнесу; Итак, как вы можете создать этот удивительный бот Discord?

Предварительные условия: Python 3.5 + A Discord Account A Discord Server

Тогда вам нужно будет создать бот, чтобы сделать это очень просто: 1- Подал портал разработчиков: https://discord.com/developers/applications

2- Затем нажмите на новое приложение в правом верхнем углу страницы

3- Дайте ему имя (например: Devbot)

4- Добавить бота! Итак, вы хотите, чтобы добраться до бота и добавить бота, затем нажмите «Да Сделай это!

5- Создан бот! Теперь, будьте осторожны, вы не хотите делиться токеном с кем -либо. Мы скопируем его позже для кода; И теперь нам нужно пойти на OAuth2

6- Здесь вы хотите пойти на OAuth2, чтобы дать вашему боту разрешения делать то, что вы хотите

7- Поскольку мой бот ответит на пользователя, рассказывая ему/ей шутку, мы хотим дать разрешения на отправку сообщения, а также заметили выше, я указал, что это бот

Затем скопируйте эту ссылку, откройте новую вкладку, а затем нажмите return (enter) и разрешите боту присоединиться к вашему серверу, и все готово!

Вы найдете своего бота в стороне от правой стороны экрана под вашим именем, он выйдет в интернет только тогда, когда мы наведем наш код Python.

Итак, продолжайте и установите discord.py через:

PIP установка -u Discord.py

«Событие – это то, на что вы слушаете, а затем отвечаете. Например, когда произойдет сообщение, вы получите событие об этом, на которое вы можете ответить. Discord.py – это асинхронная библиотека, поддерживает синтаксис Async/Await, который обрабатывает обратные вызовы. Обратные вызовы-это функции, которые вызываются, когда что-то еще происходит в программировании в целом, есть 2 типа потоков, отдельные потоки и многопоточное: Java и C# – это многопоточное, что означает, что они могут выполнять несколько задач без блокировки или без запуска медленного JavaScript, а Python являются однопорядными языками, что означает, что они могут выполнять только одну задачу за раз. JavaScript и Python полагаются на «асинхронное программирование» с использованием обратных вызовов и единой очереди событий, что это просто означает, что Python (а также JS) может делать только одну вещь за раз, и, возможно, вы слышали о стеке или стойке, стека, и различные задачи могут быть накапливаются в очереди в ожидании ответа для каждой задачи, [и мы говорим о задачах ввода -вывода, таких как чтение в файловой системе, отправляя HTTP -запросы на веб -сайт, чтение в базе данных], поэтому, когда задача сделан и получен ответ, эта задача удаляется из стека и выполняется к следующей задаче и так далее, и это может привести к медленной производительности, которая, естественно, приводит к блокировке, а блокировка просто означает медленный код, а код медленно Не из -за процессора, а потому, что вы делаете много IO. И решением для этого является использование CORUTINES, «Асинхронное программирование» или одновременный код, а Coroutine – это просто функция, которой предшествует Async Keyword, и Async не остановит Coroutin получить какое -то одобрение операционной системы ” ” Вот полный код:

import discord
import requests
import json

class myClient(discord.Client):
    # function to login so we're going to use onready event here, remember when we said that discord.py revolves around the concept of events.
    async def on_ready(self):
        print(f' Howdy 👋 ! logged in as {client.user}'.format(client))

    # function to answer message
    async def on_message(self, ctx):
        if ctx.author == client.user:
            return
        elif ctx.content.startswith('hello'):
            await ctx.channel.send('Howdy, friend 👋 ')
        elif ctx.content.startswith('make me laugh'):
            await ctx.channel.send('Hello! Would you like to hear a Chuck Norris joke 😛 ?')
            # wait_for takes an event and a check argument that is a lambda function that takes the arguments of the event - in this case message - you're waiting for and determines whether or not the new message comes from the same person who invoked the currently running command.
            # For example, the on_message event takes a ctx argument, so if we wanted to check the author of a message we could do:
            res = await client.wait_for('message', check=lambda message: ctx.author == message.author)
            if res.content.lower() == ('yes'):
                # creation and invoking the joke function here
                # and Python code is going to block the coroutine until tasks requested are fulfilled and returned with a response; then it will unblock and goes to the next task, and so on.
                async def get_joke(self):
                    response = requests.get(
                        'https://api.chucknorris.io/jokes/random')

                    joke = json.loads(response.text)
                    # print(joke['value'])
                    return(joke['value'])
                the_joke = await get_joke(self)
                await ctx.channel.send(the_joke)
            else:
                await ctx.channel.send('no problem!')

        elif ctx.content.startswith('thanks'):
            await ctx.channel.send('You are welcome!')
        elif ctx.content.startswith('salut'):
            await ctx.channel.send('salut mon ami :D')
# Creating a client
# using myClient class which represents a client connection that connects to Discord API.
# This class is used to interact with the Discord WebSocket and API.
client = myClient()
# Run the token for connection
client.run("YOUR TOKEN")

Дайте мне знать, если вам это нравится, или если у вас есть какие -либо комментарии, не стесняйтесь поделиться ими со мной. Кроме того, если вы когда -либо создавали бот -дискорд, что он делал и сколько времени вам понадобилось, чтобы его построить – ура

Оригинал: “https://dev.to/bekbrace/build-a-chuck-norris-discord-bot-in-python-discord-py-for-beginners-39e9”