diff --git a/pytchat/processors/default/processor.py b/pytchat/processors/default/processor.py index d5e87a8..986e91e 100644 --- a/pytchat/processors/default/processor.py +++ b/pytchat/processors/default/processor.py @@ -137,7 +137,7 @@ class DefaultProcessor(ChatProcessor): if component is None: continue timeout += component.get('timeout', 0) - chatdata = component.get('chatdata') + chatdata = component.get('chatdata') # if from Extractor, chatdata is generator. if chatdata is None: continue for action in chatdata: diff --git a/pytchat/tool/extract/extractor.py b/pytchat/tool/extract/extractor.py index 4647f9d..f7d492b 100644 --- a/pytchat/tool/extract/extractor.py +++ b/pytchat/tool/extract/extractor.py @@ -1,3 +1,4 @@ +from typing import Generator from . import asyncdl from . import duplcheck from .. videoinfo import VideoInfo @@ -60,11 +61,10 @@ class Extractor: self.blocks = duplcheck.remove_duplicate_tail(self.blocks) return self - def _combine(self): - ret = [] + def _get_chatdata(self) -> Generator: for block in self.blocks: - ret.extend(block.chat_data) - return ret + for chatdata in block.chat_data: + yield chatdata def _execute_extract_operations(self): return ( @@ -74,7 +74,7 @@ class Extractor: ._remove_overlap() ._download_blocks() ._remove_duplicate_tail() - ._combine() + ._get_chatdata() ) def extract(self):