mirror of
https://github.com/snobu/destreamer.git
synced 2026-01-31 12:22:14 +00:00
Major code refactoring (#164)
* Added Chromium caching of identity provider cookies * Moved token expiry check in standalone method * Created refreshSession function * Session is now refreshed if the token expires * Linting fixes * Removed debug console.log() * Added CC support * Created function to prompt user for download parameters (interactive mode) * Fix data folder for puppeteer * Fixed multiple session error * Fix token expire time * Moved session refreshing to a more sensible place * Changed Metadata name to Video (to better reflect the data structure) * Complete CLI refactoring * Removed useless sleep function * Added outDir check from CLI * Complete input parsing refactoring (both inline and file) * Fixed and improved tests to work with the new input parsing * Moved and improved output path generation to videoUtils * Main code refactoring, added outpath to video type * Minor changes in spacing and type definition style * Updated readme after code refactoring * Fix if inputFile doesn't start with url on line 1 * Minor naming change * Use module 'winston' for logging * Created logge, changed all console.log and similar to use the logger * Added verbose logging, changed posterUrl property name on Video type * Moved GUID extraction to input parsing * Added support for group links * Fixed test after last input parsing update * Removed debug proces.exit() * Changed from desc to asc order for group videos * Updated test to reflect GUIDs output after parsing * Added couple of comments and restyled some imports * More readable verbose GUIDs logging * Removed unused errors * Temporary fix for timeout not working in ApiClient * Explicit class member accessibility * Defined array naming schema to be Array<T> * Defined type/interface schema to be type only * A LOT of type definitions
This commit is contained in:
40
src/Logger.ts
Normal file
40
src/Logger.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import colors from 'colors';
|
||||
import winston from 'winston';
|
||||
|
||||
|
||||
export const logger: winston.Logger = winston.createLogger({
|
||||
level: 'info',
|
||||
transports: [
|
||||
new winston.transports.Console({
|
||||
format: winston.format.combine(
|
||||
winston.format.errors({ stack: true }),
|
||||
winston.format.timestamp({ format: 'YYYY-MM-DD hh:mm:ss' }),
|
||||
winston.format.printf(
|
||||
(item: winston.Logform.TransformableInfo) => customPrint(item)
|
||||
)
|
||||
)
|
||||
})
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
function customPrint (info: winston.Logform.TransformableInfo): string {
|
||||
if (info.level === 'error') {
|
||||
if (info.fatal) {
|
||||
return colors.red('\n\n[FATAL ERROR] ') + (info.stack ?? info.message);
|
||||
}
|
||||
|
||||
return colors.red('\n[ERROR] ') + (info.stack ?? info.message) + '\n';
|
||||
}
|
||||
else if (info.level === 'warn') {
|
||||
return colors.yellow('\n[WARNING] ') + info.message;
|
||||
}
|
||||
else if (info.level === 'info') {
|
||||
return info.message;
|
||||
}
|
||||
else if (info.level === 'verbose') {
|
||||
return colors.cyan('\n[VERBOSE] ') + info.message;
|
||||
}
|
||||
|
||||
return `${info.level}: ${info.message} - ${info.timestamp}`;
|
||||
}
|
||||
Reference in New Issue
Block a user