From 8dbb964c77b0ad6d29306425ef67498127c6a917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zsolt=20Jur=C3=A1nyi?= Date: Fri, 18 Oct 2019 21:09:20 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20log=20szintek=20=C3=A9s=20sz=C3=B6vegek?= =?UTF-8?q?=20=C3=BAjragondolva=20(informat=C3=ADvabb=20logol=C3=A1s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/conf.js | 2 +- src/main.js | 30 ++++++++++++++++-------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/conf.js b/src/conf.js index 3a6afc6..6e095cd 100644 --- a/src/conf.js +++ b/src/conf.js @@ -4,7 +4,7 @@ const cli = require('./cli'); function configurate() { // Load environment variables and defaults dotenv.config(); - process.env.LOG_LEVEL = 2; + process.env.LOG_LEVEL = process.env.LOG_LEVEL || 2; process.env.OUTPUT_DIR = process.env.OUTPUT_DIR || './szamlak'; process.env.SLEEP = process.env.SLEEP || 3; process.env.TEMP_DIR = process.env.TEMP_DIR || ''; diff --git a/src/main.js b/src/main.js index 5c7635e..5392126 100644 --- a/src/main.js +++ b/src/main.js @@ -4,12 +4,12 @@ const mkdirp = require('util').promisify(require('mkdirp')); const packageJson = require('../package.json'); const configurate = require('./conf'); const { handleError } = require('./err'); -const dijnet = require('./lib'); -const log = require('./logger'); console.log(`Díjnet Bot v${packageJson.version}\n`); configurate(); +const log = require('./logger'); +const dijnet = require('./lib'); function tmp(name) { return process.env.TEMP_DIR.length === 0 ? null : path.join(process.env.TEMP_DIR, name); @@ -36,7 +36,7 @@ const start = async () => { try { log.success('Díjnet-bot indul'); - log.info('Könyvtárak létrehozása'); + log.trace('Könyvtárak létrehozása'); log.trace('Kimeneti könyvtár létrehozása: %s', process.env.OUTPUT_DIR); await mkdirp(process.env.OUTPUT_DIR); if (process.env.TEMP_DIR.length > 0) { @@ -44,29 +44,30 @@ const start = async () => { await mkdirp(process.env.TEMP_DIR); } - log.info('Bejelentkezés'); + log.info('Bejelentkezés...'); await dijnet.login(process.env.DIJNET_USER, process.env.DIJNET_PASS, tmp('login.html')); + log.success(`Bejelentkezve: ${process.env.DIJNET_USER}`); - log.info('Számla kereső megnyitása'); + log.info('Számlák keresése...'); await dijnet.sleep(process.env.SLEEP); await dijnet.szamla_search(tmp('szamla_search.html')); - - log.info('Számla kereső űrlap elküldése'); await dijnet.sleep(process.env.SLEEP); const szamla_list_response = (await dijnet.szamla_search_submit(tmp('szamla_search_submit.html'))).body; let invoices = dijnet.parse_szamla_list(szamla_list_response); - log.success('Összesen %d db számla van a Díjnet fiókban', invoices.length); - + const allBillsCount = invoices.length; invoices = invoices.filter(invoice => !isAlreadyCrawled(invoice.billId)); - log.success('Ebből %d db számla új (még nincs letöltve)', invoices.length); + log.success(`${allBillsCount} db számla van a rendszerben, ebből ${allBillsCount - invoices.length} db lementve korábban`); for (let i = 0; i < invoices.length; i++) { const invoice = invoices[i]; const dir = path.join(process.env.OUTPUT_DIR, `${invoice.provider} - ${invoice.customName}`, invoice.date); + + log.info(`Számla lementése: ${invoice.date}, ${invoice.provider}`); + const logPrefix = `Számla ${i + 1}/${invoices.length} (${invoice.date}, ${invoice.provider}):`; - log.info(`${logPrefix} megnyitás`); + log.trace(`${logPrefix} megnyitás`); await mkdirp(dir); await dijnet.sleep(process.env.SLEEP); await dijnet.szamla_select(invoice.rowid, tmp(`szamla_select_${invoice.rowid}.html`)); @@ -77,14 +78,15 @@ const start = async () => { const files = dijnet.parse_szamla_letolt(szamla_letolt_response); for (let f = 0; f < files.length; f++) { const file = files[f]; - log.info(`${logPrefix} ${file} letöltése`); + log.trace(`${logPrefix} ${file} letöltése`); await dijnet.sleep(process.env.SLEEP); await dijnet.download(file, dir); } markAlreadyCrawled(invoice.billId); - log.success(`${logPrefix} ${files.length} fájl lementve`); - log.info('Visszatérés a számla listához'); + log.trace(`${logPrefix} ${files.length} fájl lementve`); + log.success(`${invoices.length} db új számlából ${i + 1} db lementve [${Math.round((i + 1) / invoices.length * 100)}%]`); + log.trace('Visszatérés a számla listához'); await dijnet.sleep(3); await dijnet.szamla_list(tmp(`szamla_list_${invoice.rowid}.html`)); }