rather - Bot : Background

LONGNEW·2022년 2월 9일
1

Rather-Bot

목록 보기
5/5

rather - Bot : 깃 헙, 봇 추가하기

목적

bot.py를 수정해서 notice 함수를 start, cancel할 수 있도록 만들기.
이를 통해 더 많은 기능을 제공할 수 있도록

tasks

이전 코드에서도 tasks.loop()를 사용했지만 이 상황에서는 cancel이 되지 않았다.

주어진 레시피를 조금 바꾸는 방식으로 구현을 했다.

discord.ext.tasks API docs

from discord.ext import tasks, commands

class MyCog(commands.Cog):
    def __init__(self):
        self.index = 0
        self.printer.start()

    def cog_unload(self):
        self.printer.cancel()

    @tasks.loop(seconds=5.0)
    async def printer(self):
        print(self.index)
        self.index += 1

channels

여러 서버에 봇을 등록하려면 어떻게 해야 하나 생각했는데 그냥 연결된 서버를 다 저장하는 방식을 썼다.
저장을 딕셔너리로 해서 나중에 무거울 수도 있겠지만 탐색을 해서 거르기 위해 이를 사용했다.

새로운 서버를 저장.

if message.channel not in channels:
	channels[message.channel] = 1

가져온 정보를 모든 서버에 출력

	if cnt:
		for ch in channels:
			await ch.send("", embed=temp)

생성자

봇의 실행과 함께 정보를 가져올 수 있도록 생성자에 start()를 넣어 주었다.

bot에서의 개체 생성

class MyClient(discord.Client):
    async def on_ready(self):
        self.task = looping.MyCog()
        self.work = 1

looping에서 실행

class MyCog(commands.Cog):
    def __init__(self):
        self.info = [dict() for _ in range(4)]
        self.prev_date = "22.02.09"
        self.notice.start()

다음

백그라운드에서의 task를 통해 여러 기능을 만들 수 있을 것 같다.
다음 해볼 것은 시총 상위 30개 정도의 암호화폐의 움직임을 나타내는 지표를 만들어 특정 변화율에 따라 자동으로 알림을 주도록 하는 것을 만들까 생각중이다.
주식에서는 코스피, 코스닥이 좋은 기준이 되어주는데 암호화폐 시장은 내가 원하는 그런 지표가 없어서 한 번 찾아봐야겠다.

내가 제대로 안 읽어봤을 뿐 존재했다. 이거 자동적으로 알림 보내는 거도 찾아야겠다.

0개의 댓글