Created
June 4, 2015 18:20
-
-
Save abhiaiyer91/1018c36505c869694561 to your computer and use it in GitHub Desktop.
Wootric Lib
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by abhiaiyer on 4/10/15. | |
*/ | |
Wootric = {}; | |
Meteor.startup(function () { | |
var key = Meteor.settings.public && Meteor.settings.public.wootric && Meteor.settings.public.wootric.key; | |
if (!key) { | |
return; | |
} | |
Tracker.autorun(function () { | |
var userId = Meteor.userId(); | |
var loggedIn = !!userId; | |
var user = Meteor.users.findOne({_id: userId}, {fields: {emails: 1, createdAt: 1}}); | |
if (loggedIn | |
&& user | |
&& user.createdAt | |
&& user.emails | |
&& user.emails.length > 0) { | |
var email = user && user.emails[0].address; | |
wootric_first_survey = 0; | |
wootric_registered_percent = 100; | |
window.wootricSettings = { | |
email: email, | |
created_at: moment(user.createdAt).unix(), | |
product_name: 'Workpop', | |
account_token: key, | |
decline_callback: function () { | |
Meteor.call('updateUser', {_id: userId}, {$set: {'meta.notifications.needsDelightedSurvey': true}}); | |
}, | |
response_callback: function (score) { | |
var npsObject = { | |
score: score, | |
date: moment().toISOString(), | |
method: 'wootric' | |
}; | |
Meteor.call('updateUser', {_id: userId}, {$addToSet: {'meta.NPS': npsObject}}); | |
} | |
}; | |
/*{literal}<![CDATA[*/ | |
if (window.wootricSettings) { | |
var i = new Image; | |
i.src = "//d8myem934l1zi.cloudfront.net/pixel.gif?account_token=" + window.wootricSettings.account_token + "&email=" + encodeURIComponent(window.wootricSettings.email) + "&created_at=" + window.wootricSettings.created_at + "&url=" + encodeURIComponent(window.location) + "&random=" + Math.random() | |
} | |
window.lightningjs || function (c) { | |
function g(b, d) { | |
d && (d += (/\?/.test(d) ? "&" : "?") + "lv=1"); | |
c[b] || function () { | |
var i = window, h = document, j = b, g = h.location.protocol, l = "load", k = 0; | |
(function () { | |
function b() { | |
a.P(l); | |
a.w = 1; | |
c[j]("_load") | |
} | |
c[j] = function () { | |
function m() { | |
m.id = e; | |
return c[j].apply(m, arguments) | |
} | |
var b, e = ++k; | |
b = this && this != i ? this.id || 0 : 0; | |
(a.s = a.s || []).push([e, b, arguments]); | |
m.then = function (b, c, h) { | |
var d = a.fh[e] = a.fh[e] || [], j = a.eh[e] = a.eh[e] || [], f = a.ph[e] = a.ph[e] || []; | |
b && d.push(b); | |
c && j.push(c); | |
h && f.push(h); | |
return m | |
}; | |
return m | |
}; | |
var a = c[j]._ = {}; | |
a.fh = {}; | |
a.eh = {}; | |
a.ph = {}; | |
a.l = d ? d.replace(/^\/\//, (g == "https:" ? g : "http:") + "//") : d; | |
a.p = {0: +new Date}; | |
a.P = function (b) { | |
a.p[b] = new Date - a.p[0] | |
}; | |
a.w && b(); | |
i.addEventListener ? i.addEventListener(l, b, !1) : i.attachEvent("on" + l, b); | |
var q = function () { | |
function b() { | |
return ["<head></head><", c, ' onload="var d=', n, ";d.getElementsByTagName('head')[0].", d, "(d.", g, "('script')).", i, "='", a.l, "'\"></", c, ">"].join("") | |
} | |
var c = "body", e = h[c]; | |
if (!e)return setTimeout(q, 100); | |
a.P(1); | |
var d = "appendChild", g = "createElement", i = "src", k = h[g]("div"), l = k[d](h[g]("div")), f = h[g]("iframe"), n = "document", p; | |
k.style.display = "none"; | |
e.insertBefore(k, e.firstChild).id = o + "-" + j; | |
f.frameBorder = "0"; | |
f.id = o + "-frame-" + j; | |
/MSIE[ ]+6/.test(navigator.userAgent) && (f[i] = "javascript:false"); | |
f.allowTransparency = "true"; | |
l[d](f); | |
try { | |
f.contentWindow[n].open() | |
} catch (s) { | |
a.domain = h.domain, p = "javascript:var d=" + n + ".open();d.domain='" + h.domain + "';", f[i] = p + "void(0);" | |
} | |
try { | |
var r = f.contentWindow[n]; | |
r.write(b()); | |
r.close() | |
} catch (t) { | |
f[i] = p + 'd.write("' + b().replace(/"/g, String.fromCharCode(92) + '"') + '");d.close();' | |
} | |
a.P(2) | |
}; | |
a.l && q() | |
})() | |
}(); | |
c[b].lv = "1"; | |
return c[b] | |
} | |
var o = "lightningjs", k = window[o] = g(o); | |
k.require = g; | |
k.modules = c | |
}({}); | |
/*]]>{/literal}*/ | |
Wootric.wootric = lightningjs.require("wootric", "//d27j601g4x0gd5.cloudfront.net/beacon.js"); | |
} | |
}); | |
}); | |
//// TODO: The current logged in user's email address. created_at: 1234567890, | |
//// TODO: The current logged in user's sign-up date as a Unix timestamp. product_name: 'Wootric', | |
//// TODO: The name of the product or service account_token: 'NPS-d7b85a69' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment