Chat Feature¶
클라이언트 (Client)¶
- class ChatClient(channel_id: str, authorization_key: str | None = None, session_key: str | None = None, chat_channel_id: str | None = None, loop: AbstractEventLoop | None = None)¶
기반 클래스:
Client
채팅 기능이 포함된, 치지직(네이버 스트리밍 서비스)와 연결하기 위한 객체를 제공합니다.
- async blind_message(message: ChatMessage) None ¶
채팅 운영자 권한으로 사용자의 메시지를 삭제합니다.
- 매개변수:
message (ChatMessage) – 삭제할 채팅이 담긴 객체입니다.
- async close()¶
치지직 채팅 서버 연결을 종료합니다.
- async history(count: int = 50) list[ChatMessage] ¶
과거 채팅 기록을 불러옵니다.
- 매개변수:
count (Optional[int]) – 최신 메시지를 기준으로 불러올 과거의 채팅 개수입니다. 기본 값은 50입니다.
- 반환:
방송인의 과거 채팅 기록을 최신 기록부터 불러옵니다.
- 반환 형식:
- async request_recent_chat(count: int = 50)¶
치지직 채팅 서버에 과거 채팅 기록을 불러오는 요청을 보냅니다. 이 함수는 요청`만 합니다. 만약에 과거 채팅 기록을 불러오고 싶다면, `history() 함수를 이용해주세요.
- 매개변수:
count (int, optional) – 최신 메시지를 기준으로 불러올 과거의 채팅 개수입니다. 기본 값은 50입니다.
- 예외 발생:
RuntimeError – 치지직의 채팅 서버와 연결되지 않았을 때, 발생하는 예외입니다.
- async send_chat(message: str) None ¶
실시간 방송에 채팅 메시지를 보냅니다.
- 매개변수:
message (str) – 실시간 방송에 보낼 메시지입니다.
- 예외 발생:
RuntimeError – 치지직의 채팅 서버와 연결되지 않았을 때, 발생하는 예외입니다.
- async set_notice_message(message: ChatMessage) None ¶
메시지를 고정합니다.
- 매개변수:
message (ChatMessage) – 고정할 메시지가 담긴 객체입니다.
이벤트 함수 (Event Refenence)¶
이 섹션은 ChatClient
에서 호출되는이벤트 함수를 나열하였습니다. ChatClient.event 데코레이터를 이용하여 이벤트를 수신받을 수 있습니다.
예제:
>>> @client.event
... async def on_chat(message: ChatMessage):
... print(message.content)
모든 이벤트 함수는 비동기(Coroutine) 함수여야 합니다. 그러지 않으면, 예상치 못한 오류를 초래할 수 있습니다.
- async on_chat(message: ChatMessage)¶
방송 채널에서
메시지
.가 작성되면 호출되는 이벤트 함수입니다.- 매개변수:
message (ChatMessage) – 새롭게 만들어진 메시지입니다.
- async on_connect()¶
치지직 채팅 서버와 연결을 성공하면 호출하는 이벤트 함수입니다.
- async on_donation(donation: DonationMessage)¶
방송인이 채팅 후원, 영상 후원, 미션 후원 등의 후원을 받으면 호출하는 이벤트 함수입니다,
- 매개변수:
message (DonationMessage) – 후원 메시지가 담긴 객체입니다.
- async on_system_message(system_message: SystemMessage)¶
새로운
시스템 메시지
가 만들어지면 호출되는이벤트 함수입니다.- 매개변수:
message (SystemMessage) – 시스템 메시지입니다.
- async on_subscription(subscription: SubscriptionMessage)¶
시청자가 방송인의 채널에 새로운 구독을하면 호출되는 이벤트 함수입니다.
- 매개변수:
message (SubscriptionMessage) – 구독 정보가 담긴 메시지 객체 입니다.
- async on_recent_chat(messages: RecentChat)¶
과거 채팅 기록을 요청하는 함수가 호출되고, 응답을 받으면 호출되는 이벤트 함수입니다.요청은 ChatClient.request_recent_chat 함수로 호출할 수 있습니다.
- 매개변수:
messages (RecentChat) – 과거 채팅 기록입니다.
- async on_pin(message: NoticeMessage)¶
방송인이 메시지를 고정하면 호출되는 이벤트 함수입니다. on_pin 대신에 on_notice 이벤트 함수로 대체할 수 있습니다.
- 매개변수:
message (NoticeMessage) – 고정한 메시지가 담긴 객체입니다.
- async on_unpin(message: NoticeMessage)¶
고정된 메시지가 삭제되면 호출되는 이벤트 함수입니다.
- 매개변수:
message (NoticeMessage) – 고정이 해제된 메시지가 담긴 객체입니다.
- async on_blind(message: Blind)¶
채팅 운영자가 메시지를 삭제하면 호출하는 함수입니다.
- 매개변수:
message (Blind) – 삭제된 메시지가 담긴 객체입니다.
- async on_mission_completed(mission: MissionDonation)¶
방송인이 미션을 성공하면 호출되는 이벤트 함수입니다.
- 매개변수:
mission (MissionDonation) – 성공한 미션 정보가 담긴 객체입니다.
- async on_mission_pending(mission: MissionDonation)¶
방송인이 새로운 미션을 요청받으면 호출되는 이벤트 함수입니다.
- 매개변수:
mission (MissionDonation) – 성공한 미션 정보가 담긴 객체입니다.
- async on_mission_approved(mission: MissionDonation)¶
요청받은 미션을 방송인이 승인하면 호출되는 이벤트 함수입니다.
- 매개변수:
mission (MissionDonation) – 승인된 미션 정보가 담긴 객체입니다.
- async on_mission_rejected(mission: MissionDonation)¶
요청받은 미션을 방송인이 거부하면 호출되는 이벤트 함수입니다.
- 매개변수:
mission (MissionDonation) – 거절된 미션 정보가 담긴 객체입니다.
Enumerations¶
Blind¶
이 데이터 모델은 on_blind 이벤트 함수를 호출하는 데 사용됩니다.
Connection¶
Donation¶
- class DonationRank¶
- class BaseDonation¶
-
- donation_user_weekly_rank: DonationRank | None¶
- weekly_rank_list: list[DonationRank] | None¶
- class ChatDonation¶
기반 클래스:
BaseDonation
- donation_type: Literal['CHAT']¶
- class VideoDonation¶
기반 클래스:
BaseDonation
- donation_type: Literal['VIDEO']¶
- class MissionDonation¶
기반 클래스:
BaseDonation
- donation_type: Literal['MISSION']¶
- mission_created_time: datetime.datetime¶
- mission_end_time: datetime.datetime | None¶
- mission_start_time: datetime.datetime | None¶
Message¶
- class Message¶
-
- created_time: datetime.datetime¶
- time: datetime.datetime¶
- type: ChatType¶
- updated_time: datetime.datetime | None¶
- class MessageDetail¶
- class ChatMessage¶
기반 클래스:
MessageDetail[Extra]
- async blind()¶
채팅 운영자의 권한으로 메시지를 삭제합니다.
- classmethod model_validate_with_client(obj: Any, client: ChatClient) ChatMessage ¶
- async pin()¶
메시지를 고정합니다.
- async unpin()¶
메시지 고정을 해제합니다.
- class NoticeMessage¶
기반 클래스:
Message[NoticeExtra]
- class DonationMessage¶
기반 클래스:
MessageDetail[Union[ChatDonationExtra, VideoDonationExtra, MissionDonationExtra]]
- class SubscriptionMessage¶
기반 클래스:
MessageDetail[SubscriptionExtra]
- class SystemMessage¶
기반 클래스:
MessageDetail[SystemExtra]
Message Extra¶
- class ChatDonationExtra¶
기반 클래스:
ChatDonation
- class VideoDonationExtra¶
기반 클래스:
VideoDonation
- class MissionDonationExtra
기반 클래스:
MissionDonation
- class SubscriptionExtra¶
기반 클래스:
ExtraBase
- class SystemExtra¶
기반 클래스:
ExtraBase
- params: SystemExtraParameter | None¶
Profile¶
- class Profile¶
- activity_badges: list[ActivityBadge]¶
- model_post_init(context: Any, /) None ¶
This function is meant to behave like a BaseModel method to initialise private attributes.
It takes context as an argument since that’s what pydantic-core passes when calling it.
- 매개변수:
self – The BaseModel instance.
context – The context.
- streaming_property: StreamingProperty | None¶
- class StreamingProperty¶
Recent Chat¶
이 데이터 모델은 on_recent_chat 이벤트 함수에서 사용됩니다.방송인의 채널의 과거 채팅 기록을 담고 있습니다.
- class RecentChat¶
- message_list: list[ChatMessage]¶
- notice: NoticeMessage | None¶
예외 (Exceptions)¶
Chat Features 페이지에서 발생하는 예외는 ChatClient`에서 발생할 수 있는 추가적인 예외상황입니다. `Basic Features 페이지에서 발생하는 예외도 발생할 수 있습니다.
- exception ChatConnectFailed¶
- exception ConnectionClosed¶
- exception WebSocketClosure¶
- exception ReconnectWebsocket¶