+ 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"
|
"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": {
|
"figgy-pudding": {
|
||||||
"version": "3.5.1",
|
"version": "3.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
|
||||||
@@ -11324,7 +11333,7 @@
|
|||||||
},
|
},
|
||||||
"isarray": {
|
"isarray": {
|
||||||
"version": "0.0.1",
|
"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="
|
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
||||||
},
|
},
|
||||||
"isexe": {
|
"isexe": {
|
||||||
@@ -11689,7 +11698,7 @@
|
|||||||
},
|
},
|
||||||
"koa-convert": {
|
"koa-convert": {
|
||||||
"version": "1.2.0",
|
"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=",
|
"integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"co": "^4.6.0",
|
"co": "^4.6.0",
|
||||||
@@ -11752,7 +11761,7 @@
|
|||||||
},
|
},
|
||||||
"koa-route": {
|
"koa-route": {
|
||||||
"version": "3.2.0",
|
"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=",
|
"integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "*",
|
"debug": "*",
|
||||||
@@ -12715,7 +12724,7 @@
|
|||||||
},
|
},
|
||||||
"media-typer": {
|
"media-typer": {
|
||||||
"version": "0.3.0",
|
"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="
|
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||||
},
|
},
|
||||||
"memory-fs": {
|
"memory-fs": {
|
||||||
@@ -12770,7 +12779,7 @@
|
|||||||
},
|
},
|
||||||
"methods": {
|
"methods": {
|
||||||
"version": "1.1.2",
|
"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="
|
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
||||||
},
|
},
|
||||||
"microevent.ts": {
|
"microevent.ts": {
|
||||||
@@ -14911,7 +14920,7 @@
|
|||||||
},
|
},
|
||||||
"path-to-regexp": {
|
"path-to-regexp": {
|
||||||
"version": "1.7.0",
|
"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=",
|
"integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"isarray": "0.0.1"
|
"isarray": "0.0.1"
|
||||||
@@ -21618,6 +21627,15 @@
|
|||||||
"mkdirp": "^0.5.1"
|
"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": {
|
"xtend": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "http://storage.mds.yandex.net/get-npm/35308/xtend-4.0.1.tgz",
|
"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",
|
"dev": "node src/server.js",
|
||||||
"next": "next",
|
"next": "next",
|
||||||
"build": "next build",
|
"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",
|
"sitemap": "node scripts/sitemap.js",
|
||||||
|
"feed": "node scripts/feed.js",
|
||||||
"test": "mocha --compilers js:babel-register",
|
"test": "mocha --compilers js:babel-register",
|
||||||
"coverage": "istanbul cover 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-promise": "^3.3.1",
|
||||||
"eslint-plugin-react": "^7.4.0",
|
"eslint-plugin-react": "^7.4.0",
|
||||||
"eslint-plugin-standard": "^2.0.1",
|
"eslint-plugin-standard": "^2.0.1",
|
||||||
|
"feed": "^4.0.0",
|
||||||
"gulp": "^4.0.0",
|
"gulp": "^4.0.0",
|
||||||
"gulp-concat": "^2.4.1",
|
"gulp-concat": "^2.4.1",
|
||||||
"gulp-if": "^2.0.0",
|
"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="114x114" href="/static/graphics/favicon-114.png" />
|
||||||
<link rel="apple-touch-icon" sizes="144x144" href="/static/graphics/favicon-144.png" />
|
<link rel="apple-touch-icon" sizes="144x144" href="/static/graphics/favicon-144.png" />
|
||||||
|
|
||||||
{/* <link
|
<link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
type="application/rss+xml"
|
type="application/rss+xml"
|
||||||
title="Шлиссельбургская Детская Художественная Школа"
|
title="Шлиссельбургская Детская Художественная Школа"
|
||||||
href="/feed"
|
href="/feed.xml"
|
||||||
/> */}
|
/>
|
||||||
|
|
||||||
{/* Fotorama + jQuery*/}
|
{/* Fotorama + jQuery*/}
|
||||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" />
|
<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