+ 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" "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
View File
@@ -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
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="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" />
+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' })
})()