zeloff / fox-fan autoplay

// ==UserScript==
// @name         fox-fan autoplay
// @namespace    http://tampermonkey.net/
// @version      0.9
// @description  Просмотр серий на fox-fan.ru без остановки
// @author       zeloff
// @license      MIT; https://opensource.org/licenses/MIT
// @match        *://*.fox-fan.ru/*
// @match        *://*.fox-fan.tv/*
// @match        *://*.cc-fan.tv/*
// @match        *://*.cn-fan.ru/*
// @match        *://*.nf-fan.tv/*
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==


(function() {
   'use strict';
    function randomIndex(arr) {
        return Math.floor(Math.random() * (arr.length));
    }
    function goRandom(){
        if (GM_getValue('full_random')){
            window.location.href = 'random.php?ran=all';
        }
        else{
            window.location.href = 'random.php';
        }
    }
    function playNext(){
        if (player.api('time') >= player.api('duration')-2 && player.api('duration') !== 0){
            $('div > pjsdiv').css('position', 'absolute')
            player.api('exitfullscreen');
            goRandom();
        }
    }

    function pad(n, width, z) {
        z = z || '0';
        n = n + '';
        return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
    }

    try{
        var serials_without_shit = [
            'familyguy.fox-fan',
            'simpsons.fox-fan',
            'americandad.fox-fan',
            'southpark.cc-fan',
            'clevelandshow.fox-fan',
            // 'futurama.fox-fan',
        ];
        var b_compliments = [
            'Я в морковках знаю толк!',
            'Дайте! дайте! дайте!',
            'Может в икею?',
            'Пуньк-пуньк',
            'Ааа дайте писю',
            'Опять ударилась('
        ];
        var p_compliments = [
            'Я люблю Зайчишку!',
            'Хрю :Р',
            'Ты моя самая дорогая на свете!',
            'Продам шифоньер)',
            'Ни кому не отдам!',
            'Самая прекрасная на свете!',
            'Да, я уже сегодня плакал',
            'Хочу тебя!',
            'Ты меня волнуешь',
            'Мы винтики скрепляющие друг друга',
            'Трамбон и флейта <3',
            'Ты мой смысл жизни',
            'Голосую за наминацию "Самая милая на свете"',
            'Хочу тебя обнять',
            'Хочу тебя целовать',
            'Ты прелесть!',
            'Затмишь любую своей красотой',

        ];

        var common_complements = [
            'Пупси-дрюпси',
            'Чпоньк',
            'I <3 U',
            'Луппа и Пуппа',
            'Люблю клавИшу)',
            'Труньк!',
        ];

        var b_images = [...Array(12).keys()].map((x) => 'https://chpic.su/_data/stickers/bunny_Boo/bunny_Boo_'+pad(x+1,3)+'.png')
        var p_images = [
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/7.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/4.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/1.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/6.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/7.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/8.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/11.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/12.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/15.png',
            'https://s.tcdn.co/5dd/26f/5dd26f92-de07-32ac-86c3-3b384b1738d2/22.png'
        ];
        var isFull = false;

        setTimeout(function(){
            function showModal(status){
                if (status == 'hidden'){
                    //dirty clear all intervals
                    for(let i=0; i<10000; i++){
                        window.clearInterval(i);
                    }
                    setInterval(playNext, 2000);
                    $('div > pjsdiv').css('position', 'fixed')
                } else {
                    if (randomIndex([,0])){
                        var images = b_images;
                        var color = '#c5d0db';
                        var cword = 'Пипи';
                        var compliments = b_compliments.concat(common_complements)
                    } else {
                        images = p_images;
                         color = '#f2a7c7';
                         cword = 'Хрю';
                         compliments = p_compliments.concat(common_complements)
                    }
         
                    $('#voice > ul').append(('<li style="background-color: #f2a7c7;width:40px">' +
                                           '<input style="position:absolute;margin-left:30px" id="fr" type="checkbox" ')+(GM_getValue('full_random') ? "checked": "")+('/>' +
                                    cword+
                               '</li>'));
                    $('#fr').click(function(){
                        if($(this).is(':checked')){
                            GM_setValue('full_random', true);
                        }
                        else{
                            GM_setValue('full_random', false);
                        }
                    });

                    $('#fr').parent().css('background-color', color)
                    $('#myModal').css('background-image', 'url('+images[randomIndex(images)]+')');
                    $('#myModal').css('background-color', color).css('background-position', 'center');
                    $('#myModal').find('p').css('font-size','200%').css('color','black').css('margin-top','80%');
                    $('#myModal').find('p').text(compliments[randomIndex(compliments)]);
                    setTimeout(function(){showModal('hidden');}, 3000);
                }
                $('#myModal').css('visibility', status);
            }


            if (!serials_without_shit.some(function(serial){ return location.host.indexOf(serial) !== -1; })){
                let rand = randomIndex(serials_without_shit);
                window.location.href = 'http://'+ serials_without_shit[rand] + '.ru/random.php';
            }
            else if (window.location.pathname == '/series.php'){
                player.api('play');
                player.api('play');
                showModal('inherit');
            }

            $("body").keydown(function(e) {
                if(e.keyCode == 37) { // left
                    window.history.back();
                }
                else if(e.keyCode == 39) { // right
                    player.api('exitfullscreen');
                    $('div > pjsdiv').css('position', 'absolute')
                    setTimeout(goRandom, 2000);
                }
                else if(e.keyCode == 13) { // enter
                    if (!isFull){
                        player.api('fullscreen');
                    }
                    else{
                        $('div > pjsdiv').css('position', 'absolute')
                        player.api('exitfullscreen');
                    }
                    isFull = !isFull;
                }
            });
        }, 5000);
    }
     catch(err){
         alert(err);
     }
}

)();