青序栈 https://qxzhan.cn/ zh-CN 青序栈:代码与远方交汇的小站。这里记录网站部署的实战经验、技术学习的点滴思考,也分享旅途中的风景与感悟。欢迎驻足,交换故事。 Sat, 30 Aug 2025 17:07:27 +0800 Sat, 30 Aug 2025 17:07:27 +0800 本站2025年9月告知 https://qxzhan.cn/post/202509.php https://qxzhan.cn/post/202509.php Sat, 30 Aug 2025 17:07:27 +0800 筱序二十

青序栈文官

无锡中考竞争激烈,2024年报名人数61,250人,普高录取率65.03%。热门高中分数线普遍在700分以上,分配生分数线逐年上升。作者即将升入初三,面临巨大学业压力,更新频率将减少,计划1月1日更新。作者决心努力备考,期待明年取得好成绩。

栈主从今年9月1日开始就要成为一名苦哈哈的初三“牲”了。
无锡这里中升高压力其实很大的,满分750分,600分左右只是最烂高中的录取线,下表是无锡2024的一些中考数据。

基本报考情况

项目数据
全市报名人数61,250 人(同比增加 1,908 人)
市区报名人数36,941 人(同比增加约 900 人)
考点 / 考场数140 个考点、2,113 个考场

普高招生计划与录取率

项目市区数据全市趋势
普高招生计划24,022 个(同比增加 2,315 个)新增梅村高中空港分校等 3 所新校,全市普高学位持续扩大
公办普高计划20,108 个(占市区普高计划 54.43%)-
普高录取率65.03%(同比提升 5.01 个百分点)市区普高录取率接近 68%,为近年最大增幅
中职招生计划提前批次部分专业分数线 582-596 分,征求志愿阶段提供约 1,300 个剩余名额-

热门高中录取分数线

学校名称统招一志愿分数线分配生投档控制线语数总分要求(统招)
天一中学704.5 分锡山区所属初中划定262.5 分
锡山高中701.5 分惠山区所属初中划定262.5 分
市一中665 分665 分240.5 分
辅仁高中676 分655 分246.5 分
梅村高中673 分655 分254 分
太湖高中615.5 分607 分244 分
真就全国中考看江苏,江苏中考看无锡

可以看到,要想上重高,得有个700+的成绩,这毫无疑问是很高的。

我所在的初中有江苏省天一高中分配名额,情况好些。

年份最低分数人数
2023660分34人
2021473分29人
2020467分33人

差不多每年都有个30分配生名额

短短几年,分数线几乎直线上升200分啊,内卷十分可怕啊Σ(っ °Д °;)っ

估计等我中考分数线更可怕(。•ˇ‸ˇ•。)

新学期

2025-2026学年,上学期有长达150天,但下学期只有100多天,差不多寒假结束,就要百日誓师大会了,时间很紧张,压力Up Up Up啊 ╮(╯▽╰)╭
还换了新班主任、数学老师、语文老师。

本站规划

因为学业压力,更新频率会骤减,尽量1月1更

也知道能不能做到

小伙伴们的信息栈主可能不能及时回复了,轻点喷。

结语

等明年盛夏,一定带着满意的成绩回来,也补上和大家错过的互动。初三冲啦,咱们考场见,也等我的更新呀~

]]>
0 https://qxzhan.cn/post/202509.php#comments https://qxzhan.cn/feed/
Joe再续前缘魔改(四) https://qxzhan.cn/post/Joemg4.php https://qxzhan.cn/post/Joemg4.php Mon, 25 Aug 2025 20:23:00 +0800 筱序二十

青序栈文官

文章介绍了如何为网站添加个性化定位欢迎信息功能,主要使用JavaScript代码实现。通过调用IP查询API获取用户位置信息,并根据用户所在地显示不同的欢迎语和距离提示。代码还包含根据本地时间切换欢迎语的功能,并适配了IPv6地址显示。最后,通过在HTML中添加自定义侧边栏代码,即可实现前端效果。

之前逛青桔气球,发现有个侧边栏欢迎卡片,蛮喜欢的,差不多断断续续适配十天左右完成了

JavaScript主要代码

筱序二十の代码分享获取,也可从本文获取

{hide}
// 进行 fetch 请求

fetch('https://api.nsmao.net/api/ip/query?key=你的API密钥,从https://api.nsmao.net申请')
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json();
    })
    .then(data => {
        ipLocation = data;
        if (isHomePage()) {
            showWelcome();
        }
    })
    .catch(error => console.error('Error:', error));

function getDistance(e1, n1, e2, n2) {
    const R = 6371;
    const { sin, cos, asin, PI, hypot } = Math;
    let getPoint = (e, n) => {
        e *= PI / 180;
        n *= PI / 180;
        return { x: cos(n) * cos(e), y: cos(n) * sin(e), z: sin(n) };
    };

    let a = getPoint(e1, n1);
    let b = getPoint(e2, n2);
    let c = hypot(a.x - b.x, a.y - b.y, a.z - b.z);
    let r = asin(c / 2) * 2 * R;
    return Math.round(r);
}

function showWelcome() {
    if (!ipLocation || !ipLocation.data) {
        console.error('ipLocation data is not available.');
        return;
    }

    let dist = getDistance(120.3074357, 31.4933074, ipLocation.data.lng, ipLocation.data.lat); 
    let pos = ipLocation.data.country;
    let ip = ipLocation.ip;
    let posdesc;

    // 新增ipv6显示为指定内容
    if (ip.includes(":")) {
        ip = "<br>好复杂,咱看不懂~(ipv6)";
    }
    
    // 以下的代码需要根据新API返回的结果进行相应的调整
    switch (ipLocation.data.country) {
        case "日本":
            posdesc = "よろしく,一起去看樱花吗";
            break;
        case "美国":
            posdesc = "Let us live in peace!";
            break;
        case "英国":
            posdesc = "想同你一起夜乘伦敦眼";
            break;
        case "俄罗斯":
            posdesc = "干了这瓶伏特加!";
            break;
        case "法国":
            posdesc = "C'est La Vie";
            break;
        case "德国":
            posdesc = "Die Zeit verging im Fluge.";
            break;
        case "澳大利亚":
            posdesc = "一起去大堡礁吧!";
            break;
        case "加拿大":
            posdesc = "拾起一片枫叶赠予你";
            break;
        case "中国":
            pos = ipLocation.data.prov + " " + ipLocation.data.city + " " + ipLocation.data.district;
            switch (ipLocation.data.prov) {
                case "北京":
                    posdesc = "北——京——欢迎你~~~";
                    break;
                case "上海":
                    posdesc = "走在外滩,感受历史与现代的交融。";
                    break;
                case "广东":
                    switch (ipLocation.data.city) {
                        case "广州":
                            posdesc = "看小蛮腰,喝早茶了嘛~";
                            break;
                        case "深圳":
                            posdesc = "今天你逛商场了嘛~";
                            break;
                        case "珠海":
                            posdesc = "浪漫之城珠海,海风轻拂。";
                            break;
                        case "东莞":
                            posdesc = "东莞,制造业之都,经济活跃。";
                            break;
                        case "佛山":
                            posdesc = "佛山,武术之乡,陶瓷文化深厚。";
                            break;
                        default:
                            posdesc = "带你感受广东的热情与美食!";
                            break;
                    }
                    break;
                case "浙江":
                    switch (ipLocation.data.city) {
                        case "杭州":
                            posdesc = "西湖美景,三月天~";
                            break;
                        case "宁波":
                            posdesc = "来宁波,感受大海的气息。";
                            break;
                        case "温州":
                            posdesc = "温州人杰地灵,商贸繁荣。";
                            break;
                        case "绍兴":
                            posdesc = "绍兴,酒乡文化,古韵悠长。";
                            break;
                        case "湖州":
                            posdesc = "湖州,太湖之滨,风景如画。";
                            break;
                        default:
                            posdesc = "这里是浙江,充满江南的韵味!";
                            break;
                    }
                    break;
                case "四川":
                    switch (ipLocation.data.city) {
                        case "成都":
                            posdesc = "宽窄巷子,成都慢生活。";
                            break;
                        case "绵阳":
                            posdesc = "享受科技城的宁静与创新。";
                            break;
                        case "自贡":
                            posdesc = "自贡的盐文化与灯会,独具魅力。";
                            break;
                        case "德阳":
                            posdesc = "德阳,历史悠久,文化底蕴深厚。";
                            break;
                        case "乐山":
                            posdesc = "乐山大佛,世界文化遗产。";
                            break;
                        default:
                            posdesc = "来四川,品麻辣火锅,赏壮丽山河。";
                            break;
                    }
                    break;
                case "福建":
                    switch (ipLocation.data.city) {
                        case "厦门":
                            posdesc = "鼓浪屿听海,厦门美食让人流连忘返。";
                            break;
                        case "福州":
                            posdesc = "有福之州,来此感受千年古城。";
                            break;
                        case "泉州":
                            posdesc = "泉州,海上丝绸之路的起点。";
                            break;
                        case "漳州":
                            posdesc = "漳州,古城文化与美食的结合。";
                            break;
                        case "南平":
                            posdesc = "南平,武夷山的自然风光。";
                            break;
                        default:
                            posdesc = "福建山水如画,美景无处不在。";
                            break;
                    }
                    break;
                case "山东":
                    switch (ipLocation.data.city) {
                        case "青岛":
                            posdesc = "来青岛喝啤酒,看大海吧!";
                            break;
                        case "济南":
                            posdesc = "泉城济南,四面荷花三面柳。";
                            break;
                        case "烟台":
                            posdesc = "烟台的葡萄酒与海鲜,令人陶醉。";
                            break;
                        case "潍坊":
                            posdesc = "潍坊,风筝之都,文化底蕴深厚。";
                            break;
                        case "德州":
                            posdesc = "德州,扒鸡闻名,文化悠久。";
                            break;
                        default:
                            posdesc = "山东好客,欢迎来感受齐鲁文化!";
                            break;
                    }
                    break;
                case "江苏":
                    switch (ipLocation.data.city) {
                        case "南京":
                            posdesc = "六朝古都南京,历史与现代的碰撞。";
                            break;
                        case "苏州":
                            posdesc = "来苏州,感受园林之美。";
                            break;
                        case "无锡":
                            posdesc = "无锡太湖美景,灵山大佛令人心旷神怡。";
                            break;
                        case "常州":
                            posdesc = "常州,文化与科技的交汇点。";
                            break;
                        case "南通":
                            posdesc = "南通,海门潮涌,文化底蕴深厚。";
                            break;
                        default:
                            posdesc = "水乡泽国,江南佳丽地。";
                            break;
                    }
                    break;
                case "河北":
                    posdesc = "燕赵大地,英雄辈出的河北,等你探索!";
                    break;
                case "河南":
                    switch (ipLocation.data.city) {
                        case "郑州":
                            posdesc = "中原大地,郑州是交通枢纽与历史重镇。";
                            break;
                        case "洛阳":
                            posdesc = "千年古都洛阳,牡丹花开的城。";
                            break;
                        case "开封":
                            posdesc = "开封,古都文化与美食的汇聚地。";
                            break;
                        case "新乡":
                            posdesc = "新乡,历史悠久,文化底蕴深厚。";
                            break;
                        case "焦作":
                            posdesc = "焦作,云台山的自然风光。";
                            break;
                        default:
                            posdesc = "这里是河南,历史悠久文化灿烂。";
                            break;
                    }
                    break;
                case "湖南":
                    switch (ipLocation.data.city) {
                        case "长沙":
                            posdesc = "热辣长沙,吃小龙虾逛黄兴路步行街。";
                            break;
                        case "岳阳":
                            posdesc = "岳阳楼,洞庭湖的美景尽收眼底。";
                            break;
                        case "株洲":
                            posdesc = "株洲,火车制造业的发源地。";
                            break;
                        case "湘潭":
                            posdesc = "湘潭,伟人故里,文化底蕴深厚。";
                            break;
                        default:
                            posdesc = "湖南,烟雨迷蒙的湘江流过这片土地。";
                            break;
                    }
                    break;
                case "湖北":
                    switch (ipLocation.data.city) {
                        case "武汉":
                            posdesc = "来大武汉,过长江大桥,吃热干面!";
                            break;
                        case "宜昌":
                            posdesc = "三峡大坝,壮丽的自然奇观。";
                            break;
                        case "荆州":
                            posdesc = "荆州,历史文化名城,古韵悠长。";
                            break;
                        case "襄阳":
                            posdesc = "襄阳,古城文化与美食的结合。";
                            break;
                        default:
                            posdesc = "湖北,长江中游的明珠,风景秀丽。";
                            break;
                    }
                    break;
                case "安徽":
                    switch (ipLocation.data.city) {
                        case "合肥":
                            posdesc = "创新之城合肥,科教文化汇聚地。";
                            break;
                        case "黄山":
                            posdesc = "黄山,天下第一奇山,风景如画。";
                            break;
                        case "芜湖":
                            posdesc = "芜湖,长江之畔,文化底蕴深厚。";
                            break;
                        case "马鞍山":
                            posdesc = "马鞍山,文化与自然的完美结合。";
                            break;
                        default:
                            posdesc = "安徽山水,黄山、九华山欢迎你。";
                            break;
                    }
                    break;
                case "广西":
                    switch (ipLocation.data.city) {
                        case "桂林":
                            posdesc = "桂林山水甲天下,风景如画。";
                            break;
                        case "南宁":
                            posdesc = "绿城南宁,宜居宜游。";
                            break;
                        case "柳州":
                            posdesc = "柳州的螺蛳粉,独具风味。";
                            break;
                        case "防城港":
                            posdesc = "防城港,海洋资源丰富,风景迷人。";
                            break;
                        default:
                            posdesc = "广西山清水秀,民俗风情浓郁。";
                            break;
                    }
                    break;
                case "贵州":
                    switch (ipLocation.data.city) {
                        case "贵阳":
                            posdesc = "贵阳,山城之美,民族风情浓郁。";
                            break;
                        case "遵义":
                            posdesc = "遵义,红色之城,历史悠久。";
                            break;
                        case "安顺":
                            posdesc = "安顺,黄果树瀑布的故乡,风景如画。";
                            break;
                        case "毕节":
                            posdesc = "毕节,拥有丰富的自然资源与人文景观。";
                            break;
                        case "六盘水":
                            posdesc = "六盘水,凉爽的夏天,避暑胜地。";
                            break;
                        case "铜仁":
                            posdesc = "铜仁,秀美的山水与独特的民族文化。";
                            break;
                        case "凯里":
                            posdesc = "凯里,苗族文化的发源地,风情独特。";
                            break;
                        default:
                            posdesc = "来贵州,品茅台,赏黄果树瀑布。";
                            break;
                    }
                    break;
                case "云南":
                    switch (ipLocation.data.city) {
                        case "昆明":
                            posdesc = "春城昆明,四季如春,风景秀丽。";
                            break;
                        case "大理":
                            posdesc = "苍山洱海,大理古城,你来了就不想走。";
                            break;
                        case "丽江":
                            posdesc = "丽江古城,纳西文化的瑰宝。";
                            break;
                        case "西双版纳":
                            posdesc = "西双版纳,热带雨林的奇妙之地。";
                            break;
                        default:
                            posdesc = "云南风景独特,风情万种。";
                            break;
                    }
                    break;
                case "西藏":
                    switch (ipLocation.data.city) {
                        case "拉萨":
                            posdesc = "拉萨,西藏的首府,布达拉宫的故乡。";
                            break;
                        case "日喀则":
                            posdesc = "日喀则,历史悠久的文化名城。";
                            break;
                        case "林芝":
                            posdesc = "林芝,素有'西藏江南'之称,风景如画。";
                            break;
                        case "昌都":
                            posdesc = "昌都,历史悠久,文化底蕴深厚。";
                            break;
                        case "山南":
                            posdesc = "山南,藏文化的发源地之一。";
                            break;
                        case "那曲":
                            posdesc = "那曲,草原风光,牧民生活的地方。";
                            break;
                        case "阿里":
                            posdesc = "阿里,神秘的西部,拥有壮丽的自然景观。";
                            break;
                        default:
                            posdesc = "西藏,神秘而纯净,等待你的探索。";
                            break;
                    }
                    break;
                case "新疆维吾尔":
                    posdesc = "辽阔新疆,民族风情与壮丽景观并存。";
                    switch (ipLocation.data.city) {
                        case "乌鲁木齐":
                            posdesc = "乌鲁木齐,天山脚下的城市,文化多元。";
                            break;
                        case "喀什":
                            posdesc = "喀什,古丝绸之路的重要节点,历史悠久。";
                            break;
                        case "克拉玛依":
                            posdesc = "克拉玛依,石油之城,经济发展迅速。";
                            break;
                        case "吐鲁番":
                            posdesc = "吐鲁番,火焰山的故乡,葡萄之乡。";
                            break;
                        case "哈密":
                            posdesc = "哈密,哈密瓜的发源地,风景如画。";
                            break;
                        case "博乐":
                            posdesc = "博乐,草原风光,民族文化交融。";
                            break;
                        case "阿克苏":
                            posdesc = "阿克苏,苹果之乡,风景秀丽。";
                            break;
                        case "和田":
                            posdesc = "和田,玉石之乡,历史文化深厚。";
                            break;
                        default:
                            posdesc = "新疆的城市各具特色,等待你的探索。";
                            break;
                    }
                    break;
                case "内蒙古":
                    switch (ipLocation.data.city) {
                        case "呼和浩特":
                            posdesc = "呼和浩特,内蒙古的首府,历史悠久。";
                            break;
                        case "包头":
                            posdesc = "包头,钢铁之城,经济发展迅速。";
                            break;
                        case "乌兰察布":
                            posdesc = "乌兰察布,草原文化与现代城市的结合。";
                            break;
                        case "赤峰":
                            posdesc = "赤峰,拥有丰富的自然资源与人文景观。";
                            break;
                        case "通辽":
                            posdesc = "通辽,草原文化的发源地,风情独特。";
                            break;
                        case "鄂尔多斯":
                            posdesc = "鄂尔多斯,现代化城市与草原文化的交融。";
                            break;
                        case "巴彦淖尔":
                            posdesc = "巴彦淖尔,黄河之畔,风景如画。";
                            break;
                        case "锡林郭勒":
                            posdesc = "锡林郭勒,草原辽阔,马背上的民族风情。";
                            break;
                        default:
                            posdesc = "草原辽阔的内蒙古,等你来策马奔腾。";
                            break;
                    }
                    break;
                case "宁夏回族":
                    posdesc = "宁夏,塞上江南,黄河流经的美丽地方。";
                    break;
                case "海南":
                    posdesc = "阳光、沙滩、椰风海韵,欢迎来海南度假。";
                    break;
                case "陕西":
                    switch (ipLocation.data.city) {
                        case "西安":
                            posdesc = "西安,古都文化与兵马俑的故乡。";
                            break;
                        case "咸阳":
                            posdesc = "咸阳,历史悠久,文化底蕴深厚。";
                            break;
                        default:
                            posdesc = "陕西,历史与文化的交汇之地。";
                            break;
                    }
                    break;
                case "甘肃":
                    switch (ipLocation.data.city) {
                        case "兰州":
                            posdesc = "兰州,黄河之滨,牛肉面闻名。";
                            break;
                        case "天水":
                            posdesc = "天水,历史悠久,文化底蕴深厚。";
                            break;
                        default:
                            posdesc = "甘肃,丝绸之路的重要节点。";
                            break;
                    }
                    break;
                case "青海":
                    switch (ipLocation.data.city) {
                        case "西宁":
                            posdesc = "西宁,青海湖的门户,风景如画。";
                            break;
                        default:
                            posdesc = "青海,湖泊与草原的美丽结合。";
                            break;
                    }
                    break;
                case "吉林":
                    switch (ipLocation.data.city) {
                        case "长春":
                            posdesc = "长春,汽车城,文化底蕴深厚。";
                            break;
                        case "吉林市":
                            posdesc = "吉林市,松花江畔,风景如画。";
                            break;
                        default:
                            posdesc = "吉林,冰雪与文化的交融之地。";
                            break;
                    }
                    break;
                case "黑龙江":
                    switch (ipLocation.data.city) {
                        case "哈尔滨":
                            posdesc = "哈尔滨,冰雪之城,俄罗斯风情浓厚。";
                            break;
                        case "齐齐哈尔":
                            posdesc = "齐齐哈尔,黑龙江的明珠,文化底蕴深厚。";
                            break;
                        default:
                            posdesc = "黑龙江,冰雪与文化的交汇之地。";
                            break;
                    }
                    break;
                default:
                    posdesc = "带我去你的城逛逛吧!";
                    break;
            }
            break;
        default:
            posdesc = "带我去你的国家逛逛吧";
            break;
    }

    // 根据本地时间切换欢迎语
    let timeChange;
    let date = new Date();
    if (date.getHours() >= 5 && date.getHours() < 11) timeChange = "<span>🌤️ 早上好,一日之计在于晨</span>";
    else if (date.getHours() >= 11 && date.getHours() < 13) timeChange = "<span>☀️ 中午好,记得午休喔~</span>";
    else if (date.getHours() >= 13 && date.getHours() < 17) timeChange = "<span>🕞 下午好,饮茶先啦!</span>";
    else if (date.getHours() >= 17 && date.getHours() < 19) timeChange = "<span>🚶‍♂️ 即将下班,记得按时吃饭~</span>";
    else if (date.getHours() >= 19 && date.getHours() < 24) timeChange = "<span>🌙 晚上好,夜生活嗨起来!</span>";
    else timeChange = "夜深了,早点休息,少熬夜";

    let welcomeInfoElement = document.getElementById("welcome-info");

    if (welcomeInfoElement) {
    
    welcomeInfoElement.style.padding = "15px";
    welcomeInfoElement.style.borderRadius = "8px";
    welcomeInfoElement.style.boxShadow = "0 2px 4px rgba(0,0,0,0.1)"; // 可选:添加轻微阴影增强立体感
    welcomeInfoElement.style.margin = "10px 0"; // 可选:添加上下外边距
    welcomeInfoElement.style.lineHeight = "1.6"; // 可选:优化行间距
    
    welcomeInfoElement.innerHTML =
            `欢迎来自 <b><span style="color: var(--efu-main)">${pos}</span></b> 的小友💖<br>当前位置距博主约 <b><span style="color: var(--efu-main)">${dist.toFixed(2)}</span></b> 公里!<br>${timeChange}<br>Tip:<b><span style="font-size: 15px;">${posdesc}</span></b>`;
    } else {
        console.log("Pjax无法获取元素");
    }
}

// Pjax完成页面切换的事件回调处理
function handlePjaxComplete() {
    if (isHomePage()) {
        showWelcome();
    }
}

function isHomePage() {
    return window.location.pathname === '/' || window.location.pathname === '/index.html';
}


// 添加pjax:complete事件监听
window.onload = function () {
    if (isHomePage()) {
        showWelcome();
    }
    document.addEventListener("pjax:complete", handlePjaxComplete);
};

{/hide}

请将 key?= 后内容替换为你自己的key,申请地址Nice猫

主题修改

添加自定义侧边栏代码

<div id="welcome-info"></div>

mer33xhk.png

现在你就可以正常使用啦!

写文的时候注意到原作者新适配了IPV6和部分城市匹配,JS代码已为最新,请放心食用。

前端效果预览

mer2yxe7.png

每日精选

bizhi

参考文章

Hexo侧边栏添加个性定位欢迎信息

]]>
1 https://qxzhan.cn/post/Joemg4.php#comments https://qxzhan.cn/feed/
使用Eo Pages免费搭建随机图API! https://qxzhan.cn/post/eoimgapi.php https://qxzhan.cn/post/eoimgapi.php Mon, 25 Aug 2025 10:40:00 +0800 筱序二十

青序栈文官

使用Eo Pages搭建随机图API,Fork Acgapi仓库,选择加速区域,部署main分支。访问路径包括/get(双端自适应)、/pc(电脑端)和/pe(移动端),注意调整图片存储和数量。
开学在即,有挺多事情处理,淡更了,抱歉。

琢磨Bing随即图的时候诞生一个念头,既然Bing每日一图可以随机,那为什么不可以搭建属于自己的随机图片API呢?!

说干就干!

其实原理都差不多

Fork仓库Acgapi

Eo Pages 创建项目-->导入Git仓库

meqgfvtl.png

加速区域根据你的域名情况选择

是否ICP备案服务区域加速区域选择
{x}中国大陆中国大陆可用区
{x}全球全球可用区(含中国大陆)
{ }{ }全球可用区(不含中国大陆)

生产分支选择'main',点击开始部署即可

使用教程

返回内容访问路径
双端自适应/get
电脑端/pc
移动端/pe

注意事项

电脑端图片存储在'acg_pc',移动端在'acg_m'。默认获取图片名称需为pic_xxxx,格式为png,新增或减少图片需调整'get.js'、'pc.js'和'pe.js'里的'maxImages'值,否则会有图片不存在、无法随机到的各种问题。

随机ACG图片 - 筱序二十维护 - Github仓库

StarsLicense
ACG

]]>
0 https://qxzhan.cn/post/eoimgapi.php#comments https://qxzhan.cn/feed/
Bing每日图片部署教程 https://qxzhan.cn/post/bingpic.php https://qxzhan.cn/post/bingpic.php Mon, 25 Aug 2025 10:28:00 +0800 筱序二十

青序栈文官

本文介绍了如何部署Bing每日图片项目,包括在GitHub上Fork原仓库、启用GitHub Actions工作流、部署前端页面至Vercel或Netlify等平台,并添加了随机图片功能。通过新建get.js文件并运行工作流,可在部署域名下获取随机图片。
原项目已更新API功能,可使用!

最近逛柳神博客,发现不少有意思的项目,比如opengist等等,这期就来讲讲其中之一的Bing每日图片。

如何部署?

Github仓库

Fork原仓库到你的账户

meqg7tcw.png

启用Github Actions工作流

meqg8rvq.png

将 Daily Get Bing Image 从禁用改为启用

meqg9uf1.png

点击运行,显示成功就完成了第一步!

meqgeohh.png

部署前端页面

可以选择诸如VercelNetlify这类平台免费部署。

本文使用EdgeOne Pages进行演示。

创建项目-->导入Git仓库

meqgfvtl.png

加速区域根据你的域名情况选择

是否ICP备案服务区域加速区域选择
{x}中国大陆中国大陆可用区
{x}全球全球可用区(含中国大陆)
{ }{ }全球可用区(不含中国大陆)

生产分支选择'page',点击开始部署即可

meqgpknk.png

栈主的功能添加

从Bing抓取了这么多图片,要是只能动态获取每日图片,有点浪费了,在深入研究了Eo Pages函数功能后,栈主添加了随机图片功能!

在github仓库的main分支/page/functions新建get.js文件

meqhn567.png

代码内容从筱序二十の代码分享获取

新运行一个工作流,等待运行、部署完成

meqhudxp.png
meqhv0rt.png

访问你的部署'域名/get'即可获取随机图片。

写文的时候才注意到原作者已经新增了/api/daily和random功能,但栈主个人觉得既然有了/daily.jpeg和/daily.webp等直链更新/api/daily显得不那么重要,目前原作者的random函数并不能运行,故观望。

Bing随机一图 - 筱序二十维护 - Github仓库

bing随机图

参考项目

Daily Bing Image

]]>
1 https://qxzhan.cn/post/bingpic.php#comments https://qxzhan.cn/feed/
震惊,共青团群还有h片? https://qxzhan.cn/post/212.php https://qxzhan.cn/post/212.php Sat, 16 Aug 2025 21:48:00 +0800 筱序二十

青序栈文官

偶然发现有人在共青团群分享h片,引起群成员震惊。对此,我戏称官场的进步话语。

无聊刷刷B站,偶然看到同学QQ发的消息,以为只是什么“福利”呢

后来看到团员群炸了锅,以为什么新指示,点进去一看,齐刷刷的“?”,往上翻翻,

不是!从这来的“福利”啊!????

meeb84ti.png

对此,我只能说

小同志,我封的是群。

你封的又是什么呢?
]]>
0 https://qxzhan.cn/post/212.php#comments https://qxzhan.cn/feed/
互联网不是法外之地! https://qxzhan.cn/post/cyberpolice.php https://qxzhan.cn/post/cyberpolice.php Fri, 15 Aug 2025 12:05:00 +0800 筱序二十

青序栈文官

互联网并非法外之地,开盒等违法犯罪行为将承担严重后果。侵犯公民个人信息、侮辱诽谤、非法利用信息网络等行为均构成犯罪,需移交公安处理。网络交易需谨慎,避免诈骗。呼吁遵守法律,维护网络秩序。

究极叠甲

本站坚持中国共产党领导,践行社会主义核心价值观,对违法、犯罪事宜持鄙夷态度,本文仅对此类行为进行公开公正说明!

开h行为

某些不懂法律,只凭自己的一腔愤怒或主观意见进行开户行为并传播,已经严重违法了中国法律,不要以为未成年的身份能护着你一辈子。

特别点名批评

罪人堂
及2054911074

已经举报至中华人民共和国公安部

meca6rbw.png
mecb0poh.png

一切违法、犯罪行为应移交公安处理,而不是自己进行违法犯罪行为!

刑事责任

1.侵犯公民个人信息罪

只要非法获取、出售或向不特定多数人“曝光”他人姓名、住址、身份证号、行踪轨迹等信息,达到“情节严重”即可入罪:

• 敏感信息(行踪、征信、财产)50条以上;
• 一般信息500条或5000条以上;
• 违法所得5000元以上;
• 或者虽数量未达标准,但造成恶劣影响、引发网暴、线下滋扰的,可用“其他情节严重”兜底条款追责。
{dotted startColor="#ff6c6c" endColor="#1989fa"/}

2.侮辱罪、诽谤罪、寻衅滋事罪

在“开盒”后编造不实信息、煽动辱骂、P图侮辱的,可分别构成侮辱罪、诽谤罪;起哄闹事、严重扰乱网络秩序的可认定为寻衅滋事罪。

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

3.非法利用信息网络罪

建立“开盒群组”“开盒网站”供他人发布信息,或篡改信息引导网暴的,可定此罪。

{lamp/}

行政责任

1.治安处罚:《治安管理处罚法》第42条:散布他人隐私,可处5~10日拘留或500元以下罚款。

{lamp/}

民事责任

1.侵犯隐私权、个人信息权益

《民法典》第1033条、第1034条:禁止非法收集、处理、公开他人私密信息;受害人可要求停止侵害、赔礼道歉、精神损害赔偿。

判例:重庆初中生小兰被同学匿名“开盒”致重度抑郁,监护人被判赔精神损害抚慰金

2.侵犯名誉权

若公开内容含侮辱、诽谤,造成社会评价降低的,可同时主张名誉侵权赔偿

网络交易

网络交易由于平台监管不完善等,栈主建议走咸鱼这类专业的APP。

亲历在b站买edgeone兑换码被骗,UID 19117601。QQ买SVIP被骗。

这种靠客服很难找回,只能自己咽下去。

本文涉及的人、站,请各位不要攻击,不要自己也成为其中一员。

]]>
1 https://qxzhan.cn/post/cyberpolice.php#comments https://qxzhan.cn/feed/
记网站攻击 https://qxzhan.cn/post/sergg.php https://qxzhan.cn/post/sergg.php Sat, 09 Aug 2025 19:45:00 +0800 筱序二十

青序栈文官

网站于2025年8月9日遭受持续3秒的CC攻击,带宽达3.51 Mbps,流量662 MB,攻击次数4.4万,主要来自中国大陆陕西省宝鸡市IPv6地址。服务器宕机后经工程师重启恢复,数据通过WebDAV备份成功恢复。已将防御方式从JS质询改为拦截,目前CDN配置为丘盾加速大陆流量,EO防护海外并关闭IPv6访问。

别来无恙啊,各位

最近开始了江南学子不可逃避的弯道超车环节,一天上6节,没太多时间打理网站,见谅~

攻击简介

时间

2025-08-09 11:12:05开始,2025-08-09 11:12:08结束。

规模

宽带3.51 Mbps,流量662 MB,攻击次数4.4万

其中EdgeOne拦截了2.5万。

攻击者情况

地域

中国大陆

me51aze0.png

使用网络

中国电信家宽,ipv6

攻击地址

均来自IPV6 240e:358:2320:bd00:c83d:1a30:45e4:bc89,使用ipw.cn查询获得攻击者地址为中国 陕西省 宝鸡市 渭滨区 泥沟湾附近。

me51kjs9.png

事后处理

服务器宕机

服务器SSH无法连接,IDC控制台丢失连接,无法手动重启。

还是联系了工程师客服进行了手动重启,处理速度很快,为云驰互联点赞!

me51onzk.png

数据盘

数据库在服务器宕机后挂载失败,重新挂载需要里面的数据清空,还好我几天前折腾了webdav远程备份,不到20分钟就恢复了所有网站!

过几天写写文章教程,(远程)备份很重要啊!

防御力度分析

处置方式全部是JS质询,导致可以一直攻击,目前已经更换为拦截

目前CDN配置

使用丘盾为大陆提供加速,EO防护海外,均关闭v6访问。

每日精选

nice

]]>
2 https://qxzhan.cn/post/sergg.php#comments https://qxzhan.cn/feed/
急报!EO优选失效! https://qxzhan.cn/post/fweo.php https://qxzhan.cn/post/fweo.php Fri, 08 Aug 2025 19:43:49 +0800 筱序二十

青序栈文官

2025年8月8日下午,EdgeOne优选服务失效,全部抛出403或418错误。据推测,可能是因使用过度导致腾讯云停止服务。目前已切换至CloudFlare优选,相关教程已提供。

在今日(2025/8/8)下午,EdgeOne的优选全部抛出403或者418!

me2lt64f.png

请各位默哀10分钟!

也不知道是不是有人用的太过了,导致腾讯云把优选砍了,欸~

事已至此,先吃饭吧~

目前栈主已经切换至了CloudFlare优选,教程可以看看Cloudflare优选教程

]]>
0 https://qxzhan.cn/post/fweo.php#comments https://qxzhan.cn/feed/
Cloudflare、CF优选教程 https://qxzhan.cn/post/cfyouxuan.php https://qxzhan.cn/post/cfyouxuan.php Fri, 01 Aug 2025 08:46:00 +0800 筱序二十

青序栈文官

本文介绍了Cloudflare优选方法,需准备信用卡和托管于CF的域名。通过添加DNS记录、配置SAAS回退源和自定义主机名,完成域名验证和证书配置。最后修改CNAME记录实现优选配置,建议分线路解析以规避检测。

本期来讲讲Cloudflare的优选方法

首先需要一张信用卡来过验证,这样才能使用SAAS(自定义主机回退源),这里不多讲解,还需要一个域名托管于CF,一个域名托管到支持分线路解析的地方。

为了便于理解,实际访问域名称为域名A,托管于CF的回源域名称为域名B
本文的cdn.xnet.ren为访问域名,waf.qzz.io为回源域名。

一切准备好后,先添加一条DNS记录,作为回源域名域名B

记录类型为A,记录值为你的源站IP,开启小黄云。

mds2uaz7.png

SAAS配置

回退源填写域名B

mds320s2.png

点击添加自定义主机名填写你要实际访问域名域名A,托管于任何DNS都行,比如阿里云、华为云、DNSPOD等。

mds34obe.png

完成域名验证及证书配置

按提示添加DNS记录

mds38h5p.png
mds39e2c.png

点击刷新按钮,不要按f5!!!

如果出现图示提示

mds3bzmm.png

需要添加一条域名A的cname记录到域名B

mds3jkri.png

再次点击刷新按钮。

均提示为有效后就配置好了。

mds3lc9h.png

优选配置

将上一步添加的域名Acname记录改为优选的域名地址,比如*.cloudflare.182682.xyz

最近听说CF查的严,如果可以分线路解析,我们需要将默认线路cname到优选地址,境外线路cname到域名B

每日精选

bizhi

]]>
0 https://qxzhan.cn/post/cfyouxuan.php#comments https://qxzhan.cn/feed/
Joe再续前缘魔改(三) https://qxzhan.cn/post/Joemg3.php https://qxzhan.cn/post/Joemg3.php Wed, 30 Jul 2025 12:45:00 +0800 筱序二十

青序栈文官

本教程介绍Joe主题魔改新增友人帐页面延迟展示功能,需修改/usr/themes/joe/friends.php文件,替换为指定PHP代码,实现友链展示及状态标签延迟加载。部署后,友人帐页面将按设置延迟显示状态标签,提升用户体验。

本文系Joe再续前缘主题魔改类第三篇教程,前置教程请见.

Joe再续前缘魔改铺垫(一)

这一期讲讲新增友人帐页面新增延迟展示。

{callout color="#e64747"}
具体部署教程详见Joe再续前缘魔改(一)
{/callout}

部署完成后,请修改博客文件夹中的/usr/themes/joe/friends.php文件

复制以下代码全部替换即可

{hide}

<?php

/**
 * 友链
 *
 * @package custom
 *
 **/

if (!defined('__TYPECHO_ROOT_DIR__')) {
    http_response_code(404);
    exit;
}
$this->need('module/single/pjax.php');
?>
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <?php $this->need('module/head.php') ?>
    <link rel="stylesheet" href="<?= joe\theme_url('assets/css/joe.friend.css') ?>">
    <style>
        .status-tag {
            position: absolute;
            top: 0px;
            right: 0px;
            padding: 3px 8px;
            border-radius: 0px 12px 0px 12px;
            font-size: 12px;
            color: white;
            font-weight: bold;
            transition: font-size 0.3s ease-out, width 0.3s ease-out, opacity 0.3s ease-out;
            z-index: 1;
        }
        .joe_detail__friends-item:hover .status-tag {
            font-size: 0px;
            opacity: 0;
        }
        /* 固态颜色 */
        .status-tag-green {
            background-color: #005E00; /* 绿色 */
        }
        .status-tag-light-yellow {
            background-color: #FED101; /* 浅黄色 */
        }
        .status-tag-dark-yellow {
            background-color: #F0B606; /* 深黄色 */
        }
        .status-tag-red {
            background-color: #B90000; /* 红色 */
        }
        
        /* 修改卡片样式,使用头像作为背景 */
        .joe_detail__friends-item .contain {
            position: relative;
            overflow: hidden;
            background: rgba(255, 255, 255, 0.1) !important;
            backdrop-filter: blur(10px);
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            border-radius: 12px;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        
        .joe_detail__friends-item .contain::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: var(--bg-image);
            background-size: cover;
            background-position: center;
            opacity: 0.5;
            z-index: -1;
            border-radius: 12px;
        }
        
        .joe_detail__friends-item .contain:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
        }
        
        .joe_detail__friends-item .content {
            position: relative;
            z-index: 2;
        }
        
        .joe_detail__friends-item .title {
            color: #fff;
            text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
            font-weight: bold;
        }
        
        .joe_detail__friends-item .desc {
            color: rgba(255, 255, 255, 0.9);
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
        }
        
        .joe_detail__friends-item .avatar {
            border: 2px solid rgba(255, 255, 255, 0.8);
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        }
    </style>
</head>

<body>
    <?php $this->need('module/header.php'); ?>
    <div id="Joe">
        <div class="joe_container">
            <main class="joe_main">
                <div class="joe_detail" data-cid="<?= $this->cid ?>">
                    <?php $this->need('module/single/batten.php'); ?>
                    <?php $this->need('module/single/article.php'); ?>
                    <?php
                    $friends = think\facade\Db::name('friends')->where('status', 1)->whereFindInSet('position', 'single')->order('order', 'desc')->select()->toArray();
                    ?>
                    <?php if (sizeof($friends) > 0 && ($this->options->JFriendsSpiderHide != 'on' || !joe\detectSpider())) : ?>
                        <style>
                            .joe_detail__article {
                                margin-bottom: 0px;
                            }
                        </style>
                        <ul class="joe_detail__friends">
                            <?php
                            if ($this->options->JFriends_shuffle == 'on') shuffle($friends);
                            foreach ($friends as $item) : 
                            ?>
                                <li class="joe_detail__friends-item">
                                    <a class="contain" href="<?= $item['url'] ?>" target="_blank" rel="<?= $item['rel'] ?>" referrer="unsafe-url" style="--bg-image: url('<?= $item['logo'] ?>')">
                                        <span class="title"><?= $item['title'] ?></span>
                                        <div class="content">
                                            <div class="desc"><?= $item['description'] ?></div>
                                            <img referrerpolicy="no-referrer" rel="noreferrer" width="40" height="40" class="avatar lazyload" onerror="Joe.avatarError(this)" src="<?= joe\getAvatarLazyload(); ?>" data-src="<?= $item['logo'] ?>" alt="<?= $item['title'] ?>" />
                                        </div>
                                    </a>
                                </li>
                            <?php endforeach; ?>
                        </ul>
                    <?php endif; ?>
                    <?php
                    if ($this->options->JFriends_Submit == 'on') $this->need('module/friends/submit.php');
                    ?>
                    <?php $this->need('module/single/handle.php'); ?>
                    <?php $this->need('module/single/copyright.php'); ?>
                </div>
                <?php $this->need('module/single/comment.php'); ?>
            </main>
            <?php joe\isPc() ? $this->need('module/aside.php') : null ?>
        </div>
        <?php $this->need('module/bottom.php'); ?>
    </div>
    <?php $this->need('module/footer.php') ?>
    <script>
    function addStatusTagsWithCache(jsonUrl) {
        const cacheKey = "statusTagsData";
        const cacheExpirationTime = 30 * 60 * 1000; // 半小时
        function applyStatusTags(data) {
            const linkStatus = data.link_status;
            document.querySelectorAll('.joe_detail__friends-item').forEach(card => {
                const linkAnchor = card.querySelector('a.contain');
                if (!linkAnchor) return;
                const link = linkAnchor.href.replace(/\/$/, '');
                const statusTag = document.createElement('div');
                statusTag.classList.add('status-tag');
                let matched = false;
                // 查找链接状态
                const status = linkStatus.find(item => item.link.replace(/\/$/, '') === link);
                if (status) {
                    let latencyText = '未知';
                    let className = 'status-tag-red'; // 默认红色
                    if (status.latency === -1) {
                        latencyText = '未知';
                    } else {
                        latencyText = status.latency.toFixed(2) + ' s';
                        if (status.latency <= 2) {
                            className = 'status-tag-green';
                        } else if (status.latency <= 5) {
                            className = 'status-tag-light-yellow';
                        } else if (status.latency <= 10) {
                            className = 'status-tag-dark-yellow';
                        }
                    }
                    statusTag.textContent = latencyText;
                    statusTag.classList.add(className);
                    matched = true;
                }
                if (matched) {
                    card.style.position = 'relative';
                    card.appendChild(statusTag);
                }
            });
        }
        function fetchDataAndUpdateUI() {
            fetch(jsonUrl)
                .then(response => response.json())
                .then(data => {
                    applyStatusTags(data);
                    const cacheData = {
                        data: data,
                        timestamp: Date.now()
                    };
                    localStorage.setItem(cacheKey, JSON.stringify(cacheData));
                })
                .catch(error => console.error('Error fetching test-flink result.json:', error));
        }
        const cachedData = localStorage.getItem(cacheKey);
        if (cachedData) {
            const { data, timestamp } = JSON.parse(cachedData);
            if (Date.now() - timestamp < cacheExpirationTime) {
                applyStatusTags(data);
                return;
            }
        }
        fetchDataAndUpdateUI();
    }
    setTimeout(() => {
        addStatusTagsWithCache('https://你的部署地址/result.json');
    }, 0);
    </script>
</body>

</html>

{/hide}

前端效果预览

mdphb2z6.png

每日精选

bizhi

]]>
0 https://qxzhan.cn/post/Joemg3.php#comments https://qxzhan.cn/feed/