diff options
author | Ajay <[email protected]> | 2024-04-26 16:44:20 -0400 |
---|---|---|
committer | Ajay <[email protected]> | 2024-04-26 16:44:20 -0400 |
commit | 56bb22d03d63ca6ae02aacb60562082dd82167ec (patch) | |
tree | bb98a7f738407b0b0108e03fa14bbbb4860cef21 /src | |
parent | e1d656f43f8b3cfb40e1c521e4103d61db756872 (diff) | |
download | SponsorBlock-56bb22d03d63ca6ae02aacb60562082dd82167ec.tar.gz SponsorBlock-56bb22d03d63ca6ae02aacb60562082dd82167ec.zip |
Allow importing segments with no category
Also fixes case when importing chapters when having no permission to submit chapters
Diffstat (limited to 'src')
-rw-r--r-- | src/content.ts | 4 | ||||
-rw-r--r-- | src/utils/exporter.ts | 33 |
2 files changed, 19 insertions, 18 deletions
diff --git a/src/content.ts b/src/content.ts index a7b8c45b..a48dca2b 100644 --- a/src/content.ts +++ b/src/content.ts @@ -303,7 +303,9 @@ function messageListener(request: Message, sender: unknown, sendResponse: (respo if (!sponsorTimesSubmitting.some( (s) => Math.abs(s.segment[0] - segment.segment[0]) < 1 && Math.abs(s.segment[1] - segment.segment[1]) < 1)) { - if (segment.category === "chapter" && !utils.getCategorySelection("chapter")) { + const hasChaptersPermission = (Config.config.showCategoryWithoutPermission + || Config.config.permissions["chapter"]); + if (segment.category === "chapter" && (!utils.getCategorySelection("chapter") || !hasChaptersPermission)) { segment.category = "chooseACategory" as Category; segment.actionType = ActionType.Skip; segment.description = ""; diff --git a/src/utils/exporter.ts b/src/utils/exporter.ts index 40d0f257..85e1b383 100644 --- a/src/utils/exporter.ts +++ b/src/utils/exporter.ts @@ -53,24 +53,23 @@ export function importTimes(data: string, videoDuration: number): SponsorTime[] titleRight = removeIf(split2[split2.length - 1], specialCharMatchers) const title = titleLeft?.length > titleRight?.length ? titleLeft : titleRight; - if (title) { - const determinedCategory = chapterNames.find(c => c.names.includes(title))?.code as Category; - - const segment: SponsorTime = { - segment: [startTime, getFormattedTimeToSeconds(match[1])], - category: determinedCategory ?? ("chapter" as Category), - actionType: determinedCategory ? ActionType.Skip : ActionType.Chapter, - description: title, - source: SponsorSourceType.Local, - UUID: generateUserID() as SegmentUUID - }; - - if (result.length > 0 && result[result.length - 1].segment[1] === null) { - result[result.length - 1].segment[1] = segment.segment[0]; - } - - result.push(segment); + const determinedCategory = chapterNames.find(c => c.names.includes(title))?.code as Category; + + const category = title ? (determinedCategory ?? ("chapter" as Category)) : "chooseACategory" as Category; + const segment: SponsorTime = { + segment: [startTime, getFormattedTimeToSeconds(match[1])], + category, + actionType: category === "chapter" ? ActionType.Chapter : ActionType.Skip, + description: category === "chapter" ? title : null, + source: SponsorSourceType.Local, + UUID: generateUserID() as SegmentUUID + }; + + if (result.length > 0 && result[result.length - 1].segment[1] === null) { + result[result.length - 1].segment[1] = segment.segment[0]; } + + result.push(segment); } } } |