Skip to content

Commit 9ec227d

Browse files
authored
Merge pull request #3 from GeneralYadoc/develop
Use dataclass for args of constructor.
2 parents cfd5655 + c38d8e2 commit 9ec227d

5 files changed

Lines changed: 36 additions & 25 deletions

File tree

README.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ You can select from following ways.
6262
exit(0)
6363
6464
# Create StreamChatAgent instance.
65-
agent = sca.StreamChatAgent( video_id=sys.argv[1],
66-
get_item_cb=get_item_cb,
67-
pre_filter_cb=pre_filter_cb,
68-
post_filter_cb=post_filter_cb )
65+
params = sca.params(
66+
video_id = sys.argv[1],
67+
get_item_cb = get_item_cb,
68+
pre_filter_cb = pre_filter_cb,
69+
post_filter_cb = post_filter_cb
70+
)
71+
agent = sca.StreamChatAgent( params )
6972
7073
# Start async getting YouTube chat items.
7174
# Then get_item_cb is called continuosly.
@@ -91,8 +94,8 @@ You can select from following ways.
9194
2023-05-19 05:21:27 [Kelly]- Hello everyone!
9295
2023-05-19 05:21:27 [Taro]- Welcome to our stream.
9396
```
94-
## Arguments of Constractor
95-
- StreamChatAgent object can be configured with following arguments of its constractor.
97+
## Params given to Constructor
98+
- StreamChatAgent object can be configured with following params given to constructor.
9699
97100
| name | description | default |
98101
|------|------------|---------|

samples/sample.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,13 @@ def post_filter_cb(c):
2828
exit(0)
2929

3030
# Create StreamChatAgent instance.
31-
agent = sca.StreamChatAgent( video_id=sys.argv[1],
32-
get_item_cb=get_item_cb,
33-
pre_filter_cb=pre_filter_cb,
34-
post_filter_cb=post_filter_cb )
31+
params = sca.params(
32+
video_id = sys.argv[1],
33+
get_item_cb = get_item_cb,
34+
pre_filter_cb = pre_filter_cb,
35+
post_filter_cb = post_filter_cb
36+
)
37+
agent = sca.StreamChatAgent( params )
3538

3639
# Start async getting YouTube chat items.
3740
# Then get_item_cb is called continuosly.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def _requires_from_file(filename):
1212

1313
setup(
1414
name="streamchat-agent",
15-
version="0.0.1",
15+
version="1.0.0",
1616
license="MIT",
1717
description="Get YouTube chat comments with minimum time lag",
1818
author="General Yadoc",

src/StreamChatAgent.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,28 @@
33
import queue
44
import math
55
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
617

718
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
2025
self.__keeping_connection = False
2126

22-
self.__chat = pytchat.create(video_id=video_id)
27+
self.__chat = pytchat.create(video_id=params.video_id)
2328

2429
self.__my_put_thread = threading.Thread(target=self.__put_items)
2530
self.__my_get_thread = threading.Thread(target=self.__get_items)

src/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from .StreamChatAgent import *
22

3-
__version__ = '0.0.1'
3+
__version__ = '1.0.0'

0 commit comments

Comments
 (0)