mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-11-10 01:01:55 +01:00
Don't regenerate groups if not needed
This commit is contained in:
parent
a5d91c9b57
commit
7eb6b3a79d
1 changed files with 25 additions and 16 deletions
|
@ -62,6 +62,7 @@ class PreviewBar {
|
|||
originalChapterBar: HTMLElement;
|
||||
originalChapterBarBlocks: NodeListOf<HTMLElement>;
|
||||
chapterMargin: number;
|
||||
lastRenderedSegments: PreviewBarSegment[];
|
||||
unfilteredChapterGroups: ChapterGroup[];
|
||||
chapterGroups: ChapterGroup[];
|
||||
|
||||
|
@ -308,6 +309,8 @@ class PreviewBar {
|
|||
this.container.appendChild(bar);
|
||||
}
|
||||
|
||||
console.log(this.segments)
|
||||
console.trace()
|
||||
this.createChaptersBar(this.segments.sort((a, b) => a.segment[0] - b.segment[0]));
|
||||
|
||||
if (chapterChevron) {
|
||||
|
@ -356,8 +359,10 @@ class PreviewBar {
|
|||
return;
|
||||
}
|
||||
|
||||
// Merge overlapping chapters
|
||||
this.unfilteredChapterGroups = this.createChapterRenderGroups(segments);
|
||||
if (segments !== this.lastRenderedSegments) {
|
||||
// Merge overlapping chapters
|
||||
this.unfilteredChapterGroups = this.createChapterRenderGroups(segments);
|
||||
}
|
||||
|
||||
if (segments.every((segments) => segments.source === SponsorSourceType.YouTube)
|
||||
|| (!Config.config.renderSegmentsAsChapters
|
||||
|
@ -368,24 +373,28 @@ class PreviewBar {
|
|||
return;
|
||||
}
|
||||
|
||||
const filteredSegments = segments?.filter((segment) => this.chapterFilter(segment));
|
||||
if (filteredSegments) {
|
||||
let groups = this.unfilteredChapterGroups;
|
||||
if (filteredSegments.length !== segments.length) {
|
||||
groups = this.createChapterRenderGroups(filteredSegments);
|
||||
}
|
||||
this.chapterGroups = groups.filter((segment) => this.chapterGroupFilter(segment));
|
||||
if (segments !== this.lastRenderedSegments) {
|
||||
this.lastRenderedSegments = segments;
|
||||
|
||||
if (groups.length !== this.chapterGroups.length) {
|
||||
// Fix missing sections due to filtered segments
|
||||
for (let i = 1; i < this.chapterGroups.length; i++) {
|
||||
if (this.chapterGroups[i].segment[0] !== this.chapterGroups[i - 1].segment[1]) {
|
||||
this.chapterGroups[i - 1].segment[1] = this.chapterGroups[i].segment[0]
|
||||
const filteredSegments = segments?.filter((segment) => this.chapterFilter(segment));
|
||||
if (filteredSegments) {
|
||||
let groups = this.unfilteredChapterGroups;
|
||||
if (filteredSegments.length !== segments.length) {
|
||||
groups = this.createChapterRenderGroups(filteredSegments);
|
||||
}
|
||||
this.chapterGroups = groups.filter((segment) => this.chapterGroupFilter(segment));
|
||||
|
||||
if (groups.length !== this.chapterGroups.length) {
|
||||
// Fix missing sections due to filtered segments
|
||||
for (let i = 1; i < this.chapterGroups.length; i++) {
|
||||
if (this.chapterGroups[i].segment[0] !== this.chapterGroups[i - 1].segment[1]) {
|
||||
this.chapterGroups[i - 1].segment[1] = this.chapterGroups[i].segment[0]
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.chapterGroups = this.unfilteredChapterGroups;
|
||||
}
|
||||
} else {
|
||||
this.chapterGroups = this.unfilteredChapterGroups;
|
||||
}
|
||||
|
||||
if (!this.chapterGroups || this.chapterGroups.length <= 0) {
|
||||
|
|
Loading…
Reference in a new issue