|
3 | 3 | import queue |
4 | 4 | import math |
5 | 5 | import pytchat |
| 6 | +from typing import Callable |
| 7 | +from dataclasses import dataclass |
| 8 | + |
| 9 | +@dataclass |
| 10 | +class params: |
| 11 | + video_id: str |
| 12 | + get_item_cb: Callable[[any,],None] |
| 13 | + pre_filter_cb: Callable[[any,],any] = None |
| 14 | + post_filter_cb: Callable[[any,],any] = None |
| 15 | + max_queue_size: int = 1000 |
| 16 | + interval_sec: float = 0.01 |
6 | 17 |
|
7 | 18 | class StreamChatAgent(threading.Thread): |
8 | | - def __init__( self, |
9 | | - video_id, |
10 | | - get_item_cb, |
11 | | - pre_filter_cb=None, |
12 | | - post_filter_cb=None, |
13 | | - max_queue_size=1000, |
14 | | - interval_sec=0.01 ): |
15 | | - self.__get_item_cb = get_item_cb |
16 | | - self.__pre_filter_cb = pre_filter_cb |
17 | | - self.__post_filter_cb = post_filter_cb |
18 | | - self.__item_queue = queue.Queue(max_queue_size) |
19 | | - self.__interval_sec = interval_sec |
| 19 | + def __init__( self, params ): |
| 20 | + self.__get_item_cb = params.get_item_cb |
| 21 | + self.__pre_filter_cb = params.pre_filter_cb |
| 22 | + self.__post_filter_cb = params.post_filter_cb |
| 23 | + self.__item_queue = queue.Queue(params.max_queue_size) |
| 24 | + self.__interval_sec = params.interval_sec |
20 | 25 | self.__keeping_connection = False |
21 | 26 |
|
22 | | - self.__chat = pytchat.create(video_id=video_id) |
| 27 | + self.__chat = pytchat.create(video_id=params.video_id) |
23 | 28 |
|
24 | 29 | self.__my_put_thread = threading.Thread(target=self.__put_items) |
25 | 30 | self.__my_get_thread = threading.Thread(target=self.__get_items) |
|
0 commit comments