jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/391746 )

Change subject: Summary 2.0: Mark disambiguation pages
......................................................................


Summary 2.0: Mark disambiguation pages

This just identifies them for now as a starting point. Later, we'll
devise a way to add links to disambiguated pages.

Bug: T171052
Change-Id: Ic74b5ad42af065d3116ede183223d9a4a65aaf0f
---
M lib/mobile-util.js
M routes/mobile-sections.js
M spec.yaml
3 files changed, 68 insertions(+), 16 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/mobile-util.js b/lib/mobile-util.js
index e93e453..46a6c66 100644
--- a/lib/mobile-util.js
+++ b/lib/mobile-util.js
@@ -192,9 +192,10 @@
  * @param {!String} domain the request domain
  * @param {!Object} title a mediawiki-title object for the page title
  * @param {!Object} pageData raw page data for the page
+ * @param {?boolean} disambiguation whether the page is a disambiguation page
  * @return {!Object} a summary 2.0 spec-compliant page summary object
  */
-mUtil.buildSummary = function(domain, title, pageData) {
+mUtil.buildSummary = function(domain, title, pageData, disambiguation = false) 
{
     let summary = {};
     const page = pageData.page;
     const meta = pageData.meta;
@@ -227,7 +228,7 @@
     }
     return Object.assign({
         code: 200,
-        type: 'standard',
+        type : disambiguation ? 'disambiguation' : 'standard',
         title: meta.normalizedtitle,
         displaytitle: meta.displaytitle,
         namespace: { id: meta.ns, text: meta.nsText },
diff --git a/routes/mobile-sections.js b/routes/mobile-sections.js
index 81fe3ea..039ee7b 100644
--- a/routes/mobile-sections.js
+++ b/routes/mobile-sections.js
@@ -8,6 +8,7 @@
 const parsoid = require('../lib/parsoid-access');
 const sUtil = require('../lib/util');
 const transforms = require('../lib/transforms');
+const Title = require('mediawiki-title').Title;
 
 /**
  * The main router object
@@ -392,22 +393,21 @@
 */
 router.get('/summary/:title/:revision?/:tid?', (req, res) => {
     return BBPromise.props({
-        title: mwapi.getTitleObj(app, req),
-        pageData: _collectRawPageData(req, false)
+        pageData: _collectRawPageData(req, false),
+        siteinfo: mwapi.getSiteInfo(app, req)
     }).then((response) => {
-        const summary = mUtil.buildSummary(req.params.domain, response.title, 
response.pageData);
-        if (summary) {
-            res.status(summary.code);
-            if (summary.code === 200) {
-                delete summary.code;
-                mUtil.setETag(res, summary.revision, summary.tid);
-                mUtil.setContentType(res, mUtil.CONTENT_TYPES.summary);
-                res.send(JSON.stringify(summary));
-            }
-            res.end();
-        } else {
-            res.status(404);
+        const title = Title.newFromText(req.params.title, response.siteinfo);
+        const pageProps = response.pageData.meta && 
response.pageData.meta.pageprops;
+        const disambig = pageProps && {}.hasOwnProperty.call(pageProps, 
'disambiguation');
+        const summary = mUtil.buildSummary(req.params.domain, title, 
response.pageData, disambig);
+        res.status(summary.code);
+        if (summary.code === 200) {
+            delete summary.code;
+            mUtil.setETag(res, summary.revision, summary.tid);
+            mUtil.setContentType(res, mUtil.CONTENT_TYPES.summary);
+            res.send(summary);
         }
+        res.end();
     });
 });
 
diff --git a/spec.yaml b/spec.yaml
index 3d315d1..ed54015 100644
--- a/spec.yaml
+++ b/spec.yaml
@@ -725,6 +725,56 @@
                 talk_page_html: /.+/
               extract: /.+/
               extract_html: /.+/
+        - title: Get summary for 2nd Earl of Derby
+          request:
+            params:
+              domain: en.wikipedia.org
+              title: 2nd_Earl_of_Derby
+          response:
+            status: 200
+            headers:
+              etag: /.+/
+              content-type: /^application\/json/
+            body:
+              type: disambiguation
+              title: /.+/
+              displaytitle: /.+/
+              namespace:
+                id: /.+/
+                text: /.*/
+              titles:
+                canonical: /.+/
+                normalized: /.+/
+                display: /.+/
+              pageid: /.+/
+              lang: /.+/
+              dir: /.+/
+              revision: /.+/
+              tid: /.+/
+              timestamp: /.+/
+              description: /.+/
+              content_urls:
+                desktop:
+                  page: /.+/
+                  revisions: /.+/
+                  edit: /.+/
+                  talk: /.+/
+                mobile:
+                  page: /.+/
+                  revisions: /.+/
+                  edit: /.+/
+                  talk: /.+/
+              api_urls:
+                summary: /.+/
+#                read_html: /.+/
+#                content_html: /.+/
+#                metadata: /.+/
+#                references: /.+/
+#                media: /.+/
+                edit_html: /.+/
+                talk_page_html: /.+/
+              extract: /.+/
+              extract_html: /.+/
 
   # from routes/mobile-sections.js
   /{domain}/v1/page/mobile-sections/{title}:
@@ -879,6 +929,7 @@
         description: Type of page summary
         enum:
           - standard
+          - disambiguation
       title:
         type: string
         description: The page title

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic74b5ad42af065d3116ede183223d9a4a65aaf0f
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Fjalapeno <cfl...@wikimedia.org>
Gerrit-Reviewer: Gergő Tisza <gti...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Mhurd <mh...@wikimedia.org>
Gerrit-Reviewer: Ppchelko <ppche...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to