summaryrefslogtreecommitdiff
path: root/data/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-metacafe/data/metacafe.js
blob: e84db57d5c89ed30c412a0ba7abae41b62532112 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
(function() {
    "use strict";

    onReady(() => {
        if (/watch\/\d+\/.*/.test(location.pathname))
            watchPage();
        else if (/[^\/]+\/?$/.test(location.pathname))
            channelPage();
    });

    function watchPage() {
        var ob, url;
        if ((ob = document.getElementById("flashVars"))) {
            url = getURL(ob.value);
        } else if ((ob = document.getElementById("FlashWrap")) &&
            (ob = ob.getElementsByTagName("video")).length) {
            url = ob[0].src;
            ob[0].pause();
            ob[0].remove();
        }
        if (!url)
            return;
        var container = document.getElementById("ItemContainer");
        if (!container)
            return;
        var vp = new VP(container);
        vp.addSrc(url, "medium", "mp4");
        vp.props({
            autoplay: autoPlay(true),
            preload: preLoad(),
            loop: isLoop(),
            controls: true
        });
        vp.style({
            width: "100%"
        });
        vp.setup();
    }

    function channelPage() {
        var embed = document.getElementsByTagName("embed");
        if (!embed)
            return;
        embed = embed[0];
        var page = embed.src;
        page = page.replace("/fplayer/", "/watch/").replace(/.swf$/, "");
        asyncGet(page).then((data) => {
            var url = getURL(data);
            var container = document.getElementById("ItemContainer");
            //var container = embed.parentElement;
            var vp = new VP(container);
            vp.addSrc(url, "medium", "mp4");
            vp.props({
                autoplay: autoPlay(false),
                preload: preLoad(),
                loop: isLoop(),
                controls: true
            });
            vp.style({
                width: "100%"
            });
            vp.setup();
        });
    }

    function getURL(e) {
        var data = decodeURIComponent(e.match(/&mediaData=([^&]*)&/)[1]);
        return JSON.parse(data).MP4.mediaURL;
    }

}());