spider - crawling headless browser client

This commit is contained in:
spiduler
2020-10-08 20:18:59 +09:00
parent 0adea82f66
commit 8fcf614aea
11 changed files with 506 additions and 894 deletions

65
config/index.js Normal file
View File

@@ -0,0 +1,65 @@
const commandLineArgs = require('command-line-args')
, logger = require("logops");
class Config {
constructor() {
this.options = {}
this.requires = ['env', 'gateway', 'quix24']
this.init()
this.validate()
this.finalize()
}
init() {
try {
this.options = commandLineArgs([
{ name: 'env', alias: 'e', type: String, defaultValue: ['production'] },
{ name: 'host', type: String },
{ name: 'port', type: Number },
{ name: 'database', alias: 'd', type: String },
{ name: 'username', alias: 'u', type: String },
{ name: 'password', alias: 'p', type: String },
{ name: 'mongo', alias: 'm', type: String },
{ name: 'redis', alias: 'r', type: String },
{ name: 'level', alias: 'l', type: String },
{ name: 'gateway', alias: 'g', type: String },
{ name: 'quix24', alias: 'q', type: String }
]);
} catch (e) {
logger.debug('Command line arguments interpret failed :', e.message)
logger.debug('expected arguments : ', JSON.stringify(this.requires))
process.exit(1)
}
}
finalize() {
if (this.options.env == 'development') {
this.options.level = this.options.level ? this.options.level : "DEBUG"
logger.format = logger.formatters.dev;
} else {
this.options.level = this.options.level ? this.options.level : "WARN"
}
logger.setLevel(this.options.level)
logger.info('Environment setting options', this.options)
}
validate() {
for (let key in this.options) {
if (this.options[key]) {
delete this.requires[this.requires.indexOf(key)]
}
}
this.requires = this.requires.filter(function (el) {
return el != null;
})
if (this.requires.length) {
logger.debug('Process terminated invalid required arguments: ', JSON.stringify(requires))
process.exit(1)
}
}
}
let config = new Config;
module.exports = config.options