<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.lmb.blue/feed/rss/tag/%E6%95%99%E7%A8%8B/">
<title>哈喽！林墨白 - 教程</title>
<link>https://blog.lmb.blue/tag/%E6%95%99%E7%A8%8B/</link>
<description></description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.lmb.blue/archives/1585/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1541/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1493/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1420/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1412/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1348/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1323/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1271/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1196/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1113/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1011/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1024/"/>
<rdf:li resource="https://blog.lmb.blue/archives/943/"/>
<rdf:li resource="https://blog.lmb.blue/archives/906/"/>
<rdf:li resource="https://blog.lmb.blue/archives/794/"/>
<rdf:li resource="https://blog.lmb.blue/archives/770/"/>
<rdf:li resource="https://blog.lmb.blue/archives/671/"/>
<rdf:li resource="https://blog.lmb.blue/archives/662/"/>
<rdf:li resource="https://blog.lmb.blue/archives/656/"/>
<rdf:li resource="https://blog.lmb.blue/archives/638/"/>
<rdf:li resource="https://blog.lmb.blue/archives/629/"/>
<rdf:li resource="https://blog.lmb.blue/archives/615/"/>
<rdf:li resource="https://blog.lmb.blue/archives/604/"/>
<rdf:li resource="https://blog.lmb.blue/archives/603/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.lmb.blue/archives/1585/">
<title>享有XYZ顶级域名仅需4.77元/年？</title>
<link>https://blog.lmb.blue/archives/1585/</link>
<dc:date>2025-10-11T20:15:00+08:00</dc:date>
<description>为何这么便宜？xyz  registry（管理局）为了快速推广和占领市场，采取了非常激进的注册策略。他们将这些长数字域名视为“库存”，以极低的价格批量“清仓”给注册商，甚至提供大量优惠和促销。对他们来说，长数字域名就是薄利多销，注册一个就赚一个，总比空着好。但是！一个域名的价值主要取决于其易记性、品牌性和稀缺性。长数字XYZ域名在这几方面都非常弱势，就像你能够轻易记住一串≥6位数且毫无关联的数字吗(别想了，好记的早就被注册了)？如果还是不懂，可以看以下比喻：apple.com 就像是纽约曼哈顿的黄金地段豪宅（极度稀缺，价值连城）。car.xyz 就像是城市中心的一间不错公寓（有明确含义，价值不菲）。520.xyz 就像是一个门牌号吉利的商铺（因文化赋予含义而增值）。658392.xyz 就像是在茫茫戈壁滩上的一块地皮：土地（供应）几乎是无限的，但没人想去那里盖房子（需求），所以几乎一文不值。在哪里注册呢？在Spaceship(www.spaceship.com)注册≥6位纯数字XYZ域名即可。关于spaceship： Spaceship 作为一家相对新兴的 ICANN 认证域名注册商和网络服务平台，其目标是颠覆传统网络服务商复杂和不透明的模式。它由 Namecheap（全球第二大域名注册商）孵化和支持，旨在提供一个更现代化、更简洁、更注重用户体验的一站式平台。Spaceship的优点： 不用实名且每年仅需4.77元，可以用支付宝(建议在电脑端绑定)、Paypal和信用卡等方式支付spaceship的缺点： 不能备案(意味着不能使用国内服务器，除非转入国内服务商)如果你需要备案的话，可以在Spaceship上一次性将域名续费10年再转入国内服务商(如：阿里云、腾讯云……)。我推荐转入阿里云，因为阿里云每年只需7元，或者怕嫌麻烦可以直接在阿里云注册≥6位纯数字XYZ域名，每年也是只需7元。纯数字XYZ域名是否适合自己呢？认为一串数字本身有某种寓意或实用性的人。追求极低成本的人。需要大量域名作为“耗材”的人。不看重品牌形象，更看重功能的人。有临时、短期、一次性需求的人。一句话概括：它大多数时候适合当一张“草稿纸”、一个“临时工牌”或一个“可丢弃的工具”，但不太适合当“公司大门”或“个人名片”(除非寓意非常契合)。 如果你有上述需求，那么它就是一个性价比极高的选择。纯数字XYZ域名的优缺点先说优点吧，它拥有低廉的价格Emmm……还有就是可以免费开启Whois隐私保护(不像CN域名)那么缺点就非常明显了，因价格低廉，可能会他人被用于搭建垃圾邮件、钓鱼网站等，影响整个.xyz后缀的声誉。然后长串无规律数字不利于用户记忆和口碑传播。还有就是搜索引擎在收录和排名时可能更为谨慎，收录速度可能较慢。我的看法如果你能够克服上述缺点的话，那么纯数字XYZ域名是一个经济实惠的选择(一顿早饭钱，还要什么自行车？)。对于网站初学者来说，一个低廉域名能够减少自己的试错成本。其实我不建议把纯数字XYZ域名当做自己的主域名来用，假如845872.xyz与lmb.blue同时向你发出友链申请，你的第一好感倾向于谁呢？但是呢，一串有意义且自己喜欢的数字域名我认为可以保留下来，毕竟一顿早饭钱就可以拥有一年，何乐而不为呢？前几天我本想注册1415926.xyz(3.1415926.xyz，π代表无穷无尽，xyz代表未知数)，但是很可惜被另外一位博主早在几年前注册了。然后我今天就注册了20101024.xyz，有兴趣可以猜猜这串数字的意义:[小偷] </description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1541/">
<title>0成本在Vercel部署Umami网站分析工具</title>
<link>https://blog.lmb.blue/archives/1541/</link>
<dc:date>2025-10-07T08:29:00+08:00</dc:date>
<description>什么是UmamiUmami 是一款使用MIT开源协议且注重隐私的轻量级网站分析工具，可作为Google Analytics 的替代品，提供流量统计、用户行为分析等功能，支持自托管且不收集个人数据。流量分析：跟踪总流量、唯一用户数、会话时长等指标‌。访客分析：记录地理位置、设备类型等数据‌。隐私保护：符合GDPR 和CCPA，不使用 Cookie 或追踪个人行为‌。自定义事件：支持按钮点击、表单提交等事件跟踪‌。简而言之，它是一款为个人和中小团队打造的轻量级网站分析工具。它不只简单高效，更将用户隐私置于首位。官网： umami.is中文网： umami.zhcndoc.com我为什么要用Umami呢？我之前使用的是91LA(数字没有错)网站统计，然后听别人说容易跳片战，但是我觉得我从来没有过，所以不以为意。直到我日常视奸BlogsClub成员的时候，发现某某日记跳片站了[Lol] 。询问的之后发现是用了91LA，这次我是真见识到了[Puke] 我是看见群友提到的Umami，好奇心驱使我打开它们的demo站，发现简直长在我的心巴上了！！！属于是简约而不简单hhhh~如何部署Umami支持环境一台安装 Node.js 版本 18.18 或更高的服务器。一个数据库。 Umami 支持 MySQL（最低 v8.0）和 PostgreSQL（最低 v12.14）数据库。部署方式从源代码安装： 从 GitHub 获取代码并自行构建应用程序。使用 Docker Compose： 使用 docker compose 构建自己的 Docker 容器。使用 Docker 镜像： 下载一个预构建的 Docker 镜像。本次使用Vercel部署的教程属于“从源代码安装”方式(因为我的很多网站只适配小于MySQL 8.0的版本)准备工作Vercel账户(需提前登录)Git账户(这里演示GitHub，需提前登录)自建数据库(可有可无)可以在https://vercel.com/account/settings/authentication 提前绑定Git账户开始部署一键部署点击立刻部署后，请填写第二行的Repository Name(意为储存库名称，只能填字母、数字)，在这里创建的储存库默认为私人库，点一下右边上解锁图标就变成公共库了(纯字面意思，不懂百度)然后点击Create等待储存库创建完成就可以进入下一步了这里会让你填写环境变量中的信息，DATABASE_URL表示你的数据库有自建数据库在DATABASE_URL中填写数据库的连接字符串(如下)MySQL：mysql://username:password@host:3306/dbnamePostgres：postgresql://username:password@host:5432/dbname注意： 请保证你的数据库版本和支持环境的版本一致，否则将会一直部署失败你需要将其中的username、password、host、port、dbname和端口(3306、5523是大部分默认的端口)替换为你自己数据库的实际信息，然后点击Deploy即可部署无自建数据库当然！如果你没有任何属于自己的数据库，那就可以选择Vercel中免费的数据库，这时你可以直接随便填点内容，再点击Deploy进行部署(虽然会部署失败:[哈士奇] )小技巧：在立刻部署的链接中，把&amp;env=DATABASE_URL删除后再访问就可以跳过配置环境变量，直接部署了。(后面步骤中的也不用移除环境变量了)点击Deploy后会变成Deploying，向下滑等待部署失败后，点击Go to Project进入项目然后你需要点击依次点击Settings→Environment Variables，找到DATABASE_URL环境变量，点击右边三个点，再点击Remove进行移除接着点击Storage，再点击Create Databas选择Neon后，点击Continue选择数据库服务器来源，一般选择推荐的就行(结尾带!的就是)，再点击Continue填写数据库名称后，点击Sreate进行创建数据库创建完成后，找到创建好的数据库点击Connect填写相关信息在弹出的窗口中直接点击Connect进行连接，其他的可管可不管，但是Custom Prefix那一项不要填！！连接完后，我们需要重新部署。点击Deployments，再点击任意消息旁边的三个点，最后点击Redeploy进行重新部署就完成了手动部署进入Umami的GitHub项目页面，点击Fork进行创建副本分别在Repository name、Description中填上副本的名称和描述(后面可以更改)，然后点击Create fork创建副本在Vercel中，点击Add New，再点击Project找到刚刚创建的副本，点击Import有自建数据库展开Environment Variables环境变量列表，添加DATABASE_URL，添加内容如下：MySQL：mysql://username:password@host:3306/dbnamePostgres：postgresql://username:password@host:5432/dbname注意： 请保证你的数据库版本和支持环境的版本一致，否则将会一直部署失败你需要将其中的username、password、host、port、dbname和端口(3306、5523是大部分默认的端口)替换为你自己数据库的实际信息，然后点击Deploy即可部署无自建数据库请参考一键部署中无自建数据库使用Vercel中免费的数据库的操作这里直接点击点击Deploy部署就行了我推荐的部署方式结论：推荐手动部署，数据库自建或不自建都行(反正我用的是Vercel免费数据库)原因：通过手动部署后，在GitHub上的Umami副本可以一键同步官方仓库的最新代码，点击Sync fork进行同步即可。但是一键部署的Umami副本(应该不叫副本了，因为与官方仓库没有关联了)就不能一键同步。优化配置域名绑定由于Vercel是一款非常出名的前端开发工具和AI云计算服务，所以它提供的免费域名(vercel.app)被很多人滥用，已经在国内打不开了。我们需要在设置中绑定自己的域名，以便Umami正常工作。点击Settings，点击Domains，再点击Add Domain进行添加域名(首次添加域名会验证域名的所有权)，添加成功后会自动申请SSL证书。绕过广告拦截器尽管 Umami 是一款注重隐私的产品，但它仍可能被阻止某些广告拦截器。因为有些拦截器可能过于激进，它们会拦截某些域名关键词或者常见的数据收集接口请求……在Umami环境变量文档(https://umami.is/docs/environment-variables)中提供了两个环境变量以最大限度的绕过广告拦截器。注意：每次更改环境变量后都要重新部署TRACKER_SCRIPT_NAME假如原本的跟踪代码如下：&lt;script defer src=&quot;https://aa.bb.cc/script.js&quot; data-website-id=&quot;xxxxxxxxx&quot;&gt;&lt;/script&gt;但是如果添加了TRACKER_SCRIPT_NAME，并且对应的内容填写了style.css，那么跟踪代码会变成如下：&lt;script defer src=&quot;https://aa.bb.cc/style.css&quot; data-website-id=&quot;xxxxxxxxx&quot;&gt;&lt;/script&gt;当然！style.css可以为任何你喜欢的内容COLLECT_API_ENDPOINT环境变量COLLECT_API_ENDPOINT是用来修改数据收集的接口，其格式是/xxx或/xxx/xxx以此类推等等。如何添加环境变量点击Settings，再点击Environment Variables，在图中标记处添加环境变量，然后点击Save，最后重新部署即可。可以参考我的环境变量填写的内容常见问题问：怎么从Vercel的免费数据库(Neon)导出数据呢？答：因为上述提到的数据库服务商Neon是第三方合作平台，所以要前往第三方导出数据。点击Storage，再点击对应的数据库进入详情页最后点击Open in Neon就可以直接登录到Neon服务商了导出数据的具体操作不过多赘述了，请参考Neon控制台文档(看不懂自行翻译)：https://neon.com/docs/guides/tables问：Neon提供的免费数据库怎么样？答：永远免费：提供无需信用卡、永不过期的免费套餐，包含可观的存储和计算资源。无服务器架构：计算与存储分离，按实际使用量计费，不用时自动暂停，成本极低。即时分支：可以像 Git 一样，为数据库创建多个独立的完整分支，极大提升开发、测试和协作效率。完全兼容 PostgreSQL：支持标准 PostgreSQL 协议、驱动和扩展，迁移和使用无门槛。基于时间点恢复：能够将数据库状态回溯到过去的任意一秒，数据安全更有保障(免费版好像仅支持回溯一天以内)。现代工作流：数据库分支能与 CI/CD 流程无缝集成，适合云原生和敏捷开发。</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1493/">
<title>使用开源项目AutoTask实现逃离广告</title>
<link>https://blog.lmb.blue/archives/1493/</link>
<dc:date>2025-02-18T22:03:00+08:00</dc:date>
<description>AutoTask(自动任务)AutoTask中文名为自动任务，是一款支持Shizuku和辅助功能的自动任务工具。本应用专注于帮助您执行自动任务，相比于其他同类产品，本应用具有以下特点：支持多种启动模式（Shizuku和辅助功能）支持自定义常驻任务任务和一次性任务支持手势录制，审查布局树等不需要刻意保活便可常驻后台（两种模式默认系统保活）省电且占用系统资源较少（事件驱动+协程，执行长时间任务也不阻塞CPU）代码开源，安全可信Material 3 风格UI，实用美观该作者在之前也开发了一款基于Shizuku授权自动跳过工具「AutoSkip」，但是很久没更新了流氓广告我之前一直在使用AutoSkip，它能解决90%的流氓开屏广告，剩下的10%开屏广告属于是下流无耻了。在打开APP的时我明明一直保持不动连呼吸都停止了，它却在AutoSkip反应的那几毫秒感受到了地球的自转让手机偏移了0.000…1º直接给我送进霉物、丑团、拼少少、淘汰、京西等购物APP。并且每当我想返回退出时这些APP时，他们还会贴心的给我送上“满500减5元优惠券”然后一直卡住我，只能切后台关闭。不是？我是差你那5块吗？我差的是那500块！！说实话强制让我短视频APP跳转到购物APP的行为只会让我更讨甲方，还有短视频APP是看不起自己吗？刚打开就跳转到别人的APP！！！恭喜通过开屏广告，一大波广告正在袭来！正起劲儿刷视频时，突然来了一个介绍穿搭的“图文”视频，本想学习一下穿搭，然后向右一滑直接给我跳转到购物APP(点名拼少少)。还有某些下载软件在下载按钮加载出来后准备点击时，突然一个弹窗广告把下载按钮遮挡了，或者下载按钮突然向下移动然后一个广告从原来下载按钮冒出来！这谁反应的过来？:[愤怒] 最最最重要的是！跳转后的APP它可以取消后摇(开屏动画)直接进入“优惠页面”真畜牲呀！！逃离广告在GitHub下载AutoTask(自动任务)APP安装并打开，然后选择Shizuku或辅助功能进行激活，我个人推荐能用Shizuku激活就不要用辅助功能激活。逃离90%点击“添加任务”点击“任务仓库”点击“在线任务”点击“加载在线任务”找到“通用启动页广告跳过”，勾选后点击“确认导入”成功后，返回主页面，点击“常驻任务”，启用“通用启动页广告跳过”就可以了。你可以点击点击“编辑”按钮，进行编辑，里面有白名单、黑名单等等逃离100%就如上面所说的，有可能还没有等AutoTask(自动任务)找到跳过按钮流氓广告就贴脸了，或者APP内也会弹出广告，那么“通用启动页广告跳过”就无法处理掉那剩下10%的下流无耻广告有句俗话说得好：魔高一尺道高一丈，我昨天将AutoTask(自动任务)熟悉后，想到了当AutoTask(自动任务)识别应用启动后，用户通过提示选择关闭软件或则正常启动，这样可以很大程度的减少了为了关闭乱跳转应用的麻烦，然后也是做出了“应用启动提醒”:[出家人]演示废话不多说，直接上视频就如视频所示，当启动123云盘时会弹出“是否允许「123云盘」启动”的选项，如果不点✅️，3秒后会自动允许启动。虽然AutoTask(自动任务)提示广告已经被跳过了，但是还是跳转到了拼多多当摇一摇开屏广告打开拼多多后，会弹出“是否允许「拼多多」启动”的选项，点击❎️后拼多多会被关闭并且返回123云盘。如何启用下载后，打开AutoTask(自动任务)，点击“添加任务”，点击“本地任务”，然后选择“应用启动提醒.xtsk”，最后启动即可任务中可以编辑黑名单、白名单、弹出气泡显示时间、弹出气泡显示内容等等任务中默认不会在系统应用提醒，但是某些下流无耻的广告发现你没安装会跳转到应用商店让你下载。这时候你可以在“如果”中添加一个“或者启动的应用在应用程序名单中”，并把“应用商店”加进去</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1420/">
<title>利用猫抓下载直播回放</title>
<link>https://blog.lmb.blue/archives/1420/</link>
<dc:date>2025-01-11T11:41:00+08:00</dc:date>
<description>猫爪🐱众所周知像快手、抖音等平台的直播回放都没有下载功能，这让需要下载直播回放的人犯了难(比如剪辑直播切片)。很多人只能通过录屏的方式保存直播回放，但是“翻版”终究比不过“原版”的质量。那么猫抓(cat-catch) 资源嗅探扩展就能完美解决这个问题，它能筛选列出当前页面的资源并且支持下载等操作，包括直播回放。实践电脑添加扩展我们任意打开Chrome、Edge、Firefox其中一个浏览器(推荐Edge，因为Chrome和Firefox需要翻墙才能添加扩展)，然后打开猫爪的GitHub项目网址找到安装地址，点击Edge的安装地址点击获取进行添加扩展点击右上角的插件图标，检查是否成功添加扩展下载直播回放我这里找了一个游戏主播的直播回放(https://live.kuaishou.com/playback/3x69hnifrg6uwn6)，用Edge浏览器打开https://live.kuaishou.com/playback/3x69hnifrg6uwn6 后，点击右上角的插件图标。这时候猫爪的图标上面有一个1，说明已经嗅探到了1个视频资源，然后点击猫爪图标进入查看。(Tip：如果想更换画质可以直接更换直播回放中的画质，然后刷新即可)在这里不要点击下载，因为直播回放通常是m3u8格式，直接下载浏览器只会保存为几百KB的文件先在下载范围中填写1-1，下载出来就是第1个切片，查看切片时长是多少秒。再计算片段的切片范围开始是多少个切片和结尾是多少个切片，最后开始的切片到结尾的切片就是下载范围。举个栗子：假如第一个切片是3秒，那么1小时10分钟到1小时30分钟的下载范围就是1400-1800这是小学的数学问题，这都不会那建议放弃吧:[blobcatfacepalm] {/bs-accord}</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1412/">
<title>欢迎加入BlogsClub博客俱乐部</title>
<link>https://blog.lmb.blue/archives/1412/</link>
<dc:date>2025-01-10T17:21:00+08:00</dc:date>
<description>你在互联网上并不孤独，你还有我们~BlogsClub博客俱乐部的初衷我们的初衷是通过 BlogsClub 打造一个独立的个人博客集结地，旨在为博主们提供一个互相交流、学习和进步的空间，让博主们能够在这里共同分享彼此的经验和知识，共同进步。关于BlogsClub博客俱乐部BlogsClub是什么？许多人或许都怀揣着这样的疑问：如何让自己的博客能够脱颖而出，获得更多的关注与展示？BlogsClub正是这样一个为你量身打造的博客聚合俱乐部，致力于为每一位博主提供一个展示自我、互动交流的绝佳平台。一旦你成为BlogsClub的一员，你的博客将有机会展现在众多博主的眼前。我们的平台汇聚了来自五湖四海的优质博客，让每一位成员的佳作都能得到充分的展示机会。这意味着，你的独特视角和精彩内容将不再局限于自己的小圈子，而是能够吸引更多志同道合的朋友前来品味分享。BlogsClub通过feed聚合技术，让你能够在“订阅列表”中轻松查看加入的博主们最近发布的文章。这不仅节省了你四处搜寻的时间，还能让你第一时间捕捉到行业内的最新动态和精彩观点。在这个信息爆炸的时代，能够迅速获取有价值的信息无疑是一种宝贵的能力。更值得一提的是，我们的平台还提供了便捷的传送门功能。只需轻轻一点，你便能随机访问其他博主的博客站点，深入了解他们的创作理念和心得体会。这种即时的互动交流不仅能够拓宽你的视野，还能激发你的创作灵感，让你在博客的道路上越走越远。此外，BlogsClub还致力于打造一个和谐友善的交流环境。在这里，博主们可以互相拜访、畅所欲言，分享彼此的经验教训，共同进步。我们相信，在这样的氛围中，每个人都能找到属于自己的那片星空，绽放出最耀眼的光芒。总之，加入BlogsClub将为你开启一段全新的博客之旅。在这里，你将有机会展示自己的才华，结识志同道合的朋友，共同探索博客世界的无限可能。关于BlogsClub建立者BlogsClub项目由 BearNotion Team 发起，并由 BearNotion Team 完成所有构建，后续由BlogsClub项目组进行维护。BlogsClub是为爱发电吗？是的，从建立到现在，一直都是为爱发电。如何加入BlogsClub博客俱乐部我们诚挚的邀请您加入到BlogsClub博客俱乐部中来，与其他博主分享您的建站经验和建站故事。若有意愿加入，请前请先阅读俱乐部条约然后点我填写申请表哈喽！林墨白期待与您在BlogsClub博客俱乐部相遇联系BlogsClub博客俱乐部您可以通过以下方式联系到我们Email : help@blogsclub.orgQQ群 : 957197421</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1348/">
<title>具体使用unlock-music项目解锁各大音乐平台的加密格式</title>
<link>https://blog.lmb.blue/archives/1348/</link>
<dc:date>2024-11-15T18:35:00+08:00</dc:date>
<description>话说继上次记录了一次帮同学解锁歌曲并转换到MP3后，只尝试了QQ音乐(.mgg/.mflac)加密格式。但是unlock-music项目还可以解锁网易云音乐(.ncm)、酷狗音乐(.kgm/.vpr)、酷我音乐(.kwm)、虾米音乐(.xm)、咪咕音乐(.mg3d)等等，详情见：https://git.unlock-music.dev/um/web/src/branch/main/README.md然后今天想用unlock-music项目尝试解锁网易云音乐、酷狗音乐、酷我音乐并记录使用该项目的过程、结果以及遇到的问题实践为了实践的统一性，所以将邓紫棋的《倒数》 用于下载演示的VIP歌曲()本次实践的音乐软件只开通了基础会员(因为没钱开通最高级会员:[哈士奇] )，并且歌曲下载至所属音乐软件基础会员的最高音质如果没有具体说明演示音乐软件版本号，那么均为目前官方最新版本Unlock-Music在线演示版： https://unlock-music.lmb520.cn/QQ音乐Android下载歌曲默认保存路径：/Music/qqmusic/song/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.mgg0.flac❎❎️ HQ高品质.mgg2.flac❎️❎️ SQ无损.mflac0.flac❎️❎️ Windows经过测试QQ音乐版＞19.51虽然可以解锁，但是会播放失败。只有≤19.51版本才可以正常解锁和播放QQ音乐 V19.51版本 ： https://www.123865.com/s/tNNLjv-WH8yh下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.mgg✅️✅️oggV19.51HQ高品质.mgg✅️✅️oggV19.51SQ无损.mflac✅️✅️flacV19.51网易云音乐Android下载歌曲默认保存路径：/Download/netease/cloudmusic/Music/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.ncm✅️✅️.mp3极高.ncm✅️✅️.mp3无损.ncm✅️✅️.flac高清臻音.ncm✅️✅️.flacWindows下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.ncm✅️✅️.mp3极高.ncm✅️✅️.mp3无损.ncm✅️✅️.flac高清臻音.ncm✅️✅️.flac酷狗音乐Android下载歌曲默认保存路径：/Download/kgmusic/download/kgmusic/目前经过测试只有≤12.5.0版本的酷狗音乐或者最新版的酷狗音乐概念版才是.kmg加密格式酷狗音乐概念版下载歌曲默认保存路径：/Download/KuGouLite/Music/酷狗音乐 V12.5.0版本： https://www.123912.com/s/tNNLjv-QLuyh用Android下载歌曲会遇到一个问题，就是无论下载什么音质，歌曲格式都是.kgm.flac，如下图其实这个.flac只是伪装而已，这时候只需要将.kgm.flac改为.kgm就可以解锁了，如下图有人可能会说：“系统自带的文件管理器不让改文件后缀~”，不让改你不会下载一个其他的文件管理器嘛(推荐MT管理器)下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.kgm✅️✅️.mp3V12.5.0高品.kgm✅️✅️.mp3V12.5.0无损.kgm✅️✅️.flacV12.5.0Hi-Res.kgm✅️✅️.flacV12.5.0Windows最新版本下载歌曲的加密格式已经不再是.kmg，而是被改为了.kgg了。目前经过测试只有≤11.0.82版本的酷狗音乐才是.kmg加密格式酷狗音乐 V11.0.82版本： https://www.123865.com/s/tNNLjv-fF8yh下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.kgm✅️✅️.mp3V11.0.82高品.kgm✅️✅️.mp3V11.0.82无损.kgma✅️✅️.flacV11.0.82Hi-Res.kgma✅️✅️.flacV11.0.82酷我音乐Android下载歌曲默认保存路径：/Download/KuwoMusic/music/encryptType/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式高品.ogg未加密未加密 超品.mp3未加密未加密 无损.flac未加密未加密 Windows下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式高品.mp3未加密未加密 超品.mp3未加密未加密 无损.flac未加密未加密 插一嘴酷我音乐的会员用户有300首/每月的VIP歌曲下载量，再花4元还可以增加300首VIP歌曲的下载量。已经下载过的歌曲，再次下载或者升级音质都不会消耗下载量我想知道把下载量永远后会怎样，然后我就一口气下载了300首VIP歌曲。我以为用完下载量后，再次下载其他歌曲就会被加密为.kwm格式，但是结果并非如此，Android和Windows都提示充值4元获取300首下载量才可以继续下载，并没有出现下载加密歌曲的结果。尽管Window端下载页面提示“中国大陆地区，会员下载的部分付费歌曲格式为.kwm，仅限酷我音乐播放”，但是下载的300多首歌曲中没有一歌曲为.kwm的格式提示ogg和flac已经是解锁后的歌曲格式了，如果要转换成其他格式只需要在网上寻找相应的工具即可。因为音质太高可能会导致解锁失败所以如果你不是音乐狂热者，选择无损音质就可以了如果你最后要转换为mp3格式的话，选择标准和高品质就行了总结各家音乐软件将歌曲加密无非就是让用户留在自家音乐软件里，不得不说腾讯的加密做的真好，但是唯一让我眼前一亮的是酷我音乐。我今天才发现酷我音乐居然没有像其它音乐软件一样给所有下载的会员歌曲进行加密，这样很方便用户移动到其他便携设备里，虽然每个月只有300首下载量，但是对于普通用户已经够了(我第一次使用的感觉)。个人实践免责声明本文所有演示歌曲均通过开通音乐平台VIP会员后下载，仅用于验证工具的技术可行性，未进行任何形式的传播或商业化使用。本文无意鼓励任何形式的版权规避行为，请读者在测试后及时删除相关文件，并通过官方正版渠道支持音乐创作者。关于 unlock-music项目的使用，请务必阅读并遵守其官方许可协议及当地法律法规。此Unlock-Music在线演示版仅为方便演示unlock-music项目而部署，请勿用于任何实际操作。</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1323/">
<title>成功解锁QQ音乐mgg、mflac加密格式过程</title>
<link>https://blog.lmb.blue/archives/1323/</link>
<dc:date>2024-10-17T01:18:00+08:00</dc:date>
<description>话说作为班上唯一网络gai溜子，自从去盗版网站找到了需要会员才可以看的电影后，同学们可谓是觉得我无所不能，小到让我找小视频大到让我黑进门禁系统:[出家人] 。今天也是一样有同学让我帮他下载歌曲到他的mp3里面，我想着去网上随便搜搜然后答应了，结果他甩给我一百多歌的QQ音乐歌单，害……遇见问题众所周知从各大音乐平台下载音乐有很多歌曲会被加密专属播放格式，例如QQ音乐的mgg和mflac，这样就导致其他设备或者播放器无法播放。关于mgg、mflac： mgg(标准品质、HQ高品质)和mflac(SQ无损品质、臻品全景声、臻品母带)格式是QQ音乐为了保护音乐版权而使用的加密音频格式。‌ 这种格式的文件在其他音频或媒体播放器上无法直接播放，只有通过特定的解密和转换方法，才能将其变为更通用的格式，如ogg、mp3、flac等格式。解决问题解密音乐有一个unlock-music项目可以解锁加密的音乐文件，可以按照教程本地部署代码进行使用。使用也很简单，只需要把解密的音乐拖进去，它是使用浏览器多线程批量解密，不需要上传就能快速解密。支持的格式： QQ 音乐(.qmc0/.qmc2/.qmc3/.qmcflac/.qmcogg/.tkm)Moo 音乐格式 (.bkcmp3/.bkcflac/...)QQ 音乐 Tm 格式 (.tm0/.tm2/.tm3/.tm6)QQ 音乐新格式 (.mflac/.mgg/.mflac0/.mgg1/.mggl)QQ 音乐海外版JOOX Music (.ofl_en)网易云音乐格式 (.ncm)虾米音乐格式 (.xm)酷我音乐格式 (.kwm)酷狗音乐格式 (.kgm/.vpr)Android 版喜马拉雅文件格式 (.x2m/.x3m)咪咕音乐格式 (.mg3d)项目地址： https://git.unlock-music.dev/um/web在线使用音乐解锁： https://unlock-music.lmb520.cn但是经过搜寻和测试QQ音乐只能解锁电脑端版本≤19.51下载的音乐，其他平台具体看：https://blog.lmb.blue/archives/1348/19.51版本QQ音乐： https://www.123865.com/s/tNNLjv-WH8yh转换格式解密后mgg格式会变成ogg格式，mflac格式会变成flac格式。这两种格式已经可以让很多设备或播放器播放了，但是我同学用的mp3，只能播放mp3格式的音乐。所以需要转换格式，市面上很多都需要充值，我推荐格式工厂(电脑端全部免费，手机端批量处理需要会员)(http://pcgeshi.com/)解锁其他音乐软件注意本文仅做学习交流使用</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1271/">
<title>给BearSimple主题加一个友链随机跳转</title>
<link>https://blog.lmb.blue/archives/1271/</link>
<dc:date>2024-05-07T18:30:00+08:00</dc:date>
<description>话说因为BearSimple主题功能太多，昨天才发现有一个幻灯片的功能没使用，但是我好像没有什么东西可以放上去，思来想去好像可以做一个友链随机跳转。本站随机跳转链接(点击幻灯片一样的效果)：https://blog.lmb.blue/other/links-go.php实现BearSimple有独立的友链数据库表，所以可以直接用php连接数据库获取友链链接，进行随机访问。中间过渡页面是使用开往的plain简洁版页面(作者是：Lifeni)具体代码如下：&lt;?php
// 数据库配置
$config = [
    &#039;host&#039;     =&gt; getenv(&#039;DB_HOST&#039;) ?: &#039;127.0.0.1&#039;,
    &#039;user&#039;     =&gt; getenv(&#039;DB_USER&#039;) ?: &#039;lmb520&#039;,
    &#039;password&#039; =&gt; getenv(&#039;DB_PASS&#039;) ?: &#039;lmb520lmb520&#039;,
    &#039;dbname&#039;   =&gt; getenv(&#039;DB_NAME&#039;) ?: &#039;lmb520&#039;
];

// 初始化变量
$hasValidLink = false;
$randomLink = [&#039;url&#039; =&gt; &#039;&#039;, &#039;name&#039; =&gt; &#039;&#039;];
$errorMessage = &#039;&#039;;

// 连接数据库并获取随机友链
try {
    // 创建连接（启用异常模式）
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $conn = new mysqli($config[&#039;host&#039;], $config[&#039;user&#039;], $config[&#039;password&#039;], $config[&#039;dbname&#039;]);
    $conn-&gt;set_charset(&#039;utf8mb4&#039;);

    // 查询所有已批准的友链
    $stmt = $conn-&gt;prepare(&quot;SELECT friendurl, friendname FROM typecho_bscore_friendlinks WHERE status = &#039;approved&#039;&quot;);
    $stmt-&gt;execute();
    $result = $stmt-&gt;get_result();

    $links = [];
    while ($row = $result-&gt;fetch_assoc()) {
        $url = $row[&#039;friendurl&#039;];
        $name = $row[&#039;friendname&#039;];

        // 严格验证URL：必须包含协议且为http/https，防止危险协议
        if (filter_var($url, FILTER_VALIDATE_URL)) {
            $scheme = parse_url($url, PHP_URL_SCHEME);
            if ($scheme === &#039;http&#039; || $scheme === &#039;https&#039;) {
                $links[] = [&#039;url&#039; =&gt; $url, &#039;name&#039; =&gt; $name];
            }
        }
    }

    $stmt-&gt;close();
    $conn-&gt;close();

    // 随机选取一个有效友链
    if (!empty($links)) {
        $hasValidLink = true;
        $randomLink = $links[array_rand($links)];
    } else {
        $errorMessage = &#039;暂无可用的友情链接，请稍后再试或申请加入友链。&#039;;
    }
} catch (mysqli_sql_exception $e) {
    // 数据库错误：记录日志，但不暴露敏感信息给用户
    error_log(&#039;Database error in random link page: &#039; . $e-&gt;getMessage());
    $errorMessage = &#039;系统繁忙，请稍后再试。&#039;;
} catch (Exception $e) {
    error_log(&#039;Unexpected error: &#039; . $e-&gt;getMessage());
    $errorMessage = &#039;发生未知错误，请联系管理员。&#039;;
}

// 准备跳转相关数据（安全转义）
$redirectUrl = $hasValidLink ? $randomLink[&#039;url&#039;] : &#039;&#039;;
$redirectName = $hasValidLink ? htmlspecialchars($randomLink[&#039;name&#039;], ENT_QUOTES, &#039;UTF-8&#039;) : &#039;&#039;;
$jsonUrl = json_encode($redirectUrl, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG);
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;zh&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;meta name=&quot;description&quot; content=&quot;沉墨满纸，一笑若白。——林墨白&quot;&gt;
    &lt;title&gt;星际穿梭中 - 哈喽！林墨白&lt;/title&gt;
    &lt;link rel=&quot;shortcut icon&quot; href=&quot;https://files.blog.lmb520.cn/assets/img/logo/pink-black.png&quot;&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://files.blog.lmb520.cn/assets/css/links-go.css&quot;&gt;
    &lt;?php if ($hasValidLink): ?&gt;
    &lt;script&gt;
        // 安全跳转：3秒后自动跳转
        setTimeout(function() {
            window.location.replace(&lt;?php echo $jsonUrl; ?&gt;);
        }, 3000);
    &lt;/script&gt;
    &lt;?php endif; ?&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;main&gt;
    &lt;h1&gt;
        &lt;span&gt;哈喽！林墨白&lt;/span&gt;
        &lt;?php if ($hasValidLink): ?&gt;
        &lt;span&gt;正在驶入“&lt;?php echo $redirectName; ?&gt;”星云&lt;/span&gt;
        &lt;?php else: ?&gt;
        &lt;span&gt;星云导航暂时中断&lt;/span&gt;
        &lt;?php endif; ?&gt;
    &lt;/h1&gt;

    &lt;?php if ($hasValidLink): ?&gt;
    &lt;!-- Material Design 风格加载动画 --&gt;
    &lt;svg class=&quot;spinner&quot; width=&quot;32px&quot; height=&quot;32px&quot; viewBox=&quot;0 0 66 66&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
        &lt;circle class=&quot;path&quot; fill=&quot;none&quot; stroke-width=&quot;6&quot; stroke-linecap=&quot;round&quot; cx=&quot;33&quot; cy=&quot;33&quot; r=&quot;30&quot;&gt;&lt;/circle&gt;
    &lt;/svg&gt;
    &lt;?php else: ?&gt;
    &lt;div class=&quot;error-message&quot; style=&quot;margin: 2rem auto; text-align: center; color: #ff6b6b;&quot;&gt;
        &lt;p&gt;&lt;?php echo htmlspecialchars($errorMessage, ENT_QUOTES, &#039;UTF-8&#039;); ?&gt;&lt;/p&gt;
        &lt;p&gt;您可以选择返回首页或申请加入友链。&lt;/p&gt;
    &lt;/div&gt;
    &lt;?php endif; ?&gt;
&lt;/main&gt;

&lt;footer&gt;
    &lt;a href=&quot;https://blog.lmb520.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;返回首页&lt;/a&gt;
    &lt;a href=&quot;https://blog.lmb520.cn/links.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;加入友链&lt;/a&gt;
    &lt;a href=&quot;https://github.com/Lifeni&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;模板作者&lt;/a&gt;
    &lt;span&gt;&lt;/span&gt;
    &lt;a href=&quot;https://beian.miit.gov.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;蜀ICP备-2023019525号-1&lt;/a&gt;
&lt;/footer&gt;
&lt;/body&gt;
&lt;/html&gt;里面的css调用代码可以将&lt;link rel=&quot;stylesheet&quot; href=&quot;https://files.blog.lmb520.cn/assets/css/links-go.css&quot;&gt;改为&lt;style&gt;
      /* 色板：https://www.materialui.co/colors */
      * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      body {
        font-family: Inter, -apple-system, HarmonyOS Sans SC, MiSans,
          Source Han Sans SC, Noto Sans SC, system-ui, Roboto, emoji, sans-serif;
        color: black;
        background: white;
        font-weight: 400;
        font-size: 1rem;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }

      main {
        padding: 2rem;
        flex: 1;
        display: flex;
        gap: 2rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }

      main h1 {
        margin-top: 4rem;
        font-size: 1.75rem;
        font-weight: 700;
        line-height: 1.75;
        text-align: center;
      }

      main h1 span {
        white-space: nowrap;
      }

      footer {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 1.5rem;
        align-items: center;
        justify-content: center;
        padding: 1.75rem 2rem;
      }

      footer a {
        font-size: 0.875rem;
        text-decoration: none;
        color: #757575;
        transition: all 0.2s;
      }

      footer span {
        flex: 1;
      }

      footer a:hover {
        color: #3f51b5;
        text-decoration: underline;
        text-underline-offset: 0.25rem;
      }

      @media (prefers-color-scheme: dark) {
        body {
          color: #eeeeee;
          background: #212121;
        }

        footer a {
          color: #bdbdbd;
          transition: all 0.2s;
        }

        footer a:hover {
          color: #5c6bc0;
        }
      }

      @media screen and (max-width: 768px) {
        main {
          margin-top: 4.5rem;
        }

        main h1 {
          font-size: 1.5rem;
        }

        footer {
          gap: 0.5rem 1rem;
        }

        footer span {
          display: none;
        }
      }

      /* Material Design 风格的加载动画 https://codepen.io/mrrocks/pen/ExLovj  */
      .spinner {
        -webkit-animation: rotator 1.4s linear infinite;
        animation: rotator 1.4s linear infinite;
      }

      @-webkit-keyframes rotator {
        0% {
          transform: rotate(0deg);
        }
        100% {
          transform: rotate(270deg);
        }
      }

      @keyframes rotator {
        0% {
          transform: rotate(0deg);
        }
        100% {
          transform: rotate(270deg);
        }
      }

      .path {
        stroke-dasharray: 187;
        stroke-dashoffset: 0;
        transform-origin: center;
        -webkit-animation: dash 1.4s ease-in-out infinite,
          colors 5.6s ease-in-out infinite;
        animation: dash 1.4s ease-in-out infinite,
          colors 5.6s ease-in-out infinite;
      }

      @-webkit-keyframes colors {
        0% {
          stroke: #4285f4;
        }
        25% {
          stroke: #de3e35;
        }
        50% {
          stroke: #f7c223;
        }
        75% {
          stroke: #1b9a59;
        }
        100% {
          stroke: #4285f4;
        }
      }

      @keyframes colors {
        0% {
          stroke: #4285f4;
        }
        25% {
          stroke: #de3e35;
        }
        50% {
          stroke: #f7c223;
        }
        75% {
          stroke: #1b9a59;
        }
        100% {
          stroke: #4285f4;
        }
      }
      @-webkit-keyframes dash {
        0% {
          stroke-dashoffset: 187;
        }
        50% {
          stroke-dashoffset: 46.75;
          transform: rotate(135deg);
        }
        100% {
          stroke-dashoffset: 187;
          transform: rotate(450deg);
        }
      }
      @keyframes dash {
        0% {
          stroke-dashoffset: 187;
        }
        50% {
          stroke-dashoffset: 46.75;
          transform: rotate(135deg);
        }
        100% {
          stroke-dashoffset: 187;
          transform: rotate(450deg);
        }
      }
&lt;/style&gt;因为有可能我会移动样式文件，但是我移动后也会及时更新除非我忘了，所以建议自己放在代码里或者找个地方储存调用注意代码里面有很多需要自己按情况修改，比如数据库信息、网页内容、网站图标等等</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1196/">
<title>Brave「Lv-1.5.6」- Typecho情侣主题魔改版</title>
<link>https://blog.lmb.blue/archives/1196/</link>
<dc:date>2024-03-20T09:54:00+08:00</dc:date>
<description>Brave Love❤️Forever Love❤️介绍Brave是一款好看且拥有多功能Typecho情侣主题，它非常适合有对象的博主使用。原版本作者：赵阿卷教程：https://blog.zwying.com/archives/59.html魔改版个人演示站： love.lmb.blue官方演示站：brave.lmb520.cn(可用测试账号登录后台，但后台出现极端情况，将会删除测试账号)演示站由雨云提供云计算支持账号密码test1123456test2123456test2123456功能Pjax无刷新图片懒加载恋爱计时器小组件纪念日倒计时小组件随机情话小组件留言墙小组件点点滴滴小组件随笔说说小组件关于我们小组件恋爱清单小组件相册小组件小组件可控开关适配显示ip插件多种可控特效祝福墙违禁词公告弹窗等等等……魔改版食用教程主题配置推荐在php7.4版本运行，太高的版本会报错将主题压缩包完整上传到服务器上 Typecho 的/usr/themes/文件夹内，解压，并确保主题文件夹命名为Brave，然后到 Typecho 后台→控制台→外观→启用主题即可由于本版本魔改太多，建议将原版或者其他魔改版备份后删除，再食用本主题。启用后，请创建对应独立页面，分别是首页独立页面、祝福板独立页面、点点滴滴独立页面、随笔说说独立页面、关于我们独立页面、恋爱清单独立页面、相册独立页面除了首页独立页面其它的独立页面不是必须创建，而且每个独立页面一定要选择对应的模板！！！首页独立页面创建好后，请前往后台→设置→阅读→站点首页，将网站的首页改为刚刚创建的首页独立页面(如下图)然后就是主题设置了，你可以自由支配功能，喜欢的功能就打开，不喜欢就不打开。伪静态配置请配置好伪静态规则(不会请百度)，并在后台→网站设置→永久链接将是否使用地址重写功能打开Nginx伪静态    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }Apache伪静态&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;基础内置图片配置我们魔改版内置了许多图片，填写内置图片后可以让你快速配置主题以达到效果头部大图设置/usr/themes/Brave/asset/img/background.jpg背景设置设置/usr/themes/Brave/asset/img/background.svg首页祝福墙小组件图标/usr/themes/Brave/asset/img/bless.svg首页点点滴滴小组件图标/usr/themes/Brave/asset/img/time.svg首页随笔说说小组件图标/usr/themes/Brave/asset/img/shuoshuo.svg首页关于我们小组件图标/usr/themes/Brave/asset/img/about.svg首页恋爱清单小组件图标/usr/themes/Brave/asset/img/lovelist.svg首页相册小组件图标/usr/themes/Brave/asset/img/photo.svgJsDelivr镜像源配置由于JsDelivr在国内的访问体验并不算理想(常常打开缓慢，甚至打不开)，所以导致首次访问极慢。然后我们现在改为可以在主题配置里可以自定义配置JsDelivr镜像源。JsDelivr官方https://www.jsdelivr.com/目前能够使用JsDelivr镜像源： 可能更新不及时，可以自行百度：JsDelivr镜像源https://jsd.nmmsl.top/祝福墙配置祝福墙显示归属地祝福墙已适配由苏晓晴开发的显示归属地XQLocation插件，将插件上传服务器并启用即可快速获取祝福者信息核心(JS代码)网络上免费用QQ获取信息的API不知道什么时候跑路，也许上一秒还能用下一秒就没了。为了避免API跑路后带来不必要的更新，所以现在可以直接在主题配置里改写用QQ快速获取祝福者信息的核心代码。每个信息输入框对应的id：名称idQQ号qq昵称author邮箱mail链接url目前能够使用的核心JS代码：&lt;script&gt;
var qqInput = document.getElementById(&#039;qq&#039;);
var avatarImg = document.getElementById(&#039;avatar&#039;);

if (qqInput &amp;&amp; avatarImg) {
    qqInput.addEventListener(&#039;blur&#039;, function () {
        var qq = this.value.trim();  
        if (qq !== &#039;&#039;) {  
            if (/^\d{5,12}$/.test(qq)) {
                $.ajax({
                    url: `https://api.nsmao.net/api/qq/query?key=HcW6ofoj1IqHXn6swita8wd3Bc&amp;qq=${qq}`,
                    type: &quot;GET&quot;,
                    timeout: 5000,
                    dataType: &quot;json&quot;,
                    success: function (data) {
                        if (data.code === 200) {
                            document.getElementById(&#039;author&#039;).value = data.data.nick; 
                            document.getElementById(&#039;mail&#039;).value = `${qq}@qq.com`;
                            document.getElementById(&#039;url&#039;).value = `https://${qq}.qzone.qq.com`;
                            avatarImg.src = `https://q1.qlogo.cn/g?b=qq&amp;nk=${qq}&amp;s=100`;
                        } else {
                            document.getElementById(&#039;mail&#039;).value = `${qq}@qq.com`;
                            document.getElementById(&#039;url&#039;).value = `https://${qq}.qzone.qq.com`;
                            avatarImg.src = `https://q1.qlogo.cn/g?b=qq&amp;nk=${qq}&amp;s=100`;
                            alert(`获取昵称失败，请手动填写(つ﹏&lt;。) \n提示: ${data.msg}`);
                        }
                    },
                    error: function (xhr, status, error) {
                        console.error(xhr, status, error);
                        document.getElementById(&#039;mail&#039;).value = `${qq}@qq.com`;
                        document.getElementById(&#039;url&#039;).value = `https://${qq}.qzone.qq.com`;
                        avatarImg.src = `https://q1.qlogo.cn/g?b=qq&amp;nk=${qq}&amp;s=100`;
                        alert(&#039;获取昵称失败，请手动填写(つ﹏&lt;。)&#039;);
                    }
                });
            } else {
                avatarImg.src = &quot;/usr/themes/Brave/asset/img/love.png&quot;;
                alert(&#039;请输入5-12位数字的QQ号(σ｀д′)σ&#039;);
            }
        }
    });
}
&lt;/script&gt;恋爱清单配置恋爱清单采用短代码形式书写，不再采用繁杂的文章发布，格式如下：[loveList]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看日出🌅[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看日落🌄[/item]
[/loveList]参数说明：status为0将显示灰色对勾，代表未完成此项，为1会显示绿色对勾，代表完成此项img后面可以填写图片的链接，将显示在清单展开后，不填默认灰色填充，listct后面填写时间内容(格式不做规定)如果需要预制好的恋爱清单，就直接将以下内容完整复制到到恋爱清单页面里[loveList]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看日出🌅[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看日落🌄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看绚烂的烟花🌟[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起吃路边摊🍖[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起唱首歌并录下来🎤[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起穿情侣装逛街👫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去游乐园（迪士尼）嗨一天🎈[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]陪对方过生日🎂[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去海南的天涯海角🌴[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去你的小学、初中、高中、大学👫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去我的小学、初中、高中、大学👫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起放孔明灯🏮[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]去遍中国的每一个省份🚉[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去钓鱼🐟[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去当志愿者、义工👮[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起坐一辆没坐过的车，在陌生的地方下车逛🚃[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]淋一次雨，在雨中漫步☔[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]为对方做早餐🍔[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在沙滩上写下彼此的名字✍[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看初雪⛄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]穿彼此的衣服👯[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去坐过山车🎎[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]嘴对嘴吃东西🍜[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去游泳🏊[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]去遍人民币背后的风景⛳[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]两个人一起锻炼运动🏃💃[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起爬山💑[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在耳边低声旖旎&quot;我爱你&quot;💖[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起对着流星许愿🌠[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起手拉手压马路👫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起坐在阳台，晒着太阳，磕着瓜子，聊着天👐[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起养一只宠物🐶[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在公共场合下一起喝娃哈哈🍼[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去买菜、做饭、刷碗🍛[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去坐热气球🎈[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]带我去你童年居住的地方走一走👩[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]带你去我童年居住的地方走一走🧑[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起堆雪人⛄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起坐摩天轮，在最高处拥吻💏[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起用勺子吃西瓜🍉[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起捡贝壳🐚[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]看一次冰灯⛲[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看海🌊[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起走沙滩🚶[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看支付宝共同种下的树🎋[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起跨年，通宵守岁📺[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]送彼此出门，给一个大大的拥抱与啵啵😚[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起看书，装满我们的书架💡[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]为对方穿衣服、系鞋带🙅[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]推对方玩秋千💁[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去参加朋友的婚礼💕[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在马尔代夫，体验玻璃地板的海上小屋🏡[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起坐一次飞机🛫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起坐一次游轮🚤[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看一次演唱会🎵[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起在浴缸里泡澡🛀[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看海豚🐬[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去捡落叶🍁[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]开车红灯时叫你啵啵🚗[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起完成一个冒险刺激的挑战💀[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起沿着铁轨走🚂[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看埃菲尔铁塔，在塔下拥吻👄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起设计整理房间💎[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]徒步走完北京二环👟[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]与好朋友一起，享受四人约会的美妙💜💛💚💙[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]为他打领带🔫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]我叫你一次“老婆”，你叫我一次“老公”👨‍❤️‍💋‍👨[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]带你在午夜开车兜风🚙[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]为她涂指甲油💅[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]来一次浪漫的小情趣😍[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在阳台上养着一排多肉植物🥦[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起过一次六一儿童节👧👦[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]入住一次五星级酒店🏨[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]为彼此换一个对方心仪的发型，不论长短烫染💇[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]偷偷观察对方熟睡的模样，记录下来📷[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去打电玩👾[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起给对方写信，读给对方听📄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起滑雪，摔倒也要拉着你🎿[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]拥有我们独特的情侣戒指💍[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起完成一副千片拼图😜[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去天安门看升旗仪式🚄[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起包饺子🥟[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去吃自助餐，把没尝过的食材都尝试一遍🔪[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]去拍一回写真📸[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去新加坡看焰火表演🎇[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看极光⚡⚡[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]背着她走一段路👣[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起赏月🌙[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起去看樱花🌸[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]以喝交杯酒的方式喝东西🥂[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]一起买一张彩票🎫[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在树下埋下我们的约定🎑[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]带上你我的家人去聚会、旅游🚙[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]来一场难忘的求婚🎁💍[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]在朋友面前大方介绍彼此💋[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]拍属于我们自己的婚纱照🎎[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]互相在朋友圈晒结婚证📇[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]设计一场梦中的婚礼💤🌹🎉[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]拥有一个爱的结晶，给予宝贝最好的爱👶👼[/item]
[item status=&quot;0&quot; img=&quot;&quot; listct=&quot;&quot;]余生漫漫，执子之手，与子偕老💏[/item]
[/loveList]相册配置内容配置相册内容请按照如下格式一行一行的写标题,简介,图片链接例如：第一张合影,2023年08月31日拍摄,https://jjaa.love/usr/uploads/2024/03/2427758495.jpg
picture1,2020年01月01日拍摄,https://ww2.sinaimg.cn/large/006uAlqKgy1fzlbjrxju2j31400u04qz.jpg
picture2,2020年01月02日拍摄,https://ww2.sinaimg.cn/large/006uAlqKgy1fzlbjrxju2j31400u04qz.jpg
picture3,2020年01月03日拍摄,https://ww2.sinaimg.cn/large/006uAlqKgy1fzlbjrxju2j31400u04qz.jpg自定义字段配置(可选) about：控制指定位置的文本，可自定义关于等信息(可选) CDN：用以匹配你所使用的对象存储服务商，目前支持又拍云、阿里云OSS、七牛云、腾讯云，本字段目的在于使用云图像处理动态生成缩略图。对应填写内容为：UPYUN/OSS/KODO/COS(可选) 社交链接字段 Twitter, Facebook, Instagram, GitHub，给相应字段填入链接即可。关于我们配置这里我们使用的是botui聊天机器人，效果体验：https://love.lmb.blue/about.html里面的内容我我没有写在后台，需要自行编辑usr/themes/Brave/botui/botui.js如果有点基础的应该可以看懂怎么改了吧，没有基础的就自己百度现学吧(或者联系我，如果我有时间)pjax无刷新配置pjax（Pushstate + Ajax）是一种用于加快网页加载速度的技术。它结合了HTML5的pushState API和Ajax技术，使得在不刷新整个页面的情况下，可以实现局部页面内容的更新。然而，pjax也有一些局限性，例如像某些API无法进行及时获取更新内容。需要注意的地方祝福墙已经禁止输入男女主的昵称，但是男女主可以登录账号发祝福(因为账号可以设置昵称并且不受该限制)已经禁止游客发随笔说说，但是男女主登录后可以在前台发说说。第一点是为了防止游客冒充男女主发不当言论，第二点是防止游客乱发说说更新记录Lv-1.5.6增加全面自定义JsDelivr修复QQ表情无法显示修复随机情话(替换为“一言文学”)Lv-1.5.5修复图片无法正常加载Lv-1.5.4优化掉打字特效优化掉Vaptch人机验证优化掉鱼群特效修复了已知Bug修复了后台显示错误Lv-1.5.3将Bootstrap 4升级为Bootstrap 5增加后台检测版本更新增加公告弹窗增加祝福墙违禁词增加祝福墙违规弹窗增加后台适配插件启用提醒增加可登录后台演示站修复雪花特效失效美化整体配色删除冗余代码优化代码结构修复已知BugLv-1.5.1优化代码内容增加相关提示修复了一些已知问题Lv-1.5.0优化了模板目录结构（有些文件改了名称和目录位置）更换了Gravatar源修复了不填QQ号不能发送祝福语的Bug修复了无法用QQ号快速获取信息增加了自定义相册里的JsDelivr源祝福墙已适配显示归属地XQLocation插件修复了一些已知问题由于这次目录文件变动比较大，所以老用户需要修改一些地方，比如：独立页面需要重新选择模板、主题内置图片等等具体改动位置： https://github.com/LMB520/Typecho-Brave/compare/Lv1.4...Lv1.5.0Lv-1.4.1首先恭喜韩小韩WebAPI接口升级完毕由于韩小韩WebAPI接口于2024年3月20日晚10:00:00，迎来最后一次大更新，也就是大版本更新的最终版本!因为更新后接口改变了，所以导致我今天才发布魔改版中的随机情话也失效了。</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1113/">
<title>喜欢樱花🌸吗？加个飘落特效吧</title>
<link>https://blog.lmb.blue/archives/1113/</link>
<dc:date>2024-01-19T20:32:00+08:00</dc:date>
<description>演示截图代码与部署代码这里的代码有点多，因为要用到进制转换成樱花var stop, staticx;
            var img = new Image();    
            img.src = &quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUgAAAEwCAYAAADVZeifAAAACXBIWXMAAACYAAAAmAGiyIKYAAAHG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NDFDMjQxQjYyNjIwNjgxMTgwODNEMjE2MDAzOTU1NDQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDozNDVjOWViOC04NDc4LTFkNDctOGRjMi0yZDkyOGNhYTYxZWQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjAzN2ZiMGItNTU5Mi0xYjRkLWJjZGQtOWU4NGExMDJiMGM2IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTA1LTA5VDE0OjQ5OjM3KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0wNS0wOVQxNDo1MToyNSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOC0wNS0wOVQxNDo1MToyNSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyMjVlZWE3LTEyY2QtMTY0NC04ZDAzLWFjOTE2ZTAxZDQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0idXVpZDoxRDIwNUFGNjZCRDlFNTExOUM5REMwMzg2RjlEQjFGNyIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphYmMzNjIzMy1hOWNkLWNiNDQtODViYi0zZTgyMjEwYmIxMjYiIHN0RXZ0OndoZW49IjIwMTgtMDUtMDlUMTQ6NTE6MjUrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjAzN2ZiMGItNTU5Mi0xYjRkLWJjZGQtOWU4NGExMDJiMGM2IiBzdEV2dDp3aGVuPSIyMDE4LTA1LTA5VDE0OjUxOjI1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2Vx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&quot;;
            function Sakura(x, y, s, r, fn) {
                this.x = x;
                this.y = y;
                this.s = s;
                this.r = r;
                this.fn = fn;
            }
            Sakura.prototype.draw = function(cxt) {
                cxt.save();
                var xc = 40 * this.s / 4;
                cxt.translate(this.x, this.y);
                cxt.rotate(this.r);
                cxt.drawImage(img, 0, 0, 40 * this.s, 40 * this.s)
                cxt.restore();
            }
            Sakura.prototype.update = function() {
                this.x = this.fn.x(this.x, this.y);
                this.y = this.fn.y(this.y, this.y);
                this.r = this.fn.r(this.r);
                if(this.x &gt; window.innerWidth ||
                    this.x &lt; 0 ||
                    this.y &gt; window.innerHeight ||
                    this.y &lt; 0
                ) {
                    this.r = getRandom(&#039;fnr&#039;);
                    if(Math.random() &gt; 0.4) {
                        this.x = getRandom(&#039;x&#039;);
                        this.y = 0;
                        this.s = getRandom(&#039;s&#039;);
                        this.r = getRandom(&#039;r&#039;);
                    } else {
                        this.x = window.innerWidth;
                        this.y = getRandom(&#039;y&#039;);
                        this.s = getRandom(&#039;s&#039;);
                        this.r = getRandom(&#039;r&#039;);
                    }
                }
            }
            SakuraList = function() {
                this.list = [];
            }
            SakuraList.prototype.push = function(sakura) {
                this.list.push(sakura);
            }
            SakuraList.prototype.update = function() {
                for(var i = 0, len = this.list.length; i &lt; len; i++) {
                    this.list[i].update();
                }
            }
            SakuraList.prototype.draw = function(cxt) {
                for(var i = 0, len = this.list.length; i &lt; len; i++) {
                    this.list[i].draw(cxt);
                }
            }
            SakuraList.prototype.get = function(i) {
                return this.list[i];
            }
            SakuraList.prototype.size = function() {
                return this.list.length;
            }
            function getRandom(option) {
                var ret, random;
                switch(option) {
                    case &#039;x&#039;:
                        ret = Math.random() * window.innerWidth;
                        break;
                    case &#039;y&#039;:
                        ret = Math.random() * window.innerHeight;
                        break;
                    case &#039;s&#039;:
                        ret = Math.random();
                        break;
                    case &#039;r&#039;:
                        ret = Math.random() * 6;
                        break;
                    case &#039;fnx&#039;:
                        random = -0.5 + Math.random() * 1;
                        ret = function(x, y) {
                            return x + 0.5 * random - 1.7;
                        };
                        break;
                    case &#039;fny&#039;:
                        random = 1.5 + Math.random() * 0.7
                        ret = function(x, y) {
                            return y + random;
                        };
                        break;
                    case &#039;fnr&#039;:
                        random = Math.random() * 0.03;
                        ret = function(r) {
                            return r + random;
                        };
                        break;
                }
                return ret;
            }
            function startSakura() {
                requestAnimationFrame = window.requestAnimationFrame ||
                    window.mozRequestAnimationFrame ||
                    window.webkitRequestAnimationFrame ||
                    window.msRequestAnimationFrame ||
                    window.oRequestAnimationFrame;
                var canvas = document.createElement(&#039;canvas&#039;),
                    cxt;
                staticx = true;
                canvas.height = window.innerHeight;
                canvas.width = window.innerWidth;
                canvas.setAttribute(&#039;style&#039;, &#039;position: fixed;left: 0;top: 0;pointer-events: none;&#039;);
                canvas.style.zIndex = &quot;9999&quot;;
                canvas.setAttribute(&#039;id&#039;, &#039;canvas_sakura&#039;);
                document.getElementsByTagName(&#039;body&#039;)[0].appendChild(canvas);
                cxt = canvas.getContext(&#039;2d&#039;);
                var sakuraList = new SakuraList();
                for(var i = 0; i &lt; 30; i++) {
                    var sakura, randomX, randomY, randomS, randomR, randomFnx, randomFny;
                    randomX = getRandom(&#039;x&#039;);
                    randomY = getRandom(&#039;y&#039;);
                    randomR = getRandom(&#039;r&#039;);
                    randomS = getRandom(&#039;s&#039;);
                    randomFnx = getRandom(&#039;fnx&#039;);
                    randomFny = getRandom(&#039;fny&#039;);
                    randomFnR = getRandom(&#039;fnr&#039;);
                    sakura = new Sakura(randomX, randomY, randomS, randomR, {
                        x: randomFnx,
                        y: randomFny,
                        r: randomFnR
                    });
                    sakura.draw(cxt);
                    sakuraList.push(sakura);
                }
                stop = requestAnimationFrame(function() {
                    cxt.clearRect(0, 0, canvas.width, canvas.height);
                    sakuraList.update();
                    sakuraList.draw(cxt);
                    stop = requestAnimationFrame(arguments.callee);
                })
            }
            window.onresize = function() {
    var canvasSakura = document.getElementById(&#039;canvas_sakura&#039;);
    canvasSakura.width = window.innerWidth;
    canvasSakura.height = window.innerHeight;
}
            img.onload = function() {
                startSakura();
            }
            function stopp() {
                if(staticx) {
                    var child = document.getElementById(&quot;canvas_sakura&quot;);
                    child.parentNode.removeChild(child);
                    window.cancelAnimationFrame(stop);
                    staticx = false;
                } else {
                    startSakura();
                }
            }部署可以将代码内容保存到空间里并命名为yinghua.js然后使用代码调用它，该代码可以放在头部或尾部文件里//粘贴到head或foot文件里
&lt;script src=&quot;/yinghua.js&quot;&gt;&lt;/script&gt;//请根据实际路径修改也可以调用我的 JS 文件，代码如下//粘贴到head或foot文件里
&lt;script src=&quot;https://files.blog.lmb.blue/assets/js/yinghua.js&quot;&gt;&lt;/script&gt;</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1011/">
<title>在Woiden白嫖理论上的永久NAT VPS</title>
<link>https://blog.lmb.blue/archives/1011/</link>
<dc:date>2024-01-16T21:04:00+08:00</dc:date>
<description>前言这篇文章本来已经写好了有个三四天。但是准备发布的时候，Woiden的服务器又出了问题，导致所有NAT VPS用不了，这让我无法了解Woiden的NAT VPS服务器，所以迟迟不发布。:^(困)NAT VPSNAT VPS是共享同一个公网ip(v4)地址，经过端口映射方式与外界通讯和提供服务的VPS。NAT VPS的主要缺点是能使用的端口有限制，通常十个左右，而且大多数商家不容许选择端口号。但NAT VPS有它盖不住的优势：便宜。NAT VPS省去了ip费用，带宽也是共享的，价格通常比普通vps要便宜很多。但是Woiden的NAT VPS没有共享ipv4，但是有ipv6，不懂的自己百度白嫖教程！注册账号注意：1、这个网站有很多广告，点的时候不要点到了。2、进入网站前你需要关闭广告拦截器，否则会出现以下错误白嫖链接🔗：https://woiden.id/首先你需要一个Telegram(电报)账号，没有的可以参考以下文章进行注册，因为Woiden需要通过Telegram(电报)注册注册链接🔗：https://woiden.id/register/这里需要打开你的Telegram(或第三方客户端)，点击顶部搜索@HaxTG_bot对机器人发送/start，机器人就会给你发送你的Telegram ID在注册页面输入你的Telegram ID，点击Submit，你的Telegram账号就会收到一条@HaxTG_bot给你发的验证码消息第一行填验证码，第二行填你的密码，点击Submit完成注册点击链接🔗：https://woiden.id/login/  进行登录，在登录页面点击Log in with Telegram如果没有显示请换浏览器在Telegram授权登录页面，选择国家并输入你的手机号，点击NEXT然后Telegram官方会给你发送一条登录验证消息，点击Confirm进行确认，返回到浏览器你就会看到登录成功了在网页出现了这样的授权页面后，Telegram官方又会给你发送一条确认授权的消息点击Terminate session，Telegram账号就可以成功授权Woiden了免费创建NAT VPS点击链接🔗：https://woiden.id/create-vps/然后就会让你填写信息第一个是：Data Center(选择数据中心)第二个是：Operating System(选择操作系统)第三个是：Password(密码，仅限字母和数字)第四个是：VPS Purpose(选择VPS用途)剩下的是人机验证和全部打勾最后点击CREATE VPS就可以免费创建NAT VPS，等待几分钟后你就可以在：https://woiden.id/vps-info 页面看见NAT VPS的信息了，在VPS Information你可以看到你的IPV6等信息这里顺便介绍一下，这一些链接的作用VPS信息|VPS状态|重新安装VPS|重置VPS密码|关机和重启VPS|Web在线终端给NAT VPS免费续期为什么说是理论上永久呢？因为他第一次创建，NAT VPS只有3天使用时间，然后NAT VPS还剩3天时间的时候你就可以去免费续期了，续一次增加2天。 所以说只要你记住定时给它续期，它就是永久，如果记不住就销毁了，但是销毁了又可以重新创建NAT VPS。续期链接🔗：https://woiden.id/vps-renew/你也可以点击Extend VPS Expiration进入续期页面这里也顺便介绍一下这几个链接的功能VPSVPS的状态重新安装VPS重置VPS密码延长VPS到期期限关机和重启VPS工具Web 在线终端文件管理器话说回来，进入延期界面后，你需要在第一个框输入Woiden.id，第二个框要计算一下加减乘除题，然后点击Renew VPS如果出现以下界面就算是申请延期成功如果出现以下页面就说明你人机验证失败了，需要刷新页面重新验证(验证失败很多次是很正常的，我觉得很鸡肋，多次失败可以试试换浏览器或者换VPN网络)点击INPUT RENEW CODE进入下一步，进入以下页面后，Woiden官方会通过Telegram给你发送一天验证码复制验证码，粘贴到一个框，再计算一道加减乘除题和人机验证后你就可以点击Renew VPS，如果出现以下页面就说明已经成功续期了，如果不是的话就说明人机验证没通过或者验证码错了(只要认证。几乎没有错误)最后除了可以在Woiden上白嫖NAT VPS，还可以在Hax(https://hax.co.id/)上白嫖NAT VPS，这俩都是同一个团队开发出来的，所以操作方式也几乎一样。这俩相同点是： 都是只有IPV6(不清楚Woiden以后会不会加共享IPV4)这俩不同点是： Woiden几乎每天不限量随时可以创建，而Hax只能在凌晨1点左右靠抢，Hax也需要VPN访问。Woiden和Hax也是同一个Telegram交流群：https://t.me/ipv6china结语这就是关于“在Woiden白嫖理论上的永久NAT VPS”所有教程我会最近更新使用在Woiden白嫖的NAT VPS上安装宝塔面板和仅使用IPV6进行建站2024年1月20日更新由于Woiden的NAT VPS老是出现ssh连不上，服务器炸了等问题，导致我无法继续尝试用它建站提供思路使用Woiden自带的终端，在线连接SHH并安装宝塔找一个可以用ipv6的CDN服务商，这里推荐两个(域名未备案:Cloudflare，域名已备案:括彩云使用ipv6打开宝塔面板，在宝塔绑定域名，然后在CDN也配置好域名后面就可以通过域名建站了</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1024/">
<title>二次元个人主页引导页(林墨白优化版)</title>
<link>https://blog.lmb.blue/archives/1024/</link>
<dc:date>2024-01-13T17:39:00+08:00</dc:date>
<description>演示截图部署网站原版下载链接：https://aishuo.lanzout.com/ioRol1gf79kj美化版美化版更新信息林墨白美化版v1.0去掉原版顶图增加圆形头像并加上底部阴影增加导航与导航之前的的距离林墨白美化版v1.1优化头像位置增加樱花飘落特效樱花数量在./asset/xinghua.js中的第124行修改在./index.html中删除最后一行代码&lt;script src=&quot;./asset/yinghua.js&quot;&gt;&lt;/script&gt;就可以取消樱花飘落特效林墨白美化版v1.2修复已知Bug增加注意事项林墨白美化版v1.3修复教程上的错误修复测速BUG修复文件错误(不知道为啥代码咋变成中文了，hhh~)值得注意的问题头像Logo在./asset/logo.png修改，背景在./asset/bj.png修改添加导航的时候，请不要完全复制，测速代码需要按顺序更改，比如：第一个导航为class=&quot;ms0&quot; id=&quot;lineMs0&quot;，第二个导航为class=&quot;ms1&quot; id=&quot;lineMs1&quot;后面依次类推，否则无法返回测速时长如果导航超过7个以上了，需要在./asset/main.js中按规律增加测速代码，否则无法返回测速时长这里展示一下lineMs7代码if(url==autourl[7]){
      $(&#039;#lineMs7&#039;).html(str+&#039;ms&#039;)
  }</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/943/">
<title>注册Telegram(电报)收不到短信？手把手教你如何搞定</title>
<link>https://blog.lmb.blue/archives/943/</link>
<dc:date>2024-01-10T11:23:00+08:00</dc:date>
<description>关于Telegram介绍Telegram（非正式简称TG或电报）是跨平台的即时通讯软件，其客户端是自由及开放源代码软件，但服务器端是专有软件。用户可以相互交换加密与自毁消息（类似于“阅后即焚”），发送照片、影片等所有类型文件。官方提供手机版（Android、iOS、Windows Phone）、桌面版（Microsoft Windows、macOS、Linux）和网页版等多种平台客户端；同时官方开放应用程序接口（API），因此拥有许多第三方的客户端可供选择，其中多款内置中文。目前使用缺点国内很多时候屏蔽了Telegram发送的验证码，但是Telegram登录和注册不得不接收Telegram发送的验证码需要连接VPN才可以访问那么该如何注册呢？Telegram中文版下载针对以上两种问题，我们找到了一款不用VPN并且可以接收到Telegram验证码的软件：BtokBtok下载链接：https://btok360.com/其实我觉得APP这个头像好丑呀Btok可以称为Telegram中文版了，里面全是操作页面和Telegram原版一模一样，而是全是中文，这里可以对比一下，非常适合中国宝宝这都是钱的教训，曾经有一个人年少无知，在Telegram被骗了700多，不要问是谁？反正不是我:^(流泪) :^(流泪) </description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/906/">
<title>免费白嫖Dewlance永久虚拟主机</title>
<link>https://blog.lmb.blue/archives/906/</link>
<dc:date>2024-01-09T08:36:00+08:00</dc:date>
<description>什么是DewlanceDewlance® was founded In Feb' 2009 by Chandra Prakash. This site has been considered above all other existing sites. It consist of 6 hard working and quality assuring professionals. We work as a team to provide solutions at low cost and high quality assurance. Our servers are specially built to ensure reliability and durability at all time.皇家翻译(仅供参考)： Dewlance®由Chandra Prakash于2009年2月创立。该场地已被视为高于所有其他现有场地。它由6名辛勤工作和质量保证的专业人员组成。我们作为一个团队以低成本和高质量保证提供解决方案。我们的服务器是专门建造的，以确保在任何时候都具有可靠性和耐用性。白嫖虚拟主机主机配置1GB磁盘空间50GB/月 流量DirectAdmin面板后台可免费申请SSL仅英国地区可以绑定1个主域名(lmb520.cn)和2个子域名(blog.lmb520.cn)2个MySQL数据库5个FTP账号目前发现免费主机白嫖账号没有数量上限(反正我白嫖了20个主机了)友好的功能前台和后台支持中文前台和后台不用VPN访问访问速度相比于其它外国服务器很快不需要国外信用卡，直接免费领取不限制邮箱登录，不用邮箱验证开始白嫖！！白嫖链接🔗：https://www.dewlance.com/free-hosting选择0 - Free，不建议选择6 YEARLY，因为我们是白嫖:^(色)选择I will use my existing domain and update my nameservers，域名里面可以乱填，反正控制面板可以改的这里可以选择中文，只不过是繁体的这里直接点：Checkout这里是填写购买和创建用户信息，除了我标红的地方其他的都可以乱填，填完了就可以点Complete Order了订购完，再点击Continue To Client Area进入用户中心，中间给你发邮件是给你查看账单信息，也可以不用管它。点击Services进入管理虚拟主机页面，点击你的虚拟主机进入虚拟主机详情页(不要点域名，比如我的43646.343164，不然会给你跳转访问域名)然后点击Login to DirectAdmin进入虚拟主机后台DirectAdmin控制面板进去后在底部可以更改语言，更改的时候可以直接打出中文就会出现简体中文了你也可以点击顶部的小人，再点击Skin Options这个也是可以直接打出中文就可以直接选择中文简体了域名解析在主机详情页最下面，有一个Hosting Information，里面有一个信息是Server Name这个就是域名使用CNAME解析地址，下面是我的解析操作后面搭建网站什么的应该不用教了吧，不会的百度：如何使用DirectAdmin面板搭建网站OK，结束🔚！2024年1月9日17点更新呃呃呃呃呃，一个账号不能白嫖多了，我因为白嫖了20多个被官方制裁了号没了，测试站准备重新建2024年1月19日更新删除演示站点</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/794/">
<title>2024年快到了，加个灯笼和飘雪特效吧</title>
<link>https://blog.lmb.blue/archives/794/</link>
<dc:date>2023-12-25T11:52:00+08:00</dc:date>
<description>演示截图如何部署灯笼代码内容(function (factory) {
  typeof define === &#039;function&#039; &amp;&amp; define.amd ? define(factory) :
  factory();
}((function () { &#039;use strict&#039;;
  function styleInject(css, ref) {
    if ( ref === void 0 ) ref = {};
    var insertAt = ref.insertAt;
    if (!css || typeof document === &#039;undefined&#039;) { return; }
    var head = document.head || document.getElementsByTagName(&#039;head&#039;)[0];
    var style = document.createElement(&#039;style&#039;);
    style.type = &#039;text/css&#039;;
    if (insertAt === &#039;top&#039;) {
      if (head.firstChild) {
        head.insertBefore(style, head.firstChild);
      } else {
        head.appendChild(style);
      }
    } else {
      head.appendChild(style);
    }
    if (style.styleSheet) {
      style.styleSheet.cssText = css;
    } else {
      style.appendChild(document.createTextNode(css));
    }
  }
  var css_248z = &quot;@charset \&quot;UTF-8\&quot;;.lantern__warpper{position:fixed;top:12px;left:40px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:999}.lantern__warpper.lantern__secondary{left:calc(100% - 130px)}.lantern__warpper.lantern__secondary .lantern__box{-webkit-animation-duration:3s;animation-duration:3s}.lantern__box{position:relative;display:inline-block;width:90px;height:70px;background:rgba(216,0,15,.8);border-radius:50% 50%;animation:lantern-swing 3s ease-in-out infinite alternate-reverse;-webkit-transform-origin:50% -70px;-ms-transform-origin:50% -70px;transform-origin:50% -70px;-webkit-box-shadow:-5px 5px 50px 4px #fa6c00;box-shadow:-5px 5px 50px 4px #fa6c00}.lantern__box:after,.lantern__box:before{content:\&quot;\&quot;;position:absolute;height:8px;width:45px;left:50%;border:1px solid #dc8f03;background:-webkit-gradient(linear,left top,right top,from(#dc8f03),color-stop(orange),color-stop(#dc8f03),color-stop(orange),to(#dc8f03));background:-o-linear-gradient(left,#dc8f03,orange,#dc8f03,orange,#dc8f03);background:linear-gradient(90deg,#dc8f03,orange,#dc8f03,orange,#dc8f03)}.lantern__box:before{top:0;border-radius:5px 5px 0 0;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.lantern__box:after{bottom:0;border-radius:0 0 5px 5px;-webkit-transform:translate(-50%,50%);-ms-transform:translate(-50%,50%);transform:translate(-50%,50%)}.lantern__line{position:absolute;width:2px;height:12px;top:0;left:50%;-webkit-transform:translate(-50%,-100%);-ms-transform:translate(-50%,-100%);transform:translate(-50%,-100%);background:#dc8f03}.lantern__circle{width:80%;-webkit-box-sizing:border-box;box-sizing:border-box}.lantern__circle,.lantern__circle .lantern__ellipse{height:100%;margin:0 auto;border-radius:50%;border:2px solid #dc8f03}.lantern__circle .lantern__ellipse{width:50%}.lantern__circle .lantern__text{font-family:华文行楷,Microsoft YaHei,sans-serif;font-size:24.3px;color:#dc8f03;font-weight:700;line-height:66px;text-align:center}.lantern__tail{position:relative;width:4px;height:12px;margin:0 auto;animation:lantern-swing 4s ease-in-out infinite alternate-reverse;background:orange;border-radius:0 0 5px 5px}.lantern__tail .lantern__junction{position:absolute;top:0;left:50%;width:8px;height:8px;-webkit-transform:translate(-50%,8.4px);-ms-transform:translate(-50%,8.4px);transform:translate(-50%,8.4px);background:#e69603;border-radius:50%}.lantern__tail .lantern__rect{position:absolute;top:0;left:50%;-webkit-transform:translate(-50%,10.8px);-ms-transform:translate(-50%,10.8px);transform:translate(-50%,10.8px);width:8px;height:24px;background:orange;border-radius:5px 5px 0 5px}@-webkit-keyframes lantern-swing{0%{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}to{-webkit-transform:rotate(8deg);transform:rotate(8deg)}}@keyframes lantern-swing{0%{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}to{-webkit-transform:rotate(8deg);transform:rotate(8deg)}}@media (max-width:460px){.lantern__warpper{top:8px;left:30px}.lantern__warpper.lantern__secondary{left:calc(100% - 80px)}.lantern__box{width:50px;height:40px;-webkit-transform-origin:50% -40px;-ms-transform-origin:50% -40px;transform-origin:50% -40px;-webkit-box-shadow:-5px 5px 50px -1px #fa6c00;box-shadow:-5px 5px 50px -1px #fa6c00}.lantern__box:after,.lantern__box:before{height:4px;width:25px}.lantern__line{width:2px;height:8px}.lantern__circle .lantern__text{font-size:13.5px;line-height:38px}.lantern__tail{width:4px;height:8px}.lantern__tail .lantern__junction{width:8px;height:8px;-webkit-transform:translate(-50%,5.6px);-ms-transform:translate(-50%,5.6px);transform:translate(-50%,5.6px)}.lantern__tail .lantern__rect{-webkit-transform:translate(-50%,7.2px);-ms-transform:translate(-50%,7.2px);transform:translate(-50%,7.2px);width:8px;height:16px}}&quot;;
  styleInject(css_248z);
  var content = &#039;&lt;div class=&quot;lantern__warpper&quot;&gt;&lt;div class=&quot;lantern__box&quot;&gt;&lt;div class=&quot;lantern__line&quot;&gt;&lt;/div&gt;&lt;div class=&quot;lantern__circle&quot;&gt;&lt;div class=&quot;lantern__ellipse&quot;&gt;&lt;div class=&quot;lantern__text&quot;&gt;元&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;lantern__tail&quot;&gt;&lt;div class=&quot;lantern__rect&quot;&gt;&lt;/div&gt;&lt;div class=&quot;lantern__junction&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;lantern__warpper lantern__secondary&quot;&gt;&lt;div class=&quot;lantern__box&quot;&gt;&lt;div class=&quot;lantern__line&quot;&gt;&lt;/div&gt;&lt;div class=&quot;lantern__circle&quot;&gt;&lt;div class=&quot;lantern__ellipse&quot;&gt;&lt;div class=&quot;lantern__text&quot;&gt;旦&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;lantern__tail&quot;&gt;&lt;div class=&quot;lantern__rect&quot;&gt;&lt;/div&gt;&lt;div class=&quot;lantern__junction&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#039;;
  function createElement() {
    var div = document.createElement(&#039;div&#039;);
    div.className = &#039;j-china-lantern&#039;;
    div.innerHTML = content;
    document.body.appendChild(div);
  }
  createElement();
})));如何调用灯笼JS可以将代码内容保存到空间里并命名为china-lantern.js然后使用代码调用它，该代码可以放在头部或尾部文件里//粘贴到head或foot文件里
&lt;script src=&quot;/china-lantern.js&quot;&gt;&lt;/script&gt;//请根据实际路径修改也可以调用我的JS文件，代码如下//粘贴到head或foot文件里
&lt;script src=&quot;https://files.blog.lmb.blue/assets/js/china-lantern.js&quot;&gt;&lt;/script&gt;飘雪代码内容/* 控制下雪 */
function snowFall(snow) {
    /* 可配置属性 */
    snow = snow || {};
    this.maxFlake = snow.maxFlake || 100;   /* 最多片数 */
    this.flakeSize = snow.flakeSize || 10;  /* 雪花形状 */
    this.fallSpeed = snow.fallSpeed || 1;   /* 坠落速度 */
}
/* 兼容写法 */
requestAnimationFrame = window.requestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.msRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    function(callback) { setTimeout(callback, 1000 / 60); };
 
cancelAnimationFrame = window.cancelAnimationFrame ||
    window.mozCancelAnimationFrame ||
    window.webkitCancelAnimationFrame ||
    window.msCancelAnimationFrame ||
    window.oCancelAnimationFrame;
/* 开始下雪 */
snowFall.prototype.start = function(){
    /* 创建画布 */
    snowCanvas.apply(this);
    /* 创建雪花形状 */
    createFlakes.apply(this);
    /* 画雪 */
    drawSnow.apply(this)
}
/* 创建画布 */
function snowCanvas() {
    /* 添加Dom结点 */
    var snowcanvas = document.createElement(&quot;canvas&quot;);
    snowcanvas.id = &quot;snowfall&quot;;
    snowcanvas.width = document.body.offsetWidth;
    snowcanvas.height = window.innerHeight;
    snowcanvas.setAttribute(&quot;style&quot;, &quot;position:fixed; top: 0; left: 0; z-index: 9999; pointer-events: none;&quot;);
    document.getElementsByTagName(&quot;body&quot;)[0].appendChild(snowcanvas);
    this.canvas = snowcanvas;
    this.ctx = snowcanvas.getContext(&quot;2d&quot;);
    /* 窗口大小改变的处理 */
    window.onresize = function() {
        // snowcanvas.width = document.body.offsetWidth;
        /* snowcanvas.height = window.innerHeight */
    }
}
/* 雪运动对象 */
function flakeMove(canvasWidth, canvasHeight, flakeSize, fallSpeed) {
    this.x = Math.floor(Math.random() * canvasWidth);   /* x坐标 */
    this.y = Math.floor(Math.random() * canvasHeight);  /* y坐标 */
    this.size = Math.random() * flakeSize + 2;          /* 形状 */
    this.maxSize = flakeSize;                           /* 最大形状 */
    this.speed = Math.random() * 1 + fallSpeed;         /* 坠落速度 */
    this.fallSpeed = fallSpeed;                         /* 坠落速度 */
    this.velY = this.speed;                             /* Y方向速度 */
    this.velX = 0;                                      /* X方向速度 */
    this.stepSize = Math.random() / 30;                 /* 步长 */
    this.step = 0                                       /* 步数 */
}
flakeMove.prototype.update = function() {
    var x = this.x,
        y = this.y;
    /* 左右摆动(余弦) */
    this.velX *= 0.98;
    if (this.velY &lt;= this.speed) {
        this.velY = this.speed
    }
    this.velX += Math.cos(this.step += .05) * this.stepSize;
 
    this.y += this.velY;
    this.x += this.velX;
    /* 飞出边界的处理 */
    if (this.x &gt;= canvas.width || this.x &lt;= 0 || this.y &gt;= canvas.height || this.y &lt;= 0) {
        this.reset(canvas.width, canvas.height)
    }
};
/* 飞出边界-放置最顶端继续坠落 */
flakeMove.prototype.reset = function(width, height) {
    this.x = Math.floor(Math.random() * width);
    this.y = 0;
    this.size = Math.random() * this.maxSize + 2;
    this.speed = Math.random() * 1 + this.fallSpeed;
    this.velY = this.speed;
    this.velX = 0;
};
// 渲染雪花-随机形状（此处可修改雪花颜色！！！）
flakeMove.prototype.render = function(ctx) {
    var snowFlake = ctx.createRadialGradient(this.x, this.y, 0, this.x, this.y, this.size);
    snowFlake.addColorStop(0, &quot;rgba(255, 255, 255, 0.9)&quot;);  /* 此处是雪花颜色，默认是白色 */
    snowFlake.addColorStop(.5, &quot;rgba(255, 255, 255, 0.5)&quot;); /* 若要改为其他颜色，请自行查 */
    snowFlake.addColorStop(1, &quot;rgba(255, 255, 255, 0)&quot;);    /* 找16进制的RGB 颜色代码。 */
    ctx.save();
    ctx.fillStyle = snowFlake;
    ctx.beginPath();
    ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
    ctx.fill();
    ctx.restore();
};
/* 创建雪花-定义形状 */
function createFlakes() {
    var maxFlake = this.maxFlake,
        flakes = this.flakes = [],
        canvas = this.canvas;
    for (var i = 0; i &lt; maxFlake; i++) {
        flakes.push(new flakeMove(canvas.width, canvas.height, this.flakeSize, this.fallSpeed))
    }
}
/* 画雪 */
function drawSnow() {
    var maxFlake = this.maxFlake,
        flakes = this.flakes;
    ctx = this.ctx, canvas = this.canvas, that = this;
    /* 清空雪花 */
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    for (var e = 0; e &lt; maxFlake; e++) {
        flakes.update();
        flakes.render(ctx);
    }
    /*  一帧一帧的画 */
    this.loop = requestAnimationFrame(function() {
        drawSnow.apply(that);
    });
}
/* 调用及控制方法 */
var snow = new snowFall({maxFlake:200});
snow.start();如何调用飘雪JS可以将代码内容保存到空间里并命名为snowflake.js然后使用代码调用它，该代码可以放在头部或尾部文件里//粘贴到head或foot文件里
&lt;script src=&quot;/snowflake.js&quot;&gt;&lt;/script&gt;//请根据实际路径修改也可以调用我的JS文件，代码如下//粘贴到head或foot文件里
&lt;script src=&quot;https://files.blog.lmb.blue/assets/js/snowflake.js&quot;&gt;&lt;/script&gt;</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/770/">
<title>搭建基于UptimeRobot接口的站点监测网站</title>
<link>https://blog.lmb.blue/archives/770/</link>
<dc:date>2023-12-25T08:39:00+08:00</dc:date>
<description>什么是UptimeRobot王子公主请看以前的文章开始上次介绍了通过UptimeRobot免费监测网站状态并使用邮箱＋APP进行通知，有没有一种可能假如手机突然掉了，然后就……刚好想看一下自己的网站还在没在正常运行呢1号演示站点：http://1.test.lmb520.cn/这是原作者搭建的：https://status.baiwumm.com/搭建顺序我们这里使用的是由白雾茫茫基于UptimeRobot编写的源码：我们进入Github项目，然后下载项目源码改写.env文件第7、8行里的VITE_API_KEY一定要改成自己UptimeRobot账号里的Read-Only API Key（不改就是监测作者的网站）将打包后的文件上传至网站空间或者直接使用 Vercel 或者 Cloudflare 直接部署该项目构建项目你下载的源码，不可以直接上传到空间里，需要自行构建打包项目。然后才可以上传到空间使用PHP进行建站不会构建打包的话，可以百度。实在不行的话，可以把.env文件修改后通过邮箱（lmb@lmb520.cn）发给我并在本文评论一下发送邮箱（不然我怕看不到）安装环境（不可以跳过）# 若没有 pnpm
npm install pnpm -g
# 安装依赖
pnpm install进行开发（可以跳过这一步）pnpm dev最后打包（不可以跳过）pnpm build最后构建成功的源码会在dist文件夹，然后上传到空间上就可以了</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/671/">
<title>通过UptimeRobot免费监控网站状态并使用邮箱＋APP进行通知</title>
<link>https://blog.lmb.blue/archives/671/</link>
<dc:date>2023-08-10T15:16:00+08:00</dc:date>
<description>关于UptimeRobotUptimeRobot是一个国外的网络监控服务，旨在帮助网站和在线服务监测其可用性和性能。它会定期检查网站或服务是否正常运行，并在发现故障或异常时发送警报通知给用户。使用UptimeRobot可以帮助网站管理员快速识别并解决潜在的故障，以确保网站的稳定和可靠性。官网：https://uptimerobot.com/ (可以不用科学上网)如何使用注册点击链接直接注册：https://uptimerobot.com/signUp然后依次输入：你的名字(随便输入就行)邮箱(需要验证，登录时需要用密码(必填，而且不能忘了)哪里知道的UptimeRobot(选项，可以不用选)然后点击注册，一会儿就会收到UptimeRobot给你发的验证邮件，验证成功后就可以登录了。添加监控项目登录进去后，你会看到这个界面点击左上角的＋Monitor进行添加项目，会弹出一个窗口，第一个选项是选择监控类型，有4种免费的1种付费的HTTP(s)：用于监控网页是否能打开正常(像404，403等都不算正常)。并且可以设置监控周期Monitoring Interval(免费的最低5分钟)和监控超时时间Monitor Timeout(单位为秒，每次监控时超过设置的时间也算不正常)Keyword：用于监控网页中是否含有设置的关键词。注意的是选择Alert When时，Keyword Exists代表网页包涵关键词数据时就警告，Keyword Not Exists代表网页不包涵关键词数据时就警告ping：用于监控网址或IP能否被ping通port：用于监控网址或IP能否访问。请在Port选择你要监控的端口，如果选择Costom Port为自定义端口Heartbeat：心跳模式，配置在服务器。很麻烦而且要付钱，所以就不叙述了为啥没有演示图，因为没付钱，所以它不让我选择Heartbeat所有监控类型中的配置项有PRO和PAID都是要钱的，就不用想了。然后将免费的配置项填完后，记得把通知联系人的邮箱给勾选上最后点击确定就行了！注意：再添加监控项目的时候可能会出现类似下面的弹窗，直接点Close就关闭了使用APP进行通知Android App：①谷歌商店(需要科学上网)②蓝奏云，密码:lmb520(随缘更新)iPhone APP：APP Store或者在APP Store直接搜索UptimeRobot这里演示的Android，因为没钱买iPhone:^(流泪) 打开APP，然后登录自己的账号，首页会看见你所以监控的项目，找个监控项目点进去，会出现以下界面，把右上角的铃铛点绿就行了，记得把UptimeRobot APP设置后台与开机自启动、允许通知、允许后台耗电在APP上你也可修改和添加监控项目，在网站上添加监控项目时会发现多了一个手机通知方式最后可以在APP设置中或者网站中(UptimeRobot Settings)更改手机名称OK，结束</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/662/">
<title>博客接入TianliGPT实现自动生成文章的AI摘要</title>
<link>https://blog.lmb.blue/archives/662/</link>
<dc:date>2023-08-08T15:44:00+08:00</dc:date>
<description>什么是TianliGPT？TianliGPT是一个专业的文字摘要生成工具，你可以将需要提取摘要的文本内容发送给TianliGPT，稍等一会他就可以给你发送一个基于这段文本内容的摘要，最近又增加了一个随机文章的功能。实时生成的摘要自动生成，无需人工干预一次生成，再次生成无需消耗key包含文字审核过滤，适用于中国大陆支持中国大陆访问极速生成，无需等待价格优惠！哈喽！林墨白已经接入了TianliGPTTianliGPT开发者与维护者后端开发与维护：Tianli大佬产品设计与前端：张洪Heo大佬如何接入TianliGPT如何购买KeyKey可以到https://store.zhheo.com/?cid=1&mid=3 中购买，原价8.99元5万字符，价格挺优惠的。已经请求过的内容再次请求不会消耗key，可以无限期调用使用。购买后登录TianliGPT(https://summary.zhheo.com/)控制后台绑定密钥Key，再绑定域名接入代码目前有两种前端：Heo前端轻笑前端这两种前段的话，Heo前端目前来说比较简约，轻笑前端有几个功能。进入喜欢的前端项目，然后复制代码部署，如果有能力也可以自己写前端。部署代码这里演示的是Heo前端，首先我们先进入项目Github仓库，复制代码&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn1.tianli0.top/gh/zhheo/Post-Abstract-AI@0.11/tianli_gpt.css&quot;&gt;
&lt;script&gt;
let tianliGPT_postSelector = &#039;#post #article-container&#039;;
let tianliGPT_key = &#039;lmb5201314&#039;;
&lt;/script&gt;
&lt;script src=&quot;https://cdn1.tianli0.top/gh/zhheo/Post-Abstract-AI@0.11/tianli_gpt.js&quot;&gt;&lt;/script&gt;注意！你需要改的地方：let tianliGPT_postSelector = &#039;#post #article-container&#039;;将#post #article-container改为模板相对应的文章内容所在的元素属性的选择器，这个可能不懂。在下一步讲解let tianliGPT_key = &#039;lmb5201314&#039;;将lmb5201314改为TianliGPT后台对应的密钥Key最后把代码放进模板自定义底部里面，如果模板设置没有自定义底部，那就把代码放进模板foot.php里面，访问自己的文章就行了。如何找到文章内容所在的元素属性的选择器第一种(自行解决)：请跳转到张洪Heo大佬写的教程https://flowus.cn/share/7a353126-f225-4e5c-8c11-f5adefe85b7f ，挺详细的。第二种(求助张洪Heo大佬)：先去项目Github仓库https://github.com/zhheo/Post-Abstract-AI 然后去提交new Issues(新问题)内容包涵：模板名称＋模板源码链接已经适配好的模板，会写在项目中，提交Issues前请去看一下你的模板有没有被适配好最后该TianliGPT生成AI摘要理论上适用于动态或静态页面，所以不论你是用的typecho还是Hexo，甚至WordPress等其他系统几乎都可以接入使用</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/656/">
<title>手机验证码登录QQ，出现隐藏QQ？实战爆破一下</title>
<link>https://blog.lmb.blue/archives/656/</link>
<dc:date>2023-07-31T01:10:00+08:00</dc:date>
<description>源于网络关于隐藏QQ前几天在说说中发现引人注目的一条广告。说是什么手机号验证码登录就会出现隐藏QQ，秉承着好奇心害不死人的原则试了一下，我把两个手机号试了一下，发现了一个隐藏QQ号，就是：85xxxxxx39这个为什么会有呢？好问题！据说由于中国人口很大，然后手机号会被重复使用的。我这个才注册没多久的(冤种)腾讯QQ大王卡就是别人用过的手机号(居然二手货，害！)，这个隐藏QQ就是别人注册后没解绑或者没绑定手机号默认是注册手机号登录试试？试试就试试:)(doge6) 哦哟！不得了！腾讯QQ还留了one hand，还要有验证！很显然包括通过资料辅助验证这四种验证方式都行不通找回密码，再登录找回密码可以用手机号号找回，这样我们就可以找回隐藏QQ的密码了！但是事与愿违，很可惜这也需要进一步的验证！开始爆破选择爆破方式如果爆破密码很显然这是一个错误的选择，我选择爆破QQ号码。这样即可以在验证码登录后填写QQ号进行验证，也可以进行用QQ号找回密码然后再用手机验证码验证。怎样爆破？众所周知一般的QQ号都是8到10位数。因为85xxxxxx39中的x有6个，所以我断定这个QQ一定有10位，虽然很low的断定但是情有可原，毕竟也是弄着玩。问：10位QQ号中有6位数字不知道，有多少种可能。我毫不犹豫的打开了百度口算出来了，有100万种可能。如果我一个一个搜然后比对头像的话需要很久，就算我一秒一个也需要12天，感觉不多但是前提是得不吃不喝一秒一个，这个手工搜索不现实。我的垃圾思路：想出来用头像比对的方式来爆破QQ号→代码运行出100万个可能的QQ号→弄到正确QQ头像的原图→通过对每个QQ头像链接进行比对→最后代码来执行比对任务如何得到100万个QQ这里使用的是PHP代码执行的，自己使用要适当修改。//列出100万个QQ号
&lt;?php
$prefix = &#039;85&#039;;//前两位
$suffix = &#039;39&#039;;//后两位
$total = 1000000; // 总共的可能数量如果是9位QQ的话那就是100000
$result = &quot;&quot;;
// 生成可能的中间六位数字
for ($i = 0; $i &lt; $total; $i++) {
    $middle = str_pad($i, 6, &#039;0&#039;, STR_PAD_LEFT); // 使用0填充到6位数
    
    $qq = $prefix.$middle.$suffix;
    $result .= $qq.&quot;\n&quot;;
}
// 将列出结果一行一个QQ号保存到qq.txt
file_put_contents(&#039;qq.txt&#039;, $result);
echo &quot;可能的QQ号已保存到qq.txt文件中。&quot;;
?&gt;随便上传到一个PHP文件里(例如go.php)，第一种：用域名访问该文件(域名/go.php)第二种：SSH终端中运行go.php，两种方式都可以生成，然后服务器里的qq.txt文件里就包涵100万个QQ号了找正确QQ头像的原图我们先从QQ上截屏，这个截屏因为比较模糊，所以我们要找它的原图。这里没有什么高级的图片变高清或者什么修复的软件和代码。我用的是最朴实无华的百度识图，然后找相识，这个方法仅仅适用于头像是网图的。我这个还是不错找到了快速获取其它QQ头像这里有一个获取QQ头像的链接，高清大图http://q.qlogo.cn/headimg_dl?dst_uin=QQ账号&amp;spec=640&amp;img_type=jpg然后我们可以通过PHP代码写出一个可以根据qq.txt文件里的QQ号批量下载QQ头像的代码。//批量下载图片
&lt;?php
// 检查qq.txt文件是否存在
if (!file_exists(&#039;qq.txt&#039;)) {
    echo &quot;qq.txt文件不存在&quot;;
    exit;
}
// 创建img文件夹
if (!file_exists(&#039;img&#039;)) {
    mkdir(&#039;img&#039;);
}
// 读取qq.txt文件
$qqList = file(&#039;qq.txt&#039;, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 遍历每个QQ号
foreach ($qqList as $qq) {
    $qq = trim($qq); // 去除空格和换行符
    $url = &quot;http://q.qlogo.cn/headimg_dl?dst_uin={$qq}&amp;spec=640&amp;img_type=jpg&quot;;
    $imgPath = &quot;img/{$qq}.jpg&quot;; // 图片保存路径及文件名
    // 下载图片并保存
    file_put_contents($imgPath, file_get_contents($url));
}
echo &quot;图片下载完成！&quot;;我们有100万个QQ号，如果一次性全部下载完的话有些废服务器，所以这个代码不好用，优解看下一步。该如何进行对比？这个问题问得好！我也不知道，但是我有百度，查到了一个：“感知哈希算法之图片相似度对比”我简简单单的抄袭借鉴了一下，加上批量下载图片。我们可以知道，如果一次性下载完100万张QQ头像服务器是承受不住的，但是我们可以分批处理下载图片。把代码运行一小会儿后出现了错误：ERR_ADDRESS_UNREACHABLE可能是因为运行时间和内存的原因，我加上了相应限制：set_time_limit(0);
ini_set(&#039;memory_limit&#039;, &#039;2048M&#039;);感觉100万张图片全部下载下来很多而且占用空间，所以加了一个每执行完一批就就删除对应的图片。做了一些优化可以让服务器负担更小，比如对循环进行优化，减少不必要的重复计算和使用缓存来减少重复的计算或读取操作，提高性能。最终完整的代码就新鲜出炉咯//感知哈希算法对比图片相似度
&lt;?php
set_time_limit(0);
ini_set(&#039;memory_limit&#039;, &#039;2048M&#039;);//根据实际情况修改数字
class img_compare
{
    // 比较相似度
    public function compare($img1, $img2)
    {
        $hash1 = $this-&gt;gethash($img1);
        $hash2 = $this-&gt;gethash($img2);
        if (strlen($hash1) !== strlen($hash2)) return false;
        $count = 0;
        $len = strlen($hash1);
        for ($i = 0; $i &lt; $len; $i++) {
            if ($hash1[$i] == $hash2[$i]) {
                $count++;
            }
        }
        // 返回相似度
        return $count;
    }
    // 将图片文件返回为图像标识符
    public function getimg($url)
    {
        $name = pathinfo($url, PATHINFO_EXTENSION);
        $img = call_user_func(&#039;imagecreatefrom&#039; . ($name == &#039;jpeg&#039; ? &#039;jpeg&#039; : $name), $url);
        return $img;
    }
    // 获得图片指纹
    public function gethash($url)
    {
        $array = array();
        $total = 0;
        $new_img = imagecreatetruecolor(8, 8);
        list($ex_w, $ex_h) = getimagesize($url);
        $ex_img = $this-&gt;getimg($url);
        imagecopyresampled($new_img, $ex_img, 0, 0, 0, 0, 8, 8, $ex_w, $ex_h);
        imagedestroy($ex_img);
        for ($i = 0; $i &lt; 8; $i++) {
            for ($j = 0; $j &lt; 8; $j++) {
                $gray = (imagecolorat($new_img, $j, $i) &gt;&gt; 8) &amp; 0xFF;
                $array[$i][$j] = $gray;
                $total += $gray;
            }
        }
        imagedestroy($new_img);
        $average = intval($total / (8 * 8 * 2));
        $hash = &#039;&#039;;
        for ($i = 0; $i &lt; 8; $i++) {
            for ($j = 0; $j &lt; 8; $j++) {
                $hash .= ($array[$i][$j] &gt;= $average) ? &#039;1&#039; : &#039;0&#039;;
            }
        }
        return $hash;
    }
}
$file_path = &#039;qq.txt&#039;;
$qq_numbers = file($file_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 分批处理参数
$batch_size = 10;
$total_qq = count($qq_numbers);
$num_batches = ceil($total_qq / $batch_size);
// 定义匹配数组
$matched_qq = [];
$img = new img_compare();
// 启用输出缓冲区控制
ob_start();
// 循环遍历分批处理
for ($i = 0; $i &lt; $num_batches; $i++) {
    $start = $i * $batch_size;
    $end = min(($i + 1) * $batch_size, $total_qq);
    // 当前批次的QQ号码
    $batch_qq = array_slice($qq_numbers, $start, $end - $start);
    // 处理当前批次的QQ号码
    foreach ($batch_qq as $qq) {
        // 构建替换后的链接
        $replace_url = str_replace(&quot;QQ&quot;, $qq, &quot;https://q1.qlogo.cn/g?b=qq&amp;nk=QQ&amp;s=640&quot;);
        // 下载图片
        $local_image_path = &#039;img/&#039; . $qq . &#039;.jpeg&#039;;
        file_put_contents($local_image_path, file_get_contents($replace_url));
        // 计算图片相似度
        $similarity = $img-&gt;compare($local_image_path, &#039;img/true/QQ.jpeg&#039;);
        // 输出链接对比结果到内容输出框
        echo &quot;QQ号码：&quot; . $qq . &quot;，相似度：&quot; . $similarity . &quot;%\n&quot;;
        // 判断相似度是否大于等于90%
        if ($similarity &gt;= 90) {
            // 添加到匹配数组
            $matched_qq[] = $qq;
        }
    }
    // 写入当前批次匹配的号码到trueqq.txt文件
    if (!empty($matched_qq)) {
        file_put_contents(&#039;trueqq.txt&#039;, implode(PHP_EOL, $matched_qq) . PHP_EOL, FILE_APPEND);
        echo &quot;已匹配的号码已保存到trueqq.txt文件\n&quot;;
        $matched_qq = []; // 清空匹配数组
    }
    // 删除下载的图片
    foreach ($batch_qq as $qq) {
        $local_image_path = &#039;img/&#039; . $qq . &#039;.jpeg&#039;;
        if (file_exists($local_image_path)) {
            unlink($local_image_path);
        }
    }
}
// 输出已匹配的号码
if (!empty($matched_qq)) {
    echo &quot;已匹配的号码：\n&quot;;
    foreach ($matched_qq as $qq) {
        echo $qq . &quot;\n&quot;;
    }
}
// 清空输出缓冲区并关闭
ob_end_flush();
?&gt;你需要做的！在服务器上创建go.php，写入“列出100万个QQ号”的代码后运行，然后会自动创建qq.txt而且里面包涵所以可能的QQ号在服务器上创建img文件夹，所有下载的头像将会上传到img文件里里在服务器上创建img/true文件夹把正确的头像放在img/true里并命名QQ.jpeg在服务器上创建trueqq.txt，这是用于储存正确率三90%的QQ号新建一个run.php，将“感知哈希算法对比图片相似度”的代码写入，最后运行run.php并得出结果。最后结果结果我是没成功，报错502 Bad Gateway，通常是由服务器端出现问题导致的。因为没钱买高配置的服务器所以报错:^(流泪)2024年1月3日补充我运行代码的时候一直用的浏览器访问php文件来运行的，所以导致502 Bad Gateway，后来想我发现是可以直接在SSH终端里，使用命令运行php，而且可以长时间运行代码，但是我没有时间来继续实践下去了（主要是那个隐藏QQ号被我解绑了）</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/638/">
<title>如何快速替换typecho的图片链接</title>
<link>https://blog.lmb.blue/archives/638/</link>
<dc:date>2023-05-01T00:38:00+08:00</dc:date>
<description>话说我好久都没有更新文章了，博客感觉都要放烂了。继上次换域名后，是直接给mbhome.cn做了301重定向到blog.lmb520.cn。结果在域名到期后，文章里的图片链接就失效了。解决因为我习惯把图片直接储存到自己的服务器里，所以只需要将所有文章里图片链接中的www.mbhome.cn 替换成blog.lmb520.cn就行了。但是问题是这么多文章还得自己一个一个替换？怎么可能嘛，虽然我的文章不多。但是我也懒。所以直接登录我的phpMyAdmin。进入博客所在的数据库然后点击上面的三条杠，再点击SQL去里面执行SQL语句下面是需要的填写的语句update 表名 set 字段名=REPLACE (字段名,&#039;旧的值&#039;,&#039;新的值&#039;)就像我的：update typecho_contents set text=REPLACE (text,&#039;www.mbhome.cn&#039;,&#039;blog.lmb520.cn&#039;)点击执行就可以了！如果不放心可以试试模拟查询</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/629/">
<title>Google 账户的一次申诉</title>
<link>https://blog.lmb.blue/archives/629/</link>
<dc:date>2023-03-12T23:44:00+08:00</dc:date>
<description>话说前几天用科学上网技术注册了谷歌账户，注册后信息填完都还好好的，结果第二天登录就出现 ：“此帐号似乎是与多个其他帐号一起创建或使用的，这违反了Google的政策。此帐号可能是由计算机程序或机器人创建的。如果您认为自己的帐号不该被停用，请尽快提交申诉。您还可从某些Google服务中下载您的数据。这样，即使您的帐号未恢复，您也能保留自己的数据。”(难道老美已经知道我要入侵他们的服务器了？)我直接人麻了:^(微笑) 然后百度搜了搜大概就是科学上网后用的V皮N服务器IP大多数是共享的，所以会被人工智能智碍检测为是机器人批量创建的账户:[blobcatfacepalm]如何解封？不过Google还是给我们留了通道的，点击发起申诉点进去后到第二步的时候，要填申诉原因。这个一定要填不然一辈子都通过不了！下面给大家发了申诉模板，只需要将XXXX@gmail.com 换成自己的账户即可，可以根据自身情况修改相应部分Dear Sir/Madam.
Hello. My account is XXXX@gmail.com.
I am a American user in China. I must use a vpn proxy and a Chinese phone number to use Google products.
The account may be abnormally disabled due to &#039;This account appears to have been created by a robot or used with several other accounts&#039; .
And this account was truely created by myself [through vpn]!Not by robots or any other things.
So I don&#039;t think this account should be disabled
This account is VERY IMPORTANT to me. I hope you can help me solve it. Thank you very much.{/bs-accord}尊敬的先生/女士。你好。我的帐户是 XXXX@gmail.com。我是在中国的美国用户。我必须使用 vpn 代理和中国电话号码才能使用 Google 产品。由于“此帐户似乎由机器人创建或与其他几个帐户一起使用”，该帐户可能被异常禁用。这个帐户确实是我自己[通过vpn]创建的！不是机器人或任何其他东西。所以我认为不应该禁用此帐户这个帐户对我来说非常重要。希望你能帮我解决。谢谢。{/bs-accord}我的申诉结果申诉第三天就已经发来结果了，也是通过了申请。</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/615/">
<title>宝塔面板的开心版持续更新地址＋安装教程</title>
<link>https://blog.lmb.blue/archives/615/</link>
<dc:date>2023-02-26T23:56:00+08:00</dc:date>
<description>什么是宝塔面板？宝塔面板是一款服务器管理软件，支持Windows和Linux系统，可以通过Web端轻松管理服务器，提升运维效率，该软件内置了创建管理网站、FTP、数据库、可视化文件管理器、可视化软件管理器等等。安装宝塔的目的就是更简单的管理网站服务器。解决对服务器技术不太懂的或者想用更简单的方法来管理服务器的人们。为了更好的服务这些群体，宝塔会在软件立项层面就引入交互体验。有Linux和Windows版本的。关于专业版和企业版官方给的价格是：Linux面板费用/类型免费版专业版企业版一月免费79元不支持一年免费699元1399元两年免费1398元2799元三年免费2097元2999元永久免费2988元不支持由于开心版没有Windows版（也有免费版）的就不过多介绍了，可以自行到官网查看： 宝塔价格总的来说：贵！开心版更新开心版来自（点击进入，可能要梯子）：异次元更新频率：几乎和官方同天更新安全性：不清楚有没有啥后门，也没有什么不可理解的bug，在异次元里有安装开心版教程(我用了挺久了，感觉挺不错的)问题问： 只能用新安装的宝塔面板吗，已经有数据的需要重装吗？答： 不是的，不管你是否用了多久官方的面板。只要把账号退出了，然后使用异次元里的开心企业版升级命令运行就可以了。（注意：以防万一有重要数据的记得备份到本地）问： 每次更新都需要用命令更新吗？答： 不是的，可以点击宝塔自带的更新功能，更新后还是开心版有其他问题的可以评论区留言</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/604/">
<title>手机没有ROOT权限的福音：shizuku</title>
<link>https://blog.lmb.blue/archives/604/</link>
<dc:date>2023-01-17T22:51:00+08:00</dc:date>
<description>关于ROOT权限Root，也称为根用户，是Unix(如Solaris、AIX、BSD）和类UNIX系统(如Linux、QNX等)，及Android和iOS移动设备系统中的唯一的超级用户，因其可对根目录执行读写和执行操作而得名。其相当于Windows系统中的SYSTEM(XP及以下)/TrustedInstaller(Vista及以上)用户。其具有系统中的最高权限，如启动或停止一个进程，删除或增加用户，增加或者禁用硬件，新建文件、修改文件或删除所有文件等等。简单点就是：手机最高权限但是手机获取后一般手机商就不保修了，而是大部分手机不给你解BL锁，比如：我的手机（vivo）关于shizukuShizuku是一款十分实用的手机开源应用软件工具，软件可以让用户更加方便的使用系统API，不管手机有没有经过Root都能够使用，能够帮助大家更好的修改应用的各种设置，提升实用效率。有需要的网友下载就可以了。我目前用shizuku激活的软件</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/603/">
<title>哈喽！2023</title>
<link>https://blog.lmb.blue/archives/603/</link>
<dc:date>2023-01-01T09:11:00+08:00</dc:date>
<description>小叙随着2023年的到来，疫情你也慢慢的过去。我也是从初中生成为了高一新生，我的Sister也有了陪伴她一生的人，这一年似乎有着好的开端。我的成果感觉没啥成果，浑浑噩噩的。:)(doge8) 未来可期说实话，2018年我就开始接触电脑，并一下子就热爱了。到了初一（2020年）学会了使用源码:)(doge) ，后来才逐渐了解了html和php的皮毛。所以我决定新年计划：未完待续吧……你好！网友，新年快乐</description>
</item>
</rdf:RDF>