1const NaoKuo = { 2 // 欢è¿è¯ 3 setWelcome_info: async () => { 4 if (!document.getElementById("welcome-info")) return; 5 6 let ipLoacation = saveToLocal.get('welcome-info'); 7 8 try { 9 if (!ipLoacation) { 10 return new Promise((resolve, reject) => { 11 var script = document.createElement('script'); 12 var url = `https://apis.map.qq.com/ws/location/v1/ip?key=W23BZ-3LICT-LDWXD-LJRGP-F72KJ-JVFLW&output=jsonp`; 13 script.src = url; 14 15 window.QQmap = (data) => { 16 if (data.status === 0) { 17 // console.info(data); 18 ipLoacation = data; 19 saveToLocal.set('welcome-info', ipLoacation, 0.5); 20 NaoKuo.showWelcome(ipLoacation); 21 resolve(); 22 } else { 23 reject(new Error('Failed to fetch location data')); 24 } 25 document.body.removeChild(script); 26 delete window.QQmap; 27 }; 28 document.body.appendChild(script); 29 }); 30 } else { 31 await Promise.resolve(); // ç¡®ä¿å¨åæ¥ä»£ç è·¯å¾ä¸ä¹è½ä¿æå¼æ¥é£æ ¼ 32 NaoKuo.showWelcome(ipLoacation); 33 } 34 } catch (err) { 35 console.error("Error fetching data:", err); 36 } 37 }, 38 //æ ¹æ®ç»çº¬åº¦è®¡ç®ä¸¤ç¹è·ç¦»(ç¹1ç»åº¦,ç¹1纬度,ç¹2ç»åº¦,ç¹2纬度) 39 getDistance: (e1, n1, e2, n2) => { 40 const R = 6371 41 const { sin, cos, asin, PI, hypot } = Math 42 let getPoint = (e, n) => { 43 e *= PI / 180 44 n *= PI / 180 45 return { x: cos(n) * cos(e), y: cos(n) * sin(e), z: sin(n) } 46 } 47 let a = getPoint(e1, n1) 48 let b = getPoint(e2, n2) 49 let c = hypot(a.x - b.x, a.y - b.y, a.z - b.z) 50 let r = asin(c / 2) * 2 * R 51 return Math.round(r); 52 }, 53 //æ ¹æ®å½å®¶ãç份ãåå¸ä¿¡æ¯èªå®ä¹æ¬¢è¿è¯ 54 showWelcome: (ipStore) => { 55 const WelcomeInfo = document.getElementById("welcome-info"), 56 IP = ipStore.result.ip || "æªç¥"; 57 let dist = NaoKuo.getDistance(104.77, 31.48, ipStore.result.location.lng, ipStore.result.location.lat), 58 address, 59 welcome_info; 60 //æ ¹æ®å½å®¶ãç份ãåå¸ä¿¡æ¯èªå®ä¹æ¬¢è¿è¯ 61 //æµ·å¤å°åºä¸æ¯æç份ååå¸ä¿¡æ¯ 62 switch (ipStore.result.ad_info.nation) { 63 case "æ¥æ¬": 64 welcome_info = "ããã«ã¡ã¯ãæ¥æ¬ããæ¥ãåé"; 65 break; 66 case "ç¾å½": 67 welcome_info = "Hello, friend from the United States"; 68 break; 69 case "è±å½": 70 welcome_info = "Hello, friend from the UK"; 71 break; 72 case "ä¿ç½æ¯": 73 welcome_info = "ÐдÑавÑÑвÑйÑе, дÑÑзÑÑ Ð¸Ð· РоÑÑии."; 74 break; 75 case "æ³å½": 76 welcome_info = "Bonjour amis de France"; 77 break; 78 case "å¾·å½": 79 welcome_info = "Hallo, Freund aus Deutschland"; 80 break; 81 case "澳大å©äº": 82 welcome_info = "Hello, friend from Australia"; 83 break; 84 case "å æ¿å¤§": 85 welcome_info = "Hello, friend from Canada"; 86 break; 87 case "ä¸å½": 88 address = ipStore.result.ad_info.province + " " + ipStore.result.ad_info.city; 89 switch (ipStore.result.ad_info.province) { 90 case "å京å¸": 91 address = "å京å¸"; 92 welcome_info = "åââ京ââæ¬¢è¿ä½ "; 93 break; 94 case "天津å¸": 95 address = "天津å¸"; 96 welcome_info = "讲段ç¸å£°å§"; 97 break; 98 case "éåºå¸": 99 address = "éåºå¸"; 100 welcome_info = "é«å¾·å°å¾:å·²å°è¾¾éåºï¼ä¸é¢äº¤ç»ç¾åº¦å°å¾å¯¼èª" 101 break; 102 case "æ²³åç": 103 welcome_info = "å±±å¿å·å·æå£åï¼å¤©ä¸éå ³ãé马éæç±æ¤åï¼æ 鿱山"; 104 break; 105 case "山西ç": 106 welcome_info = "å±å¼åå ·é¿ä¸å°ºï¼å·²å 山河äºç¾ä½"; 107 break; 108 case "å èå¤èªæ²»åº": 109 welcome_info = "天èèï¼éè«è«ï¼é£å¹èä½è§çç¾"; 110 break; 111 case "è¾½å®ç": 112 welcome_info = "ææ³åç¤é¸¡æ¶"; 113 break; 114 case "åæç": 115 welcome_info = "ç¶å éå°±æ¯ä¸åç§ç¤ä¹ç"; 116 break; 117 case "é»é¾æ±ç": 118 welcome_info = "å¾å欢åå°æ»¨å¤§å§é¢"; 119 break; 120 case "䏿µ·å¸": 121 address = "䏿µ·å¸"; 122 welcome_info = "伿å¨ç¥ï¼ä¸å½åªæä¸¤ä¸ªåå¸"; 123 break; 124 case "æ±èç": 125 switch (ipStore.result.ad_info.city) { 126 case "å京å¸": 127 welcome_info = "æ¬¢è¿æ¥èªå®å¾½çå京å¸çå°ä¼ä¼´"; 128 break; 129 case "èå·å¸": 130 welcome_info = "䏿天å ï¼ä¸æèæ"; 131 break; 132 case "æ³°å·å¸": 133 welcome_info = "è¿é乿¯æçæ 乡"; 134 break; 135 default: 136 welcome_info = "æ£è£ æ¯å¿ é¡»è¦æ£è£ ç"; 137 break; 138 } 139 break; 140 case "æµæ±ç": 141 welcome_info = "ä¸é£æ¸ç»¿è¥¿æ¹æ³ï¼éå·²è¿äººæªåå½"; 142 break; 143 case "å®å¾½ç":
144 welcome_info = "èå ä½äºï¼èæ¹èµ·é£"; 145 break; 146 case "ç¦å»ºç": 147 welcome_info = "äºéç½äºé´ï¼å²©åè¿å¸¦å±±"; 148 break; 149 case "æ±è¥¿ç": 150 welcome_info = "è½éä¸å¤é¹é½é£ï¼ç§æ°´å ±é¿å¤©ä¸è²"; 151 break; 152 case "å±±ä¸ç": 153 welcome_info = "饿é½å·ä¹ç¹çï¼ä¸æ³æµ·æ°´æ¯ä¸æ³»"; 154 break; 155 case "æ¹åç": 156 welcome_info = "æ¥ç¢çå¹²é¢"; 157 break; 158 case "æ¹åç": 159 welcome_info = "74751ï¼é¿æ²æ¯å¡å "; 160 break; 161 case "广ä¸ç": 162 welcome_info = "èæ¿æ¥ä¸¤æ¤ç¦å»ºäºº"; 163 break; 164 case "广西壮æèªæ²»åº": 165 welcome_info = "æ¡æå±±æ°´ç²å¤©ä¸"; 166 break; 167 case "æµ·åç": 168 welcome_info = "æè§æ¥åºéç½æµªï¼å¤çäºèµ·æ¶éå "; 169 break; 170 case "åå·ç": 171 welcome_info = "康康å·å¦¹å"; 172 break; 173 case "è´µå·ç": 174 switch (ipStore.result.ad_info.city) { 175 case "å çæ°´å¸": 176 welcome_info = "åé½å çæ°´ï¼æ¨å¥½"; 177 break; 178 case "è´µé³å¸": 179 welcome_info = "ç½ç½è´µé³ï¼æ¨å¥½"; 180 break; 181 case "éµä¹å¸": 182 welcome_info = "éµä¹çº¢åï¼æ¨å¥½"; 183 break; 184 case "å®é¡ºå¸": 185 welcome_info = "å®é¡ºç¦å°ï¼æ¨å¥½"; 186 break; 187 case "æ¯èå¸": 188 welcome_info = "æ¯èå±±æ°´ï¼æ¨å¥½"; 189 break; 190 case "éä»å¸": 191 welcome_info = "é仿¢µåï¼æ¨å¥½"; 192 break; 193 case "é»è¥¿åå¸ä¾æèæèªæ²»å·": 194 welcome_info = "é»è¥¿å飿 ï¼æ¨å¥½"; 195 break; 196 case "é»ä¸åèæä¾æèªæ²»å·": 197 welcome_info = "é»ä¸åæèï¼æ¨å¥½"; 198 break; 199 case "é»åå¸ä¾æèæèªæ²»å·": 200 welcome_info = "é»åç¾æ¯ï¼æ¨å¥½"; 201 break; 202 default: 203 welcome_info = "è å°ï¼å¦çï¼åå¡200"; 204 break; 205 } 206 break; 207 case "äºåç": 208 welcome_info = "çé¾é£èäºç¼ ç»ï¼ä¸ä»å°å·ç´è¸å¤©"; 209 break; 210 case "西èèªæ²»åº": 211 welcome_info = "躺å¨è«è«èåä¸ï¼ä»°æè天"; 212 break; 213 case "é西ç": 214 welcome_info = "æ¥ä»½èåé¢å é¦"; 215 break; 216 case "çèç": 217 welcome_info = "ç¾ç¬ä½é¡»æ¨æ¨æ³ï¼æ¥é£ä¸åº¦çé¨å ³"; 218 break; 219 case "éæµ·ç": 220 welcome_info = "çèå¹²åèé ¸å¥¶é½å¥½å¥½å"; 221 break; 222 case "å®å¤åæèªæ²»åº": 223 welcome_info = "å¤§æ¼ å¤çç´ï¼é¿æ²³è½æ¥å"; 224 break; 225 case "æ°çç»´å¾å°èªæ²»åº": 226 welcome_info = "驼éå¤éä¸ç»¸è·¯ï¼è¡é©¬ç¹é»åæ±é£"; 227 break; 228 case "å°æ¹¾ç": 229 welcome_info = "æå¨è¿å¤´ï¼å¤§éå¨é£å¤´"; 230 break; 231 case "馿¸¯ç¹å«è¡æ¿åº": 232 address = "馿¸¯ç¹å«è¡æ¿åº"; 233 welcome_info = "æ°¸å®è´¼ææ®çå°é¬¼åï¼è¿å»å éå²ç"; 234 break; 235 case "æ¾³é¨ç¹å«è¡æ¿åº": 236 address = "æ¾³é¨ç¹å«è¡æ¿åº"; 237 welcome_info = "æ§æè·å®ï¼å¨çº¿åç"; 238 break; 239 default: 240 welcome_info = "带æå»ä½ çåå¸ééå§"; 241 break; 242 } 243 break; 244 default: 245 welcome_info = "带æå»ä½ çå½å®¶ççå§"; 246 break; 247 } 248 //夿æ¶é´ 249 let timeChange, 250 date = new Date(); 251 if (date.getHours() >= 5 && date.getHours() < 11) timeChange = "<span>ð¤ï¸ä¸å好ï¼ä¸æ¥ä¹è®¡å¨äºæ¨</span>"; 252 else if (date.getHours() >= 11 && date.getHours() < 13) timeChange = "<span>âï¸ä¸å好ï¼è¯¥æ¸é±¼ååé¥äº</span>"; 253 else if (date.getHours() >= 13 && date.getHours() < 15) timeChange = "<span>ðä¸åå¥½ï¼ææå°ç¡ä¸ªåè§å§</span>"; 254 else if (date.getHours() >= 15 && date.getHours() < 16) timeChange = "<span>
254ðµä¸ç¹å å¦ï¼é¥®è¶å å¦</span>"; 255 else if (date.getHours() >= 16 && date.getHours() < 19) timeChange = "<span>ðå¤é³æ é好ï¼åªæ¯è¿é»æ</span>"; 256 else if (date.getHours() >= 19 && date.getHours() < 24) timeChange = "<span>ðæä¸å¥½ï¼å¤çæ´»å¨èµ·æ¥</span>"; 257 else timeChange = "ð夿·±äºï¼æ©ç¹ä¼æ¯ï¼å°ç¬å¤"; 258 259 //èªå®ä¹ææ¬éè¦æ¾çä½ç½® 260 WelcomeInfo && (WelcomeInfo.innerHTML = `ðæ¬¢è¿æ¥èª <strong>${address}</strong> çå°ä¼ä¼´<br> 261 ð<strong>${welcome_info}ï¼</strong><br> 262 ðºï¸æ¨è·ç¦» <strong>槿鸢</strong> 约æ <strong>${dist}</strong> å ¬éï¼<br> 263 å½åIPå°å为ï¼<br> 264 <strong style="font-size:12px;"><psw>${IP}</psw></strong><br> 265 <strong>${timeChange}ï¼</strong>`); 266 267 }, 268}
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.