pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

update TIDB to v2

Pas 10d82dcd 752e8cad

+53 -37
+53 -37
src/components/player/hooks/useSkipTime.ts
··· 10 10 import { getTurnstileToken } from "@/utils/turnstile"; 11 11 12 12 // Thanks Nemo for this API 13 - const THE_INTRO_DB_BASE_URL = "https://api.theintrodb.org/v1"; 13 + const THE_INTRO_DB_BASE_URL = "https://api.theintrodb.org/v2"; 14 14 const FED_SKIPS_BASE_URL = "https://fed-skips.pstream.mov"; 15 15 const INTRODB_BASE_URL = "https://api.introdb.app/intro"; 16 16 const MAX_RETRIES = 3; ··· 84 84 85 85 const fetchedSegments: SegmentData[] = []; 86 86 87 - // Add intro segment if it has data 88 - if (data?.intro && data.intro.submission_count > 0) { 89 - fetchedSegments.push({ 90 - type: "intro", 91 - start_ms: data.intro.start_ms, 92 - end_ms: data.intro.end_ms, 93 - confidence: data.intro.confidence, 94 - submission_count: data.intro.submission_count, 95 - }); 87 + // Process intro segments (v2: array of segments) 88 + if (Array.isArray(data?.intro) && data.intro.length > 0) { 89 + for (const segment of data.intro) { 90 + if (segment.submission_count > 0) { 91 + fetchedSegments.push({ 92 + type: "intro", 93 + start_ms: segment.start_ms, 94 + end_ms: segment.end_ms, 95 + confidence: segment.confidence, 96 + submission_count: segment.submission_count, 97 + }); 98 + } 99 + } 96 100 } 97 101 98 - // Add recap segment if it has data 99 - if (data?.recap && data.recap.submission_count > 0) { 100 - fetchedSegments.push({ 101 - type: "recap", 102 - start_ms: data.recap.start_ms, 103 - end_ms: data.recap.end_ms, 104 - confidence: data.recap.confidence, 105 - submission_count: data.recap.submission_count, 106 - }); 102 + // Process recap segments (v2: array of segments) 103 + if (Array.isArray(data?.recap) && data.recap.length > 0) { 104 + for (const segment of data.recap) { 105 + if (segment.submission_count > 0) { 106 + fetchedSegments.push({ 107 + type: "recap", 108 + start_ms: segment.start_ms, 109 + end_ms: segment.end_ms, 110 + confidence: segment.confidence, 111 + submission_count: segment.submission_count, 112 + }); 113 + } 114 + } 107 115 } 108 116 109 - // Add credits segment if it has data 110 - if (data?.credits && data.credits.submission_count > 0) { 111 - fetchedSegments.push({ 112 - type: "credits", 113 - start_ms: data.credits.start_ms, 114 - end_ms: data.credits.end_ms, 115 - confidence: data.credits.confidence, 116 - submission_count: data.credits.submission_count, 117 - }); 117 + // Process credits segments (v2: array of segments) 118 + if (Array.isArray(data?.credits) && data.credits.length > 0) { 119 + for (const segment of data.credits) { 120 + if (segment.submission_count > 0) { 121 + fetchedSegments.push({ 122 + type: "credits", 123 + start_ms: segment.start_ms, 124 + end_ms: segment.end_ms, 125 + confidence: segment.confidence, 126 + submission_count: segment.submission_count, 127 + }); 128 + } 129 + } 118 130 } 119 131 120 - // Add preview segment if it has data 121 - if (data?.preview && data.preview.submission_count > 0) { 122 - fetchedSegments.push({ 123 - type: "preview", 124 - start_ms: data.preview.start_ms, 125 - end_ms: data.preview.end_ms, 126 - confidence: data.preview.confidence, 127 - submission_count: data.preview.submission_count, 128 - }); 132 + // Process preview segments (v2: array of segments) 133 + if (Array.isArray(data?.preview) && data.preview.length > 0) { 134 + for (const segment of data.preview) { 135 + if (segment.submission_count > 0) { 136 + fetchedSegments.push({ 137 + type: "preview", 138 + start_ms: segment.start_ms, 139 + end_ms: segment.end_ms, 140 + confidence: segment.confidence, 141 + submission_count: segment.submission_count, 142 + }); 143 + } 144 + } 129 145 } 130 146 131 147 // TIDB returned 200 – we have segment data for this media (even if no intro)