디스코드 투표봇 추가 및 사용법 (디스코드 sesh봇)

디스코드 투표봇 추가 및 사용법 (디스코드 sesh봇)

오늘은 제가 자주 애용하는 디스코드 투표봇을 소개해드릴까 합니다. 디스코드에서 여러사람이 모여서 내일은 몇시에 모이자, 오늘은 어떤 게임을 하자 하는 선택의 기로에 서게 되는경우가 많은데요 저희는 sesh봇 이라는녀석을 이용해서 디스코드에서 투표를 한답니다. 사실 디스코드 sesh봇은 채널의 일정관리에 주로 쓰이는데요 알람기능등 여러 기능이 있답니다. 일정에 대한 부분은 제가 안쓰는 관계로, 투표만 설명 드리도록 하겠습니다. 비슷하게 준비물으로 채널의 관리자 권한이 필요합니다.

이전 포스팅 링크 남기도록 하겠습니다. 디스코드 sesh봇을 채널로 불러들입니다.


imgCaption0
아니, 도대체 이유가 뭔데

아니, 도대체 이유가 뭔데

분노의 타이핑이 시작됩니다. 아무리 명령어를 입력해봐도 명령어 목록은 죽어도 나오지 않고, 엎친데 덮친 격으로 기존에 짜둔 명령어도 제대로 작동하지 않았습니다. 나는 고뇌했다. 아무래도 아이디를 str이 아닌 id라는 형식으로 넘겨줘야 될 것 같은데, 도저히 어떠한 방법으로 해야 할 지 방법이 생각나질 않았습니다. 이 순간, 갑자기 무언가가 내 머리를 스쳐 지나갔다. 인류 문명의 기술력은 발전에 발전을 거쳐, 수많은 입력을 기반으로 여러가지 정보를 축적한 AI를 만들어내는데 성공했다.

그 지혜로운 가상 인공지능 척척박사에게 내 생각을 토로해보시면 분명 쓸모있는 대답을 받을 수 있을거야. 여담이지만 나는 챗GPT를 일종의 최후의 수단으로서 사용하고 있습니다. AI가 제대로 된 대답을 주지 않을 가능성도 있을 뿐더러 가능한 한 내 실력대로 공부하면서 성장하고 싶었기 때문입니다.

파이썬 프로그램 서버에서 실행

1. 프로그램 소스 코드가 있는 noticebot 파일로 이동합니다. 2. 실시간 모니터링 프로그램의 경우 시간이 중요합니다. 우분투 서버 시간을 한국 시간으로 바꿉니다. sudo ln sf usrsharezoneinfoAsiaSeoul etclocaltime

3. SSH 창을 종료해도 프로그램이 지속해서 돌아가도록 하기 위해 nohup 명령어를 사용합니다. nohup 명령어 프로세스를 실행한 터미널의 세션 연결이 끊기더라도 지금 실행시킨 프로그램을 종료하지 않도록 하는 명령어입니다.

nohup python3 crawlingdiscord.py 명령어를 치고 엔터를 한 번 더 칩니다. 정상적인 경우 엔터해도 아무것도 뜨지 않습니다.

SSH 설정 및 라이브러리 설치

파이썬 프로그램을 돌리기 위해 내 코드에서 썼던 모듈들을 다운로드 해주어야 합니다. beautifulsoup4,pyperclip,requests,selenium,chromedriverautoinstaller,undetectedchromedriver,pyautogui,discord.py,asyncio 라이브러리를 설치합니다. 1. Ubuntu에서는 pip가 설치되어 있지 않아 pip을 설치해주어야 합니다.

코드 설계 분석

일단, 이전 코드는 도저히 리팩토링을 진행할 수 없는 수준의 레벨이였습니다. 유지보수는 전혀 생각지 않고 만들었기 때문에, 이전 기능을 유지하면서 리팩토링을 하기란 쉽지가 않은 상황이였습니다. 또한 런타임 환경에서 자바스크립트 기반으로 개발이 되었기 때문에 어떠한 타입 에러가 발생할 지도 알 수가 없고, 예외 처리도 부족해 함수 동작에 어떠한 문제가 발생하였을 때 대응이 불가능했습니다. 그렇다고 지금 있는 코드를 조금씩 수정을 합니다.

해도 코드 품질만 망칠 뿐 문제가 나아질 것이라는 생각이 들지 않았습니다.

JDA 설치

디스코드 봇 관련 기능을 구현하기 위해서 JDA를 설치해야합니다. Github에 보시면 Releases가 있었으나 나는 가장 최신 Releases를 설치할것입니다. 따라서 최신 버전 릴리즈를 들어가면 build.gradle.kts를 체크해보시면 dependencies가 있을 것입니다. 해당 코드 아래에 복사한 코드를 붙여넣는다. 이후 새로고침을 합니다. 위 버튼을 찾아서 눌러주면 됩니다. 그러면 적용이 됩니다. 이제 단순한 코드를 작성해 볼 것입니다.

DiscordBot.class 에 돌아온 후에 main 함수를 만든 후 Token 값이 생성되었을것입니다. 이를 복사한 이후에 createDefault에 붙여넣기 합니다. String 이 매개변수이므로createDefault토큰 값으로 합니다. 이후 실행을 하면 됩니다. 실시하는 버튼은 Intellij에서 오른쪽 위에 Current File옆에 실행버튼이 있습니다. 버튼을 눌러줍니다. 이와 비슷하게 뜨면 성취한 것 같다.

자주 묻는 질문

아니 도대체 이유가 뭔데

분노의 타이핑이 시작됩니다. 궁금한 사항은 본문을 참고하시기 바랍니다.

파이썬 프로그램 서버에서

1 궁금한 사항은 본문을 참고하시기 바랍니다.

SSH 설정 및 라이브러리

파이썬 프로그램을 돌리기 위해 내 코드에서 썼던 모듈들을 다운로드 해주어야 합니다. 더 알고싶으시면 본문을 클릭해주세요.