PageSourceSearch

https://azzlantern.github.io/js/customutils.js

js azzlantern.github.io collected 2026-10-03 08:41:07 UTC 10,404 bytes, 268 lines download raw bytes

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.