discord.py를 사용하여 meme 봇/명령을 만드는 방법

작동 방식



밈 봇은 r/dankmemes 하위 레딧에서 밈을 가져옵니다. 명령을 실행할 때마다 이 하위 레딧에서 핫 포스트 중 하나를 찾습니다. 이 기능을 디스코드 봇에 추가하려면 다음 지침을 따르십시오.

패키지 설치


pip install discord.pypip install requestspip install aiohttp

톱니를 사용하는 경우:



import aiohttp
import requests
import discord
from discord.ext import commands

class Meme(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.command(pass_context=True)
    async def meme_command(self, ctx):
        aembed = discord.Embed(title="", description="")

    async with aiohttp.ClientSession() as cs:
        async with cs.get('https://www.reddit.com/r/dankmemes/new.json?sort=hot') as r:
            res = await r.json()
            embed.set_image(url=res['data']['children'] [random.randint(0, 25)]['data']['url'])
            await ctx.send(embed=embed)`

def setup(client):
    client.add_cog(Meme(client))

톱니바퀴를 사용하지 않는 경우:



@client.command(pass_context=True)
async def meme(ctx):
    embed = discord.Embed(title="", description="")

    async with aiohttp.ClientSession() as cs:
        async with cs.get('https://www.reddit.com/r/dankmemes/new.json?sort=hot') as r:
            res = await r.json()
            embed.set_image(url=res['data']['children'] [random.randint(0, 25)]['data']['url'])
            await ctx.send(embed=embed)

다음과 같이 보일 것입니다

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

TOKEN = "your token"
PREFIX = "your prefix" #example: ".", "!", "?"

client = commands.Bot(command_prefix=PREFIX, intents=intents,help_command=None)

@client.command(pass_context=True)
async def meme(ctx):
    embed = discord.Embed(title="", description="")

    async with aiohttp.ClientSession() as cs:
        async with cs.get('https://www.reddit.com/r/dankmemes/new.json?sort=hot') as r:
            res = await r.json()
            embed.set_image(url=res['data']['children'] [random.randint(0, 25)]['data']['url'])
            await ctx.send(embed=embed)

client.run(TOKEN)


메모:



Heroku를 사용하여 봇을 호스팅하는 경우. 대신 다음 줄을 사용하는 것이 좋습니다.

톱니바퀴 포함:




from requests import get
import json
import discord
from discord.ext import commands

class Meme(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.command(pass_context=True)
    async def meme_command(self, ctx):
        content = get("https://meme-api.herokuapp.com/gimme").text
        data = json.loads(content,)
        meme = discord.Embed(title=f"{data['title']}", color = discord.Color.random()).set_image(url=f"{data['url']}")
        await ctx.reply(embed=meme)


def setup(client):
    client.add_cog(Meme(client))


톱니가 없는 경우:




    @client.command(pass_context=True)
    async def meme_command(self, ctx):
        content = get("https://meme-api.herokuapp.com/gimme").text
        data = json.loads(content,)
        meme = discord.Embed(title=f"{data['title']}", color = discord.Color.random()).set_image(url=f"{data['url']}")
        await ctx.reply(embed=meme)

좋은 웹페이지 즐겨찾기