PageSourceSearch

https://drbo.cz/wp-content/plugins/alex-player/alex-player.js?ver=1.41

js drbo.cz collected 2026-10-02 19:06:45 UTC 8,666 bytes, 323 lines download raw bytes

1/* Alex Player v1.40, Author: Alex Zhyrytovskyi, 2019-2024. URL: http://alex.player.x10.name/ */
2(window.jQuery || mediaUI)(function() {	
3	var $ = /*window.jQuery || */mediaUI;
4	var ui = mediaUI;
5	var instances = {};
6	var instancesRendered = {};
7	
8	function trim(str) {
9		return String(str || '').trim();
10	}
11	
12	function getInstance(data, api) {
13		var url = data['file'] || data['stream'];
14		
15		if (!instances.hasOwnProperty(url)) {
16			var instance = mediaEngine({
17				'api': api
18			});
19			instances[url] = instance;
20			return instance;
21		}
22		
23		return instances[url];
24	}
25	
26	function tryRender(player, data) {
27		var url = data['file'] || data['stream'];
28		if (!url || instancesRendered.hasOwnProperty(url))
29			return;
30
31		if (data['file'])
32			player.renderFile(url);
33		else
34			player.renderStream(url, data['title']);
35		
36		instancesRendered[url] = true;
37	}
38
39	$(document).findAll('.wp-alex-media-player').each(function() {
40		var $owner = $(this);
41		var data = JSON.parse($owner.attr('data-json'));
42		var player = getInstance(data, data['api']);
43
44		var options = {
45			'player': player
46		};
47		
48		if (data.hasOwnProperty('mode'))
49			options['mode'] = data['mode'];
50		
51		if (data.hasOwnProperty('style'))
52			options['style'] = data['style'];
53
54		if (data.hasOwnProperty('color'))
55			options['lineColor'] = data['color'];
56
57		if (data.hasOwnProperty('max_width')) // !Deprecated
58			options['width'] = data['max_width'];
59		
60		if (data.hasOwnProperty('width'))
61			options['width'] = data['width'];
62
63		if (data.hasOwnProperty('vis_type'))
64			options['visType'] = data['vis_type'];
65		
66		if (data.hasOwnProperty('equalizer_color'))
67			options['equalizerColor'] = data['equalizer_color'];
68		
69		if (data.hasOwnProperty('looped'))
70			player.setLooped(data['looped']);
71		
72		if (data.hasOwnProperty('show_video'))
73			options['showVideo'] = data['show_video'];
74		
75		if (data.hasOwnProperty('spectrum')) {
76			var parts = String(data['spectrum']).split(' ');
77			if (parts.length == 2) {
78				options['spectrumEnabled'] = true;
79				options['spectrumColor'] = parts[0];
80				options['spectrumHeight'] = parts[1];
81			}
82			else if (parts.length == 1) {
83				options['spectrumEnabled'] = true;
84				options['spectrumColor'] = parts[0];
85			}
86		}
87		
88		if (data.hasOwnProperty('hide_play_button'))
89			options['hidePlayButton'] = data['hide_play_button'];
90		
91		if (data.hasOwnProperty('autoplay')) // !Experimental
92			player.setAutoplay(data['autoplay']);
93		
94		if (data.hasOwnProperty('looped'))
95			player.setLooped(data['looped']);
96		
97		if (data.hasOwnProperty('cookie_name'))
98			options['cookieName'] = data['cookie_name'];
99
100		if (data.hasOwnProperty('position'))
101			options['position'] = data['position'];
102
103		if (data.hasOwnProperty('radio_station')) {
104			var stationList = [];
105			$owner.findAll('.wp-alex-radio-station').each(function() {
106				var item = JSON.parse($(this).attr('data-json'));
107				var station = {};
108				station['name'] = item['name'];
109				station['url'] = item['url'];
110				if (item['type'] == 'icecast') {
111					station['type'] = 'icecast';
112					station['icecasturl'] = item['icecasturl'];
113					station['interval'] = item['interval'];
114				}
115				stationList.push(station);
116			});
117
118			if (ui.toInt(data['radio_station']) > 0)
119				player.renderRadio(data['radio_station'], stationList, true);
120			else
121				player.renderRadio(0, stationList, true);
122		}
123		else {
124			tryRender(player, data);
125		}
126
127		var $playlist = $('<div>');
128		$playlist.insertAfter($owner);
129		$playlist.UIMediaPlayer(options);
130		$owner.hide();
131	});
132
133	$(document).findAll('.wp-alex-wavesurfer').each(function() {
134		var $this = $(this);
135		var data = JSON.parse($this.attr('data-json'));
136		var player = getInstance(data, data['api']);
137
138		var options = {
139			'player': player
140		};
141
142		if (data.hasOwnProperty('color'))
143			options['mainColor'] = data['color'];
144
145		if (data.hasOwnProperty('color2'))
146			options['secondaryColor'] = data['color2'];
147		
148		if (data.hasOwnProperty('cached'))
149			options['cachedWave'] = data['cached'];
150		
151		if (data.hasOwnProperty('autoplay')) // !Experimental
152			player.setAutoplay(data['autoplay']);
153		
154		if (data.hasOwnProperty('looped'))
155			player.setLooped(data['looped']);
156		
157		if (data.hasOwnProperty('selection_enabled'))
158			options['selectionEnabled'] = data['selection_enabled'];
159		
160		if (data.hasOwnProperty('selection_color'))
161			options['selectionColor'] = data['selection_color'];
162
163		if (data.hasOwnProperty('selection_download'))
164			options['selectionDownloadEnabled'] = data['selection_download'];
165
166		if (data.hasOwnProperty('channels'))
167			options['channels'] = data['channels'];
168		
169		if (data.hasOwnProperty('hide_play_button'))
170			options['hidePlayButton'] = data['hide_play_button'];
171
172		$this.UIWaveSurfer(options);
173		tryRender(player, data);
174	});
175
176	$(document).findAll('.wp-alex-waveform').each(function() {
177		var $this = $(this);
178		var data = JSON.parse($this.attr('data-json'));
179		var options = {};
180		
181		if (data.hasOwnProperty('file'))
182			options['player'] = getInstance(data);
183
184		if (data.hasOwnProperty('color'))
185			options['color'] = data['color'];
186
187		if (data.hasOwnProperty('opacity'))
188			options['opacity'] = data['opacity'];
189
190		if (data.hasOwnProperty('height'))
191			options['height'] = data['height'];
192
193		var owner = data['owner'];
194		if (owner) {
195			options['ghostMode'] = true;
196			options['ghostTop'] = data['owner_top'];
197			$(owner).UIWaveform(options);
198		}
199		else
200			$this.UIWaveform(options);
201	});
202
203	$(document).findAll('.wp-alex-play-button').each(function() {
204		var $this = $(this);
205		var data = JSON.parse($this.attr('data-json'));
206		var player = getInstance(data);
207		var options = {
208			'player': player
209		};
210		
211		if (data.hasOwnProperty('size')) {
212			var size = trim(data['size']).split(' ');
213			options['size'] = size[0];
214			if (size.length > 1)
215				options['outerSize'] = size[1];
216		}
217		
218		if (data.hasOwnProperty('color')) {
219			var colorParts = trim(data['color']).split(' ');
220			options['color'] = colorParts[0];
221			if (colorParts.length > 1)
222				options['hoverColor'] = colorParts[1];
223			if (colorParts.length > 2)
224				options['hoverDuration'] = colorParts[2];
225		}
226		
227		if (data.hasOwnProperty('id'))
228			options['id'] = data['id'];
229		
230		if (data.hasOwnProperty('autoplay')) // !Experimental
231			player.setAutoplay(data['autoplay']);
232		
233		if (data.hasOwnProperty('looped'))
234			player.setLooped(data['looped']);
235		
236		var owner = data['owner'];
237		if (owner)
238			$(owner).UIPlayButton(options);
239		else
240			$this.UIPlayButton(options);
241
242		tryRender(player, data);
243	});
244
245	$(document).findAll('.wp-alex-circular-spectrum').each(function() {
246		var data = JSON.parse($(this).attr('data-json'));
247		
248		var size = trim(data['size']).split(' ');
249		if (size.length != 2)
250			return;
251		
252		var bars = trim(data['bars']).split(' ');
253		if (bars.length != 5)
254			return;
255		
256		var options = {
257			'innerSize': size[0],
258			'outerSize': size[1],
259			'barCount': bars[0],
260			'barSize': bars[1],
261			'barColor': bars[2],
262			'barSpeed': bars[3],
263			'multiplier': bars[4]
264		};
265		
266		if (data.hasOwnProperty('peaks')) {
267			var peaks = trim(data['peaks']).split(' ');
268			if (peaks.length == 2) {
269				options['showPeaks'] = true;
270				options['peakColor'] = peaks[0];
271				options['peakSpeed'] = peaks[1];
272			}
273		}
274		
275		if (data.hasOwnProperty('opacity'))
276			options['opacity'] = data['opacity'];
277		
278		var ownerSelector = data['owner'];
279		$(ownerSelector).UICircularSpectrum(options);
280	});
281
282	$(document).findAll('.wp-alex-equalizer').each(function() {
283		var data = JSON.parse($(this).attr('data-json'));
284		var player = getInstance(data);
285
286		var options = {
287			'player': player
288		};
289		
290		if (data.hasOwnProperty('color'))
291			options['color'] = data['color'];
292		
293		if (data.hasOwnProperty('cookie_name'))
294			options['cookieName'] = data['cookie_name'];
295		
296		$(this).UIEqualizer(options);
297	});
298
299	$(document).findAll('.wp-alex-playlist').each(function() {
300		var $owner = $(this);
301		var data = JSON.parse($owner.attr('data-json'));
302		var player = mediaEngine.instances[0];
303
304		var options = {
305			'player': player
306		};
307
308		var items = [];
309		$owner.findAll('.wp-alex-playlist-item').each(function() {
310			var item = JSON.parse($(this).attr('data-json'));
311			items.push({
312				'title': item['title'],
313				'url': item['url']
314			});
315		});
316		options['items'] = items;
317
318		var $playlist = $('<div>');
319		$playlist.insertAfter($owner);
320		$playlist.UIPlaylist(options);
321		$owner.hide();
322	});
323});

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.