PageSourceSearch

https://www.dimensionesuonosoft.it/wp-content/themes/rds-soft/js/rds.preroll.js

js dimensionesuonosoft.it collected 2026-10-02 15:23:01 UTC 7,585 bytes, 239 lines download raw bytes

1const runWaterfall = window['@andrepolischuk/video-ad-sdk'].runWaterfall;
2let adUnit;
3let done = [];
4let x = 0;
5
6function randomString(length) {
7  const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:.-_|#+';
8  var result = '';
9  for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
10  return result;
11}
12
13function getPrerollUrlBySlug(slug) {
14  const baseUrl = 'https://rds.deliveryengine.adswizz.com/vast/4.0/request/alias/'
15  let prerollUrl = '';
16  if(new Date(slug)!='Invalid Date'){
17    slug='branko';
18  }
19  switch (slug) {
20    case 'bossa-club':
21    case 'Bossa Club':
22      prerollUrl = 'bossa-club-preroll'
23      break;
24    case '100-secondi-di-rds-con-enrico-mentana':
25    case '100 secondi di RDS con Enrico Mentana':
26      prerollUrl = 'enrico-mentana-preroll'
27      break;
28    case '100-made-in-italy':
29    case '100% Made In Italy':
30      prerollUrl = 'made-in-italy-preroll'
31      break;
32    case 'branko':
33    case 'Oroscopo di Branko':
34      prerollUrl = 'oroscopo-di-branco-preroll'
35      break;
36    case 'lifestyle':
37      prerollUrl = 'lifestyle-preroll'
38      break;
39    // case '100-secondi-di-rds-con-enrico-mentana':
40    case 'Segreti in tavola':
41      prerollUrl = 'segreti-in-tavola-preroll'
42      break;
43    default:
44      prerollUrl = 'dimensione-suono-soft-preroll'
45      break;
46  }
47  return baseUrl + prerollUrl;
48}
49
50window.requestAdRun = (adTag, mediaElement, videoAdContainer, fplayer, id, src) => {
51  let triggerEvent;
52  if (fplayer) {
53    triggerEvent = fplayer.trigger;
54  } else {
55    triggerEvent = function (name) {
56      const event = document.createEvent('Event');
57      event.initEvent(name, true, true);
58      mediaElement.dispatchEvent(event);
59    }
60  }
61  if (id && typeof done[id] === 'undefined') {
62    done[id] = 0;
63  } else {
64    return;
65  }
66
67  if (!src) {
68    src = mediaElement.src;
69  }
70  let paramsString = '';
71  let params = {};
72  // params['listenerId'] = '5b95683f142900ff7758a318b17314c1';
73  params['listenerId'] = window.com_adswizz_synchro_listenerid || randomString(32);
74  params['sessionId'] = randomString(32);
75  paramsString += '?' + jQuery.param(params);
76  adTag += paramsString;
77  const resumeContent = () => {
78    mediaElement.play();
79
80    mediaElement.removeEventListener('contentloadedmetadata', resumeContent);
81    mediaElement.removeEventListener('canplay', resumeContent);
82  };
83  const onError = (evt) => {
84    console.log('### onError', evt);
85    triggerEvent('ima_ad_error');
86  };
87  const onAdReady = (newAdUnit) => {
88    adUnit = newAdUnit;
89    console.log('### onAdReady', adUnit);
90    triggerEvent('ima_ad_loaded');
91
92    const evtHandler = (evt) => console.log(`### ${evt.type}`, evt.adUnit);
93
94    [
95      'pause',
96      'resume',
97      'finish',
98      'impression',
99      'start',
100      'skip',
101      'firstQuartile',
102      'midpoint',
103      'thirdQuartile',
104      'complete'
105    ].forEach((evtType) => {
106      adUnit.on(evtType, evtHandler);
107    });
108    adUnit.on('resume', (e) => {
109      triggerEvent('ima_ad_started');
110      done[id]++;
111    });
112    adUnit.on('skip', () => {
113      triggerEvent('ima_ad_skipped');
114    });
115  };
116  const onRunFinish = (evt) => {
117    console.log('### onRunFinish', evt);
118    videoAdContainer.classList.remove('active');
119    triggerEvent('ima_ad_complete');
120    if (mediaElement.src === src) {
121      mediaElement.play();
122    } else {
123      mediaElement.addEventListener('contentloadedmetadata', resumeContent);
124      mediaElement.addEventListener('canplay', resumeContent);
125      if (fplayer) {
126        fplayer.load(src);
127      } else {
128        mediaElement.src = src;
129      }
130
131    }
132  };
133
134  videoAdContainer.classList.add('active');
135  mediaElement.pause();
136  mediaElement.currentTime = 0;
137
138  console.log('### adTag', adTag);
139
140  runWaterfall(adTag, videoAdContainer, {
141    onAdReady,
142    onError,
143    onRunFinish,
144    timeout: 15000,
145    videoElement: mediaElement
146  });
147};
148
149window.onBeforePlayAmplitude = function () {
150  console.log('before_play');
151  const amplitudeIdx = Amplitude.getActiveIndex();
152  let amplitudeElement = jQuery(`div[amplitude-song-index=${amplitudeIdx}]`);
153  let page = location.pathname.split('/').reverse().find(i => i != '');
154  let isNews = location.pathname.split('/').find(i => i != '')=='news';
155  if(amplitudeElement.closest('.brano').length) {
156    return;
157  }	
158  let urlAudioPreroll;
159  if(isNews){
160    let category = amplitudeElement.closest('.container').find('.title').text();
161    urlAudioPreroll = getPrerollUrlBySlug(category);
162  }else if (page) {
163    urlAudioPreroll = getPrerollUrlBySlug(page);
164    amplitudeElement = jQuery(`div[amplitude-song-index=${amplitudeIdx}]`);
165  } else {
166    try {
167      let category = amplitudeElement.closest('.objPodcast').find('.titolo h4').text();
168      if(!category){
169        category = amplitudeElement.closest('.containerInterna').find('.title').text()
170      }else if (!category && amplitudeElement.closest('.slick-slide').length) {
171        category = 'branko';
172      }
173      urlAudioPreroll = getPrerollUrlBySlug(category);
174    } catch (error) {
175      console.warn(error);
176    }
177  }
178  if (!urlAudioPreroll) {
179    return;
180  }
181  const audio = Amplitude.audio();
182  const audioContainer = jQuery('<div style="display:none;"></div>');
183  audioContainer.append(audio);
184  jQuery('body').append(audioContainer);
185  const adCont = jQuery('<div class="rds-ad-container"></div>')[0];
186  jQuery(audioContainer).append(adCont);
187  let audioElement = audio;
188  requestAdRun(urlAudioPreroll, audioElement, adCont, null, 'AmplitudeAudio', null);
189  const playButton = amplitudeElement.find('.playBtn');
190  const loader = amplitudeElement.find('.loader');
191  const videoButton = jQuery(document.querySelectorAll(".fancybox\\.iframe"));
192  const buttonsToBlock = jQuery('.livePlay, .livePlay *, .listenLive, .playBtn, .fancybox.iframe, .fluxChange');
193  jQuery(audio).on("ima_ad_loaded", function (e, api, ad) {
194    console.log("Amplitude ima_ad_loaded");
195    playButton.hide();
196    loader.removeClass('hidden');
197    prerollRunning = true;
198    buttonsToBlock.css("pointer-events", "none");
199    buttonsToBlock.css('opacity', '0.6');
200    videoButton.css("pointer-events", "none");
201    videoButton.css('opacity', '0.6');
202  }).on("ima_ad_started", function (e, api, ad) {
203    console.log("Amplitude ima_ad_started");
204    playButton.hide();
205    loader.removeClass('hidden');
206    prerollRunning = true;
207    buttonsToBlock.css("pointer-events", "none");
208    buttonsToBlock.css('opacity', '0.6');
209    videoButton.css("pointer-events", "none");
210    videoButton.css('opacity', '0.6');
211  }).on("ima_ad_skipped", function (e, api, ad) {
212    loader.addClass('hidden');
213    playButton.show();
214    prerollRunning = false;
215    buttonsToBlock.css("pointer-events", "auto");
216    buttonsToBlock.css('opacity', '1');
217    videoButton.css("pointer-events", "auto");
218    videoButton.css('opacity', '1');
219  }).on("ima_ad_complete", function (e, api, ad) {
220    console.log("Amplitude ima_ad_complete");
221    loader.addClass('hidden');
222    playButton.show();
223    prerollRunning = false;
224    buttonsToBlock.css("pointer-events", "auto");
225    buttonsToBlock.css('opacity', '1');
226    videoButton.css("pointer-events", "auto");
227    videoButton.css('opacity', '1');
228  }).on("ima_ad_error", function (e) {
229    console.log("Amplitude ima_ad_error");
230    loader.addClass('hidden');
231    playButton.show();
232    prerollRunning = false;
233    buttonsToBlock.css("pointer-events", "auto");
234    buttonsToBlock.css('opacity', '1');
235    videoButton.css("pointer-events", "auto");
236    videoButton.css('opacity', '1');
237  })
238}
239

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.