Added support for specifying minimum skip length

This commit is contained in:
bourkemcrobbo
2024-06-10 13:25:48 +10:00
committed by Matthew Stern
parent c21ebe396e
commit 0b785da448
4 changed files with 28 additions and 3 deletions

View File

@@ -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": "",

View File

@@ -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

View File

@@ -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"

View File

@@ -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()