From 0ad67fe20453898ce0a6b5faff00062735411119 Mon Sep 17 00:00:00 2001 From: George Date: Wed, 23 Sep 2020 14:55:27 -0700 Subject: [PATCH] feat(log): colors for console logs (#207) Co-authored-by: Jef LeCompte --- .env-example | 68 +++++++++++++++++++++++++++------------------------ package.json | 1 + src/logger.ts | 9 ++++--- 3 files changed, 42 insertions(+), 36 deletions(-) diff --git a/.env-example b/.env-example index eb4996b..0d92989 100644 --- a/.env-example +++ b/.env-example @@ -1,33 +1,37 @@ -BROWSER_TRUSTED="false" -DISCORD_NOTIFY_GROUP="@here" -DISCORD_WEB_HOOK="https://discordapp.com/api/webhooks/23123123123/5dfsdfh3h2j5hdfhsdfsdhj55jf" -EMAIL_USERNAME="youremail@gmail.com" -EMAIL_PASSWORD="secretpassword" -HEADLESS="true" -IN_STOCK_WAIT_TIME="30" -LOG_LEVEL="info" -OPEN_BROWSER="true" -PAGE_TIMEOUT="30000" -PHONE_NUMBER="1234567890" -PHONE_CARRIER="tmobile" -PLAY_SOUND="notification.mp3" -PUSHBULLET="o.pushbulletTokendbjVjvJHVhcg" -PUSHOVER_TOKEN="123pushover-token456" -PUSHOVER_USER="123pushover-user-key" -PAGE_SLEEP_MIN="5000" -PAGE_SLEEP_MAX="10000" -SHOW_ONLY_BRANDS="evga" -SHOW_ONLY_SERIES="3080" -SLACK_CHANNEL="SlackChannelName" -SLACK_TOKEN="slack-token" -STORES="bestbuy,bandh,nvidia" -COUNTRY="usa" -SCREENSHOT="true" +# ** All configuration variables are optional ** +# Read https://github.com/jef/nvidia-snatcher#customization for help on customizing this file +############################################################################################# + +BROWSER_TRUSTED="" +DISCORD_NOTIFY_GROUP="" +DISCORD_WEB_HOOK="" +EMAIL_USERNAME="" +EMAIL_PASSWORD="" +HEADLESS="" +IN_STOCK_WAIT_TIME="" +LOG_LEVEL="" +OPEN_BROWSER="" +PAGE_TIMEOUT="" +PHONE_NUMBER="" +PHONE_CARRIER="" +PLAY_SOUND="" +PUSHBULLET="" +PUSHOVER_TOKEN="" +PUSHOVER_USER="" +PAGE_SLEEP_MIN="" +PAGE_SLEEP_MAX="" +SHOW_ONLY_BRANDS="" +SHOW_ONLY_SERIES="" +SLACK_CHANNEL="" +SLACK_TOKEN="" +STORES="" +COUNTRY="" +SCREENSHOT="false" TELEGRAM_ACCESS_TOKEN="" -TELEGRAM_CHAT_ID="1234" -TWITTER_CONSUMER_KEY= -TWITTER_CONSUMER_SECRET= -TWITTER_ACCESS_TOKEN_KEY= -TWITTER_ACCESS_TOKEN_SECRET= -TWITTER_TWEET_TAGS= -USER_AGENT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" +TELEGRAM_CHAT_ID="" +TWITTER_CONSUMER_KEY="" +TWITTER_CONSUMER_SECRET="" +TWITTER_ACCESS_TOKEN_KEY="" +TWITTER_ACCESS_TOKEN_SECRET="" +TWITTER_TWEET_TAGS="" +USER_AGENT="" diff --git a/package.json b/package.json index fc8b75d..0fa85e7 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ }, "homepage": "https://github.com/jef/nvidia-snatcher#readme", "dependencies": { + "colors": "^1.4.0", "dotenv": "^8.2.0", "messaging-api-telegram": "^1.0.1", "node-notifier": "^8.0.0", diff --git a/src/logger.ts b/src/logger.ts index 68fb432..b2ac9a4 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,6 +1,7 @@ import {Link, Store} from './store/model'; import winston, {format} from 'winston'; import {Config} from './config'; +import colors from 'colors'; // eslint-disable-line no-restricted-imports const prettyJson = format.printf(info => { const timestamp = new Date().toLocaleTimeString(); @@ -26,15 +27,15 @@ export const Logger = winston.createLogger({ export const Print = { captcha(link: Link, store: Store): string { - return `✖ [${store.name}] [${link.brand} (${link.series})] ${link.model} :: CAPTCHA`; + return colors.cyan(`✖ [${store.name}]`) + colors.grey(` [${link.brand} (${link.series})] ${link.model}`) + colors.yellow(' :: CAPTCHA'); }, inStock(link: Link, store: Store): string { - return `🚀🚨 [${store.name}] [${link.brand} (${link.series})] ${link.model} :: IN STOCK 🚨🚀`; + return colors.cyan(`✖ [${store.name}]`) + colors.grey(` [${link.brand} (${link.series})] ${link.model}`) + colors.green.bold(' :: IN STOCK 🚨🚀'); }, outOfStock(link: Link, store: Store): string { - return `✖ [${store.name}] [${link.brand} (${link.series})] ${link.model} :: OUT OF STOCK`; + return colors.cyan(`✖ [${store.name}]`) + colors.grey(` [${link.brand} (${link.series})] ${link.model}`) + colors.red(' :: OUT OF STOCK'); }, rateLimit(link: Link, store: Store): string { - return `✖ [${store.name}] [${link.brand} (${link.series})] ${link.model} :: RATE LIMIT EXCEEDED`; + return colors.cyan(`✖ [${store.name}]`) + colors.grey(` [${link.brand} (${link.series})] ${link.model}`) + colors.yellow(' :: RATE LIMIT EXCEEDED'); } };