@@ -82,20 +82,35 @@ const appController = {
8282 } ) ;
8383 }
8484
85- const [ axiosMovieResponse , axiosSeriesResponse ] = await Promise . all ( [
85+ const [ movieResult , seriesResult ] = await Promise . allSettled ( [
8686 http . get ( `https://${ appConfig . VIDSRC_DOMAIN } /movies/latest/page-1.json` ) ,
8787 http . get ( `https://${ appConfig . VIDSRC_DOMAIN } /tvshows/latest/page-1.json` ) ,
8888 ] ) ;
8989
90- let newMovies = axiosMovieResponse . data . result || [ ] ;
91- let newSeries = axiosSeriesResponse . data . result || [ ] ;
90+ let newMovies =
91+ movieResult . status === 'fulfilled' ? movieResult . value . data . result || [ ] : [ ] ;
92+ let newSeries =
93+ seriesResult . status === 'fulfilled' ? seriesResult . value . data . result || [ ] : [ ] ;
94+
95+ if ( movieResult . status === 'rejected' ) {
96+ console . warn ( 'Failed to fetch latest movies; continuing with empty dataset' ) ;
97+ }
98+
99+ if ( seriesResult . status === 'rejected' ) {
100+ console . warn ( 'Failed to fetch latest series; continuing with empty dataset' ) ;
101+ }
92102
93103 await Promise . all ( [
94104 fetchAndUpdatePosters ( newMovies ) ,
95105 fetchAndUpdatePosters ( newSeries ) ,
96106 ] ) ;
97107
98- setLatest ( { movies : newMovies , series : newSeries } ) ;
108+ const hasFeedFailure =
109+ movieResult . status === 'rejected' || seriesResult . status === 'rejected' ;
110+
111+ if ( ! hasFeedFailure ) {
112+ setLatest ( { movies : newMovies , series : newSeries } ) ;
113+ }
99114
100115 res . render ( 'index' , {
101116 newMovies,
@@ -132,7 +147,7 @@ const appController = {
132147 */
133148 getView : asyncHandler ( async ( req : AuthRequest , res : Response ) => {
134149 const query = req . params . q || '' ;
135- const id = req . params . id ;
150+ const id = Array . isArray ( req . params . id ) ? req . params . id [ 0 ] : req . params . id ;
136151 const type = req . params . type as 'movie' | 'series' ;
137152
138153 const cookieHeader =
@@ -143,8 +158,12 @@ const appController = {
143158 const preferredServer = match ? ( match [ 1 ] as '1' | '2' ) : undefined ;
144159
145160 if ( type === 'series' ) {
146- let season = req . params . season ;
147- let episode = req . params . episode ;
161+ let season = Array . isArray ( req . params . season )
162+ ? req . params . season [ 0 ]
163+ : req . params . season ;
164+ let episode = Array . isArray ( req . params . episode )
165+ ? req . params . episode [ 0 ]
166+ : req . params . episode ;
148167
149168 if ( ( ! season || ! episode ) && req . user ) {
150169 const redirectTo = await getResumeRedirect ( req . user . id , id ) ;
0 commit comments