1212
1313import handleCorsRequest from './cors.js' ;
1414import proxy from './proxy.js' ;
15+ import { thumbnailHandler } from './thumbnails.js' ;
16+ import { handleRequest } from './utils/handler.js' ;
1517
1618export default {
1719 async fetch ( request ) {
@@ -20,15 +22,26 @@ export default {
2022 if ( url . pathname === '/proxy' ) {
2123 return proxy ( request ) ;
2224 } else if ( url . pathname === '/cors' ) {
23- return handleCorsRequest ( request ) ;
25+ const [ url , headers ] = handleRequest ( request ) ;
26+ return handleCorsRequest ( url , headers ) ;
2427 } else if ( url . pathname === '/image' ) {
25- return handleCorsRequest ( request ) ;
28+ const [ url , headers , origin ] = handleRequest ( request ) ;
29+ return handleCorsRequest ( url , headers , origin ) ;
30+ } else if ( url . pathname === '/thumbnail' ) {
31+ const [ url , headers , origin ] = handleRequest ( request ) ;
32+ return thumbnailHandler ( url , headers , origin ) ;
2633 } else if ( url . pathname === '/' ) {
2734 return new Response (
2835 JSON . stringify ( {
2936 message : 'Welcome to Roxy' ,
30- Endpoints : [ '/proxy' , '/cors' ] ,
37+ Endpoints : [
38+ { '/proxy' : 'For HLS' } ,
39+ { '/cors' : 'For CORS' } ,
40+ { '/image' : 'For Manga Images' } ,
41+ { '/thumbnail' : 'For Thumbnails' } ,
42+ ] ,
3143 params : '?url=<Base64-encoded-m3u8-url>&headers=<Base64-encoded-headers>' ,
44+ tip : 'Base64Encoding is optional for /cors, /thumbnail, /image. Encode the url if it gives error. For /proxy, encoding is required.' ,
3245 } ) ,
3346 {
3447 status : 200 ,
0 commit comments