PageSourceSearch

https://fantastic-entertainment.com/mediatailor.js

js fantastic-entertainment.com collected 2026-10-02 00:49:01 UTC 3,958 bytes, 188 lines download raw bytes

1function createSSAI(url,videoElem,adsParams) {
2
3
4
5
6    sessionCreation(url);
7    
8    var arr = url.split("/");
9    var result = arr[0] + "//" + arr[2]
10    var domainOfUrl=result;
11    
12
13
14    var previousTime = 0;
15    var beaconTime = [];
16    var trackingUrl = domainOfUrl;
17    var beaconData = []
18    var whereYouAt = 0;
19    setInterval(eachSecond, 1000);
20
21
22
23
24    function isInArray(value, array) {
25        return array.indexOf(value);
26    }
27
28
29    function eachSecond() {
30
31
32        whereYouAt = whereYouAt + 1;
33        whereYouAt = Math.round(whereYouAt)
34
35
36
37        if (whereYouAt != previousTime) {
38            previousTime = whereYouAt;
39
40            if (beaconTime.length > 0) {
41
42                if (isInArray(whereYouAt, beaconTime) > -1) {
43
44                    var temp = beaconData[isInArray(whereYouAt, beaconTime)].beaconUrls;
45                    for (var i = 0; i < temp.length; i++) {
46                        
47                        callAdTrackingUrl(temp[i])
48                    }
49
50
51
52                }
53
54
55
56            }
57
58        }
59    }
60
61
62    function callAPI(url) {
63
64        var request = new XMLHttpRequest();
65        request.onreadystatechange = function() {
66            if (request.readyState == 4 && request.status == 200) {
67
68
69                var trackingData = JSON.parse(request.responseText);
70
71                console.log('trackingData', trackingData)
72
73                var avails = trackingData.avails;
74
75
76
77                for (k = 0; k < avails.length; k++) {
78
79
80                    var avail = avails[k];
81
82                    var ads = avail.ads;
83
84
85                    for (j = 0; j < ads.length; j++) {
86
87                        var trackingEvents = ads[j].trackingEvents;
88
89                        for (k = 0; k < trackingEvents.length; k++) {
90
91                            var trackingEvent = trackingEvents[k]
92
93
94
95                            if (trackingEvent && trackingEvent.eventType) {
96                                var eventType = trackingEvent.eventType;
97                                if (eventType == "start" || eventType == "firstQuartile" || eventType == "firstQuartile" || eventType == "midpoint" || eventType == "impression") {
98                                    beaconTime.push(Math.round(trackingEvent.startTimeInSeconds))
99                                    beaconData.push(trackingEvent)
100
101
102                                }
103                            }
104
105                        }
106
107
108
109                    }
110
111
112
113
114                }
115
116
117            } else if (request.status == 502) {
118
119                beaconTime = [];
120
121            }
122
123        }
124        request.open("GET", url);
125        request.send(null);
126    }
127
128    function sessionCreation(theUrl) {
129
130        var data = JSON.stringify(adsParams);
131
132        var xhr = new XMLHttpRequest();
133
134
135        xhr.addEventListener("readystatechange", function() {
136            if (this.readyState === 4) {
137                var jsonResult = JSON.parse(this.responseText)
138               
139
140                const player = videojs(videoElem);
141
142
143                if (jsonResult) {
144                    player.src({
145                        src: domainOfUrl+ jsonResult.manifestUrl,
146                        type: 'application/x-mpegURL'
147                    });
148                    trackingUrl = trackingUrl + jsonResult.trackingUrl;
149                    setInterval(refresh, 10000);
150                }
151
152
153
154
155            }
156        });
157
158        xhr.open("POST", theUrl);
159        xhr.setRequestHeader("content-type", "application/json");
160
161
162        xhr.send(data);
163
164
165    }
166
167    function refresh() {
168        callAPI(trackingUrl);
169
170    }
171
172
173
174    function callAdTrackingUrl(theUrl) {
175
176        console.log('inCallAdTrackingUrl', theUrl);
177
178        var i = document.createElement("img");
179        i.src = theUrl;
180
181
182
183    }
184
185
186
187
188}

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.