PageSourceSearch

https://pimboo.com/static/theme2/js/main.js

js pimboo.com collected 2026-10-04 06:45:54 UTC 13,958 bytes, 390 lines download raw bytes

1// 根据数字计算颜色类
2function getColorClass(num) {
3    var colorGreen = [0, 5, 6, 11, 16, 17, 21, 22, 27];
4    var colorBlue = [3, 4, 9, 10, 14, 15, 20, 25, 26];
5
6    if (colorGreen.indexOf(num) !== -1) {
7        return 'color-1';
8    } else if (colorBlue.indexOf(num) !== -1) {
9        return 'color-2';
10    } else {
11        return 'color-0';
12    }
13}
14
15$(document).ready(function(){
16    showPage();
17    getPageDatas();
18    
19    $(".mui-control-item").click(function (e) {
20        var tab = e.target.dataset.tab;
21        $(".mui-control-item").removeClass('mui-active');
22        $(e.target).addClass('mui-active');
23        $(".mui-control-content").hide();
24        $("#" + tab).show();
25    });
26    
27    $(".forecast-nav span").click(function(e){
28        $(".forecast-nav span").removeClass("active");
29        e.target.classList = ['active'];
30        var types = e.target.dataset.type;
31        var gameType = appData.type;
32        getForecastData(gameType, types);
33    });
34    
35    var show_ioslogo = $.cookie('show_ioslogo')
36    if(!show_ioslogo){
37        let isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
38        if(isiOS){
39            $('.foot-bookmark').show()
40        }
41    }
42
43    var shwo_alert = $.cookie('show_alert')
44    if (!shwo_alert) { 
45        showAl()
46    }
47});
48
49document.addEventListener('visibilitychange', function() {
50    if (!document.hidden) {
51        getData()
52        formatForecast()
53    }
54});
55
56function getForecastData(game, type){
57    $.ajax({
58        url: '/data/get/getForecastByType',
59        data: {
60            game: game,
61            type: type
62        },
63        type: 'GET',
64        success: function (res) {
65            //console.log(res);
66            $("#forecast").find(".result-tr").remove();
67            if(type == "sz"){
68                $.each(res, function(i, item) {
69                    $("#forecast").append('<div class="result-tr"><span>'+ item['qishu'] +'</span><span>'+ item['kjcode'] +'</span><span id="sz">'+ item['dx'] + item['ds'] +'</span><span><span style="color: #00a0e9">'+ item['yesno'] +'</span></span></div>');
70                });
71            } else {
72                $.each(res, function(i, item) {
73                    $("#forecast").append('<div class="result-tr"><span>'+ item['qishu'] +'</span><span>'+ item['kjcode'] +'</span><span>'+ item['dx'] + item['ds'] +'</span><span><span style="color: #00a0e9">'+ item['yesno'] +'</span></span></div>');
74                });
75            }
76        }
77    })
78}
79
80var times;
81var timeout;
82var isRefreshingData = false;
83function showPage(){
84    //console.log(appData);
85    clearInterval(timeout);
86    times = appData['time']['t'];
87    timeout = setInterval(function () {
88        times = times - 1;
89        setTime(times);
90    }, 1000)
91}
92
93function formatData(force){
94    $nowQishu = $('#period').text();
95    if(!force && $nowQishu == appData['issue'][0]['qishu']){
96        return false;
97    }
98    
99    $("#period").text(appData['issue'][0]['qishu']);
100    //$("#qishu2").text(appData['issue'][0]['qishu']);
101    $("#mi-qishu").text(appData['issue'][0]['qishu']);
102    $("#mi-qishu2").text(Number(appData['issue'][0]['qishu']) + 1);
103    $("#mi-num1").text(appData['issue'][0]['num1']);
104    $("#mi-num2").text(appData['issue'][0]['num2']);
105    $("#mi-num3").text(appData['issue'][0]['num3']);
106    $("#mi-num4").text(appData['issue'][0]['sum']);
107
108    // 为主显示区域的sum添加颜色类
109    var colorClass = getColorClass(Number(appData['issue'][0]['sum']));
110    $("#num4").removeClass('color-0 color-1 color-2').addClass(colorClass);
111    $("#mi-num4").removeClass('color-0 color-1 color-2').addClass(colorClass);
112    formatIssue(appData['issue'][0]['qishu']);
113    formatIssueList();
114    formatResult();
115    formatTrend();
116    formatCensus();
117    //formatForecast();
118    setTimeout(formatForecast, 2000);
119}
120
121function setTime(time){
122    //console.log(time);
123    var hour = parseInt(time/60/60);
124    var min = parseInt(time/60%60);
125    var sec = parseInt(time%60);
126    if(hour < 10){
127        hour = "0" + hour;
128    }
129    if(min < 10){
130        min = "0" + min;
131    }
132    if(sec < 10){
133        sec = "0" + sec;
134    }
135    if(time >= 0){
136        var timeHtml = '<span>下期:</span><b class="ng-binding" style="background:red;" id="minutes">'+min+'</b><span>分</span><b class="ng-binding" style="background:red;" id="seconds">'+sec+'</b><span>秒</span>';
137        if (hour > 0) { 
138            timeHtml = '<span>下期:</span><b class="ng-binding" style="background:red;" id="hours">'+hour+'</b><span>
138时</span><b class="ng-binding" style="background:red;" id="minutes">' + min + '</b><span>分</span><b class="ng-binding" style="background:red;" id="seconds">' + sec + '</b><span>秒</span>';
139        }
140        $(".opentime").html(timeHtml);
141        $("#mi-time").html(min + ":" + sec);
142    } else {
143        getDataFile();
144        //getData();
145        $(".opentime .ng-binding").html('--');
146        $("#loading").show();
147        $("#issues").hide();
148        $("#mi-time").html('--:--')
149        // $("#times").html("开奖中");
150        $(".center-lo").show();
151    }
152}
153
154function getDataFile() { 
155    let nowTs = Date.parse(new Date()) / 1000
156    $.ajax({
157        url: '/open/' + appData['type'] + '.js?_=' + nowTs,
158        type: 'GET',
159        success: function (res) {
160            let nowSec = res - nowTs
161            if (nowSec >= 0) {
162                getData()
163            }
164        }
165    })
166}
167
168function getData(){
169    if (isRefreshingData) {
170        return;
171    }
172    isRefreshingData = true;
173    $.ajax({
174        url: '/data/get/checkData?type=' + appData['type'],
175        type: 'GET',
176        cache: false,
177        success: function (res) {
178            if (res && res.time && typeof res.time.t !== 'undefined') {
179                if (res.issue && res.issue.length) {
180                    clearInterval(timeout);
181
182                    // 保持原有的forecast数据,如果新数据中没有forecast
183                    if (!res.forecast || res.forecast.length === 0) {
184                        res.forecast = appData.forecast || [];
185                    }
186
187                    appData = res;
188                    showPage();
189                    formatData(false);
190                    $("#loading").hide();
191                    $("#issues").show();
192                    $(".center-lo").hide();
193                } else {
194                    setTime(res.time.t);
195                }
196            } else {
197                console.error('同步开奖时间失败:响应缺少 time.t');
198            }
199        },
200        error: function (xhr, status, error) {
201            console.error('同步开奖时间失败:', status, error);
202        },
203        complete: function () {
204            isRefreshingData = false;
205        }
206    })
207}
208
209function formatIssue(issue){
210    var issueData = appData['issue'];
211    $.each(issueData,function(i, v){
212        if(v['qishu'] == issue){
213            //$("#qishu2").text(v['qishu']);
214            $("#num1").text(v['num1']);
215            $("#num2").text(v['num2']);
216            $("#num3").text(v['num3']);
217            $("#num4").text(v['sum']);
218
219            // 为主显示区域的sum添加颜色类
220            var colorClass = getColorClass(Number(v['sum']));
221            $("#num4").removeClass('color-0 color-1 color-2').addClass(colorClass);
222
223            var dx, ds;
224            if(v['sum'] > 13){
225                dx = '<span class="badge ng-binding red-info">大</span>'
226            } else {
227                dx = '<span class="badge ng-binding red-info">小</span>';
228            }
229            if(v['sum'] % 2 != 0){
230                ds = '<span class="badge ng-binding red-info">单</span>';
231            } else {
232                ds = '<span class="badge ng-binding red-info">双</span>';
233            }
234            $("#dxds").html("");
235            $("#dxds").append(dx + ds);
236            return false;
237        }
238    });
239}
240
241function formatIssueList(){
242    $(".issue-more").html("");
243    //console.log(appData);
244    $.each(appData['issue'], function(i, item) {
245        $(".issue-more").append("<li>"+ item['qishu'] +"</li>");
246    });
247}
248
249function formatResult(){
250    // 计算颜色类
251    var sum = Number(appData['issue'][0]['sum']);
252    var colorClass = getColorClass(sum);
253
254    var resultHtml = '<tr><td>' + appData['issue'][0]['qishu'] + '</td><td>' + appData['issue'][0]['time'] + '</td><td>' + appData['issue'][0]['num1'] + '+' + appData['issue'][0]['num2'] + '+' + appData['issue'][0]['num3'] + '=<span class="' + colorClass + '">' + appData['issue'][0]['sum'] + '</span></td></tr>';
255    $("#result tbody").prepend(resultHtml);
256    $("#result tbody tr").eq(-1).remove();
257}
258
259function formatTrend(){
260    var da, xiao, dan, shuang, dadan, dashuang, xiaodan, xiaoshuang;
261    var sum = Number(appData['issue'][0]['sum']);
262    var colorClass = getColorClass(sum);
263
264    if(sum > 13){
265        da = '<td><div style="background-color:red">大</div></td>';
266        xiao = '<td></td>';
267        if(sum % 2 != 0){
268            dadan = '<td><div style="background-color:green;width:30px;">大单</div></td>';
269            dashuang = '<td></td>';
270        } else {
271            dadan = '<td></td>';
272            dashuang = '<td><div style="background-color:blue;width:30px;">大双</div></td>';
273        }
274        xiaodan = '<td></td>';
275        xiaoshuang = '<td></td>';
276    } else {
277        da = '<td></td>';
278        xiao = '<td><div style="background-color:blue">小</div></td>';
279        if(sum % 2 != 0){
280            xiaodan = '<td><div style="background-color:green;width:30px;">小单</div></td>';
281            xiaoshuang = '<td></td>';
282        } else {
283            xiaodan = '<td></td>';
284            xiaoshuang = '<td><div style="background-color:blue;width:30px;">小双</div></td>';
285        }
286        dadan = '<td></td>';
287        dashuang = '<td></td>';
288    }
289    if(sum % 2 != 0){
290        dan = '<td><div style="background-color:green">单</div></td>';
291        shuang = '<td></td>';
292    } else {
293        dan = '<td></td>';
294        shuang = '<td><div style="background-color:blue">双</div></td>';
295    }
296    var trendHtml = '<tr><td>'+appData['issue'][0]['qishu']+'</td> <td><span class="' + colorClass + '">'+sum+'</span></td> '+da +xiao+dan+shuang+xiaodan+xiaoshuang+dadan+dashuang+'</tr>';
297    $("#trend tbody").prepend(trendHtml);
298    $("#trend tbody tr").eq(-1).remove();
299}
300
301function formatCensus(){
302    $.each(appData['num']['done_data'], function(i, item) {
303        $("#" + i).html(item);
304    });
305    $.each(appData['num']['pode_data'], function(i, item) {
306        $("#" + i).html(item);
307    });
308}
309
310function formatForecast(){
311    var gameType = appData.type;
312    $("#forecast tbody").html('');
313
314    // 检查是否有forecast数据
315    if (!appData['forecast'] || appData['forecast'].length === 0) {
316        console.log('No forecast data available');
317        return;
318    }
319
320    $.each(appData['forecast'], function(i, item) {
321        let isRight = item.right;
322
323        // 为kjcode添加颜色类
324        var colorClass = getColorClass(Number(item['kjcode']));
325        var coloredKjcode = '<span class="' + colorClass + '">' + item['kjcode'] + '</span>';
326
327        let forecastHtml = '<tr><td>' + item['qishu'] + '</td> <td>' + coloredKjcode + '</td> <td>' + item['dx'] + ' | ' + item['ds'] + '</td> <td> <img src="/static/theme2/img/dc_' + item['right'] + '.png"> </td> </tr>';
328        if (isRight < 0) {
329            forecastHtml = '<tr><td>' + item['qishu'] + '</td> <td>' + coloredKjcode + '</td> <td>' + item['dx'] + ' | ' + item['ds'] + '</td> <td></td> </tr>';
330        }
331        $("#forecast tbody").append(forecastHtml)
332    });
333}
334
335
336function closeAl()
337{
338    $('.al-bg').hide();
339    $.cookie('show_alert', '1', { expires: 1 })
340}
341
342function showAl()
343{
344    $('.al-bg').show();
345}
346
347
348function hideIosLogo(){
349    $('.foot-bookmark').hide()
350    $.cookie('show_ioslogo', '1', { expires: 1 })
351}
352
353function getPageDatas() {
354    $.ajax({
355        url: '/data/get/getPageDatas',
356        type: 'GET',
357        success: function (res) {
358            res = res.slice(8)
359            res = JSON.parse(window.atob(res));
360            $('.banner').html('');
361
362            res.banner.forEach(element => {
363                $('.banner').append('<a id="b_' + element.id + '" href="/game/page/link?id=' + element.id + '&url=' + element.link + '" target="_blank"></a>');
364            });
365            
366            res.banner.forEach(element => {
367                var xhr = new XMLHttpRequest();
368                xhr.open("get", element.img, true);
369                xhr.responseType = "blob";
370                xhr.onload = function () {
371                    if (this.status == 200) {
372                        var blob = this.response;
373                        var img = document.createElement("img");
374                        img.onload = function (e) {
375                            window.URL.revokeObjectURL(img.src);
376                        };
377                        img.src = window.URL.createObjectURL(blob);
378                        $('#b_' + element.id).append('<img src="' + img.src + '" />');
379                    }
380                }
381                xhr.send();
382            });
383
384            if(res.alert.length == 1){
385                let item = res.alert[0]
386                $('#al').html('<div class="al-bg" id="al-close"><div class="al-model-bg" onclick="closeAl()"><div class="al-model"><div class="al-title">请认准本开奖网网址</div><img src="'+item.qrcode+'" class="al-qrcode"><div class="al-a"><a class="al-a-1" href="/game/page/linkalert?id='+item.id+'&index=1&url='+item.item1url+'" target="_blank">'+item.item1+'</a><a class="al-a-2" href="/game/page/linkalert?id='+item.id+'&index=2&url='+item.item2url+'" target="_blank">'+item.item2+'</a><a class="al-a-3" href="/game/page/linkalert?id='+item.id+'&index=3&url='+item.item3url+'" target="_blank">'+item.item3+'</a></div></div></div></div><img class="al-show" id="al_ball" src="https://images.htqwhj.com/images/touzhu.png" onclick="showAl()">');
387            }
388        }
389    })
390}

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.