98 lines
4.8 KiB
JavaScript
98 lines
4.8 KiB
JavaScript
require('dotenv').config();
|
|
const dateFormat = require('dateformat');
|
|
|
|
function buildApps() {
|
|
// proxies = ['uk', 'fr', 'de', 'nl', 'ch'];
|
|
|
|
const debugCron = process.env['debugCron'] || false;
|
|
const cronBump = process.env['cronBump'] || false;
|
|
const baseDate = new Date();
|
|
let startCronMS = baseDate.getTime() + ( 5 * (60 * 1000));
|
|
|
|
console.log(`debugCron:${debugCron} // cronBump:${cronBump}`);
|
|
const apps = [];
|
|
const list = [
|
|
{ 'cron':'IE_CRON', 'start':'IE', 'name':'IE', 'script':'ie.js', 'proxy': 'uk', 'crontime': '0 0 * * *' }, // 00:04:40
|
|
{ 'cron':'LU_CRON', 'start':'LU', 'name':'LU', 'script':'lu.js', 'proxy': 'uk', 'crontime': '10 0 * * *' }, // "01:09:45.187"
|
|
{ 'cron':'IT_CRON', 'start':'IT', 'name':'IT', 'script':'it.js', 'proxy': 'uk', 'crontime': '10 1 * * *' }, // 04:51:37 - uk free at 6:30
|
|
{ 'cron':'CZ_CRON', 'start':'CZ', 'name':'CZ', 'script':'cz.js', 'proxy': 'uk', 'crontime': '20 6 * * *' }, // "00:24:01.696"
|
|
{ 'cron':'PT_CRON', 'start':'PT', 'name':'PT', 'script':'pt.js', 'proxy': 'uk', 'crontime': '0 7 * * *' }, // "00:53:02.432"
|
|
{ 'cron':'CY_CRON', 'start':'CY', 'name':'CY', 'script':'cy.js', 'proxy': 'fr', 'crontime': '0 0 * * *' }, // 00:01:03
|
|
{ 'cron':'SE_CRON', 'start':'SE', 'name':'SE', 'script':'se.js', 'proxy': 'fr', 'crontime': '5 0 * * *' }, // 00:43:45
|
|
{ 'cron':'FR_CRON', 'start':'FR', 'name':'FR', 'script':'fr.js', 'proxy': 'fr', 'crontime': '0 1 * * *' }, // 01:22:29
|
|
{ 'cron':'LT_CRON', 'start':'LT', 'name':'LT', 'script':'lt.js', 'proxy': 'fr', 'crontime': '30 2 * * *' }, // "00:54:28.134"
|
|
{ 'cron':'SK_CRON', 'start':'SK', 'name':'SK', 'script':'sk.js', 'proxy': 'fr', 'crontime': '30 3 * * *' }, // 00:24:03 - fr free at 4:00
|
|
{ 'cron':'DE_CRON', 'start':'DE', 'name':'DE', 'script':'de.js', 'proxy': 'de', 'crontime': '0 0 * * *' }, // 03:55:38 - de free at 4:00
|
|
{ 'cron':'NL_CRON', 'start':'NL', 'name':'NL', 'script':'nl.js', 'proxy': 'nl', 'crontime': '0 0 * * *' }, // 07:23:19 - nl free at 7:30
|
|
{ 'cron':'PL_CRON', 'start':'PL', 'name':'PL', 'script':'pl.js', 'proxy': 'ch', 'crontime': '0 0 * * *' }, // 17:59:18 - ch free at 18:00
|
|
{ 'cron':'LV_CRON', 'start':'LV', 'name':'LV', 'script':'lv.js', 'proxy': 'nl', 'crontime': '30 7 * * *' }, // 13:56.232 - nl free at 7:45
|
|
{ 'cron':'DK_CRON', 'start':'DK', 'name':'DK', 'script':'dk.js', 'proxy': 'de', 'crontime': '0 4 * * *' }, // 11:08.616 - de free at 4:15
|
|
{ 'cron':'ES_CRON', 'start':'ES', 'name':'ES', 'script':'es.js', 'proxy': 'de', 'crontime': '15 4 * * *' }, // 36:44.523- de free at 4:55
|
|
{ 'cron':'EE_CRON', 'start':'EE', 'name':'EE', 'script':'ee.js', 'proxy': 'de', 'crontime': '0 5 * * *' }, // 05:22:04.226 - de free after 10:30
|
|
{ 'cron':'NO_CRON', 'start':'NO', 'name':'NO', 'script':'no.js', 'proxy': 'fr', 'crontime': '0 4 * * *' }, // 05:12:57.792 - fr free after 9:20
|
|
{ 'cron':'GI_CRON', 'start':'GI', 'name':'GI', 'script':'gi.js', 'proxy': 'uk' },
|
|
{ 'cron':'GR_CRON', 'start':'GR', 'name':'GR', 'script':'gr.js', 'proxy': 'uk' },
|
|
{ 'cron':'MT_CRON', 'start':'MT', 'name':'MT', 'script':'mt.js', 'proxy': 'uk' },
|
|
{ 'cron':'BG_CRON', 'start':'BG', 'name':'BG', 'script':'bg.js', 'proxy': 'uk' },
|
|
{ 'cron':'AT_CRON', 'start':'AT', 'name':'AT', 'script':'at.js', 'proxy': 'uk' },
|
|
{ 'cron':'FI_CRON', 'start':'FI', 'name':'FI', 'script':'fi.js', 'proxy': 'uk' },
|
|
{ 'cron':'BE_CRON', 'start':'BE', 'name':'BE', 'script':'be.js', 'proxy': 'uk' }
|
|
];
|
|
|
|
apps.push({
|
|
'name' : 'watcher',
|
|
'script' : 'helpers/watcher.js',
|
|
|
|
'env': {
|
|
'NODE_ENV': 'production'
|
|
},
|
|
'autorestart' : true,
|
|
'max_restarts': 3,
|
|
'restart_delay': 4000
|
|
});
|
|
|
|
for(const item of list)
|
|
|
|
if ((typeof process.env[item.cron] !== 'undefined' || process.env.SCRAPE_START === item.start)) {
|
|
const proxyUri = `${item.proxy}.proxymesh.com:31280`;
|
|
|
|
const newItem = {
|
|
'name' : item.name,
|
|
'script' : item.script,
|
|
|
|
'env': {
|
|
'NODE_ENV': 'production',
|
|
'PROXY_URI' : proxyUri
|
|
},
|
|
'autorestart' : true,
|
|
'max_restarts': 3,
|
|
'restart_delay': 4000
|
|
};
|
|
|
|
if (typeof process.env[item.cron] !== 'undefined') {
|
|
newItem.env[item.cron] = (debugCron !== false) ? process.env[item.cron] : item.crontime;
|
|
if (cronBump !== false) {
|
|
newItem.env[item.cron] = dateFormat(startCronMS, 'M H "* * *"');
|
|
|
|
startCronMS = startCronMS + ( 2 * (60 * 1000));
|
|
}
|
|
}
|
|
|
|
apps.push(newItem);
|
|
}
|
|
|
|
const version = process.env.VERSION || 'NO VERSION!';
|
|
|
|
console.log('*****************************');
|
|
console.log(`LAUNCHING VERSION: ${version}`);
|
|
console.log('*****************************');
|
|
|
|
console.log(JSON.stringify(apps));
|
|
|
|
return apps;
|
|
}
|
|
|
|
module.exports = {
|
|
'apps' : buildApps()
|
|
};
|