슨상 1.0 배포글


눈물의 반수생 수능 운지하고 수능 끝나자마자 존나 밤샘코딩 한 겱과


슨상이를 머리부터 발끝까지 패댐질로 내부구조까지 바꿨다


지금 일주일 연속으로 안씻어서 뒤질거같은데 드디어 씻을수 있게됨 씨발 쎾쓰


바뀐점


1. 모든 명령어가 디스코드 새로운 '슬래시 커맨드'로 바뀜


이거는 개선점이라고 하기보다는 더 불편해진건데

디코 봇 api가 나중에 일반 채팅으로 봇이 인식하게하는 Commando API를 아예 없앤다고해서

!play 해묘의 아방가르드한 음악 <<이런거를 못쓰게됨


그래서 좀 미래를 내다볼겸 디코에서 존나 밀어주고 있는 슬래시 커맨드를 사용함


슬래시 커맨드가 디코 좀 하는 애들은 알수도 있는데 대충 뭐냐면


일단 채팅에 슬래시( / )를 치면 쓸수있는 명령어가 봇별로 여러개 나옴 대충 마인크래프트나 스타 커맨드 입력하는거라고 생각하면됨 ㅇㅇ

그럼 이제 저기서 저거 명령어 이름 그대로 치거나 클릭해서 엔터치면 봇이 그 명령어를 작동시키는데

한번 작동시킨거는 슬래시 누르고 앞글자 + 탭키만 해도 바로 자동완성이 된다 이거 잘쓰면 기존 명령어보다 편할거임


예를 들어서 최근에 내가 "/슨상 개씨발존나게팸"이라는 명령어를 쳤다고 치면

키보드에 /슨 이라고만 치고 탭키만 누르면 바로 저걸로 자동완성이 된다는거임


지금까지 썼던 슨상이 커맨드나 다른 유명 봇들 방식에 익숙해졌으면 적응하기까지 많이 불편하겠지만

그런거는 나중에 타노스당할 운명에 처한 방식이니 익히도록 하자..




2. 음악 검색/재생 알고리즘을 존나 최적화함


이게 이번 개선에서 제일 자부심을 갖고 있는건데

첫번째로 검색하고 서버 노래 대기열에 추가하고 재생하는 상호작용 방식이 진짜 존나 빨라짐

원래 단일 노래 넣는거는 별 차이가 없는데(이거는 유튜브 서버나 내가 서버 돌리는곳 인터넷의 문제임)


유튭에서 플레이리스트 단위로 넣게되는 순간 차이가 확실하게 나더라

기존 슨상봇 1.0은 플레이리스트 몇곡 추가하는데도 존나 오래걸렸고 한 50곡 80곡 되면 화장실 갔다오고나서도 계속 추가중이었음

걍 내가 존나 병신같이 짠거를 지금 그나마 사람같이 짠거긴한데


이전에는 이렇게 느렸음 저렇게 채팅칠정도로 404곡짜리 넣는데 8분걸리더라 시발 코드를 어떻게 짰길래


근데 지금은 걍 존나빠름 404곡짜리 플레이리스트 기준 유튜브에서 불러오고 서버 대기열에 넣고 트는데 2~3초걸림




두번째는 제일 컴플레인이 많았던거를 뼛속부터 뜯어고침

원래 기존 슨상이 음악재생 기능중 가장 큰 문제가 뭐였냐면

1. 재귀함수로 대기열에서 불러오는거라서 노래 계속 틀다보면 이새끼가 지 스스로 멈추고 노래를 못틂

2. 유튜브에서 불러오면서 노래를 트는거라 노래가 자꾸 끊기고 막 빨라졌다 느려졌다 하고 어떨때는 스킵됨

초반에는 서버가 적어서 저런거는 진짜 가끔 생겼는데 이제 서버 수가 많아져서 되게 고질적인 문제가 됐었음 컴플레인도 많이 들어오고


근데 2번은 내가 쓰는 디코봇 라이브러리 음성 스트리밍 모듈이 개,병신이라 그래서

아예 모듈 자체를 업그레이드함 채신버전으로

이거 개발자도 알았는지 아예 음성 관련은 아예 다른 패키지로 분류를 해놔서 코딩하는데 좀 걸렸지만 그래도 최적화 하나는 잘해놨더라


지금 노래 여러개 틀어보고있는데 중간에 끊기는 일도 없고 잘됨


1번은 내가 짠 함수 문젠데 이거를 어떻게 해결했냐면

새로 모듈에 에러 감지를 되게 쉽게 할수있게 해놔갖고

그거 따라서 연령제한 영상으로 에러난다던지 유튜브 서버가 이상하다던지 그러면 얘가 알아서 자동으로 노래를 스킵하던지 유튜브에서 노래파일을 다시 받아오던지 해서 얘가 알아서 자동으로 해줌

존나 긴데 요약하면 걍 얘가 알아서 에러나는거 핸들링할수있게 해놨다고 ㅇㅇ



3. 플레이어 채널 상호작용을 존나 최적화함

이번에 디코.js(자바스크립트용 디스코드 봇 개발 라이브러리)가 13버전으로 업글하면서 되게 바뀐게 메시지 관련 기능인데

주저리 주저리 길게 설명 안하고 짧게 예기함


기존에 슨상플레이어 채널 상호작용 방식이 채팅에다 음악 플레이어 이모지를 줄줄이 달아서 그거를 버튼으로 쓰는거였는데

디코에서 아예 봇용 버튼을 만듬


이렇게


그래서 이전에는 또 이모티콘 반응 쌓이면 존나 느려지는거 있었는데 이제는 반응하면 바로 명령내리고 버리는식으로 짜서 빨라짐



대충 써보는 모습



4. 사용자 개인별 플레이리스트 보관함이 생김


이거도 내가 개똥꼬쇼하면서 만들어낸건데

어느 서버에 있던 슨상이가 거기 있으면 너만의 플레이리스트 목록을 만들어서 재생하고 편집할수 있음

음악 클라우드임 쉽게말해서 ㅇㅇ


대충 쓰는거 보여줌


대충 이렇게 씀


자세히 설명하면


만들고싶으면 이걸 치면 됨





그리고 처음 만드는거라면 이런 메시지가 뜸 가볍게 만든다고 해주자





만드는데 성공하면 이렇게 뜸




그리고 다시 아까 /playlist private 명령어를 다시 쓰면 이렇게 뜸


이제 여기서 편집/재생/?/초기화가 있는데

편집부터 설명하면



편집을 누르면 버튼이 이렇게 바뀜

플레이리스트 편집이 비활성화되어 있는 이유는 아직 플레이리스트를 안만들어서고


보관함 편집을 눌러서 플레이리스트를 추가해줘야함


그니까 이 보관함에는 '플레이리스트 단위'로 추가할수 있음


암튼 보관함 편집을 누르면


이렇게 바뀌는데


여기서 추가를 눌러서 플레이리스트를 추가해줘야 되지 않겠노



추가를 눌러서 제목하고 설명을 채팅으로 입력해주면

이렇게 생성이 된다


더 추가하고싶으면 추가 또눌러서 하면 되고 없애고싶으면 없애도되고


이제 뒤로 가서 아까 상태로 가면



플레이리스트 편집을 누를수가 있게됨


눌러서 편집해보자

채팅으로 1번이라 쳐주면




이렇게 "해묘의 아방가르드한 컬렉션 모음"이라는 아까 생성한 플레이리스트 편집 모드에 들어가게된다


여기서 추가를 누르면 여기에 이제 노래 제목이나 유튜브 링크 유튜브 재생목록 링크를 붙여넣어서 추가할수 있음

추가해보자



그러면 저렇게 입력하라고 뜬다


아무거나 입력해보자




성공적으로 추가가 된걸 볼수있다


저렇게 자동검색뿐만 아니라 링크로도 되고


플레이리스트 링크로도 된다


마침 좋은 플레이리스트를 찾았으니 한번 넣어보자







추가가 잘된것 같다


근데 이대로 X버튼 누르면 지금까지 추가한게 전부 초기상태로 간다

왜냐면 이거는 클라우드 방식이라 불러오는거도 서버 기준이라서 너가 지금 이렇게 추가한거는 내 컴퓨터 메모리에 남아있다

이거를 서버에 업로드할려면 저장을 눌러야지


눌러서 저장해보자



그러면 이렇게 성공적으로 저장되고




봇 서버에도 업로드가 잘 된 모습을 볼수있다


암튼 이런식으로 너만의 플레이리스트를 만들어서 원할때 재생할수 있다


이게 제일 설명 길었는데 왜 제일 기냐면


아까 있던 버튼 4개중 물음표 버튼을 이 글로 링크시킬거라 그럼 존나귀찮다




긴 설명 읽어주느라 고마웠고


이제 할일은 라떼라노겜갤용 봇 만든거도 배포하고

슨상이에 경험치/용문폐 계산기 넣고

짹짹/좆튜브 공지 자동으로 업로드한거 따오는 기능도 넣어볼 예정이다



슨상이 초대 링크 :

https://discord.com/api/oauth2/authorize?client_id=858927584652820542&permissions=8&scope=bot%20applications.commands


참고로 지금 서버 72개가량에 초대되어있는데 100개 넘기면 더이상 추가 못함 봇 인증 안할거라서

100개되면 슨상이 복제버전 만들어서 다시 배포함


*** 아직 점검중인데 곧 끝남 좀만 기다려주셈