내용 추가 요청이나 질문 받습니다.
0. 기본 설명
Command: | 채팅창에서 호출할 명령어 이름 ex) !팔로우, !추가 | |
Message: | 명령어를 호출 하면 보여줄 메시지 내용, 사용 가능한 여러 변수들로 고정된 메시지가 아니라 다양한 메시지 표현 가능 | |
Userlevel: | 명령어를 호출 할 수 있는 권한 | |
Cooldown: | 같은 명령어를 여러번 호출 할 때 최소 주기(쿨타임) | |
Alias: | 직역하면 가명(별명)으로, 한 명령어를 여러 이름으로 호출 할 수 있게 해줌 |
https://docs.nightbot.tv/ 에서 다양한 정보를 확인 가능
1. 기본
1) 업타임 시간 구하기 | ||
항목 | 내용 | 비고 |
Command | !업타임 | |
Message | $(eval var s='$(twitch $(channel) "{{uptimeLength}}")';if(s.includes("not live")){"방송 중이 아닙니다."} else {s.replace(" day","일").replace(" hour","시간").replace(" minute","분").replace(" second","초").replace(/s/g,"") + "동안 방송 중입니다."}) | 붉은색 부분은 수정 가능 |
Userlevel | Everyone | 이후 동일하며 변경점이 있을 때 따로 기술 |
Cooldown | 5 |
2) 팔로우 날짜 구하기 | ||
항목 | 내용 | 비고 |
Command | !팔로우 | |
Message | $(eval var a = '$(urlfetch https://api.2g.be/twitch/followage/$(channel)/$(user)?format=daysint)'; if (a.includes("not following")) { "$(twitch $(user) "{{displayName}}")님은 팔로우하지 않으셨습니다" } else { "$(twitch $(user) "{{displayName}}")님은 팔로우한 지 [" + ++a + "]일째 입니다. "}) | 붉은색 부분은 수정 가능 기울어진 부분은 채팅 유저의 닉네임 표시 부분 |
3) 채팅창에서 한글로 명령어를 추가, 편집, 삭제해보자 | ||
항목 | 내용 | 비고 |
Command | !추가 !수정 !삭제 | |
Message | $(query) | |
Alias | !addcom !editcom !delcom | 색깔별로 잘 넣어주세요 |
채팅창에서 사용법은
2. 고급
1) 랜덤 메시지 출력하기 | ||
항목 | 내용 | 비고 |
Command | !가위바위보 | |
Message | $(eval var rd=['가위', '바위', '보']; rd[Math.floor(Math.random()* rd.length)];) | 붉은색 부분을 ''(작은콤마)와 ,(쉼표)로 구분해서 넣으면 안의 내용이 무작위로 출력됨 |
2) 명령어 링크 하기 | ||
항목 | 내용 | 비고 |
Command | !가위 | !바위,!보 |
Message | $(query) | 이 때 $(query)라는 메시지는 출력되지 않음 |
Alias | !가위바위보 | 바로 위에서 작성한 !가위바위보 명령어와 연결 |
합방을 자주하거나 !멤버 를 자주 수정할 때 꿀팁
2-1) !멤버 명령어 쉽게 바꾸기 | ||
항목 | 내용 | 비고 |
Command | ~멤버 | !!멤버 등 자유롭게 변경 가능 |
Message | $(query) | |
Userlevel | Moderator | 어차피 editcom 명령어는 관리자 이상 호출 가능 |
Alias | !editcom !멤버 | !멤버 명령어가 있어야 함 |
3) 명령어 카운트 | ||
항목 | 내용 | 비고 |
Command | ? | |
Message | 갈고리가 $(count)개 수집되었습니다. | $(count) 부분에서 명령어가 호출된 횟수를 표현해줌 앞뒤로 적절한 메시지를 입력 |
3. 뇌절
1) 한강 수온 구하기 | ||
항목 | 내용 | 비고 |
Command | !수온 | |
Message | $(eval var str = '$(urlfetch http://hangang.dkserver.wo.tc)';var j = JSON.parse(str);if(j.result === "true" ){j.time + '에 측정된 한강 수온은 ' + j.temp + "℃ 입니다."}) | 일주일 넘게 온도가 그대로일 때도 있는데 명령어 문제가 아니라 수온 api 업데이트가 안되는 것 |
4. API (작성 중에 재현하려니까 작동을 안 함... 기존에 쓰던 건 잘 됨)
아래 내용은 https://api-docs.nightbot.tv/ 에 나온 내용을 풀어서 설명하고 있습니다.
-----------
채팅봇 만들기는 인터넷에 예제가 많으므로 생략하고
우선 https://nightbot.tv/account/applications 접속 후
을 누르고 적당히 Name과 Redirect URIs 입력하고 수정하기 하면
위와 같이 나오게 됩니다.
그러면 아래처럼 주소의 붉은색 부분을 본인에 맞게 수정 해 줍니다.
scope(링크)에는 channel, channel_send, commands, commands_default, regulars, song_requests, song_requests_queue, song_requests_playlist, spam_protection, subscribers, timers 가 있습니다. 본인이 필요한 내용을 넣으시면 됩니다.
https://api.nightbot.tv/oauth2/authorize?response_type=code&client_id=********************************&redirect_uri=https://localhost&scope=channel_send commands
접속하게 되면
이런 페이지가 나오고 Allow를 누르면
주소창에 ?code= 뒤에 code(Access token)이 나옵니다.
이것을 가지고
curl -X POST "https://api.nightbot.tv/1/channel/send" \ -H "Authorization: Bearer ****************************************" \ -d "message=hello%20world" |
또는
import requests message = 'hello world' endpoint = 'https://api.nightbot.tv/1/channel/send' headers = { 'Authorization' : 'Bearer ****************************************' } data = { 'message': message } response = requests.post(endpoint, headers=headers, data=data) # print(response) |
(python 코드)
실행 결과
나이트봇 명령어 설정