diff --git a/lib/resources/medium/parser.js b/lib/resources/medium/parser.js index 692b3c5..7bdcff7 100644 --- a/lib/resources/medium/parser.js +++ b/lib/resources/medium/parser.js @@ -1,17 +1,37 @@ -const getItems = rssFeed => { - let feedAttrs = ['title', 'link', 'guid', 'dc:creator', 'pubDate', 'content:encoded'] +let feedAttrs = [ + { + name: 'title', + feedKey: 'title' + }, { + name: 'link', + feedKey: 'link' + }, { + name: 'guid', + feedKey: 'guid' + }, { + name: 'author', + feedKey: 'dc:creator' + }, { + name: 'publishData', + feedKey: 'pubDate' + }, { + name: 'content', + feedKey: 'content:encoded' + } +] - const itemExtractor = (feedItem, tagName) => { +const getItems = rssFeed => { + const itemExtractor = (feedItem, feedKey) => { return feedItem - .match(new RegExp(`(<${tagName}[^>]*>(.|\n)*?<\/${tagName}>)`, 'gm'))[0] - .replace(new RegExp(`(<${tagName}[^>]*>|)`, 'gm'), '') + .match(new RegExp(`(<${feedKey}[^>]*>(.|\n)*?<\/${feedKey}>)`, 'gm'))[0] + .replace(new RegExp(`(<${feedKey}[^>]*>|)`, 'gm'), '') .replace(new RegExp(`()`, 'gm'), '') } let items = rssFeed.match(/(.|\n)*?<\/item>/gm) return items.map(feedItem => { let obj = {} - feedAttrs.map(item => obj[item] = itemExtractor(feedItem, item)) + feedAttrs.map(item => obj[item.name] = itemExtractor(feedItem, item.feedKey)) return obj; }) } diff --git a/package.json b/package.json index 18a5cd2..519a52c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@shaai/core", - "version": "0.5.0", + "version": "0.5.1", "description": "A blogging npm", "main": "dist/es5/lib/index.js", "preferGlobal": true,