+ feed script

This commit is contained in:
tmshv committed 2019-08-04 17:53:55 +03:00
1 parent 29a9383756
commit 0a7a9587fc
4 files changed
+73 -10

No files matched your search

+24 -6
View File
@@ -7764,6 +7764,15 @@
"pend": "~1.2.0"
}
},
"feed": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/feed/-/feed-4.0.0.tgz",
"integrity": "sha512-VWtvINgG7cA91BtrGychMvxHj84nc8xS9W/PuAHlY62I8owZtcoxNaKFN+zkGl8tBsaYbxrrp4yB9DhqKNQSPw==",
"dev": true,
"requires": {
"xml-js": "^1.6.11"
}
},
"figgy-pudding": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
@@ -11324,7 +11333,7 @@
},
"isarray": {
"version": "0.0.1",
"resolved": "http://storage.mds.yandex.net/get-npm/38095/isarray-0.0.1.tgz",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"isexe": {
@@ -11689,7 +11698,7 @@
},
"koa-convert": {
"version": "1.2.0",
"resolved": "http://storage.mds.yandex.net/get-npm/35308/koa-convert-1.2.0.tgz",
"resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz",
"integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=",
"requires": {
"co": "^4.6.0",
@@ -11752,7 +11761,7 @@
},
"koa-route": {
"version": "3.2.0",
"resolved": "http://storage.mds.yandex.net/get-npm/45674/koa-route-3.2.0.tgz",
"resolved": "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz",
"integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=",
"requires": {
"debug": "*",
@@ -12715,7 +12724,7 @@
},
"media-typer": {
"version": "0.3.0",
"resolved": "http://storage.mds.yandex.net/get-npm/66641/media-typer-0.3.0.tgz",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-fs": {
@@ -12770,7 +12779,7 @@
},
"methods": {
"version": "1.1.2",
"resolved": "http://storage.mds.yandex.net/get-npm/45674/methods-1.1.2.tgz",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"microevent.ts": {
@@ -14911,7 +14920,7 @@
},
"path-to-regexp": {
"version": "1.7.0",
"resolved": "http://storage.mds.yandex.net/get-npm/66641/path-to-regexp-1.7.0.tgz",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
"integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
"requires": {
"isarray": "0.0.1"
@@ -21618,6 +21627,15 @@
"mkdirp": "^0.5.1"
}
},
"xml-js": {
"version": "1.6.11",
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
"integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
"dev": true,
"requires": {
"sax": "^1.2.4"
}
},
"xtend": {
"version": "4.0.1",
"resolved": "http://storage.mds.yandex.net/get-npm/35308/xtend-4.0.1.tgz",
+3 -1
View File
@@ -9,8 +9,9 @@
"dev": "node src/server.js",
"next": "next",
"build": "next build",
"export": "npm run build && next export -o dist && npm run sitemap",
"export": "npm run build && next export -o dist && npm run sitemap && npm run feed",
"sitemap": "node scripts/sitemap.js",
"feed": "node scripts/feed.js",
"test": "mocha --compilers js:babel-register",
"coverage": "istanbul cover mocha -- --compilers js:babel-register"
},
@@ -82,6 +83,7 @@
"eslint-plugin-promise": "^3.3.1",
"eslint-plugin-react": "^7.4.0",
"eslint-plugin-standard": "^2.0.1",
"feed": "^4.0.0",
"gulp": "^4.0.0",
"gulp-concat": "^2.4.1",
"gulp-if": "^2.0.0",
+3 -3
View File
@@ -30,12 +30,12 @@ export default class MyDocument extends Document {
<link rel="apple-touch-icon" sizes="114x114" href="/static/graphics/favicon-114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="/static/graphics/favicon-144.png" />
{/* <link
<link
rel="alternate"
type="application/rss+xml"
title="Шлиссельбургская Детская Художественная Школа"
href="/feed"
/> */}
href="/feed.xml"
/>
{/* Fotorama + jQuery*/}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" />
+43
View File
@@ -0,0 +1,43 @@
const { Feed } = require('feed')
const axios = require('axios')
const fs = require('fs').promises
const api = axios.create({
baseURL: 'http://localhost:3000',
})
async function getArticles(pageSize) {
const page = 1
const res = await api.get(`/api/articles?page=${page}&pageSize=${pageSize}`)
return res.data.items
}
(async () => {
const articles = await getArticles(30)
const url = 'https://art.shlisselburg.org'
const feed = new Feed({
title: 'Шлиссельбургская ДХШ',
id: url,
link: url,
feedLinks: {
atom: 'https://art.shlisselburg.org/feed.xml',
},
});
articles.forEach(article => {
feed.addItem({
title: article.title,
date: new Date(article.date),
id: article.id,
link: article.url,
content: article.post,
})
})
const content = feed.atom1()
await fs.writeFile('dist/feed.xml', content, { encoding: 'utf-8' })
})()