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