Как сделать трейлер с moonwalk, когда основной плеер moonwalk?

Енот
Новичо́к, через «о́»
Регистрация
17 Июн 2019
Сообщения
87
#1
Если ставить по умолчанию один плеер (Не важно какой, главное не тот, который мульти), при добавлении фильма, которого нет на видеохостинге, выдает 404 ошибку (При переходе на ссылку соответственно). Но дело в том, что трейлеры то на хостингах есть, их просто получается кмс не видит. Как сделать так, чтобы при отсутствии целого фильма на moonwalk показывало трейлер (Если он соответственно есть на самом хостинге)?
 
Регистрация
15 Дек 2017
Сообщения
5,067
#2
Да, можно.

Измените функцию getMoonwalk в файле /routes/player.js
JavaScript:
/**
* Get Moonwalk player.
*/

function getMoonwalk(callback) {

    api('http://moonwalk.cc/api/videos.json?' +
        'api_token=' + modules.player.data.moonwalk.token.trim() + '&' +
        'kinopoisk_id=' + id,
        function (json) {
            var iframe_src = '';
            var iframe_translate = '';
            var iframe_quality = '';
            if (json && !json.error && json.length) {
                var iframe_url = '';
                var added = 0;
                for (var i = 0; i < json.length; i++) {
                    if (season && episode && translate === json[i].translator_id) {
                        iframe_url = getMoonlight(json[i].iframe_url) + '?season=' + season + '&episode=' + episode;
                        iframe_translate = json[i].translator ? json[i].translator : '';
                        iframe_quality = json[i].source_type ? json[i].source_type : '';
                        break;
                    }
                    else {
                        var d = json[i].added_at || json[i].last_episode_time || 0;
                        var publish = (new Date(d).getTime()/1000);
                        if (publish >= added) {
                            iframe_url = getMoonlight(json[i].iframe_url);
                            iframe_translate = json[i].translator ? json[i].translator : '';
                            iframe_quality = json[i].source_type ? json[i].source_type : '';
                            added = publish;
                        }
                    }
                }
                if (iframe_url && start_episode) {
                    var se = start_episode.match(/^([a-z0-9]*?)\|([0-9]*?)\|([0-9]*?)$/i);
                    if (se && se.length === 4) {
                        iframe_url = iframe_url.replace(/serial\/([a-z0-9]*?)\//i, 'serial/' + se[1] + '/');
                        if (iframe_url.indexOf('?')+1) {
                            iframe_url = iframe_url + '&season=' + se[2] + '&episode=' + se[3]
                        }
                        else {
                            iframe_url = iframe_url + '?season=' + se[2] + '&episode=' + se[3]
                        }
                    }
                }
                if (iframe_url && start_time) {
                    if (iframe_url.indexOf('?')+1) {
                        iframe_url = iframe_url + '&start_time=' + start_time
                    }
                    else {
                        iframe_url = iframe_url + '?start_time=' + start_time
                    }
                }
                if (iframe_url && iframe_url.indexOf('?')+1) {
                    iframe_url = iframe_url + '&show_translations=1'
                }
                else {
                    iframe_url = iframe_url + '?show_translations=1'
                }
                iframe_src = iframe_url;
            }
            if (!iframe_src) {
                api('http://moonwalk.cc/api/videos.json?' +
                    'api_token=' + modules.player.data.moonwalk.token.trim() + '&' +
                    'kinopoisk_id=' + id + '&' +
                    'trailers_only=1',
                    function (json) {
                        if (json && !json.error && json.length) {
                            iframe_src = json[0].iframe_url;
                        }
                    });
            }
            callback({
                "src": iframe_src,
                "translate": iframe_translate,
                "quality": iframe_quality
            });
        });

    function getMoonlight(iframe_url) {
        var pat = /\/[a-z]{1,20}\/[a-z0-9]{1,40}\/iframe/i;
        var str = pat.exec(iframe_url);
        if (str && str[0]) {
            if (modules.player.data.moonlight.domain) {
                var domain = modules.player.data.moonlight.domain;
                domain = (domain[domain.length-1] === '/')
                    ? domain.slice(0, -1)
                    : domain;
                domain = (domain.indexOf('://') === -1)
                    ? config.protocol + domain
                    : domain;
                iframe_url = domain + str[0];
            }
            else {
                iframe_url = 'https://streamguard.cc' + str[0];
            }
        }
        return iframe_url;
    }

}
 
Регистрация
15 Дек 2017
Сообщения
5,067
#4
Скопировал код что у вас указан, вставил вместо своего и ничего не поменялось. Трейлеров как не было так и нет
Нет трейлеров вообще или трейлеров с moonwalk?

Попробуйте открыть /modules/CP_player.js
Надите строку var data = {};
И после нее добавьте data.trailer = "youtube,moonwalk,hdgo";