PageSourceSearch

https://defapress.ir/media/js/select.js

js defapress.ir collected 2026-10-02 04:00:05 UTC 5,816 bytes, 130 lines download raw bytes

1/*!
2
3 Flowplayer HTML5 quality selector plugin
4
5 Copyright (c) 2016, Flowplayer Oy
6
7 Released under the MIT License:
8 http://www.opensource.org/licenses/mit-license.php
9
10 revision: a0ee936
11
12 */
13! function() {
14    "use strict";
15    var t = function(t) {
16        t(function(e, i) {
17            function a(t) {
18                return t.sources.some(function(t) {
19                    return /mpegurl/i.test(t.type);
20                })
21            }
22
23            function n(t) {
24                var e = document.createElement("video");
25                return !!e.canPlayType(t).replace("no", "")
26            }
27
28            function l(t, e) {
29                var i = /-(\d+p)(\.(mp4|webm))?$/.exec(t);
30                if (i && -1 !== e.indexOf(i[1])) return i[1]
31            }
32
33            function r() {
34                e.qualities && e.qualities.length && (c.removeClass(i, "quality-abr"), e.qualities.forEach(function(t) {
35                    c.removeClass(i, "quality-" + t)
36                }))
37            }
38
39            function u(t, e) {
40                if ("abr" === t) return "abr";
41                var i, a = parseInt(t, 0);
42                return e.forEach(function(t, n) {
43                    n != e.length - 1 || i || (i = t), parseInt(t) <= a && parseInt(e[n + 1]) > a && (i = t)
44                }), i
45            }
46
47            function s(i, a, n) {
48                var l, r = !1,
49                    u = a === e.defaultQuality,
50                    qu = i.qualitiesUrl,
51                    s = e.quality || Math.min(e.video.height, e.video.width) + "p";
52                var qus  = Object.keys(qu).map(function(key) {
53                    return qu[key];
54                });
55                var qqq = qu.a;
56             
57                
58                l = s === e.defaultQuality ? /(.+?)((\.(mp4|webm)$|$))/ : /(-\d+p)?((\.(mp4|webm)$|$))/;
59                var o = i.sources.map(function(t) {
60                        if ("abr" === a || n && u || /mpegurl/i.test(t.type)) return t;
61                        var i = {
62                            type: t.type,
63                            src: qu[a]
64                        };
65                        
66                        return i.src !== t.src && (r = !0), i
67                        
68                    }),
69                    c = JSON.stringify(o);
70                o.sort(function(t, e) {
71                    var i, n = /mpegurl/i;
72                    return i = "abr" === a ? n.test(e.type) - n.test(t.type) : n.test(t.type) - n.test(e.type)
73                }), r = r || JSON.stringify(o) !== c;
74                var f = t.extend({}, i, {
75                    sources: o
76                });
77                return r ? f : !1
78            }
79            var o = t.bean,
80                c = t.common,
81                f = !1,
82                p = !1;
83            e.conf.hlsjs !== !1 && t.engines.forEach(function(t) {
84                "hlsjs" === t.engineName && t.canPlay("application/x-mpegurl", e.conf) && (p = !0)
85            }), e.pluginQualitySelectorEnabled || (e.pluginQualitySelectorEnabled = !0, t.support.inlineVideo && (e.conf.qualities && (e.conf.qualities = "string" == typeof e.conf.qualities ? e.conf.qualities.split(",") : e.conf.qualities), o.on(i, "click", ".fp-quality-selector li", function(t) {
86                var i = t.currentTarget;
87                if (!c.hasClass(i, "active")) {
88                    var a, n = e.finished ? 0 : e.video.time,
89                        l = i.getAttribute("data-quality");
90                    if (a = s(e.video, l), e.quality = l, !a) return;
91                    f = !0, p && a.hlsjs !== !1 && !e.live && n && "abr" === l && (a.hlsjs = {
92                        startPosition: n
93                    }), e.load(a, function() {
94                        f = !1, e.finished = !1, !n || e.live || a.hlsjs && a.hlsjs.startPosition ? a.hlsjs && (a.hlsjs.startPosition = 0) : e.seek(n, function() {
95                            e.resume()
96                        })
97                    })
98                }
99            }), e.on("load", function(t, e, i) {
100                if (e.qualities = i.qualities || e.conf.qualities || [], e.defaultQuality = i.defaultQuality || e.conf.defaultQuality, "string" == typeof e.qualities && (e.qualities = e.qualities.split(",")), e.quality) {
101                    var a = u(e.quality, e.qualities),
102                        n = s(i, a, !f);
103                    !f && n && (t.preventDefault(), e.loading = !1, e.load(n))
104                }
105            }).on("ready", function(t, e, u) {
106                var s = /mpegurl/i.test(u.type) ? "abr" : l(u.src, e.qualities) || Math.min(u.height, u.width) + "p";
107                r(), c.addClass(i, "quality-" + s);
108                var o = c.find(".fp-ui", i)[0];
109                if (c.removeNode(c.find(".fp-quality-selector", o)[0]), !(e.qualities.length < 2)) {
110                    e.quality = s;
111                    var f = c.createElement("ul", {
112                        "class": "fp-quality-selector"
113                    });
114                    o.appendChild(f), (a(u) && n("application/x-mpegurl") || e.conf.swfHls) && f.appendChild(c.createElement("li", {
115                        "data-quality": "abr",
116                        "class": "abr" === s ? "active" : ""
117                    }
117, "Auto")), e.qualities.forEach(function(t) {
118                        f.appendChild(c.createElement("li", {
119                            "data-quality": t,
120                            "class": t == s ? "active" : ""
121                        }, t))
122                    })
123                }
124            }).on("unload", function() {
125                r(), c.removeNode(c.find(".fp-quality-selector", i)[0])
126            })))
127        })
128    };
129    "object" == typeof module && module.exports ? module.exports = t : window.flowplayer && t(window.flowplayer)
130}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.