PageSourceSearch

https://eskrimakombat.com/wp-content/plugins/tf-youtube/assets/js/tf-youtube.js?ver=7.1.2

js eskrimakombat.com collected 2026-10-02 14:26:42 UTC 14,601 bytes, 346 lines download raw bytes

1;(function ($) {
2
3  "use strict";
4  var text = "";
5  var msnry;
6
7  function msToTime(duration) {
8    var milliseconds = parseInt((duration % 1000) / 100),
9      seconds = Math.floor((duration / 1000) % 60),
10      minutes = Math.floor((duration / (1000 * 60)) % 60),
11      hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
12
13    hours = (hours < 10) ? "0" + hours : hours;
14    minutes = (minutes < 10) ? "0" + minutes : minutes;
15    seconds = (seconds < 10) ? "0" + seconds : seconds;
16
17    return hours + ":" + minutes + ":" + seconds + "." + milliseconds;
18  }
19
20  var calDate = function (date1) {
21    var today = new Date();
22    date1 = new Date(date1);
23    const diffTime = Math.abs(today - date1);
24    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
25
26    var dd = String(date1.getDate()).padStart(2, '0');
27    var mm = String(date1.getMonth() + 1).padStart(2, '0'); //January is 0!
28    var yyyy = date1.getFullYear();
29
30    if (diffDays > 30)
31      return yyyy + "-" + mm + "-" + dd;
32    else if (diffDays > 0 && diffDays <= 30)
33      return diffDays + text;
34    else return msToTime(diffTime);
35  }
36
37  String.prototype.toHHMMSS = function () {
38    var sec_num = parseInt(this, 10); // don't forget the second param
39    var hours = Math.floor(sec_num / 3600);
40    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
41    var seconds = sec_num - (hours * 3600) - (minutes * 60);
42
43    if (hours < 10) {
44      hours = "0" + hours;
45    }
46    if (minutes < 10) {
47      minutes = "0" + minutes;
48    }
49    if (seconds < 10) {
50      seconds = "0" + seconds;
51    }
52    return hours + ':' + minutes + ':' + seconds;
53  }
54
55  /*
56   * using 'video_url' (dynamic information) to get youtube video basic informations (title, duration).
57   */
58
59  var tfcounter = function () {
60    $('.fel-ytLoadMore').on('click', function () {
61      var token = $('.fel-ytNextpage')[0].innerText;
62      var chanel = $(this).data('chanel');
63      var max = $(this).data('max');
64      var order = $(this).data('order');
65      var key = $(this).data('key');
66      var logo = $(this).data('logo');
67      var title = $(this).data('title');
68      var style = $(this).data('style');
69      var playlist = $(this).data('playlist');
70      var layout = $(this).data('layout');
71      text = $(this).data('text');
72      $('.fel-ytLoader').addClass('is-active');
73
74      if (style == "style1") {
75        // run GET request on API
76        $.get(
77          "https://www.googleapis.com/youtube/v3/search", {
78            part: 'snippet, id',
79            channelId: chanel,
80            pageToken: token,
81            type: 'video',
82            key: key,
83            order: order,
84            maxResults: max,
85          },
86          function (data) {
87            var nextPageToken = data.nextPageToken;
88            var prevPageToken = data.prevPageToken;
89
90            // lod search data
91            var items = data.items;
92            var _html = "";
93            for (var i = 0; i < items.length; i++) {
94              var video_title = items[i].snippet.title;
95              var video_desc = items[i].snippet.description;
96
97              $.get(
98                "https://www.googleapis.com/youtube/v3/videos", {
99                  id: items[i].id.videoId,
100                  part: 'contentDetails,statistics',
101                  key: key,
102                },
103                function (data) {
104                  setTimeout(function () {
105                    var item = data.items[0];
106                    var regExp = /PT(\d+)M(\d+)S/;
107                    var match = item.contentDetails.duration.match(regExp);
108                    console.log($('#' + item.id));
109                    $('#' + item.id).find('.fel-ytWrap__time').empty().append(match[1] + ':' + match[2]);
110                    $('#' + item.id).find('.fel-ytWrap__views span').empty().append(item.statistics.viewCount);
111                    $('#' + item.id).find('.fel-ytWrap__like span').empty().append(item.statistics.likeCount);
112                    $('#' + item.id).find('.fel-ytWrap__comments span').empty().append(item.statistics.commentCount);
113
114                  }, 1000);
115                });
116
117              _html += " <div class='fel-ytWrap__item' id='" + items[i].id.videoId + "'>" +
118                "<div class='fel-ytWrap__meta'>
118" +
119                "<div class='fel-ytWrap__avarta'>" +
120                "<img src='" + logo + "' alt='" + title + "'>" +
121                "<span>" + title + "</span>" +
122                "</div>" +
123
124                "<div class='fel-ytWrap__date'>" +
125                calDate(items[i].snippet.publishedAt)
126                + "</div>" +
127                "</div>" +
128
129                "<div class='fel-ytWrap__item__info'>" +
130                "<div class='fel-ytWrap__video'>";
131
132              if (layout == 'videoinline')
133                _html += "<iframe src='https://www.youtube.com/embed/" + items[i].id.videoId + "' frameborder='0' allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture' allowfullscreen></iframe>";
134              else if (layout == 'newtab')
135                _html += "<a href='https://www.youtube.com/watch?v=" + items[i].id.videoId + "' title='" + video_title + "' target='_blank'>" +
136                  "<img src='" + items[i].snippet.thumbnails.high.url + "' alt='" + video_title + "'>" +
137                  "<span class='fel-ytWrap__time'>00:00</span>" +
138                  "<span class='fel-ytWrap__icon'><i class='eicon-play'></i></span>" +
139                  "</a>";
140              else
141                _html += "<div data-id='" + items[i].id.videoId + "' class='fel-ytShowPopup'>\n" +
142                  "                  <img src='" + items[i].snippet.thumbnails.high.url + "' alt='" + video_title + "'>\n" +
143                  "                                      <span class='fel-ytWrap__time'>00:00</span>\n" +
144                  "                                    <span class='fel-ytWrap__icon'><i class='eicon-play'></i></span>\n" +
145                  "                </div>";
146              _html += "</div>" +
147                "<h3><a href='https://www.youtube.com/watch?v=" + items[i].id.videoId + "' title='" + video_title + "' target='_blank'>" + video_title + "</a></h3>" +
148                "<p>" + video_desc + "</p>" +
149                "<div class='fel-ytWrap__details'>" +
150                "<span class='fel-ytWrap__views'><span>0</span> <i class='eicon-preview-medium'></i></span>" +
151                "<span class='fel-ytWrap__like'><span>0</span> <i class='eicon-facebook-like-box'></i></span>" +
152                "<span class='fel-ytWrap__comments'><span>0</span> <i class='eicon-comments'></i></span>" +
153                "</div>" +
154                "</div>" +
155                "</div>";
156            }
157
158            var $items = _html;
159            var $grid = $('.fel-ytWrap__content--masory');
160            $grid.append($items).each(function () {
161              $grid.masonry('reloadItems');
162            });
163            setTimeout(function () {
164              $grid.masonry('layout');
165              $('.fel-ytLoader').removeClass('is-active');
166            }, 1500);
167          }
168        );
169      }
170
171      if (style == "style2") {
172        // run GET request on API
173        $.get(
174          "https://www.googleapis.com/youtube/v3/playlistItems", {
175            part: 'snippet,contentDetails',
176            playlistId: playlist,
177            key: key,
178            pageToken: token,
179            order: order,
180            maxResults: max,
181          },
182          function (data) {
183            var nextPageToken = data.nextPageToken;
184            var prevPageToken = data.prevPageToken;
185
186            // lod search data
187            var items = data.items;
188            var _html = "";
189            for (var i = 0; i < items.length; i++) {
190              var video_title = items[i].snippet.title;
191              var video_desc = items[i].snippet.description;
192
193              $.get(
194                "https://www.googleapis.com/youtube/v3/videos", {
195                  id: items[i].id.videoId,
196                  part: 'contentDetails,statistics',
197                  key: key,
198                },
199                function (data) {
200                  setTimeout(function () {
201                    var item = data.items[0];
202                    var regExp = /PT(\d+)M(\d+)S/;
203                    var match = item.contentDetails.duration.match(regExp);
204                    console.log($('#' + item.id));
205                    $('#' + item.id).find('.fel-ytWrap__time').empty().append(match[1] + ':' + match[2]);
206                    $('#' + item.id).find('.fel-ytWrap__views span').empty().append(item.statistics.viewCount);
207                    $('#' + item.id).find('.fel-ytWrap__like span').empty().append(item.statistics.likeCount);
208                    $('#' + item.id).find('.fel-ytWrap__comments span').empty().append(item.statistics.commentCount);
209
210                  }, 1000);
211                });
212
213              _html += " <div class='fel-ytWrap__item' id='" + items[i].id.videoId + "'>" +
214                "<div class='fel-ytWrap__meta'>
214" +
215                "<div class='fel-ytWrap__avarta'>" +
216                "<img src='" + logo + "' alt='" + title + "'>" +
217                "<span>" + title + "</span>" +
218                "</div>" +
219
220                "<div class='fel-ytWrap__date'>" +
221                calDate(items[i].snippet.publishedAt)
222                + "</div>" +
223                "</div>" +
224
225                "<div class='fel-ytWrap__item__info'>" +
226                "<div class='fel-ytWrap__video'>" +
227                "<iframe src='https://www.youtube.com/embed/" + items[i].id.videoId + "' frameborder='0' allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture' allowfullscreen></iframe>" +
228
229                "<a href='https://www.youtube.com/watch?v=" + items[i].id.videoId + "' title='" + video_title + "' target='_blank'>" +
230                "<img src='" + items[i].snippet.thumbnails.high.url + "' alt='" + video_title + "'>" +
231                "<span class='fel-ytWrap__time'>00:00</span>" +
232                "<span class='fel-ytWrap__icon'><i class='eicon-play'></i></span>" +
233                "</a>" +
234                "</div>" +
235                "<h3><a href='https://www.youtube.com/watch?v=" + items[i].id.videoId + "' title='" + video_title + "' target='_blank'>" + video_title + "</a></h3>" +
236                "<p>" + video_desc + "</p>" +
237                "<div class='fel-ytWrap__details'>" +
238                "<span class='fel-ytWrap__views'><span>0</span> <i class='eicon-preview-medium'></i></span>" +
239                "<span class='fel-ytWrap__like'><span>0</span> <i class='eicon-facebook-like-box'></i></span>" +
240                "<span class='fel-ytWrap__comments'><span>0</span> <i class='eicon-comments'></i></span>" +
241                "</div>" +
242                "</div>" +
243                "</div>";
244            }
245
246
247            var $items = _html;
248            var $grid = $('.fel-ytWrap__content--masory');
249            $grid.append($items).each(function () {
250              $grid.masonry('reloadItems');
251            });
252            setTimeout(function () {
253              $grid.masonry('layout');
254              $('.fel-ytLoader').removeClass('is-active');
255            }, 1500);
256
257          }
258        );
259      }
260    })
261
262    $(document).ready(function () {
263      setTimeout(function () {
264        msnry = $('.fel-ytWrap__content--masory');
265        msnry.masonry({
266          itemSelector: '.fel-ytWrap__item',
267          percentPosition: true,
268          columnWidth: '.fel-ytWrap__item',
269          gutter: msnry.data('gutter')
270        });
271      }, 2000);
272    });
273
274    $(".fel-ytPopup__content").fitVids();
275    $('.fel-ytOverlay, .fel-ytClose').on('click', function () {
276      $('.fel-ytPopup').removeClass('is-active');
277      $('.fel-ytOverlay').removeClass('is-active');
278    })
279
280    $('.fel-ytShowPopup').on('click', function () {
281      $('.fel-ytPopup__content').empty().append('<iframe src="https://www.youtube.com/embed/' + $(this).data('id') + '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"></iframe>');
282      $(".fel-ytPopup__content").fitVids();
283      $('.fel-ytPopup').addClass('is-active');
284      $('.fel-ytOverlay').addClass('is-active');
285    })
286
287    //slide
288    var nav_prev = $('.fel-ytWrap__content').data('prev'),
289      nav_next = $('.fel-ytWrap__content').data('next'),
290      distant = $('.fel-ytWrap__content').data('distant'),
291      items = $('.fel-ytWrap__content').data('items');
292
293    if ($('.fel-ytWrap__headTab').length == 0)
294      initialize_owl($('.fel-ytWrap__content.owl-carousel'));
295
296    //tab
297    if ($('.fel-ytWrap__headTab').length) {
298      $('.fel-ytWrap__headTab span').on('click', function () {
299        $(this).addClass('active').siblings().removeClass('active');
300        var id = $(this).data('id');
301        $(id).addClass('active').siblings().removeClass('active');
302        var tabs = $(id).siblings();
303        for (var i = 0; i < tabs.length; i++)
304          destroy_owl($(tabs[i]).find('.owl-carousel'));
305        initialize_owl($(id).find('.owl-carousel'));
306      })
307
308      $('.fel-ytWrap__headTab span:first').addClass('active');
309      $('#content0').addClass('active');
310      initialize_owl($('#content0 .owl-carousel'));
311    }
312
313    function initialize_owl(el) {
314      var owl = el.owlCarousel({
315        loop: true,
316        nav: true,
317        responsive: {
318          0: {
319            items: 1,
320            margin: 0
321          },
322          600: {
323            items: 2,
324            margin: distant
325          },
326          1023: {
327            items: items,
328            margin: distant
329          }
330        },
331        navText: ["<i class='" + nav_prev + "'></i>", "<i class='" + nav_next + "'></i>"]
332      });
333    }
334
335    function destroy_owl(el) {
336      el.owlCarousel('destroy');
337    }
338
339    $('.fel-ytWrap__tabContent .fel-ytWrap__video').css('height', $('.fel-ytWrap__tabContent .fel-ytWrap__item__info:first').outerWidth() * 0.7)
340    $('.owl-carousel.fel-ytWrap__content .fel-ytWrap__video').css('height', $('.owl-carousel.fel-ytWrap__content .fel-ytWrap__item__info:first').outerWidth() * 0.7)
341  }
342
343  $(window).on('elementor/frontend/init', function () {
344    elementorFrontend.hooks.addAction('frontend/element_ready/tfyoutube.default', tfcounter);
345  });
346})(jQuery);

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.