mirror of
https://github.com/dmunozv04/iSponsorBlockTV.git
synced 2026-03-14 06:22:56 +03:00
Merge pull request #136 from PetkoVasilev/main
fix for overlapping segments
This commit is contained in:
@@ -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.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:
|
||||
if j["segment"][0] <= i["segment"][1] <= j["segment"][1]:
|
||||
i["segment"][1] = j["segment"][1]
|
||||
|
||||
# sort by start
|
||||
response_segments.sort(key=lambda x: x["segment"][0])
|
||||
# extend starts of overlapping segments to make one big segment
|
||||
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]
|
||||
|
||||
for i in response_segments:
|
||||
ignore_ttl = (
|
||||
ignore_ttl and i["locked"] == 1
|
||||
) # If all segments are locked, ignore ttl
|
||||
|
||||
Reference in New Issue
Block a user