30 lines
834 B
JavaScript
Executable File
30 lines
834 B
JavaScript
Executable File
#!/usr/bin/env node
|
|
// Load RSS feed and insert new article data into the database
|
|
require('dotenv').config()
|
|
const config = require('../config')
|
|
const program = require('commander')
|
|
const Database = require('better-sqlite3')
|
|
const Bluebird = require('bluebird')
|
|
const ds = require('../index')
|
|
|
|
const db = ds.db()
|
|
const feedURL = `https://${config.domain}/feed/`
|
|
|
|
async function main() {
|
|
const feed = await ds.fetchArticlesFromFeed(feedURL)
|
|
Bluebird.each(feed, (async (item) => {
|
|
const url = `https://${config.domain}${item.slug}`
|
|
const more = await ds.fetchArticle(url)
|
|
item.tags = more.tags
|
|
item.categories = more.categories
|
|
const res = await ds.insertArticle(db, item)
|
|
if (res.success) {
|
|
console.warn(`+ "${item.title}"`)
|
|
} else {
|
|
console.warn(`= "${item.title}"`)
|
|
}
|
|
}))
|
|
}
|
|
|
|
main()
|