<script>
function waitFor(fn, {interval=150, timeout=5000} = {}) {
return new Promise((resolve, reject) => {
const t0 = Date.now();
const id = setInterval(() => {
try {
const v = fn();
if (v) { clearInterval(id); resolve(v); }
else if (Date.now() - t0 > timeout) { clearInterval(id); reject(new Error('timeout')); }
} catch (e) { clearInterval(id); reject(e); }
}, interval);
});
}
function insertClickioScripts() {
const s1 = document.createElement('script');
s1.async = true;
s1.type = 'text/javascript';
s1.src = '//s.clickiocdn.com/t/215795/360_light.js';
document.head.appendChild(s1);
const s2 = document.createElement('script');
s2.className = '__lxGc__';
s2.type = 'text/javascript';
s2.text = "((__lxGc__=window.__lxGc__||{'s':{},'b':0})['s']['_215795']=__lxGc__['s']['_215795']||{'b':{}})['b']['_733774']={'i':__lxGc__.b++};";
document.body.appendChild(s2);
const s3 = document.createElement('script');
s3.className = '__lxGc__';
s3.type = 'text/javascript';
s3.text = "((__lxGc__=window.__lxGc__||{'s':{},'b':0})['s']['_215795']=__lxGc__['s']['_215795']||{'b':{}})['b']['_733773']={'i':__lxGc__.b++};";
document.body.appendChild(s3);
}
async function getSubscriberStatus() {
await waitFor(() =>
window.site && site.session && (site.session.isSuscriber || site.session.isSubscriber)
);
const api = site.session.isSuscriber || site.session.isSubscriber;
if (typeof api === 'function' && api.length >= 1) {
return await new Promise(resolve => {
let done = false;
const timer = setTimeout(() => { if (!done) resolve(undefined); }, 3000);
api(function(val) {
done = true;
clearTimeout(timer);
resolve(!!val);
});
});
}
if (typeof api === 'function') {
const ret = api();
if (ret && typeof ret.then === 'function') {
return !!(await ret);
}
return !!ret;
}
if (typeof api === 'boolean') return api;
return undefined;
}
(async () => {
try {
const val = await getSubscriberStatus();
if (val !== true) {
console.log('Pasted');
insertClickioScripts();
} else {
console.log('Not pasted');
}
} catch (e) {
console.warn('Unknown', e);
insertClickioScripts();
}
})();
</script>
Comments
0 B
|0 👍
/0 👎
0 B
|0 👍
/0 👎