aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAjay Ramachandran <[email protected]>2021-10-15 00:31:07 -0400
committerAjay Ramachandran <[email protected]>2021-10-15 00:31:07 -0400
commitfcbeeb9fc11bee6b7c456d0a106a3eec0b7eab69 (patch)
tree613745c4e58a2d42b944f9bcccd936b3af8e1c30
parentfc7fc693ed5bc36866d54084f9db669f83aac937 (diff)
downloadSponsorBlock-fcbeeb9fc11bee6b7c456d0a106a3eec0b7eab69.tar.gz
SponsorBlock-fcbeeb9fc11bee6b7c456d0a106a3eec0b7eab69.zip
Remove extra segment lookup and use lockbyhash lookup
-rw-r--r--src/components/SkipNoticeComponent.tsx8
-rw-r--r--src/content.ts18
-rw-r--r--src/types.ts2
3 files changed, 8 insertions, 20 deletions
diff --git a/src/components/SkipNoticeComponent.tsx b/src/components/SkipNoticeComponent.tsx
index 4664ff76..6aad43dd 100644
--- a/src/components/SkipNoticeComponent.tsx
+++ b/src/components/SkipNoticeComponent.tsx
@@ -394,9 +394,9 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
submissionChooserColorSelector(index: number): string {
const isDownvote = this.state.actionState == SkipNoticeAction.Downvote;
const isCopyDownvote = this.state.actionState == SkipNoticeAction.CopyDownvote;
- const shouldWarnUser: boolean = (isDownvote || isCopyDownvote)
- && this.segments[index].locked === true;
- return (shouldWarnUser) ? this.lockedColor : this.unselectedColor;
+ const shouldWarnUser = Config.config.isVip && (isDownvote || isCopyDownvote)
+ && this.segments[index].locked === 1;
+ return shouldWarnUser ? this.lockedColor : this.unselectedColor;
}
onMouseEnter(): void {
@@ -728,7 +728,7 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
return (this.state.actionState === downvoteType) ? this.selectedColor : this.unselectedColor;
} else {
// You dont have segment selectors so the lockbutton needs to be colored and cannot be selected.
- return (this.segments[0].locked === true) ? this.lockedColor : this.unselectedColor;
+ return Config.config.isVip && this.segments[0].locked === 1 ? this.lockedColor : this.unselectedColor;
}
}
diff --git a/src/content.ts b/src/content.ts
index 260e9760..760baa7c 100644
--- a/src/content.ts
+++ b/src/content.ts
@@ -764,7 +764,6 @@ function lookupVipInformation(id: string): void {
updateVipInfo().then((isVip) => {
if (isVip) {
lockedCategoriesLookup(id);
- lockedSegmentsLookup()
}
})
}
@@ -794,24 +793,13 @@ async function updateVipInfo(): Promise<boolean> {
return Config.config.isVip;
}
-async function lockedSegmentsLookup(): Promise<void> {
- const response = await utils.asyncRequestToServer("GET", "/api/segmentInfo", { UUIDs: sponsorTimes?.map((segment) => segment.UUID) });
-
- if (response.status === 200) {
- for (let i = 0; i < sponsorTimes.length && i < 10; i++) { // Because the api only return 10 segments maximum
- try {
- sponsorTimes[i].locked = (JSON.parse(response.responseText)[i].locked === 1) ? true : false;
- } catch (e) { } //eslint-disable-line no-empty
- }
- }
-}
-
async function lockedCategoriesLookup(id: string): Promise<void> {
- const response = await utils.asyncRequestToServer("GET", "/api/lockCategories", { videoID: id });
+ const hashPrefix = (await utils.getHash(id, 1)).substr(0, 4);
+ const response = await utils.asyncRequestToServer("GET", "/api/lockCategories/" + hashPrefix);
if (response.ok) {
try {
- const categoriesResponse = JSON.parse(response.responseText).categories;
+ const categoriesResponse = JSON.parse(response.responseText).filter((lockInfo) => lockInfo.videoID === id)[0]?.categories;
if (Array.isArray(categoriesResponse)) {
lockedCategories = categoriesResponse;
}
diff --git a/src/types.ts b/src/types.ts
index 4ffdf33f..1caf257c 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -75,7 +75,7 @@ export enum SponsorSourceType {
export interface SponsorTime {
segment: [number] | [number, number];
UUID: SegmentUUID;
- locked?: boolean;
+ locked?: number;
category: Category;
actionType: ActionType;