EBernhardson has uploaded a new change for review.

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

Change subject: [WIP] A/B test for experimental suggestions api
......................................................................

[WIP] A/B test for experimental suggestions api

Related mediawiki-core patch: I1fab57ea

Bug: T111078
Change-Id: I595db33a1970651f34290bdfe1f924ad11119bc3
---
M WikimediaEvents.php
A modules/ext.wikimediaEvents.searchSuggest.js
2 files changed, 62 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaEvents 
refs/changes/45/235345/1

diff --git a/WikimediaEvents.php b/WikimediaEvents.php
index 4a2f0eb..d86fafa 100644
--- a/WikimediaEvents.php
+++ b/WikimediaEvents.php
@@ -80,6 +80,7 @@
                // Don't remove if empty!
                'scripts'       => array(
                        'ext.wikimediaEvents.resourceloader.js',
+                       'ext.wikimediaEvents.searchSuggest.js',
                ),
                'dependencies' => array(
                        'ext.wikimediaEvents.search',
diff --git a/modules/ext.wikimediaEvents.searchSuggest.js 
b/modules/ext.wikimediaEvents.searchSuggest.js
new file mode 100644
index 0000000..0901935
--- /dev/null
+++ b/modules/ext.wikimediaEvents.searchSuggest.js
@@ -0,0 +1,61 @@
+/*!
+ * Javacsript module for measuring internal search bounce rate and dwell time.
+ *
+ * @license GNU GPL v2 or later
+ * @author Erik Bernhardson <[email protected]>
+ */
+( function ( mw, $, undefined ) {
+
+       function oneIn( populationSize ) {
+               return Math.floor( Math.random() * populationSize ) === 0;
+       }
+
+       // user was not chosen in a sampling of pages
+       if ( !oneIn( 2 ) ) {
+               return;
+       }
+
+       mw.loader.using( [
+               'mediawiki.user',
+               'ext.eventLogging',
+               //'schema.SomeThingOrOther'
+       ] ).then( function () {
+               var api,
+                       pageId = mw.user.generateRandomSessionId(),
+                       logEvent = function ( action ) {
+                               mw.eventLog.logEvent( 'SomeThingOrOther', {
+                                       // searchResultPage, visitPage or 
checkin
+                                       action: action,
+                                       // used to correlate actions that 
happen on the same
+                                       // page. Otherwise a user opening 
multiple search results
+                                       // in tabs would make their events 
overlap and the dwell
+                                       // time per page uncertain.
+                                       pageId: pageId,
+                                       // we noticed a number of events get 
sent multiple
+                                       // times from javascript, especially 
when using sendBeacon.
+                                       // This logId allows for later 
deduplication
+                                       logId: 
mw.user.generateRandomSessionId(),
+                               } );
+                       };
+
+               mw.searchSuggest.config.fetch = function ( query, response, 
maxRows ) {
+                       var node = this[0];
+
+                       api = api || new mw.Api();
+
+                       $.data( node, 'request', api.get( {
+                               action: 'cirrus-suggest',
+                               text: query,
+                               limit: maxRows,
+                       } ).done( function ( data ) {
+                               console.log( 'cirrus-suggest', data );
+                               response( $.map( data.suggest, function ( 
suggestion ) {
+                                       return suggestion.title;
+                               } ) );
+                       } ) );
+               };
+               mw.searchSuggest.install();
+
+               // @todo add tracking events
+       } );
+}( mediaWiki, jQuery ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I595db33a1970651f34290bdfe1f924ad11119bc3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaEvents
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>

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

Reply via email to