chzzk
Version:
네이버 라이브 스트리밍 서비스 CHZZK의 비공식 API 라이브러리
145 lines (144 loc) • 4.34 kB
TypeScript
import { ChzzkClient } from "../client";
export interface PartialUser {
nickname: string;
profileImageUrl: string;
userIdHash: string;
}
export interface ChatActivtyCount {
chatMessageCount: number;
restrict: boolean;
restrictCount: number;
temporaryRestrict: boolean;
temporaryRestrictCount: number;
}
export interface LiveSettingParams {
adult: boolean;
categoryType?: string;
chatActive: boolean;
chatAvailableGroup: string;
chatAvailableCondition: string;
defaultLiveTitle: string;
defaultThumbnailImageUrl?: string;
liveCategory?: string;
paidPromotion: boolean;
}
export interface LiveSetting {
defaultLiveTitle: string;
category: {
categoryType?: "GAME" | "ETC";
liveCategory?: string;
liveCategoryName?: string;
};
defaultThumbnailImageUrl?: string;
chatActive: boolean;
chatAvailableGroup: string;
paidPromotion: boolean;
adult: boolean;
chatAvailableCondition: string;
minFollowerMinute: number;
}
export interface ChatRule {
channelId: string;
rule: string;
}
export interface ProhibitWord {
createdDate: string;
nickname: string;
prohibitWord: string;
prohibitWordNo: number;
}
export interface Stream {
streamKey: string;
streamSeq: number;
streamUrl: string;
}
export interface ManageSearchResult {
page: number;
size: number;
totalCount: number;
totalPages: number;
}
export interface SubscriberSearchOptions {
page: number;
size: number;
sortType: "RECENT" | "LONGER";
publishPeriod?: 1 | 3 | 6;
tier?: "TIER_1" | "TIER_2";
userNickname?: string;
}
export interface FollowerSearchOptions {
page: number;
size: number;
userNickname?: string;
}
export interface ManageVideoSearchOptions {
videoType: "REPLAY" | "UPLOAD";
page: number;
size: number;
}
export interface Following {
following: boolean;
notification: boolean;
followDate: string;
}
export interface Subscribers extends ManageSearchResult {
data: Subscriber[];
}
export interface Subscriber {
user: PartialUser;
following?: Following;
channelFollowing?: Following;
}
export interface Followers extends ManageSearchResult {
data: Follower[];
}
export interface Follower {
user: PartialUser;
following?: Following;
channelFollowing?: Following;
}
export interface ManageVideos extends ManageSearchResult {
data: ManageVideo[];
}
export interface ManageVideo {
commentCount: number;
deleted: boolean;
deletedBy: null;
download?: {
downloadable: boolean;
};
duration: number;
exposure: boolean;
likeCount: number;
liveAccumulateCount: number;
liveId?: number;
liveOpenDate?: string;
liveUniqueViewCount: number;
publishDate: string;
readCount: number;
thumbnailImageUrl: string;
videoId: string;
videoNo: number;
videoTitle: string;
videoType: "REPLAY" | "UPLOAD";
vodStatus: string;
}
export declare class ChzzkManage {
private client;
constructor(client: ChzzkClient);
temporaryRestrict(channelId: string, targetId: string): Promise<PartialUser>;
restrict(channelId: string, targetId: string): Promise<PartialUser>;
removeRestrict(channelId: string, targetId: string): Promise<Response>;
chatActivityCount(channelId: string, targetId: string): Promise<ChatActivtyCount>;
setRole(channelId: string, targetId: string, userRoleType: "streaming_chat_manager" | "streaming_channel_manager"): Promise<PartialUser>;
removeRole(channelId: string, targetId: string): Promise<Response>;
setting(channelId: string, params?: LiveSettingParams): Promise<LiveSetting>;
chatRule(channelId: string): Promise<ChatRule>;
setChatRule(channelId: string, rule: string): Promise<Response>;
prohibitWords(channelId: string): Promise<ProhibitWord[]>;
addProhibitWord(channelId: string, word: string): Promise<Response>;
stream(channelId: string): Promise<Stream>;
subscribers(channelId: string, options?: Partial<SubscriberSearchOptions>): Promise<Subscribers>;
followers(channelId: string, options?: Partial<FollowerSearchOptions>): Promise<Followers>;
videos(channelId: string, options?: Partial<ManageVideoSearchOptions>): Promise<ManageVideos>;
}