BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/315451

Change subject: Add more languages to news feed
......................................................................

Add more languages to news feed

da, el, fi, fr, ko, no, pl, sv, vi

For some languages the code needed to be changed to be more
flexible in terms of selectors used to find the correct list of
news items. (fr, da, pl)

To test I added the following paths to my local RB instance config.yaml

    /{domain:ca.wikipedia.org}: *default_project
    /{domain:el.wikipedia.org}: *default_project
    /{domain:fi.wikipedia.org}: *default_project
    /{domain:ko.wikipedia.org}: *default_project
    /{domain:no.wikipedia.org}: *default_project
    /{domain:pl.wikipedia.org}: *default_project
    /{domain:vi.wikipedia.org}: *default_project

and in the Android app pointed to that local RB instance. After switching to
a new language in the app I ended up having to refresh the feed a couple of
times before the news items showed up.

Bug: T143808
Change-Id: Iac6c156a242b1cb545ed671338bf525a07e105b4
---
M lib/feed/news.js
M test/features/news/news.js
2 files changed, 20 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/mobileapps 
refs/changes/51/315451/1

diff --git a/lib/feed/news.js b/lib/feed/news.js
index 4932193..55e9c5d 100644
--- a/lib/feed/news.js
+++ b/lib/feed/news.js
@@ -9,13 +9,23 @@
 var HTTPError = require('../util').HTTPError;
 
 var newsTemplates = {
-    en: 'Template:In_the_news',
-    de: 'Wikipedia:Hauptseite/Aktuelles',
-    es: 'Portal:Actualidad',
-    he: 'תבנית:חדשות_ואקטואליה',
-    pt: 'Portal:Eventos_atuais',
-    ru: 'Шаблон:Актуальные_события',
-    zh: 'Portal:新聞動態'
+    en: {title: 'Template:In_the_news', selector: 'ul[id^=mw]'},
+
+    da: {title: 'Skabelon:Forside_aktuelle_begivenheder', selector: 'div'},
+    de: {title: 'Wikipedia:Hauptseite/Aktuelles', selector: 'ul'},
+    el: {title: 'Πύλη:Τρέχοντα_γεγονότα/Επικεφαλίδες', selector: 'ul'},
+    es: {title: 'Portal:Actualidad', selector: 'ul'},
+    fi: {title: 'Malline:Uutisissa', selector: 'ul'},
+    fr: {title: 'Modèle:Accueil_actualité', selector: 'ul[id^=mw]'},
+    he: {title: 'תבנית:חדשות_ואקטואליה', selector: 'ul'},
+    ko: {title: '틀:새로_들어온_소식', selector: 'ul'},
+    no: {title: 'Mal:Aktuelt', selector: 'ul'},
+    pl: {title: 'Szablon:Aktualności', selector: 'ul:last-of-type'},
+    pt: {title: 'Portal:Eventos_atuais', selector: 'ul'},
+    ru: {title: 'Шаблон:Актуальные_события', selector: 'ul'},
+    sv: {title: 'Portal:Huvudsida/Aktuella händelser', selector: 'ul'},
+    vi: {title: 'Bản_mẫu:Tin_tức', selector: 'ul'},
+    zh: {title: 'Portal:新聞動態', selector: 'ul'}
 };
 
 function removeFragment(href) {
@@ -55,14 +65,14 @@
         payload: [],
         meta: {}
     };
-    req.params.title = newsTemplates[lang];
+    req.params.title = newsTemplates[lang].title;
     return parsoid.getParsoidHtml(app, req)
     .then(function (response) {
         result.meta.etag = parsoid.getRevisionFromEtag(response.headers);
 
         var linkTitles = [];
         var doc = domino.createDocument(response.body);
-        var newsList = doc.getElementsByTagName('ul')[0];
+        var newsList = doc.querySelector(newsTemplates[lang].selector);
         var stories = newsList.getElementsByTagName('li');
 
         for (var j = 0, m = stories.length; j < m; j++) {
diff --git a/test/features/news/news.js b/test/features/news/news.js
index a5eb076..f2478fc 100644
--- a/test/features/news/news.js
+++ b/test/features/news/news.js
@@ -40,8 +40,7 @@
     this.timeout(20000);
 
     before(function () { return server.start(); });
-
-    [ 'de', 'en', 'es', 'he', 'pt', 'ru', 'zh' ].forEach(function(lang) {
+    [ 'da', 'de', 'el', 'en', 'es', 'fi', 'fr', 'he', 'ko', 'no', 'pl', 'pt', 
'ru', 'sv', 'vi', 'zh' ].forEach(function(lang) {
         it(lang + ': should respond to GET request with expected headers, 
incl. CORS and CSP headers', function () {
             return headers.checkHeaders(server.config.uri + lang + 
'.wikipedia.org/v1/page/news',
                 'application/json');

-- 
To view, visit https://gerrit.wikimedia.org/r/315451
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iac6c156a242b1cb545ed671338bf525a07e105b4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to