#10 and some refactors

This commit is contained in:
syuilo 2017-01-31 00:50:09 +09:00
parent 3f9e947898
commit 79226e5a6c
2 changed files with 13 additions and 15 deletions

View File

@ -26,6 +26,7 @@
"escape-regexp": "0.0.1",
"html-entities": "1.2.0",
"request": "2.79.0",
"require-all": "2.1.0",
"trace-redirect": "1.0.2-1"
}
}

View File

@ -4,31 +4,28 @@ import ISummary from './isummary';
import IPlugin from './iplugin';
import general from './general';
/* plugins */
import * as amazon from './plugins/amazon';
import * as wikipedia from './plugins/wikipedia';
const plugins: IPlugin[] = [
amazon,
wikipedia
];
const plugins: IPlugin[] = require('require-all')({
dirname: __dirname + '/plugins'
});
export default async (url: string): Promise<ISummary> => {
const actualUrl = await tracer(url);
const _url = URL.parse(actualUrl, true);
const plugin = plugins.filter(plugin => plugin.test(_url))[0];
const match = Object.keys(plugins)
.map(key => plugins[key])
.filter(plugin => plugin.test(_url))[0] as IPlugin;
const summary = plugin
? await plugin.summary(_url)
const summary = match
? await match.summary(_url)
: await general(_url);
Object.keys(summary).forEach(k => {
if ((<any>summary)[k]) {
(<any>summary)[k] = (<any>summary)[k].trim();
if ((<any>summary)[k] === '') {
(<any>summary)[k] = null;
if (summary[k]) {
summary[k] = summary[k].trim();
if (summary[k] === '') {
summary[k] = null;
}
}
});