From 2e67915bb6ee58f67bf0cf27113759665472625d Mon Sep 17 00:00:00 2001 From: Aetherinox Date: Sun, 4 May 2025 16:00:03 -0700 Subject: [PATCH] refactor: add logging to promises --- tvapp2/index.js | 57 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/tvapp2/index.js b/tvapp2/index.js index 0086143e..5d4a101f 100755 --- a/tvapp2/index.js +++ b/tvapp2/index.js @@ -319,7 +319,6 @@ async function downloadFile( url, filePath ) { return new Promise( ( resolve, reject ) => { - Log.info( `file`, chalk.yellow( `[download]` ), chalk.white( `ℹ️` ), chalk.blueBright( `` ), chalk.gray( `Preparing to download external file` ), chalk.blueBright( `` ), chalk.gray( `${ url }` ), @@ -329,24 +328,30 @@ async function downloadFile( url, filePath ) const httpModule = isHttps ? https : http; const file = fs.createWriteStream( filePath ); httpModule - .get( url, ( response ) => + .get( url, ( res ) => { - if ( response.statusCode !== 200 ) + Log.info( `file`, chalk.yellow( `[retrieve]` ), chalk.white( `ℹ️` ), + chalk.blueBright( `` ), chalk.gray( `Getting response from file download request` ), + chalk.blueBright( `` ), chalk.gray( `${ res.statusCode }` ), + chalk.blueBright( `` ), chalk.gray( `${ url }` ), + chalk.blueBright( `` ), chalk.gray( `${ filePath }` ) ); + + if ( res.statusCode !== 200 ) { Log.error( `file`, chalk.redBright( `[download]` ), chalk.white( `❌` ), chalk.redBright( `` ), chalk.gray( `Attempt to download external file returned non-200 status` ), - chalk.redBright( `` ), chalk.gray( `${ response.statusCode }` ), + chalk.redBright( `` ), chalk.gray( `${ res.statusCode }` ), chalk.redBright( `` ), chalk.gray( `${ url }` ), chalk.redBright( `` ), chalk.gray( `${ filePath }` ) ); - return reject( new Error( `Failed to download file: ${ url }. Status code: ${ response.statusCode }` ) ); + return reject( new Error( `Failed to download file: ${ url }. Status code: ${ res.statusCode }` ) ); } - response.pipe( file ); + res.pipe( file ); file.on( 'finish', () => { Log.ok( `file`, chalk.yellow( `[download]` ), chalk.white( `✅` ), chalk.greenBright( `` ), chalk.gray( `Successfully downloaded external file` ), - chalk.greenBright( `` ), chalk.gray( `${ response.statusCode }` ), + chalk.greenBright( `` ), chalk.gray( `${ res.statusCode }` ), chalk.greenBright( `` ), chalk.gray( `${ url }` ), chalk.greenBright( `` ), chalk.gray( `${ filePath }` ) ); @@ -480,7 +485,6 @@ async function createGzip( ) { return new Promise( ( resolve, reject ) => { - Log.info( `.gzp`, chalk.yellow( `[generate]` ), chalk.white( `ℹ️` ), chalk.blueBright( `` ), chalk.gray( `Preparing to create compressed XML gz file` ), chalk.blueBright( `` ), chalk.gray( `${ FILE_XML }` ), @@ -616,6 +620,11 @@ async function fetchRemote( url, req ) { return new Promise( ( resolve, reject ) => { + Log.info( `remo`, chalk.yellow( `[generate]` ), chalk.white( `ℹ️` ), + chalk.blueBright( `` ), chalk.gray( `Preparing to fetch remote request` ), + chalk.blueBright( `` ), chalk.gray( `${ clientIp( req ) }` ), + chalk.blueBright( `` ), chalk.gray( `${ url }` ) ); + const mod = url.startsWith( 'https' ) ? https : http; mod .get( url, { @@ -872,10 +881,19 @@ function buildCookieHeader() return pairs.join( '; ' ); } +/* + fetch > page +*/ + function fetchPage( url, req ) { return new Promise( ( resolve, reject ) => { + Log.info( `http`, chalk.yellow( `[generate]` ), chalk.white( `ℹ️` ), + chalk.blueBright( `` ), chalk.gray( `Preparing to fetch remote page` ), + chalk.blueBright( `` ), chalk.gray( `${ clientIp( req ) }` ), + chalk.blueBright( `` ), chalk.gray( `${ url }` ) ); + const opts = { method: 'GET', headers: { @@ -924,6 +942,10 @@ function fetchPage( url, req ) }); } +/* + tokenized url > get +*/ + async function getTokenizedUrl( channelUrl, req ) { try @@ -1068,6 +1090,10 @@ async function getTokenizedUrl( channelUrl, req ) } } +/* + serve > m3u playlist +*/ + async function serveM3UPlaylist( req, res ) { await semaphore.acquire(); @@ -1268,6 +1294,10 @@ async function serveM3UPlaylist( req, res ) } } +/* + serve > health check +*/ + async function serveHealthCheck( req, res ) { await semaphore.acquire(); @@ -1378,6 +1408,8 @@ async function rewriteM3U( originalUrl, req ) } /* + serve > m3u + Serves IPTV .m3u playlist */ @@ -1450,7 +1482,9 @@ async function serveM3U( res, req ) } /* - Serves IPTV .xml guide data + serve > xml + + Serves IPTV uncompressed .xml guide data */ async function serveXML( res, req ) @@ -1513,7 +1547,9 @@ async function serveXML( res, req ) }; /* - Serves IPTV .gz guide data + serve > gzip + + Serves IPTV compressed .gz guide data */ async function serveGZP( res, req ) @@ -2023,7 +2059,6 @@ const server = http.createServer( ( request, response ) => { if ( !err ) { - Log.debug( `http`, chalk.yellow( `[requests]` ), chalk.white( `⚙️` ), chalk.blueBright( `` ), chalk.gray( `Request accepted by ejs` ), chalk.blueBright( `` ), chalk.gray( `${ clientIp( request ) }` ),