CinemaPress/modules/CP_blocking.js
2020-01-07 00:57:25 +02:00

143 lines
8.4 KiB
JavaScript

'use strict';
/**
* Module dependencies.
*/
var CP_text = require('../lib/CP_text');
/**
* Configuration dependencies.
*/
var config = require('../config/production/config');
var modules = require('../config/production/modules');
/**
* Blocking a page player.
*
* @param {Object} code
* @param {Object} [movie]
* @param {Object} [options]
* @return {Object}
*/
function blockingPlayer(code, movie, options) {
if (arguments.length === 1) {
options = {};
options.domain = config.subdomain + '' + config.domain;
options.origin =
config.protocol + '' + config.subdomain + '' + config.domain;
}
if (
modules.blocking.status &&
modules.blocking.data[modules.blocking.data.display]
) {
var tv =
options.domain.indexOf('tv.') !== -1 ||
options.domain.indexOf('/tv-version') !== -1;
var block = modules.blocking.data[modules.blocking.data.display];
var message = block.message.replace(
'[timer]',
'<span id="blockingTimer" style="background:#000;color:#fff;padding:2px 7px 0;border-radius:3px;border:1px solid #666;font-family:monospace,sans-serif">--</span>'
);
message = CP_text.formatting(message, movie);
if (modules.blocking.data.display === 'share' && !tv) {
code.player =
'<div id="blocking" style="position:absolute;background:#000 url(' +
config.default.image +
') 100% 100% no-repeat;background-size:100% 100%;z-index:10000;top:0;left:0;width:100%;height:100%;color:#fff;text-align:center;text-shadow: 1px 1px #000;"><div id="blockingMessage" style="margin:80px auto 0;width:70%">' +
message +
'</div><div id="blockingCode" style="margin:50px auto"><script src="/themes/default/public/desktop/js/yastatic.net/es5-shims.min.js" charset="utf-8"></script><script src="/themes/default/public/desktop/js/yastatic.net/share2.js" charset="utf-8"></script><div class="ya-share2" data-services="facebook,twitter,vkontakte,odnoklassniki,moimir" data-counter=""></div></div></div><script>(function(){var e=document.getElementById("blockingTimer"),n=' +
block.time +
';var si=setInterval(function(){if(e.innerHTML=""+n,n=parseInt(n),n--,0>n){var t=document.getElementById("blocking");t.parentElement.removeChild(t);clearInterval(si)}},1e3);var t=document.getElementById("blockingCode");t.addEventListener("click",function(){setTimeout(function(){var e=document.getElementById("blocking");e.parentElement.removeChild(e);clearInterval(si)},10e3)})})();</script>' +
code.player;
} else if (modules.blocking.data.display === 'adv') {
var skipText = modules.blocking.data.adv.skip;
var skipCode = modules.blocking.data.adv.skip
? 'var bm=document.getElementById("blockingMessage");bm.style.display="none";var bs=document.getElementById("blockingSkip");bs.style.display="block";'
: 'var t=document.getElementById("blocking");t.parentElement.removeChild(t);';
code.player =
'<div id="blocking" style="position:absolute;background:#000 url(' +
config.default.image +
') 100% 100% no-repeat;background-size:100% 100%;z-index:10000;top:0;left:0;width:100%;height:100%;color:#fff;text-align:center;text-shadow: 1px 1px #000;"><div id="blockingMessage" style="margin:30px auto 0;width:70%">' +
message +
'</div><div id="blockingSkip" style="color:white; margin:30px auto 0;width:70%; display: none;cursor: pointer;">' +
skipText +
'</div><div id="blockingCode" style="margin:30px auto">' +
block.code +
'</div></div><script>(function(){var e=document.getElementById("blockingTimer"),n=' +
block.time +
';var si=setInterval(function(){if(e.innerHTML=""+n,n=parseInt(n),n--,0>n){' +
skipCode +
'clearInterval(si)}},1e3);var s=document.getElementById("blockingSkip");s.addEventListener("click",function(){var t=document.getElementById("blocking");t.parentElement.removeChild(t);})})();</script>' +
code.player;
} else if (modules.blocking.data.display === 'adblock' && !tv) {
code.player =
'<div id="blocking" style="position:absolute;background:#000 url(' +
config.default.image +
') 100% 100% no-repeat;background-size:100% 100%;z-index:10000;top:0;left:0;width:100%;height:100%;color:#fff;text-align:center;text-shadow: 1px 1px #000;"><div id="blockingMessage" style="margin:80px auto 0;width:70%">' +
message +
'</div></div><script src="/themes/default/public/desktop/js/ads.js" charset="utf-8"></script><script>(function(){var e=document.getElementById("blockingTimer"),n=' +
block.time +
';var si=setInterval(function(){if(e.innerHTML=""+n,n=parseInt(n),n--,0>n){var t=document.getElementById("blocking");t.parentElement.removeChild(t);clearInterval(si)}},1e3);if(document.getElementById("CinemaPress")){var ee=document.getElementById("blocking");ee.parentElement.removeChild(ee);clearInterval(si)}})();</script>' +
code.player;
} else if (modules.blocking.data.display === 'sub') {
if (
!options.subscribe ||
(options.subscribe &&
modules.blocking.data.sub.keys.indexOf(options.subscribe) === -1)
) {
code.player =
'<div id="blocking" style="position:absolute;background:#000 url(' +
config.default.image +
') 100% 100% no-repeat;background-size:100% 100%;z-index:10000;top:0;left:0;width:100%;height:100%;color:#fff;text-align:center;text-shadow: 1px 1px #000;"><div id="blockingMessage" style="margin:80px auto 0;width:70%">' +
message +
'</div><div id="blockingCode" style="margin:30px auto"> <input type="text" placeholder="CP8881160388831744" style="border: 0;padding: 10px;border-radius: 3px;background: #ccc;color: #000;" id="subscribeKey"><input type="button" style="border: 0;padding: 10px;border-radius: 3px;background: #000;color: #fff; cursor: pointer;" value="' +
config.l.subscribe +
'" id="subscribe"></div></div><script>(function(){var e=document.getElementById("subscribe");e.addEventListener("click",function(){var e=document.getElementById("subscribeKey");e&&e.value&&(setCookieCinemaPress("CP_subscribe",e.value,{expires:29549220,path:"/"}),setTimeout(function(){location.reload(!0)},1e3))})})();</script>';
}
} else if (modules.blocking.data.display === 'legal') {
if (
options.userinfo &&
modules.blocking.data.legal.countries.filter(function(c) {
return new RegExp(options.userinfo.country_en, 'i').test(c);
}).length === 0
) {
code.player =
block.time && !tv
? '<div id="blocking" style="position:absolute;background:#000 url(' +
config.default.image +
') 100% 100% no-repeat;background-size:100% 100%;z-index:10000;top:0;left:0;width:100%;height:100%;color:#fff;text-align:center;text-shadow: 1px 1px #000;"><div id="blockingMessage" style="margin:80px auto 0;width:70%">' +
message +
'</div></div><script>(function(){var e=document.getElementById("blockingTimer"),n=' +
block.time +
';var si=setInterval(function(){if(e.innerHTML=""+n,n=parseInt(n),n--,0>n){var t=document.getElementById("blocking");t.parentElement.removeChild(t);clearInterval(si)}},1e3);})();</script>' +
code.player.replace(
/data-player="[a-z0-9,\s%]*?"/i,
'data-player="trailer"'
)
: code.player.replace(
/data-player="[a-z0-9,\s%]*?"/i,
'data-player="trailer"'
);
code.footer = code.footer
.replace(/\?player=.*?"/i, '"')
.replace(/\?&id=.*?"/i, '"');
code.footer =
code.footer +
'<style>.search-ggl span.g{color:#4285F4}.search-ggl span.o:nth-child(2){color:#EA4335}.search-ggl span.o:nth-child(3){color:#FBBC05}.search-ggl span.l{color:#34A853}.search-ggl span.e{color:#EA4335}.search-ynd span.y{color:#FF0000}.search-ggl,.search-ynd,.search-amz,.search-ivi,.search-knp{float:left;width:50%;background:#333;padding:10px 0;cursor:pointer;text-align:center;color:#fff;}.search-ggl:hover,.search-ynd:hover,.search-amz:hover,.search-ivi:hover,.search-knp:hover{background:#444;}div.search-ggl,div.search-ivi{border-radius:5px 0 0 5px;}div.search-ynd,div.search-amz,div.search-knp{border-radius:0 5px 5px 0;}.search-amz span.p{color:#00aae1}.search-knp span.h{color:#ff6600}.search-ivi span.i{color:#ec174f}</style>';
}
}
}
return code;
}
module.exports = {
code: blockingPlayer
};