Skip to content
/ buzzk Public

뿌지직 (BUZZK) - 치지직(CHZZK) 챗봇을 더욱 쉽게 개발할 수 있도록 돕는 비공식 라이브러리. (Node.js)

License

Notifications You must be signed in to change notification settings

Emin-G/buzzk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BuzzkThumb

뿌지직

BUZZK

뿌지직은 치지직 챗봇을 더욱 쉽게 개발할 수 있도록 돕는 비공식 라이브러리 입니다.


📖 업데이트 내역

🎉 2.2 업데이트

  • 이제 Axios를 사용하여 API를 불러옵니다!
  • 더욱 안정적이고 빠른 성능을 보일 것으로 기대됩니다!

🎉 2.1 업데이트

  • 공식 API로 거의 대부분의 작업을 대체했어요!

Caution

이 버전 이후부터는 공식 API와 비공식 API를 혼용하여 사용합니다. 공식 API로 대체 가능한 기능은 모두 공식 API를 이용할 예정입니다.

Warning

  • 비공식 API 전용 모듈은 더 이상 지원되지 않습니다.
  • 비공식 API로만 이루어진 모듈을 사용하시려면 npm install buzzk@1.11.3

✒️ 마이그레이션 가이드 (v.2.0.x -> v.2.1.0)

펼쳐보기
buzzkChat
BUZZK new buzzkChat("channelID 값")
new buzzkChat("accessToken 값")

BUZZK 삭제
(chat).getRecentChat()

buzzkChat.onMessage

채팅 여러개를 한 번에 받던 구조 (data[o].message) (for 문으로 data[o] 돌리던 구조)에서 채팅 하나 씩 받는 구조로 변경 (data.message)

BUZZK 삭제
(callback).author.imageURL

buzzkChat.onDonation
BUZZK 삭제
(callback).author.imageURL

BUZZK 삭제
(callback).time

buzzk.live
BUZZK 삭제
buzzk.live.getAccess()

✒️ 마이그레이션 가이드 (v.1.x -> v.2.0.0)

펼쳐보기
buzzk.auth
BUZZK 추가
buzzk.auth

buzzk.oauth
BUZZK 추가
buzzk.oauth.get

BUZZK 추가
buzzk.oauth.refresh

BUZZK 추가
buzzk.channel.resolve

buzzk.channel.get
BUZZK (return).channel.description

BUZZK (return).channel.isLive

👋 설치

  1. npm install buzzk
  2. const buzzk = require("buzzk");

🔥 빠른. 시작.

const buzzk = require("buzzk");
buzzk.auth("ClientID 값", "ClientSecret 값");

//buzzk.login("NID_AUT 쿠키 값", "NID_SES 쿠키 값");
//buzzk.channel.follow, unfollow 시에만 사용.

const buzzkChat = buzzk.chat;

async function test () {

	let oauth = buzzk.oauth.get("code 값");

    let chat = new buzzkChat(oauth.access);
    await chat.connect(); //채팅창 연결

    chat.onMessage(async (data) => { //채팅이 왔을 때
		console.log(data.message);

		if (data.message == "!ping") await chat.send("pong!");
		//채팅 보내기

		if (data.message == "!공지") await chat.setNotice("테스트!");
		//채팅 상단 고정 (공지)

		let userInfo = await chat.getUserInfo(data.author.id);
		console.log(userInfo);
		//채팅 보낸 유저의 정보
    });

	chat.onDonation(async (data) => { //후원이 왔을 때
		//TODO
	});

	chat.onDisconnect(async () => { //채팅창 연결이 끊겼을 때
		//TODO
	});
    
}

test();

🎀 사용법

auth

✅ Official API

buzzk.auth("ClientID 값", "ClientSecret 값");

https://developers.chzzk.naver.com/application 네이버 치지직 개발자 센터에서 등록 후 사용 가능합니다. ✅ Official API 표기가 있는 모든 함수에서 사용됩니다.

dotenv와 함께 사용하는 것을 매우 권장합니다.

buzzk.auth(process.env.CLIENT_ID, process.env.CLIENT_SECRET);

login

buzzk.login("NID_AUT 쿠키 값", "NID_SES 쿠키 값");
  • 해당 함수는 이제 buzzk.channel.follow, unfollow 시에만 사용됩니다. dotenv와 함께 사용하는 것을 매우 권장합니다.

    buzzk.login(process.env.NID_AUT, process.env.NID_SES);


oauth

✅ Official API

let oauth = await buzzk.oauth.get("Code 값");
console.log(oauth);
return
  • Return
    • access
    • refresh
    • expireIn

✅ Official API

let oauth = await buzzk.oauth.refresh("refreshToken 값");
console.log(oauth);
return
  • Return
    • access
    • refresh
    • expireIn

✅ Official API

let oauth = await buzzk.oauth.resolve("accessToken 값");
console.log(oauth);
return
  • Return
    • channelID
    • name
    • follower
    • imageURL

channel

let chSearch = await buzzk.channel.search("녹두로로");
console.log(chSearch);
return
  • Return
    • 0
      • channelID
      • name
      • description
      • follower
      • imageURL
      • isLive
    • 1
    • 2
    • 3
    • ...

✅ Official API

let channel = await buzzk.channel.get("channelID 값");
console.log(channel);
return
  • Return
    • channelID
    • name
    • follower
    • imageURL
await buzzk.channel.follow("channelID 값");
await buzzk.channel.unFollow("channelID 값");

live

const lvDetail = await buzzk.live.getDetail("channelID 값");
console.log(lvDetail);
return
  • Return
    • channelID
    • channel
      • name
      • imageURL
    • chatID
    • chatLimit //팔로워 전용 채팅 등...
    • userCount
      • now
      • total
    • title
    • category
    • startOn
    • closeOn
    • status
    • polling
    • imageURL
    • liveID
    • videoID
const lvStatus = await buzzk.live.getStatus("channelID 값");
console.log(lvStatus);
return
  • Return
    • channelID
    • chatID
    • userCount
      • now
      • total
    • title
    • status
    • polling

chat

✅ Official API

const buzzkChat = buzzk.chat;
let chat = new buzzkChat("accessToken 값");
await chat.connect(); //채팅창 연결

✅ Official API

chat.onMessage((data) => { //채팅이 왔을 때
	console.log(data);
});
callback
  • Return - author - id - name - hasMod //관리 권한을 가졌는지 (false / true) - message - emoji (Object - Key: 이모지 이름, Value: 이미지 URL) - time

✅ Official API

chat.onDonation((data) => { //도네이션이 왔을 때
	console.log(data);
});
callback
  • Return
    • type //CHAT or VIDEO
    • amount //후원 금액
    • author
      • id
      • name
      • hasMod //관리 권한을 가졌는지 (false / true)
    • message
    • emoji (Object - Key: 이모지 이름, Value: 이미지 URL)

✅ Official API

chat.onDisconnect(() => { //채팅창 연결이 끊겼을 때
	//TODO
});

✅ Official API

await chat.send("ㅋㅋㅋㅋㅋㅋ"); //채팅 보내기 (login 후에만 가능)
let userInfo = await chat.getUserInfo("유저의 channelID 값");
return
  • Return
    • channelID
    • name
    • imageURL
    • role //ex. streamer
    • followDate //팔로우 날짜 ex. 2024-02-19 23:28:11
await chat.disconnect(); //채팅창 연결 끊기

video

const videoList = await buzzk.video.getList("channelID 값", 24); //channelID 값, 가져올 갯수
console.log(videoList);
return
  • Return
    • 0
      • no
      • id
      • title
      • category
      • duration
      • uploadOn
      • imageURL
      • trailerURL
    • 1
    • 2
    • 3
    • ...
const video = await buzzk.video.get("no 값"); //videoList 에서 return 된 no 값
console.log(video);
console.log(video.videoURL[720]);
return
  • Return
    • id
    • title
    • category
    • duration
    • uploadOn
    • startOn
    • imageURL
    • trailerURL
    • videoURL
      • 144
      • 720
      • 1080

About

뿌지직 (BUZZK) - 치지직(CHZZK) 챗봇을 더욱 쉽게 개발할 수 있도록 돕는 비공식 라이브러리. (Node.js)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published