From 56294d6a67b6088c1ae22227ff085a904b7b7a11 Mon Sep 17 00:00:00 2001 From: taizan-hokuto <55448286+taizan-hokuto@users.noreply.github.com> Date: Fri, 21 Aug 2020 22:23:33 +0900 Subject: [PATCH] Fix extracting video_id --- pytchat/cli/__init__.py | 8 +++++--- pytchat/exceptions.py | 6 ++++++ pytchat/tool/extract/extractor.py | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pytchat/cli/__init__.py b/pytchat/cli/__init__.py index 2c72db1..0d09de2 100644 --- a/pytchat/cli/__init__.py +++ b/pytchat/cli/__init__.py @@ -3,7 +3,7 @@ import os from pathlib import Path from pytchat.util.extract_video_id import extract_video_id from .arguments import Arguments -from .. exceptions import InvalidVideoIdException, NoContents +from .. exceptions import InvalidVideoIdException, NoContents, VideoInfoParseException from .. processors.html_archiver import HTMLArchiver from .. tool.extract.extractor import Extractor from .. tool.videoinfo import VideoInfo @@ -40,11 +40,11 @@ def main(): if '[' in video_id: video_id = video_id.replace('[', '').replace(']', '') try: + video_id = extract_video_id(video_id) if os.path.exists(Arguments().output): path = Path(Arguments().output + video_id + '.html') else: raise FileNotFoundError - video_id = extract_video_id(video_id) info = VideoInfo(video_id) print(f"Extracting...\n" f" video_id: {video_id}\n" @@ -63,7 +63,9 @@ def main(): except (TypeError, NoContents) as e: print(e) except FileNotFoundError: - print("The specified directory does not exist.:{}".format(Arguments().output )) + print("The specified directory does not exist.:{}".format(Arguments().output)) + except VideoInfoParseException: + print("Cannot parse video information.:{}".format(video_id)) return parser.print_help() diff --git a/pytchat/exceptions.py b/pytchat/exceptions.py index d8de40e..1c1793c 100644 --- a/pytchat/exceptions.py +++ b/pytchat/exceptions.py @@ -62,3 +62,9 @@ class ReceivedUnknownContinuation(ChatParseException): class FailedExtractContinuation(ChatDataFinished): pass + + +class VideoInfoParseException(Exception): + ''' + thrown when failed to parse video info + ''' diff --git a/pytchat/tool/extract/extractor.py b/pytchat/tool/extract/extractor.py index 56bd8aa..4647f9d 100644 --- a/pytchat/tool/extract/extractor.py +++ b/pytchat/tool/extract/extractor.py @@ -79,7 +79,7 @@ class Extractor: def extract(self): if self.duration == 0: - print("video is not archived.") + print("\nCannot extract chat data:\n The specified video has not yet been archived.") return [] data = self._execute_extract_operations() if self.processor is None: