Major refactor, cleand up site scrape module, fixed and cleaned up release scrape module. Removed old CLI code

This commit is contained in:
2019-11-16 03:33:36 +01:00
parent b07f88d023
commit b489c8fc33
35 changed files with 595 additions and 847 deletions

View File

@@ -1,80 +1,30 @@
'use strict';
const blessed = require('neo-blessed');
const clipboard = require('clipboardy');
const argv = require('./argv');
const { renderReleases, renderScene } = require('./tui/render');
const knex = require('./knex');
const initServer = require('./web/server');
const fetchReleases = require('./fetch-releases');
const fetchScene = require('./fetch-scene');
const scrapeSites = require('./scrape-sites');
const scrapeRelease = require('./scrape-release');
function initScreen() {
const screen = blessed.screen({
title: `traxxx ${new Date().getTime()}`,
smartCSR: true,
mouse: false,
});
screen.enableInput();
screen.key(['escape', 'q', 'C-c'], () => {
screen.render();
screen.destroy();
});
return screen;
}
function getMethod() {
if (argv.scene) {
return {
fetch: () => fetchScene(argv.scene),
render: renderScene,
};
}
if (argv.fetch) {
return {
fetch: () => fetchReleases(),
render: renderReleases,
};
}
return initServer();
}
async function init() {
const screen = argv.render && !argv.filename && initScreen();
if (argv.url) {
await scrapeRelease(argv.url);
knex.destroy();
try {
const method = getMethod();
if (method) {
const result = await method.fetch();
if (result) {
if (argv.copy && result.copy) {
clipboard.writeSync(result.copy);
console.log(`Result copied to clipboard: ${result.copy}`);
}
if (argv.filename && result.filename) {
console.log(result.filename);
// setTimeout(() => log(), 5000);
return;
}
if (argv.render) {
method.render(result, screen);
}
}
}
} catch (error) {
console.error(argv.debug ? error : error.message);
return;
}
if (argv.networks || argv.sites) {
await scrapeSites();
knex.destroy();
return;
}
await initServer();
}
init();