From 17b671348f3182156a9cd60876a5880b87c25ac5 Mon Sep 17 00:00:00 2001 From: zeldaroot Date: Fri, 21 May 2021 23:49:06 +0300 Subject: [PATCH] Added cinemaplayer --- app.js | 4 +- modules/CP_api.js | 13 +- modules/CP_player.js | 341 ++++++++++++++++++++++++++++++------------- 3 files changed, 249 insertions(+), 109 deletions(-) diff --git a/app.js b/app.js index e63e730..24e9d64 100644 --- a/app.js +++ b/app.js @@ -82,6 +82,7 @@ app.use('/flush-cache-' + config.urls.admin, function(req, res) { var files = require('./routes/files'); var embed = require('./routes/embed'); var iframe = require('./routes/iframe'); +var cinemaplayer = require('./routes/cinemaplayer'); var player = require('./routes/player'); var episode = require('./routes/episode'); var robots = require('./routes/robots'); @@ -135,6 +136,8 @@ app.use( /^(?:\/mobile-version|\/tv-version|)?\//, express.static(path.join(path.dirname(__filename), '/')) ); +app.use(/^(?:\/mobile-version|\/tv-version|)?\/api/, api); +app.use(/^(?:\/mobile-version|\/tv-version|)?\/cinemaplayer/, cinemaplayer); app.use(/^(?:\/mobile-version|\/tv-version|)?\/telegram/, telegram); app.use(/^(?:\/mobile-version|\/tv-version|)?\/files/, files); app.use(bots()); @@ -149,7 +152,6 @@ app.use(/^(?:\/mobile-version|\/tv-version|)?\/iframe/, iframe); app.use(/^(?:\/mobile-version|\/tv-version|)?\/rss\.xml.*$/, rss); app.use('/' + config.urls.admin, admin); app.use(loadavg()); -app.use(/^(?:\/mobile-version|\/tv-version|)?\/api/, api); app.use(/^(?:\/mobile-version|\/tv-version|)?/, website); app.use(function(err, req, res, next) { diff --git a/modules/CP_api.js b/modules/CP_api.js index c6325b6..cab8c9b 100644 --- a/modules/CP_api.js +++ b/modules/CP_api.js @@ -161,6 +161,9 @@ function secretIframe(data, ip) { data.result.players[i].iframe = (config.language === 'ru' && config.ru.subdomain && config.ru.domain ? config.protocol + config.ru.subdomain + config.ru.domain + : config.mirrors && config.mirrors.length + ? config.protocol + + config.mirrors[Math.floor(Math.random() * config.mirrors.length)] : config.protocol + config.subdomain + config.domain) + '/embed/' + data.result.id + @@ -492,11 +495,11 @@ function createImgUrl(type, size, id) { break; } - return ( - (config.language === 'ru' && config.ru.subdomain && config.ru.domain - ? config.protocol + config.ru.subdomain + config.ru.domain - : config.protocol + config.subdomain + config.domain) + image - ); + return source === 'url' + ? image + : (config.language === 'ru' && config.ru.subdomain && config.ru.domain + ? config.protocol + config.ru.subdomain + config.ru.domain + : config.protocol + config.subdomain + config.domain) + image; } module.exports = { diff --git a/modules/CP_player.js b/modules/CP_player.js index e7a8c9a..92a84c0 100644 --- a/modules/CP_player.js +++ b/modules/CP_player.js @@ -43,6 +43,12 @@ setInterval(function() { } }, 3333); +/** + * Node dependencies. + */ + +var md5 = require('md5'); + /** * Adding a page player. * @@ -81,125 +87,254 @@ function codePlayer(type, movie, options) { : ''; } - if (type === 'picture') { - var pictures = ''; + var whois_abuse = options && options.userinfo && options.userinfo.whois; + var list_abuse = modules.abuse.data.movies.indexOf('' + movie.kp_id) + 1; + var country_abuse = + modules.abuse.data.country && + movie.year && + '' + movie.year === new Date().getFullYear() + '' && + movie.countries_arr.filter(function(c) { + return new RegExp(options.userinfo.country, 'i').test(c); + }).length; + var country_block_app = + options.userinfo && + modules.blocking.data.app.countries && + modules.blocking.data.app.countries.length + ? modules.blocking.data.app.countries.filter(function(c) { + return new RegExp(options.userinfo.country_en, 'i').test(c); + }).length + : 0; - if (movie.pictures.length) { - movie.pictures.forEach(function(picture) { + if (modules.player.data.display === 'cinemaplayer') { + if (type !== 'picture' && type !== 'trailer') { + if ( + modules.abuse.status && + options.userinfo.device !== 'app' && + (list_abuse || country_abuse || whois_abuse) + ) { + if (country_abuse) { + code.status_code = modules.abuse.data.status_code_country; + } + if (list_abuse) { + code.status_code = modules.abuse.data.status_code_list; + } + if (whois_abuse) { + code.status_code = modules.abuse.data.status_code_whois; + } + if ( + modules.app.status && + modules.blocking.data.app.abuse && + options.userinfo.device === 'desktop' && + !whois_abuse + ) { + var blocking_app = CP_blocking.code(code, movie, options, 'app'); + if (blocking_app && blocking_app.player) { + code.player = blocking_app.player; + } else { + type = 'trailer'; + } + } else { + code.player = + '' + + '
' + + '
' + + modules.abuse.data.message + + '
' + + '
'; + } + } + if ( + !( + ((options.userinfo && options.userinfo.device === 'app') || + modules.blocking.data.app.abuse) && + country_block_app <= 0 + ) + ) { + code = CP_blocking.code(code, movie, options); + } + } + if (code.player) { + return code; + } + var d = ( + modules.player.data.cinemaplayer[type] || + modules.player.data.cinemaplayer['information'] + ).dataset; + if (d && d.length) { + var dataset = d.join(' '); + dataset = dataset + .replace(/\[id]/gi, movie.id) + .replace(/\[kp_id]/gi, movie.id) + .replace( + /\[imdb_id]/gi, + movie.custom.imdb_id ? movie.custom.imdb_id : '' + ) + .replace( + /\[tmdb_id]/gi, + movie.custom.tmdb_id ? movie.custom.tmdb_id : '' + ) + .replace( + /\[douban_id]/gi, + movie.custom.douban_id ? movie.custom.douban_id : '' + ) + .replace( + /\[tvmaze_id]/gi, + movie.custom.tvmaze_id ? movie.custom.tvmaze_id : '' + ) + .replace( + /\[movie_id]/gi, + movie.custom.movie_id ? movie.custom.movie_id : '' + ) + .replace(/\[wa_id]/gi, movie.custom.wa_id ? movie.custom.wa_id : '') + .replace(/\[type]/gi, movie.type ? 'tv' : 'movie') + .replace(/\[season]/gi, serial.season) + .replace(/\[episode]/gi, serial.episode) + .replace(/\[title]/gi, movie.title) + .replace(/\[year]/gi, movie.year) + .replace( + /\[ip]/gi, + (options && options.userinfo && options.userinfo.ip) || '' + ) + .replace( + /\[hash]/gi, + md5( + ((options && options.userinfo && options.userinfo.ip) || '') + + '.' + + config.urls.admin + ) + ); + code.player = + options && + options.userinfo && + options.userinfo.bot && + options.userinfo.bot.all + ? '' + + '' + : '
'; + code.footer = + ''; + } + } else { + if (type === 'picture') { + var pictures = ''; + + if (movie.pictures.length) { + movie.pictures.forEach(function(picture) { + pictures += + '' +
+            movie.title.replace(/'; + }); + } else { pictures += '' +
           movie.title.replace(/'; - }); + } + + code.head = + '' + + ''; + + code.player = + '' + '
' + pictures + '
'; + + code.footer = + '' + + '' + + ''; + } else if (type === 'trailer') { + scriptPlayer('trailer'); } else { - pictures += - '' +
-        movie.title.replace(/'; - } - - code.head = - '' + - ''; - - code.player = - '' + '
' + pictures + '
'; - - code.footer = - '' + - '' + - ''; - } else if (type === 'trailer') { - scriptPlayer('trailer'); - } else { - var whois_abuse = options && options.userinfo && options.userinfo.whois; - var list_abuse = modules.abuse.data.movies.indexOf('' + movie.kp_id) + 1; - var country_abuse = - modules.abuse.data.country && - movie.year && - '' + movie.year === new Date().getFullYear() + '' && - movie.countries_arr.filter(function(c) { - return new RegExp(options.userinfo.country, 'i').test(c); - }).length; - - if ( - modules.abuse.status && - (list_abuse || country_abuse || whois_abuse) && - options.userinfo.device !== 'app' - ) { - if (country_abuse) { - code.status_code = modules.abuse.data.status_code_country; - } - if (list_abuse) { - code.status_code = modules.abuse.data.status_code_list; - } - if (whois_abuse) { - code.status_code = modules.abuse.data.status_code_whois; - } - if ( - modules.app.status && - modules.blocking.data.app.abuse && - options.userinfo.device === 'desktop' && - !whois_abuse + modules.abuse.status && + (list_abuse || country_abuse || whois_abuse) && + options.userinfo.device !== 'app' ) { - scriptPlayer('trailer'); - var code2 = CP_blocking.code(code, movie, options, 'app'); - code.player = code2 && code2.player ? code2.player : code.player; - } else { - code.player = - '' + - '
' + - '
' + - modules.abuse.data.message + - '
' + - '
'; + if (country_abuse) { + code.status_code = modules.abuse.data.status_code_country; + } + if (list_abuse) { + code.status_code = modules.abuse.data.status_code_list; + } + if (whois_abuse) { + code.status_code = modules.abuse.data.status_code_whois; + } + + if ( + modules.app.status && + modules.blocking.data.app.abuse && + options.userinfo.device === 'desktop' && + !whois_abuse + ) { + scriptPlayer('trailer'); + var code2 = CP_blocking.code(code, movie, options, 'app'); + code.player = code2 && code2.player ? code2.player : code.player; + } else { + code.player = + '' + + '
' + + '
' + + modules.abuse.data.message + + '
' + + '
'; + } + + return code; } - return code; - } - - if (type === 'download') { - scriptPlayer('torrent'); - } else if (serial.season && serial.episode) { - if (modules.player.data.display === 'script') { + if (type === 'download') { + scriptPlayer('torrent'); + } else if (serial.season && serial.episode) { + if (modules.player.data.display === 'script') { + scriptPlayer(true); + } else { + scriptPlayer(); + } + } else if (movie.player) { + if (/\/\/[^,]*,/.test(movie.player)) { + scriptPlayer(movie.player); + } else { + scriptPlayer(); + } + } else if (modules.player.data.display === 'script') { scriptPlayer(true); } else { scriptPlayer(); } - } else if (movie.player) { - if (/\/\/[^,]*,/.test(movie.player)) { - scriptPlayer(movie.player); - } else { - scriptPlayer(); - } - } else if (modules.player.data.display === 'script') { - scriptPlayer(true); - } else { - scriptPlayer(); + + var l = + options.userinfo && + modules.blocking.data.app.countries && + modules.blocking.data.app.countries.length + ? modules.blocking.data.app.countries.filter(function(c) { + return new RegExp(options.userinfo.country_en, 'i').test(c); + }).length + : 0; + + code = + ((options.userinfo && options.userinfo.device === 'app') || + modules.blocking.data.app.abuse) && + l <= 0 + ? code + : CP_blocking.code(code, movie, options); } - - var l = - options.userinfo && - modules.blocking.data.app.countries && - modules.blocking.data.app.countries.length - ? modules.blocking.data.app.countries.filter(function(c) { - return new RegExp(options.userinfo.country_en, 'i').test(c); - }).length - : 0; - - code = - ((options.userinfo && options.userinfo.device === 'app') || - modules.blocking.data.app.abuse) && - l <= 0 - ? code - : CP_blocking.code(code, movie, options); } /**