Jdrewniak has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/364834 )

Change subject: Adding full URLs to Explore Similar API calls
......................................................................

Adding full URLs to Explore Similar API calls

Previously, URLs in the explore similar links
were extrapolated from page titles. Mustache sanitized
the page titles causing redirects,
ex: '/wiki/Albert&20Einstein' (301) -> '/wiki/Albert_Einstein' (200)

Using the full urls provided by the API removes the redirect
and fixes the event logging issue where no landing events
to article pages were being logged from these links.
(The wprov param was lost in the redirect)

Bug: T149809, T164856
Change-Id: I069613694f91e49dfc53428a8d5fd3f3682a7e38
(cherry picked from commit 7b660bb6c1cad531827b4889cee0c0724d04ed54)
---
M resources/ext.cirrus.explore-similar.js
1 file changed, 23 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CirrusSearch 
refs/changes/34/364834/1

diff --git a/resources/ext.cirrus.explore-similar.js 
b/resources/ext.cirrus.explore-similar.js
index fbda1d5..e91e0de 100644
--- a/resources/ext.cirrus.explore-similar.js
+++ b/resources/ext.cirrus.explore-similar.js
@@ -14,7 +14,7 @@
                [
                        'mediawiki.api.messages',
                        'mediawiki.template.mustache',
-                       'jquery.uls.data'
+                       'ext.uls.common'
                ] ), $.ready )
        .then( function () {
                return new mw.Api().loadMessagesIfMissing( [
@@ -160,26 +160,28 @@
                                        params: {
                                                action: 'query',
                                                format: 'json',
-                                               prop: 'categories',
+                                               prop: 'info',
                                                titles: articleTitle,
-                                               cllimit: 10,
-                                               clshow: '!hidden'
+                                               generator: 'categories',
+                                               inprop: 'url',
+                                               gclshow: '!hidden',
+                                               gcllimit: 10
                                        }
                                },
                                filterApiResponse: function ( reqResponse ) {
-                                       var templateData;
-
+                                       var templateData,
+                                       queryPages = ( reqResponse.query && 
reqResponse.query.pages ) ?
+                                               reqResponse.query.pages : [];
                                        templateData = {
                                                sectionTitle: 
l10n.categoriesSectionTitle,
                                                cssClasses: cssClasses,
-                                               pageCategories: $.map( 
reqResponse.query.pages,
-                                                       function ( page ) {
-                                                               return $.map( 
page.categories,
-                                                                       
function ( cat ) {
-                                                                               
cat.title = mw.html.escape( cat.title );
-                                                                               
cat.humanTitle = cat.title.replace( /.*:/, '' );
-                                                                               
return cat;
-                                                                       } );
+                                               pageCategories: $.map( 
queryPages, function ( page ) {
+                                                                               
var humanTitle = page.title.replace( /.*:/, '' ),
+                                                                               
        url = page.fullurl;
+                                                                               
return {
+                                                                               
        humanTitle: humanTitle,
+                                                                               
        url: url
+                                                                               
};
                                                        } )
                                        };
 
@@ -196,7 +198,7 @@
                                                                '</strong>' +
                                                                '<div 
class="{{cssClasses.contentColumns}}">' +
                                                                        
'{{#pageCategories}}' +
-                                                                               
'<a href="/wiki/{{title}}" class="{{cssClasses.category}}" 
style="display:block;">' +
+                                                                               
'<a href="{{url}}" class="{{cssClasses.category}}" style="display:block;">' +
                                                                                
        '{{humanTitle}}' +
                                                                                
'</a>' +
                                                                        
'{{/pageCategories}}' +
@@ -222,7 +224,8 @@
                                                action: 'query',
                                                titles: articleTitle,
                                                prop: 'langlinks',
-                                               lllimit: '500'
+                                               llprop: 'url|autonym',
+                                               lllimit: '500',
                                        }
                                },
                                filterApiResponse: function ( reqResponse ) {
@@ -233,7 +236,6 @@
                                                                if ( 
page.langlinks ) {
                                                                        return 
$.grep( page.langlinks, function ( langlink ) {
                                                                                
if ( prefLangs.indexOf( langlink.lang ) >= 0 ) {
-                                                                               
        langlink.autonym = $.uls.data.getAutonym( langlink.lang );
                                                                                
        return langlink;
                                                                                
}
                                                                        } );
@@ -258,7 +260,7 @@
                                                        '{{#langLinks}}' +
                                                                '<div 
class="{{cssClasses.langLink}}" data-lang={{lang}}>' +
                                                                        
'<div>{{autonym}}</div>' +
-                                                                       '<a 
href="https://{{lang}}.wikipedia.org/wiki/{{*}}";>' +
+                                                                       '<a 
href="{{url}}">' +
                                                                                
'{{*}}' +
                                                                        '</a>' +
                                                                '</div>' +
@@ -283,7 +285,7 @@
                                                action: 'query',
                                                format: 'json',
                                                formatversion: 2,
-                                               prop: 'pageimages|pageterms',
+                                               prop: 
'pageimages|pageterms|info',
                                                piprop: 'thumbnail',
                                                pithumbsize: 160,
                                                pilimit: 3,
@@ -293,6 +295,7 @@
                                                gsrnamespace: 0,
                                                gsrlimit: 3,
                                                gsrqiprofile: 
'classic_noboostlinks',
+                                               inprop: 'url',
                                                uselang: 'content',
                                                smaxage: 86400,
                                                maxage: 86400
@@ -326,7 +329,7 @@
                                                                
'{{sectionTitle}}' +
                                                        '</strong>' +
                                                        '{{#relatedPages}}' +
-                                                               '<a 
href="/wiki/{{title}}" title="{{title}}" class="{{cssClasses.relatedPage}}">' +
+                                                               '<a 
href="{{fullurl}}" title="{{title}}" class="{{cssClasses.relatedPage}}">' +
                                                                        
'{{#thumbnail}}' +
                                                                                
'<div class="{{cssClasses.relatedPageThumb}}" 
style="background-image:url({{thumbnail.source}});"></div>' +
                                                                        
'{{/thumbnail}}' +

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I069613694f91e49dfc53428a8d5fd3f3682a7e38
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CirrusSearch
Gerrit-Branch: wmf/1.30.0-wmf.9
Gerrit-Owner: Jdrewniak <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to