1/* åäº¬ä¿¡æ¯æ¸¯ä¾¿æ°åè½ */ 2(function(){ 3"use strict"; 4 5/* ====== åå/é»åè®¡ç® ====== */ 6var lunarInfo=[0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6,0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x05ac0,0x0ab60,0x096d5,0x092e0,0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,0x05aa0,0x076a3,0x096d0,0x04afb,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,0x14b63,0x09370,0x049f8,0x04970,0x064b0,0x168a6,0x0ea50,0x06aa0,0x1a6c4,0x0aae0,0x092e0,0x0d2e3,0x0c960,0x0d557,0x0d4a0,0x0da50,0x05d55,0x056a0,0x0a6d0,0x055d4,0x052d0,0x0a9b8,0x0a950,0x0b4a0,0x0b6a6,0x0ad50,0x055a0,0x0aba4,0x0a5b0,0x052b0,0x0b273,0x06930,0x07337,0x06aa0,0x0ad50,0x14b55,0x04b60,0x0a570,0x054e4,0x0d160,0x0e968,0x0d520,0x0daa0,0x16aa6,0x056d0,0x04ae0,0x0a9d4,0x0a4d0,0x0d150,0x0f252,0x0d520]; 7var Gan=["ç²","ä¹","ä¸","ä¸","æ","å·±","åº","è¾","壬","ç¸"]; 8var Zhi=["å","ä¸","å¯ ","å¯","è¾°","å·³","å","æª","ç³","é ","æ","亥"]; 9var monthCN=["æ£","äº","ä¸","å","äº","å ","ä¸","å «","ä¹","å","å¬","è "]; 10function lYearDays(y){var i,sum=348;for(i=0x8000;i>0x8;i>>=1)sum+=(lunarInfo[y-1900]&i)?1:0;return sum+leapDays(y);} 11function leapMonth(y){return lunarInfo[y-1900]&0xf;} 12function leapDays(y){if(leapMonth(y))return(lunarInfo[y-1900]&0x10000)?30:29;return 0;} 13function monthDays(y,m){return(lunarInfo[y-1900]&(0x10000>>m))?30:29;} 14function solar2lunar(y,m,d){ 15 var offset=(Date.UTC(y,m-1,d)-Date.UTC(1900,0,31))/86400000; 16 var i,temp=0,lunarY; 17 for(i=1900;i<2101&&offset>0;i++){temp=lYearDays(i);offset-=temp;} 18 if(offset<0){offset+=temp;i--;} 19 lunarY=i; 20 var leap=leapMonth(i),isLeap=false,lunarM,lunarD; 21 for(i=1;i<13&&offset>0;i++){ 22 if(leap>0&&i==(leap+1)&&!isLeap){--i;isLeap=true;temp=leapDays(lunarY);} 23 else{temp=monthDays(lunarY,i);} 24 if(isLeap&&i==(leap+1))isLeap=false; 25 offset-=temp; 26 } 27 if(offset==0&&leap>0&&i==leap+1)if(!isLeap){isLeap=true;--i;} 28 if(offset<0){offset+=temp;--i;} 29 lunarM=i;lunarD=offset+1; 30 var gzY=Gan[(lunarY-4)%10]+Zhi[(lunarY-4)%12]; 31 var mIdx=(y-1900)*12+m-1+1; 32 var gzM=Gan[mIdx%10]+Zhi[mIdx%12]; 33 var dOff=Math.floor((Date.UTC(y,m-1,d)-Date.UTC(1900,0,6))/86400000); 34 var gzD=Gan[dOff%10]+Zhi[dOff%12]; 35 var mCN=(isLeap?"é°":"")+monthCN[lunarM-1]; 36 var dCN=(lunarD<11?"å":"")+(lunarD==10?"å":lunarD<20?nStr1[lunarD%10]:lunarD==20?"äºå":lunarD<30?("廿"+nStr1[lunarD%10]):"ä¸å"); 37 if(lunarD==10)dCN="åå";if(lunarD==20)dCN="äºå";if(lunarD==30)dCN="ä¸å"; 38 return{lYear:lunarY,lMonth:lunarM,lDay:lunarD,gzYear:gzY,gzMonth:gzM,gzDay:gzD,monthCN:mCN,dayCN:dCN,isLeap:isLeap}; 39} 40var nStr1=["æ¥","ä¸","äº","ä¸","å","äº","å ","ä¸","å «","ä¹","å"]; 41var yiList=["ç¥ç¦","å¼å ","åºè¡","å¨å","å®åº","纳ç","å ¥æ®","ç ´å","å®è¬","ç¥ç¥","æ±å£","å«å¨¶","纳é","ä¿®é ","ç§»å¾","å ¥å® ","å¼å¸","交æ","ç«å¸","æå¾","æ ½ç§","è§£é¤","ä¼å","æ±å»","æ²»ç ","䏿¢","ç«æ±","çå±","ä½ç¶","å¼ä»"]; 42var jiList=["è¯è®¼","åºè¡","å®è¬","ä¿®é ","å¨å","éç¸","å«å¨¶","ç§»å¾","å ¥å® ","å¼å¸","å®åº","伿¨","䏿¢","纳ç","ç ´å","坿","å®é¨","æ¾æ°´","å¼ä»","ç¥ç¥","ç¥ç¦","æ ½ç§","è¯è®¼","æ¢ç ","èµ´ä»»","ç»ç»"]; 43function getYiJi(d){var seed=(d.getFullYear()*10000+d.getMonth()*100+d.getDate())%100;var yi=[],ji=[];for(var i=0;i<4;i++)yi.push(yiList[(seed+i*7)%yiList.length]);for(var i=0;i<4;i++)ji.push(jiList[(seed+i*5)%jiList.length]);return{yi:yi,ji:ji};} 44
45function initLunar(){ 46 var el=document.getElementById('bjxxg-lunar');if(!el)return; 47 var now=new Date();var y=now.getFullYear(),m=now.getMonth()+1,d=now.getDate(); 48 var weekDay=["æ¥","ä¸","äº","ä¸","å","äº","å "][now.getDay()]; 49 var lunar=solar2lunar(y,m,d);var yj=getYiJi(now); 50 el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð é»åä¸å¹´å</div>'+ 51 '<div style="font-size:15px;font-weight:600;color:#333;margin-bottom:6px">'+y+'å¹´'+m+'æ'+d+'æ¥ ææ'+weekDay+'</div>'+ 52 '<div style="font-size:13px;color:#666;margin-bottom:10px;line-height:1.6">åå '+lunar.monthCN+'æ'+lunar.dayCN+' '+lunar.gzYear+'å¹´</div>'+ 53 '<div style="font-size:13px;margin-bottom:4px;line-height:1.8"><span style="color:#C8102E;font-weight:600">å®ï¼'+yj.yi.join(' ')+'</span></div>'+ 54 '<div style="font-size:13px;margin-bottom:4px;line-height:1.8"><span style="color:#999">å¿ï¼'+yj.ji.join(' ')+'</span></div>'; 55} 56 57function initWeather(){ 58 var el=document.getElementById('bjxxg-weather');if(!el)return; 59 el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð¤ï¸ å京天æ°</div><div style="color:#999;font-size:13px;padding:20px 0">å è½½ä¸...</div>'; 60 var xhr=new XMLHttpRequest(); 61 xhr.open('GET','https://wttr.in/Beijing?format=j1&lang=zh',true);xhr.timeout=8000; 62 xhr.onload=function(){ 63 try{var data=JSON.parse(xhr.responseText);var cur=data.current_condition[0]; 64 var temp=cur.temp_C,desc=cur.lang_zh&&cur.lang_zh[0]?cur.lang_zh[0].value:cur.weatherDesc[0].value; 65 var wind=cur.windspeedKmph,humidity=cur.humidity; 66 var html='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð¤ï¸ å京天æ°</div>'; 67 html+='<div style="font-size:14px;color:#333;margin-bottom:6px"><span style="font-size:28px;font-weight:700;color:#C8102E;margin-right:8px;display:inline-block">'+temp+'°C</span> '+desc+'</div>'; 68 html+='<div style="font-size:13px;color:#666;margin-bottom:8px">ð¨ é£é'+wind+'km/h | ð§ æ¹¿åº¦'+humidity+'%</div>'; 69 if(data.weather&&data.weather.length>1){ 70 html+='<div style="font-size:12px;color:#999;margin-top:8px">'; 71 for(var i=1;i<Math.min(3,data.weather.length);i++){var w=data.weather[i]; 72 var fDesc=w.hourly&&w.hourly[4]&&w.hourly[4].lang_zh&&w.hourly[4].lang_zh[0]?w.hourly[4].lang_zh[0].value:'--'; 73 html+='<span style="display:inline-block;margin-right:15px;padding:2px 6px;background:#f5f5f5;border-radius:4px">'+w.date.substr(5)+' '+fDesc+' '+w.mintempC+'~'+w.maxtempC+'°C</span>'; 74 }html+='</div>'; 75 }el.innerHTML=html; 76 }catch(e){el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð¤ï¸ å京天æ°</div><div style="font-size:14px;color:#333;margin-bottom:6px">ææ¶æ æ³è·å天æ°</div>';} 77 }; 78 xhr.onerror=xhr.ontimeout=function(){el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð¤ï¸ å京天æ°</div><div style="font-size:14px;color:#333;margin-bottom:6px">ææ¶æ æ³è·å天æ°</div>';}; 79 xhr.send(); 80} 81 82function initTrafficLimit(){ 83 var el=document.getElementById('bjxxg-traffic');if(!el)return; 84 var now=new Date();var dow=now.getDay(); 85 if(dow==0||dow==6){el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð 仿¥éè¡</div><div style="font-size:18px;color:#52c41a;font-weight:600;padding:15px 0">仿¥ä¸éè¡ï¼å¨æ«ï¼</div>';return;} 86 var baseDate=new Date(2024,3,1);var diffDays=Math.floor((now-baseDate)/(86400000));var diffWeeks=Math.floor(diffDays/7); 87 var rotation=Math.floor(diffWeeks/13)%5; 88 var limits=[[['5','0'],['1','6'],['2','7'],['3','8'],['4','9']],[['4','9'],['5','0'],['1','6'],['2','7'],['3','8']],[['3','8'],['4','9'],['5','0'],['1','6'],['2','7']],[['2','7'],['3','8'],['4','9'],['5','0'],['1','6']],[['1','6'],['2','7'],['3','8'],['4','9'],['5','0']]]; 89 var todayLimit=limits[rotation][dow-1];var y=now.getFullYear(),m=now.getMonth()+1,d=now.getDate(); 90 el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð 仿¥éè¡</div>'+ 91 '<div style="font-size:13px;color:#666;margin-bottom:8px">'+y+'/'+m+'/'+d+'</div>'+ 92 '<div style="font-size:15px;color:#333;margin-bottom:6px;line-height:1.6">éè¡å°¾å·ï¼<span style="font-size:32px;font-weight:700;color:#C8102E;margin:0 4px;display:inline-block">'+todayLimit[0]+'</span> å <span style="font-size:32px;font-weight:700;color:#C8102E;margin:0 4px;display:inline-block">'+todayLimit[1]+'</span></div>'+ 93 '<div style="font-size:12px;color:#999">éè¡æ¶é´ï¼7:00-20:00 äºç¯å </div>'+ '<div style="margin-top:10px;padding:9px 10px;background:#fff2f0;border:1px solid #ffccc7;border-radius:6px;color:#a8071a;font-size:12px;line-height:1.7">è´æï¼æ¤åéè¡å°¾å·æ¾å è½®æ¢æ°æ®ç»´æ¤ä¸åæ¶åºç°é误ï¼
93ç»æ¨åºè¡å¤æé æå½±åï¼æä»¬æ·±è¡¨ææã请以å京交管é¨é¨ææ°å ¬å为åï¼æä»¬ä¹å°æç»äººå·¥å¤æ ¸æ´æ°ã</div>'; 94} 95 96function initHotline(){ 97 var el=document.getElementById('bjxxg-hotline');if(!el)return; 98 var item='display:inline-flex;align-items:center;justify-content:space-between;width:calc(50% - 6px);padding:6px 8px;background:#fafafa;border-radius:6px;box-sizing:border-box'; 99 el.innerHTML='<div style="font-size:16px;font-weight:700;color:#333;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #C8102E">ð 便æ°çµè¯</div>'+ 100 '<div style="display:flex;flex-wrap:wrap;gap:8px">'+ 101 '<div style="'+item+'"><span style="font-size:13px;color:#666">叿°ç线</span><a href="tel:12345" style="font-size:14px;font-weight:600;color:#C8102E;text-decoration:none">12345</a></div>'+ 102 '<div style="'+item+'"><span style="font-size:13px;color:#666">æ¥æä¸å¿</span><a href="tel:120" style="font-size:14px;font-weight:600;color:#C8102E;text-decoration:none">120</a></div>'+ 103 '<div style="'+item+'"><span style="font-size:13px;color:#666">ç«è¦æ¥è¦</span><a href="tel:119" style="font-size:14px;font-weight:600;color:#C8102E;text-decoration:none">119</a></div>'+ 104 '<div style="'+item+'"><span style="font-size:13px;color:#666">交éäºæ </span><a href="tel:122" style="font-size:14px;font-weight:600;color:#C8102E;text-decoration:none">122</a></div>'+ 105 '<div style="'+item+'"><span style="font-size:13px;color:#666">æ¶è´¹æè¯</span><a href="tel:12315" style="font-size:14px;font-weight:600;color:#C8102E;text-decoration:none">12315</a></div>'+ 106 '</div>'; 107} 108 109var moreLink='<div style="margin-top:10px;text-align:right"><a href="URL" style="font-size:13px;color:#C8102E;text-decoration:none">LABEL â</a></div>'; 110function addLinks(){ 111 var map={lunar:['/tools/calendar.html','æ¥ç详æ '],weather:['/tools/weather.html','æ¥ç详æ '],traffic:['/tools/traffic.html','æ¥ç详æ '],hotline:['/tools/hotline.html','æ¥çæ´å¤']}; 112 for(var k in map){ 113 var el=document.getElementById('bjxxg-'+k); 114 if(el){ 115 el.innerHTML+=moreLink.replace('URL',map[k][0]).replace('LABEL',map[k][1]); 116 el.style.cursor='pointer'; 117 (function(url){el.addEventListener('click',function(e){if(e.target.tagName!=='A')window.location.href=url;});})(map[k]); 118 } 119 } 120} 121function init(){initLunar();initWeather();initTrafficLimit();initHotline();setTimeout(addLinks,500);} 122if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);} 123else{init();} 124})();
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.