+ feed script
This commit is contained in:
1 parent
29a9383756
commit
0a7a9587fc
4 files changed
+73
-10
No files matched your search
Generated
+24
-6
@@ -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
@@ -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
@@ -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" />
|
||||
|
||||
@@ -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' })
|
||||
})()
|
||||
|
||||
Reference in new issue
Block a user