From 9068b58bf68b801dba8a0c7af4d29af1529dafbf Mon Sep 17 00:00:00 2001 From: Petko Vasilev Date: Sun, 28 Jan 2024 09:59:47 +0200 Subject: [PATCH 1/4] fix for overlapping segments --- src/iSponsorBlockTV/api_helpers.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/iSponsorBlockTV/api_helpers.py b/src/iSponsorBlockTV/api_helpers.py index c7f98e5..151bd45 100644 --- a/src/iSponsorBlockTV/api_helpers.py +++ b/src/iSponsorBlockTV/api_helpers.py @@ -153,7 +153,24 @@ class ApiHelper: segments = [] ignore_ttl = True try: - for i in response["segments"]: + response_segments = response["segments"] + # sort by end + response_segments = sorted(response_segments, key = lambda x: x["segment"][1]) + # extend ends of overlapping segments to make one big segment + for i in response_segments: + for j in response_segments: + if j["segment"][0] <= i["segment"][1] <= j["segment"][1]: + i["segment"][1] = j["segment"][1] + + # sort by start + response_segments = sorted(response_segments, key = lambda x: x["segment"][0]) + # extend starts of overlapping segments to make one big segment + for i in response_segments: + for j in response_segments: + if j["segment"][0] <= i["segment"][0] <= j["segment"][1]: + i["segment"][0] = j["segment"][0] + + for i in response_segments: ignore_ttl = ( ignore_ttl and i["locked"] == 1 ) # If all segments are locked, ignore ttl From ab6b67f88b5808d3fa907b04a2ee31718b578b7a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 08:11:55 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/iSponsorBlockTV/api_helpers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/iSponsorBlockTV/api_helpers.py b/src/iSponsorBlockTV/api_helpers.py index 151bd45..4e55c99 100644 --- a/src/iSponsorBlockTV/api_helpers.py +++ b/src/iSponsorBlockTV/api_helpers.py @@ -153,9 +153,9 @@ class ApiHelper: segments = [] ignore_ttl = True try: - response_segments = response["segments"] + response_segments = response["segments"] # sort by end - response_segments = sorted(response_segments, key = lambda x: x["segment"][1]) + response_segments = sorted(response_segments, key=lambda x: x["segment"][1]) # extend ends of overlapping segments to make one big segment for i in response_segments: for j in response_segments: @@ -163,7 +163,7 @@ class ApiHelper: i["segment"][1] = j["segment"][1] # sort by start - response_segments = sorted(response_segments, key = lambda x: x["segment"][0]) + response_segments = sorted(response_segments, key=lambda x: x["segment"][0]) # extend starts of overlapping segments to make one big segment for i in response_segments: for j in response_segments: From 8208a511761aba1ba5865d98bed39c426e42ded1 Mon Sep 17 00:00:00 2001 From: Petko Vasilev Date: Mon, 29 Jan 2024 12:39:22 +0200 Subject: [PATCH 3/4] more understandable logic (same result) --- src/iSponsorBlockTV/api_helpers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/iSponsorBlockTV/api_helpers.py b/src/iSponsorBlockTV/api_helpers.py index 4e55c99..fdbf9a6 100644 --- a/src/iSponsorBlockTV/api_helpers.py +++ b/src/iSponsorBlockTV/api_helpers.py @@ -155,7 +155,7 @@ class ApiHelper: try: response_segments = response["segments"] # sort by end - response_segments = sorted(response_segments, key=lambda x: x["segment"][1]) + response_segments.sort(key=lambda x: x["segment"][1]) # extend ends of overlapping segments to make one big segment for i in response_segments: for j in response_segments: @@ -163,10 +163,10 @@ class ApiHelper: i["segment"][1] = j["segment"][1] # sort by start - response_segments = sorted(response_segments, key=lambda x: x["segment"][0]) + response_segments.sort(key=lambda x: x["segment"][0]) # extend starts of overlapping segments to make one big segment - for i in response_segments: - for j in response_segments: + for i in reversed(response_segments): + for j in reversed(response_segments): if j["segment"][0] <= i["segment"][0] <= j["segment"][1]: i["segment"][0] = j["segment"][0] From 13fe1f69aedbe1aca24f78ab7f44fa5e7c92ac2b Mon Sep 17 00:00:00 2001 From: David <39565245+dmunozv04@users.noreply.github.com> Date: Wed, 14 Feb 2024 22:07:51 +0100 Subject: [PATCH 4/4] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index dfeba47..de6e83e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "iSponsorBlockTV" -version = "2.0.5" +version = "2.0.6" authors = [ {"name" = "dmunozv04"} ]