mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Add logged out user tracking library and append to tracking pixel
This commit is contained in:
@@ -442,6 +442,7 @@ module["reddit-init-base"] = LocalizedModule("reddit-init-base.js",
|
||||
"lib/bootstrap.modal.js",
|
||||
"lib/bootstrap.transition.js",
|
||||
"lib/bootstrap.tooltip.js",
|
||||
"lib/reddit-client-lib.js",
|
||||
"bootstrap.tooltip.extension.js",
|
||||
"base.js",
|
||||
"preload.js",
|
||||
|
||||
80
r2/r2/public/static/js/lib/reddit-client-lib.js
Normal file
80
r2/r2/public/static/js/lib/reddit-client-lib.js
Normal file
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* reddit-client-lib
|
||||
* @version v0.0.0
|
||||
* DO NOT EDIT THIS FILE DIRECTLY! Edit the source at:
|
||||
* @source https://github.com/reddit/reddit-client-lib
|
||||
*/
|
||||
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var Tracker = module.exports = function(options) {
|
||||
};
|
||||
|
||||
function randomString(len) {
|
||||
var id = [];
|
||||
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
|
||||
for (var i = 0; i < len; i++) {
|
||||
id.push(chars.charAt(Math.floor(Math.random() * chars.length)));
|
||||
}
|
||||
|
||||
return id.join('');
|
||||
}
|
||||
|
||||
function getCookies(/* names */) {
|
||||
var names = Array.prototype.slice.call(arguments);
|
||||
var ret = {};
|
||||
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cData = cookies[i].split('=', 2);
|
||||
var cName = cData[0].replace(/^\s+/, '');
|
||||
|
||||
if (names.indexOf(cName) !== -1) {
|
||||
ret[cName] = cData[1];
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
function setCookie(name, value, expires) {
|
||||
document.cookie = name + '=' + value +
|
||||
'; expires=' + expires.toGMTString() + ';';
|
||||
}
|
||||
|
||||
// Retrieve (or set and return) an ID for this user's logged out session.
|
||||
function getLoggedOutData() {
|
||||
// Do not return a logged out ID if the user is logged in, for privacy purpose
|
||||
if (window.reddit && window.reddit.logged) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var cookies = getCookies('loid', 'loidcreated');
|
||||
if (cookies.loid) {
|
||||
return cookies;
|
||||
}
|
||||
|
||||
var loggedOutId = randomString(18);
|
||||
var created = (new Date()).toISOString();
|
||||
var expires = new Date();
|
||||
expires.setFullYear(expires.getFullYear() + 2);
|
||||
setCookie('loid', loggedOutId, expires);
|
||||
setCookie('loidcreated', created, expires);
|
||||
|
||||
return getCookies('loid', 'loidcreated');
|
||||
}
|
||||
|
||||
Tracker.prototype.getTrackingData = function() {
|
||||
return getLoggedOutData();
|
||||
};
|
||||
|
||||
// Export to `window`, for browser wo/browserify.
|
||||
if (typeof window !== 'undefined') {
|
||||
var redditlib = (window.redditlib = window.redditlib || {});
|
||||
|
||||
redditlib.Tracker = Tracker;
|
||||
}
|
||||
|
||||
},{}]},{},[1])
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvdHJhY2tpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIid1c2Ugc3RyaWN0JztcblxudmFyIFRyYWNrZXIgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbn07XG5cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZyhsZW4pIHtcbiAgdmFyIGlkID0gW107XG4gIHZhciBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGlkLnB1c2goY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKTtcbiAgfVxuXG4gIHJldHVybiBpZC5qb2luKCcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29va2llcygvKiBuYW1lcyAqLykge1xuICB2YXIgbmFtZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICB2YXIgcmV0ID0ge307XG5cbiAgdmFyIGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGNEYXRhID0gY29va2llc1tpXS5zcGxpdCgnPScsIDIpO1xuICAgIHZhciBjTmFtZSA9IGNEYXRhWzBdLnJlcGxhY2UoL15cXHMrLywgJycpO1xuXG4gICAgaWYgKG5hbWVzLmluZGV4T2YoY05hbWUpICE9PSAtMSkge1xuICAgICAgcmV0W2NOYW1lXSA9IGNEYXRhWzFdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHNldENvb2tpZShuYW1lLCB2YWx1ZSwgZXhwaXJlcykge1xuICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgdmFsdWUgK1xuICAgICc7IGV4cGlyZXM9JyArIGV4cGlyZXMudG9HTVRTdHJpbmcoKSArICc7Jztcbn1cblxuLy8gUmV0cmlldmUgKG9yIHNldCBhbmQgcmV0dXJuKSBhbiBJRCBmb3IgdGhpcyB1c2VyJ3MgbG9nZ2VkIG91dCBzZXNzaW9uLlxuZnVuY3Rpb24gZ2V0TG9nZ2VkT3V0RGF0YSgpIHtcbiAgLy8gRG8gbm90IHJldHVybiBhIGxvZ2dlZCBvdXQgSUQgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLCBmb3IgcHJpdmFjeSBwdXJwb3NlXG4gIGlmICh3aW5kb3cucmVkZGl0ICYmIHdpbmRvdy5yZWRkaXQubG9nZ2VkKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIGNvb2tpZXMgPSBnZXRDb29raWVzKCdsb2lkJywgJ2xvaWRjcmVhdGVkJyk7XG4gIGlmIChjb29raWVzLmxvaWQpIHtcbiAgICByZXR1cm4gY29va2llcztcbiAgfVxuXG4gIHZhciBsb2dnZWRPdXRJZCA9IHJhbmRvbVN0cmluZygxOCk7XG4gIHZhciBjcmVhdGVkID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gIHZhciBleHBpcmVzID0gbmV3IERhdGUoKTtcbiAgZXhwaXJlcy5zZXRGdWxsWWVhcihleHBpcmVzLmdldEZ1bGxZZWFyKCkgKyAyKTtcbiAgc2V0Q29va2llKCdsb2lkJywgbG9nZ2VkT3V0SWQsIGV4cGlyZXMpO1xuICBzZXRDb29raWUoJ2xvaWRjcmVhdGVkJywgY3JlYXRlZCwgZXhwaXJlcyk7XG5cbiAgcmV0dXJuIGdldENvb2tpZXMoJ2xvaWQnLCAnbG9pZGNyZWF0ZWQnKTtcbn1cblxuVHJhY2tlci5wcm90b3R5cGUuZ2V0VHJhY2tpbmdEYXRhID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBnZXRMb2dnZWRPdXREYXRhKCk7XG59O1xuXG4vLyBFeHBvcnQgdG8gYHdpbmRvd2AsIGZvciBicm93c2VyIHdvL2Jyb3dzZXJpZnkuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIHJlZGRpdGxpYiA9ICh3aW5kb3cucmVkZGl0bGliID0gd2luZG93LnJlZGRpdGxpYiB8fCB7fSk7XG5cbiAgcmVkZGl0bGliLlRyYWNrZXIgPSBUcmFja2VyO1xufVxuIl19
|
||||
@@ -93,11 +93,18 @@ reddit, reddit.com, vote, comment, submit
|
||||
%if g.tracker_url and thing.site_tracking:
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var url = '${tracking.get_pageview_pixel_url()}';
|
||||
var tracker = new redditlib.Tracker();
|
||||
var loggedOutData = tracker.getTrackingData();
|
||||
var loggedOutParams = '';
|
||||
if (loggedOutData && loggedOutData.loid) {
|
||||
loggedOutParams = '&loid=' + loggedOutData.loid
|
||||
+ '&loidcreated=' + loggedOutData.loidcreated;
|
||||
}
|
||||
var url = '${tracking.get_pageview_pixel_url()}' + loggedOutParams;
|
||||
var cachebuster = Math.round(Math.random() * 2147483647);
|
||||
var cachebusted_url = url + "&r=" + cachebuster;
|
||||
var cachebustedUrl = url + "&r=" + cachebuster;
|
||||
var img = new Image();
|
||||
img.src = cachebusted_url;
|
||||
img.src = cachebustedUrl;
|
||||
})();
|
||||
</script>
|
||||
%endif
|
||||
|
||||
Reference in New Issue
Block a user