chore(server): Move api-server in to it's own DIR
This commit is contained in:
committed by
mrugesh mohapatra
parent
9fba6bce4c
commit
46a217d0a5
39
api-server/server/rss/medium.js
Normal file
39
api-server/server/rss/medium.js
Normal file
@ -0,0 +1,39 @@
|
||||
import Parser from 'rss-parser';
|
||||
import _ from 'lodash';
|
||||
|
||||
const parser = new Parser();
|
||||
|
||||
const mediumFeed = 'https://medium.freecodecamp.org/feed';
|
||||
|
||||
function getExtract(str) {
|
||||
return str.slice(0, str.indexOf('</p>') + 4);
|
||||
}
|
||||
|
||||
|
||||
function addResponsiveClass(str) {
|
||||
return str.replace(/\<img/g, '<img class="img-responsive"');
|
||||
}
|
||||
|
||||
export function getMediumFeed() {
|
||||
return new Promise((resolve, reject) => {
|
||||
parser.parseURL(mediumFeed, (err, feed) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
const items = feed.items
|
||||
.map(
|
||||
item => _.pick(item, ['title', 'link', 'isoDate', 'content:encoded'])
|
||||
)
|
||||
.map(
|
||||
(item) => ({
|
||||
...item,
|
||||
extract: getExtract(item['content:encoded'])
|
||||
})
|
||||
)
|
||||
.map(item => _.omit(item, ['content:encoded']))
|
||||
.map(item => ({ ...item, extract: addResponsiveClass(item.extract)}));
|
||||
resolve(items);
|
||||
});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user