discord-bot
-
[뉴스검색봇] 9. 마무리DEVELOP/discord-bot 2022. 5. 22. 16:24
2022.05.01 - 2022.05.21 총 3주에 걸쳐 디스코드봇 개발이 끝났다. 수업을 병행하면서 하느라 시간을 많이 할애하지 못했고, 중간에 오류때문에 손놓고 있었던 시간을 제외하면 훨씬 일찍 끝났을 것 같다. 기능요약 완성된 외형은 이렇다. 결국 로고를 다시 만들었다. 네이버그린도.....잃었다. 잃기 싫었지만 너무 초록!!이라 내 취향에 맞지 않았다...😔 검색창은 이렇게 작동한다. 검색을 종료했을 때 메시지가 이렇게 바뀌고, 자동으로 메시지가 삭제된다. 첫페이지와 마지막 페이지에서 페이지를 더 넘길 경우 알림메시지가 출력되고, 2초 뒤에 삭제된다. 만약 키워드로 뉴스를 찾을 수 없는 경우 해당 알림창이 뜬다. 길을 잃어버린 새우...😵 도움말 명령어인 '/도와주새우'를 입력하면 이렇게 도움말..
-
[뉴스검색봇] 8. 오라클 클라우드를 이용해 디스코드 봇을 호스팅 해보자!DEVELOP/discord-bot 2022. 5. 21. 20:52
드디어 봇 개발의 최종단계인 서버 호스팅을 할 차례다. 앞서 말했듯 나는 OCI 프리티어를 이용할 것이다. 계정 생성 방법은 블로그 이전글에 작성하였다. https://shurimp.tistory.com/11?category=930777 Oracle cloud 프리티어(Free Tier) 사용하기 / 전자지갑으로 접속하기 오라클에서는 상시 무료 클라우드 서비스를 제공한다. 30일 무료 체험판이 끝나도, 무제한 이용가능한 서비스 내에서는 평생 무료로 사용할 수 있다는 장점이 있다. 서비스를 이용하기 위해 오 shurimp.tistory.com 오라클 클라우드 홈페이지에 접속한 후, 메뉴에서 Create a VM instance를 클릭한다. 프리티어 서비스 내에서 이용할 것이기 때문에, 다른 설정들은 건드릴..
-
[뉴스검색봇] 7. 왜 안되지? 왜 되지?!DEVELOP/discord-bot 2022. 5. 17. 20:45
나름 순조롭게 기능을 구현하고 있던 중에 에러는 조용히 찾아왔고, 여느 때와 마찬가지로 해결하는데 그리 오래 걸리지 않을 것이라 생각했으나, 그게 무려 10일 가까이 나를 괴롭힐 것이라곤 상상하지 못했다... 에러의 내용은 다음과 같다. 내 봇은 처음 명령어를 실행하면 메뉴와 버튼이 나타나고, 검색이 종료되기 전까지 클릭하는 대로 계속 메시지의 내용이 수정된다. 처음 명령어를 실행하면 아주 정상적으로 작동했다. 그래서 외형 다듬고 서버에 올릴 생각 하고 있었다. 그러나 문제는 그 후부터 발생했다. 명령어를 두번째 실행 후 버튼이나 메뉴를 클릭하면 첫번째 실행했던 명령어에 영향을 받아 봇이 다운되고 작동하지 않았다. 이렇게 첫 번째엔 '새우'를 검색하고 두 번째에 '커피'를 입력 후 버튼을 누르면, 두번 ..
-
[뉴스검색봇] 6. 봇 외형 단장하기DEVELOP/discord-bot 2022. 5. 17. 03:26
아무것도 없이 TEST로 작성된 봇으로 결과를 확인하니까 보는 맛이 너무 떨어져서 외형작업을 했다. 사실 이건 가짜이유이고, 진짜 이유는 일주일 넘게 해결하지 못한 에러가 있었기 때문에... 더 진행할 수 없었다. 다행히 지금은 해결한 상태고, 다음글은 이 에러에 대한 이야기이다. https://www.miricanvas.com/ 디자인 플랫폼 미리캔버스 ppt, 카드뉴스, 포스터, 유튜브 섬네일 등 5만개 이상의 무료 템플릿으로 원하는 디자인 제작 www.miricanvas.com 미리캔버스에서 프로필사진을 만들었다. 이분야 양대산맥으로 canva랑 미리캔버스가 있는데, canva는 해외감성, 미리는 국내감성이다. 소스는 canva가 압도적으로 많지만 좀 괜찮다싶은건 거의 pro딱지가 붙어있다.(유료라..
-
[뉴스검색봇] 5. Pagination, 코드 리펙토링DEVELOP/discord-bot 2022. 5. 12. 01:50
이전에 작성한 글에 이어, 이번엔 페이지네이션을 어떻게 구현했는지에 대해 작성할 것이다. 1. 첫번째 방법 페이지가 넘어갈 때마다 api쿼리의 start값을 10씩 증가시키면서 호출하자. 그러나 이 방법을 생각한지 얼마 지나지 않아, 대단히 비효율적이라는 것을 깨달았다. 왜냐하면 start값을 변경할 때마다, 즉 사용자가 버튼을 클릭할 때마다 api를 계속 호출해야하기 때문이다. 이는 내가 생각하기에도...좀...아닌거 같았다. 이렇게 만들면 사용자가 얼마 안돼도 api호출량이 기하급수적으로 늘어날 것이다. 이 방법의 장점이 있긴 있다. 버튼을 계속 클릭할 수만 있다면 만개든 10만개든 모두 읽어올 수 있다는 거..? 2. 두번째 방법 api를 키워드별로 딱 한번만 호출하되, display값을 100으로..
-
[뉴스검색봇] 4. 사용자 키워드 입력받기, Select menus, Button 만들기DEVELOP/discord-bot 2022. 5. 6. 02:06
이번에 구현한 기능들은 다음과 같다. - 사용자로부터 키워드를 입력받아서 검색결과 받아오기 - select menu 추가 - button 추가 1. 사용자로부터 키워드 받아오기 키워드 받아오는 것은 간단하다. 우선 명령어에서 키워드를 입력하는 코드를 추가한다. data: new SlashCommandBuilder() .setName("뉴스검색") .setDescription("뉴스를 검색하는 새우.") .addStringOption((option) => option.setName("키워드").setDescription("키워드를 입력하새우.").setRequired(true)), setDescription까지가 기본골격이고, 여기에 추가로 옵션을 지정할 수 있다. 옵션에 타입을 지정할 수 있는데, 문자열..
-
[뉴스검색봇] 3. 네이버 api로 데이터 불러오기, 임베드 작성DEVELOP/discord-bot 2022. 5. 3. 01:29
봇 개발을 위한 기본 골격과 명령어 테스트를 마쳤으니, 본격적으로 기능구현을 시작했다. 이번에 구현한 기능들은 다음과 같다. 1. 네이버 api호출 테스트 2. 가져온 JSON형식 데이터에서 태그, 개행문자를 제거하기 3. 디스코드에 임베드 형식으로 출력 먼저 네이버api를 사용해 뉴스데이터들을 불러오는 작업을 했다. 네이버 api를 이용하기 위해선 먼저 등록 신청을 해야한다. 간단한 정보를 입력하고 본인인증까지 마치면 바로 등록된다. 내가 사용한 검색 api는 일일 최대 호출량이 25,000회로 제한되어있다. 내가 만든 봇이 그걸 초과할 리 없으니 사실상 무한이다.ㅋㅋ 등록이 완료되면 내 애플리케이션 정보에서 클라이언트 아이디와 키를 확인할 수 있다. 봇 토큰과 마찬가지로 공개되어서는 안되니 소스코드 ..
-
[뉴스검색봇] 2. 슬래시 커맨드 작동 확인하기DEVELOP/discord-bot 2022. 5. 1. 21:37
기능구현에 앞서, 슬래시 커맨드가 잘 동작하는지 확인한다. discordjs에서는 명령어를 if/else문으로 이어붙이는 코드를 지양하라고 명시하고있다. 명령어가 길어질 수록 스파게티 코드가 되기 때문. 명령어를 수행하는 commands폴더를 따로 만들고, 그 명령어들을 불러와 사용하라고 권장한다. 소스코드 작성에 앞서, @discordjs/builders, @discordjs/rest, discord-api-types를 설치한다. > npm install @discordjs/builders @discordjs/rest discord-api-types 먼저 프로젝트 폴더 내에 commands 폴더를 만들고, 명령어 별로 js파일을 생성한다. 각각의 js 파일 내 소스코드는 다음과 같다. const { S..