New hash format for previewing segments

This commit is contained in:
Ajay
2022-01-14 19:34:54 -05:00
parent 31014b78ac
commit d50a69f1fd
2 changed files with 21 additions and 14 deletions

View File

@@ -2021,19 +2021,20 @@ function showTimeWithoutSkips(skippedDuration: number): void {
function checkForPreloadedSegment() {
const hashParams = getHashParams();
const startTime = hashParams.sbStart as number;
const endTime = hashParams.sbEnd as number;
const category = hashParams.sbCategory as Category;
const actionType = hashParams.sbActionType as ActionType;
if (startTime && endTime) {
if (!sponsorTimesSubmitting.some((segment) => segment.segment[0] === startTime && segment.segment[1] === endTime)) {
const segments = hashParams.segments;
if (Array.isArray(segments)) {
for (const segment of segments) {
if (Array.isArray(segment.segment)) {
if (!sponsorTimesSubmitting.some((s) => s.segment[0] === segment.segment[0] && s.segment[1] === s.segment[1])) {
sponsorTimesSubmitting.push({
segment: [startTime, endTime],
segment: segment.segment,
UUID: utils.generateUserID() as SegmentUUID,
category: category ? category : Config.config.defaultCategory,
actionType: actionType ? actionType : ActionType.Skip,
category: segment.category ? segment.category : Config.config.defaultCategory,
actionType: segment.actionType ? segment.actionType : ActionType.Skip,
source: SponsorSourceType.Local
});
}
}
}
}
}

View File

@@ -47,7 +47,13 @@ export function getHashParams(): Record<string, unknown> {
if (windowHash) {
const params: Record<string, unknown> = windowHash.split('&').reduce((acc, param) => {
const [key, value] = param.split('=');
acc[key] = value;
const decoded = decodeURIComponent(value);
try {
acc[key] = decoded?.match(/{|\[/) ? JSON.parse(decoded) : value;
} catch (e) {
console.error(`Failed to parse hash parameter ${key}: ${value}`);
}
return acc;
}, {});