From 0b785da4489a35b3de337e9d592f6a32925b44aa Mon Sep 17 00:00:00 2001 From: bourkemcrobbo Date: Mon, 10 Jun 2024 13:25:48 +1000 Subject: [PATCH] Added support for specifying minimum skip length --- config.json.template | 1 + src/iSponsorBlockTV/api_helpers.py | 9 ++++++--- src/iSponsorBlockTV/config_setup.py | 20 ++++++++++++++++++++ src/iSponsorBlockTV/helpers.py | 1 + 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/config.json.template b/config.json.template index d3268ff..d4a163b 100644 --- a/config.json.template +++ b/config.json.template @@ -12,6 +12,7 @@ "skip_count_tracking": true, "mute_ads": true, "skip_ads": true, + "minimum_skip_length": 1, "auto_play": true, "join_name": "iSponsorBlockTV", "apikey": "", diff --git a/src/iSponsorBlockTV/api_helpers.py b/src/iSponsorBlockTV/api_helpers.py index 7c4e86e..2e0c53b 100644 --- a/src/iSponsorBlockTV/api_helpers.py +++ b/src/iSponsorBlockTV/api_helpers.py @@ -27,6 +27,7 @@ class ApiHelper: self.skip_count_tracking = config.skip_count_tracking self.web_session = web_session self.num_devices = len(config.devices) + self.minimum_skip_length = config.minimum_skip_length # Not used anymore, maybe it can stay here a little longer @AsyncLRU(maxsize=10) @@ -147,10 +148,10 @@ class ApiHelper: if str(i["videoID"]) == str(vid_id): response_json = i break - return self.process_segments(response_json) + return self.process_segments(self, response_json) @staticmethod - def process_segments(response): + def process_segments(self, response): segments = [] ignore_ttl = True try: @@ -192,7 +193,9 @@ class ApiHelper: segment_dict["start"] = segment_before_start segment_dict["UUID"].extend(segment_before_UUID) segments.pop() - segments.append(segment_dict) + # Only add segments greater than minimum skip length + if segment_dict["end"]-segment_dict["start"] > self.minimum_skip_length: + segments.append(segment_dict) except BaseException: pass return segments, ignore_ttl diff --git a/src/iSponsorBlockTV/config_setup.py b/src/iSponsorBlockTV/config_setup.py index 69302e6..87527b6 100644 --- a/src/iSponsorBlockTV/config_setup.py +++ b/src/iSponsorBlockTV/config_setup.py @@ -182,6 +182,26 @@ def main(config, debug: bool) -> None: config.channel_whitelist = channel_whitelist + # Ask for minimum skip length. Confirm input is an integer + while True: + try: + minimum_skip_length = int(input('Enter minimum length of segment to skip in seconds: ')) + break + except ValueError: + print('You entered a non integer value, try again.') + continue + config.minimum_skip_length = minimum_skip_length + + # Ask for minimum skip length. Confirm input is an integer + while True: + try: + minimum_skip_length = int(input('Enter minimum length of segment to skip in seconds: ')) + break + except ValueError: + print('You entered a non integer value, try again.') + continue + config.minimum_skip_length = minimum_skip_length + choice = get_yn_input(REPORT_SKIPPED_SEGMENTS_PROMPT) config.skip_count_tracking = choice != "n" diff --git a/src/iSponsorBlockTV/helpers.py b/src/iSponsorBlockTV/helpers.py index 640b258..ac91ab9 100644 --- a/src/iSponsorBlockTV/helpers.py +++ b/src/iSponsorBlockTV/helpers.py @@ -41,6 +41,7 @@ class Config: self.skip_count_tracking = True self.mute_ads = False self.skip_ads = False + self.minimum_skip_length = 1 self.auto_play = True self.join_name = "iSponsorBlockTV" self.__load()