Skip to content

Commit 410b0a5

Browse files
committed
Removed YQL, since it's deprecated. Just use xml2json instead.
1 parent 64a3f0a commit 410b0a5

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

amp-pwa-reader/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
"memory-cache": "^0.2.0",
3131
"request": "^2.81.0",
3232
"uglify-es": "*",
33-
"workbox-build": "^3.2.0"
33+
"workbox-build": "^3.2.0",
34+
"xml2json": "^0.11.2"
3435
},
3536
"engines": {
3637
"node": "6.16.0"

amp-pwa-reader/src/js/Backend.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ class Backend {
5555
}
5656

5757
getRSSImage(entry) {
58-
return entry.content ? entry.content[entry.content.length - 1].url : '';
58+
const content = entry['media:content'];
59+
return content ? content[content.length - 1].url : '';
5960
}
6061

6162
getRSSDescription(entry) {

amp-pwa-reader/src/js/FeedReader.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,19 @@ class FeedReader {
2323
fetch(category, attempts = 0) {
2424

2525
let rssUrl = shadowReader.backend.getRSSUrl(category);
26-
let yqlQuery = 'select * from feed where url = \'' + encodeURIComponent(rssUrl) + '\'';
27-
let yqlUrl = '/feed?q=' + yqlQuery;
26+
let feedUrl = '/feed?q=' + rssUrl;
2827

29-
return fetch(yqlUrl)
28+
return fetch(feedUrl)
3029
.then(response => response.json() )
31-
.then(rss => {
30+
.then(json => {
3231

3332
// sadly, the Guardian's RSS feeds seem to be having intermittent failures right now,
3433
// so rerequest if that happens
35-
if(!rss.query.results && attempts < 10) {
34+
if(!json.rss && attempts < 10) {
3635
return this.fetch(category, (attempts || 0) + 1);
3736
}
3837

39-
var entries = rss.query.results ? rss.query.results.item : [];
38+
var entries = (json.rss.channel && json.rss.channel.item) || [];
4039

4140
return entries.map(entry => {
4241
return {

amp-pwa-reader/src/js/Nav.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ class Nav {
223223
// hide menu
224224
this.hide();
225225

226-
// fetch new nav entries via RSS via YQL
226+
// fetch new nav entries via RSS via our server
227227
return this.feedReader.fetch(category).then(entries => {
228228

229229
// if this is the first time loading cards, now would

amp-pwa-reader/src/server/server.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const memCache = require('memory-cache');
2222
const pubBackend = require('./Backend.js');
2323
const enforce = require('express-sslify');
2424
const helmet = require('helmet');
25+
const xmlParser = require('xml2json');
2526

2627
const ENVIRONMENT_PRODUCTION = 'production';
2728

@@ -38,21 +39,20 @@ if (app.get('env') === ENVIRONMENT_PRODUCTION) {
3839

3940
// how long (in seconds) to cache requests for main feed and for any article
4041
const cacheDurations = {feed: 600, article: 3600};
41-
const feedURL = 'https://query.yahooapis.com/v1/public/yql';
4242

4343
const staticFilesMiddleware = express.static('dist');
4444
app.use(staticFilesMiddleware);
4545

46-
// Proxy the feed request so that we can cache it.
47-
// YQL expects a query in the "q" parameter.
46+
// Here, we cache the feed, and we convert it to JSON.
4847
app.get('/feed', cache(cacheDurations.feed), function(req, res, next) {
4948
const options = {
50-
url: feedURL + '?format=json&q=' + req.query.q
49+
url: req.query.q
5150
};
5251

52+
5353
request(options, (error, response, body) => {
5454
if (!error) {
55-
res.send(body);
55+
res.send(xmlParser.toJson(body));
5656
} else {
5757
res.json({error: 'An error occurred in /feed route'});
5858
}

0 commit comments

Comments
 (0)