From 88271e27e6f29e84a9561d56233cfe8c65c2af65 Mon Sep 17 00:00:00 2001 From: Han <1655466387@qq.com> Date: Wed, 12 Feb 2025 10:15:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A4=BA=E4=BE=8B=E6=96=87?= =?UTF-8?q?=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 14 ++- ...雨重山无限存储图床托管于(Cloudflare Pages).md | 57 +++++++++++ .../Cloudflare优选IP➕DnsPod的DDNS自动切换.md | 95 ++++++++++++++++++ ...cs访问分析Web统计托管于(Cloudflare Pages).md | 96 +++++++++++++++++++ .../09/基于AI的微博动态心情分析【开源】.md | 60 ++++++++++++ ...开源项目WebWatermark图片添加水印在线小助手.md | 27 ++++++ .../blog/2024/12/【开源】Tarot-塔罗牌占卜.md | 42 ++++++++ 7 files changed, 390 insertions(+), 1 deletion(-) create mode 100644 src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md create mode 100644 src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md create mode 100644 src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md create mode 100644 src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md create mode 100644 src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md create mode 100644 src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md diff --git a/.gitignore b/.gitignore index 1cdb5f7..b5a7453 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,19 @@ test/ /public/MineWeb /public/other /src/content/blog/* -!/src/content/blog/ +!/src/content/blog +/src/content/blog/2024/* +!/src/content/blog/2024 +/src/content/blog/2024/07/* +!/src/content/blog/2024/07 +/src/content/blog/2024/08/* +!/src/content/blog/2024/08 +/src/content/blog/2024/09/* +!/src/content/blog/2024/09 +/src/content/blog/2024/11/* +!/src/content/blog/2024/11 +/src/content/blog/2024/12/* +!/src/content/blog/2024/12 !/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md !/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md !/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md diff --git a/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md b/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md new file mode 100644 index 0000000..8581b1f --- /dev/null +++ b/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md @@ -0,0 +1,57 @@ +--- +title: 【开源】骤雨重山无限存储图床托管于(Cloudflare Pages) +date: 2024-07-22 18:11:06 +categories: Code +tags: + - Cloudflare Pages + - telegraph + - Imgur + - 免费图床 + +id: "zycs-img-cloud-from-cloudflare-pages" +cover: "https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721643791.png" +recommend: true +--- + +:::note +在现代互联网环境中,快速稳定的图片访问是提升用户体验的重要因素之一。本文将介绍如何利用Cloudflare Pages部署稳定的无限图床Imgur,实现图片上传和访问,并进一步通过WordPress的WP.COM全球图片缓存进行加速,提高图片加载速度。可用于免费图片托管解决方案,Flickr 等替代品。 +::: + +## 简介 + +- [Cloudflare Pages](https://pages.cloudflare.com/) 是一个强大的静态网站托管服务,结合了 Cloudflare 的全球 CDN(内容分发网络)优势。 +- [Imgur](https://imgur.com/) 是一个免费优质的图床。 +- [WordPress 的全球图片缓存](https://01.wp.com/) 是一个高效的 CDN 服务,专门用于加速 WordPress 托管的图片内容。它利用全球分布的节点,将图片缓存并提供快速访问。 +- [Cloudflare CDN(内容分发网络)](https://www.cloudflare.com/zh-cn/application-services/products/cdn/)是由Cloudflare提供的服务,旨在加速和保护和加速全球网络应用程序。 + +### 页面 + +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721639712.png) + +::btn[点击体验]{link="https://wp-cdn.4ce.cn/"} + +### 项目地址 + +::btn[ZYCS-IMG - Github]{link="https://github.com/uxiaohan/ZYCS-IMG"} + +## 如何部署 + +- 1、准备一个 Cloudflare 账户 +- 2、Fork 本仓库,自由修改`App.vue`和`index.html`文件中的文案 +- 3、登录`Cloudflare Dashboard`打开`Workers 和 Pages`创建`Pages` +- 4、`连接到Git`选择`Github`或`Gitlab`中你刚刚Fork的项目,点击开始设置 +- 5、只需要修改`框架预设`为`Vue`即可,点击保存并部署,即可部署成功并投入使用 + +**图片步骤** + +:::picture +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640641.png) +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640649.png) +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640656.png) +::: + +### 特点 + +- 无限图片储存数量,你可以上传不限数量的图片到`Imgur` +- 无需购买服务器,托管于`Cloudflare Pages`上,每天10万次的请求 +- 无需购买域名,可以使用`Cloudflare Pages` 提供的`*.pages.dev`的免费二级域名,同时也支持绑定自定义域名 diff --git a/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md b/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md new file mode 100644 index 0000000..ef227b2 --- /dev/null +++ b/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md @@ -0,0 +1,95 @@ +--- +title: 【开源】Cloudflare优选IP➕DnsPod的DDNS自动切换 +date: 2024-08-27 15:24:10 +categories: Code +tags: + - Cloudflare + - 优选IP + - DnsPod + - DDNS + +id: cloudflare-ip-dnspod-ddns +cover: https://i0.wp.com/uxiaohan.github.io/v2/2024/08/1724744026.webp +recommend: true +--- + +:::note +CloudFlare是一个非常优秀的CDN服务,但是CloudFlare也有一个大的毛病——大陆访问速度很慢。国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的IP并不友好(延迟高、丢包多、速度慢)。 +虽然Cloudflare公开了所有IP段,但想要在这么多IP中找到适合自己的,怕是要累死,于是就有了这个脚本。 +::: + +## Cloudflare优选IP 每隔15分钟更新(IPv6+IPv4) + +### 项目地址 + +::btn[CloudflareIP-dnspod-ddns]{link="https://github.com/uxiaohan/CloudflareIP-dnspod-ddns"} + +### 优化后示例站点 + +::btn[点击体验]{link="https://cf.vvhan.com/"} + +## 实现逻辑及局部代码 + +### 获取优选IP + +```js +const res = await fetch("https://api.vvhan.com/tool/cf_ip"); +const data = await res.json(); +// 数据格式 +// { +// "success": true, +// "data": { +// "v4": { +// "CM": [], +// "CU": [], +// "CT": [] +// }, +// "v6": { +// "CM": [], +// "CU": [], +// "CT": [] +// } +// } +// } +``` + +### 取优选IP中的最优选 (延迟比较) + +```js +// 取最优选IP IPv4 +const CM_IP_V4 = data.v4.CM.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v4.CM[0]); +const CU_IP_V4 = data.v4.CU.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v4.CU[0]); +const CT_IP_V4 = data.v4.CT.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v4.CT[0]); +const DNS_DATA_V4 = { 移动: CM_IP_V4.ip, 联通: CM_IP_V4.ip, 电信: CU_IP_V4.ip, 默认: CT_IP_V4.ip }; + +// 取最优选IP IPv6 +const CM_IP_V6 = data.v6.CM.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v6.CM[0]); +const CU_IP_V6 = data.v6.CU.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v6.CU[0]); +const CT_IP_V6 = data.v6.CT.reduce((minItem, currentItem) => { + return currentItem.latency < minItem.latency ? currentItem : minItem; +}, data.v6.CT[0]); +const DNS_DATA_V6 = { 移动: CM_IP_V6.ip, 联通: CM_IP_V6.ip, 电信: CU_IP_V6.ip, 默认: CT_IP_V6.ip }; +``` + +### 循环替换优选IP + +```js +DnsPodDomainList.forEach(async i => { + try { + const res = await client.ModifyRecord({ Domain, RecordType: i.Type, RecordLine: "", RecordLineId: i.LineId, Value: i.Type == "A" ? DNS_DATA_V4[i.Line] : DNS_DATA_V6[i.Line], RecordId: i.RecordId, SubDomain }); + console.log(res); + } catch (error) { + console.log(error); + } +}); +``` diff --git a/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md b/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md new file mode 100644 index 0000000..3b147dd --- /dev/null +++ b/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md @@ -0,0 +1,96 @@ +--- +title: 【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages) +date: 2024-09-22 20:20:13 +categories: Code +tags: + - HanAnalytics + - Cloudflare Pages + - umami + - Analytics Engine + - 网站分析 + +id: "han-analytics" +cover: "https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727007937.webp" +recommend: true +--- + +:::note +Han-Analytics 是一个简单的网络分析跟踪器和仪表板,托管在被称为赛博菩萨的 Cloudflare 上,无成本稳定运行,每天可达10万次免费统计。 +域名、服务器、数据库 通通都不用! 托管在 Cloudflare Pages 上即可快速部署网站分析仪表板。 +::: + +### 页面截图 + +![HanAnalytics](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1726993735.webp) + +::btn[点击体验]{link="https://analytics.vvhan.com/"} + +### 项目地址 + +::btn[HanAnalytics - Github]{link="https://github.com/uxiaohan/HanAnalytics" type="success"} + +### 部署 + +- 登录到 [Cloudflare Login](https://dash.cloudflare.com/sign-up),没有的注册一个 [Cloudflare SignUp](https://dash.cloudflare.com/sign-up) +- 点击 Workers 和 Pages 随便创建一个 workers 并开启 分析引擎,然后复制 workers ID 备用。 +- 创建一个 [Cloudflare API token](https://dash.cloudflare.com/profile/api-tokens) 备用。 +- Fork 项目到自己的 Github 账户备用。 +- 登录 Cloudflare 并创建 Pages 项目 ,链接Github仓库,选择刚刚 Fork 的项目,架构选择Vue,填入环境变量(环境变量含义如下),部署即可。 +- Cloudflare pages 部署完成后,在项目的`设置`中配置`绑定`,添加`Analytics Engine`,变量名称填写`AnalyticsBinding`,数据集填写`AnalyticsDataset`并保存,重新部署!。 +- 重新部署完成后,访问 `https://xxxxxx.pages.dev` 即可访问网站分析仪表板。(注意:首次部署生成的域名可能需要几分钟时间生效,请耐心等待) +- 部署成功后,首次打开页面没有数据,请尽快集成到自己的网站并出现有效访问后,再次打开页面即可看到数据! +- 新增 `密码访问` 及 `网站白名单`,开启密码后,输入密码可访问(默认无需密码),网站白名单功能,加白的网站才可计入统计(默认任意网站都可统计) + +### 环境变量说明 +```shell +# Cloudflare Workers ID +CLOUDFLARE_ACCOUNT_ID = 你的 Cloudflare Workers ID + +# 你的 Cloudflare API token +CLOUDFLARE_API_TOKEN = 你的 Cloudflare API token + +# 网站访问密码 (不设置即无需密码访问) +CLOUDFLARE_WEBSITE_PWD = + +# 可统计的白名单 格式: 域名,WebSite|域名,WebSite,多个站点使用|分隔 例如:api.vvhan.com,Hello-Han-Api|www.vvhan.com,Hello-HanHexoBlog (不设置即允许任何统计) +CLOUDFLARE_WEBSITE_WHITELIST = +``` + +### 绑定 +```shell +# 变量名 +AnalyticsBinding +# 数据集 +AnalyticsDataset +``` + +:::picture +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001144.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001550.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001058.webp) +::: + +:::picture +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001090.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001118.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001163.webp) +::: + +:::picture +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1727001181.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/12/1734595834412.webp) +![HanAnalytics访问分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/12/1734596343524.webp) +::: + +### 集成使用 + +```js +// 在网站底部插入以下代码即可集成网站分析仪表板 + +``` + +:::note +数据问题一般是由于 Cloudflare Analytics Engine 无法访问网站导致的,请确保网站可以正常访问,并且 Cloudflare Analytics Engine 已经开启。 +使用 Cloudflare Analytics Engine 数据集,它完全通过 HTTP 使用 Cloudflare 的 API 进行通信,数据完全来源于 Cloudflare Analaytics Engine 数据集中读取 +Cloudflare Analytics Engine 使用抽样技术,以可承受的规模化方式实现大量数据提取/查询(这类似于大多数其他分析工具,请参阅Google Analytics 上的抽样)。您可以在此处详细了解抽样技术如何与 CF AE 配合使用。 +::: diff --git a/src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md b/src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md new file mode 100644 index 0000000..9e7796b --- /dev/null +++ b/src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md @@ -0,0 +1,60 @@ +--- +title: 基于AI的微博动态心情分析【开源】 +date: 2024-09-04 15:59:05 +categories: Daily +tags: + - 微博动态 + - 心情分析 + - AI + +id: "weibo-dynamic-emotion-analysis-open-source" +cover: "https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1725437035.webp" +recommend: true +--- + +:::note +实时关注 Ta 的微博,并了解 Ta 微博动态的情绪心情,通过 Bark 或 PushDeer 进行通知的,基于 Nodejs 的 AI的微博动态心情分析 脚本 +::: + +### 开源地址 + +[WeiBo-Mood](https://github.com/uxiaohan/WeiBo-Mood) + +[免费AI注册](https://cloud.siliconflow.cn/i/R83F9xkI) + +### 配置 config.js 文件 + +```js +module.exports = { + // AI API接口地址 + chatApi: "https://api.siliconflow.cn/v1/chat/completions", + // AI 大模型 (可根据文档更换) + chatModel: "internlm/internlm2_5-7b-chat", + // AI Token + chatToken: "", + // 微博ID https://m.weibo.cn/u/1840274303 + WB_UID: "1840274303", + // 获取最新微博频率 每间隔16分钟更新一次 (Cron 表达式) + CRON_TIME: "*/16 * * * *", + // Bark通知Token 不填写即不通知 https://bark.day.app/ + BARK_TOKEN: "", + // PushDeer通知Token 不填写即不通知 https://www.pushdeer.com/ + PUSH_DEER_TOKEN: "" +}; +``` + +### 安装依赖 + +```js +npm install +``` + +### 运行脚本 + +```js +npm start +``` + +### 效果图片 + +![微博心情分析](https://i0.wp.com/uxiaohan.github.io/v2/2024/09/1725436245.png) diff --git a/src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md b/src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md new file mode 100644 index 0000000..26e2ac6 --- /dev/null +++ b/src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md @@ -0,0 +1,27 @@ +--- +title: 【开源】Web Watermark 图片添加水印在线小助手 +categories: Daily +tags: + - 开源 + - 水印 + - WebWatermark + +id: Web-Watermark +cover: "https://i0.wp.com/uxiaohan.github.io/v2/2025/02/1739241633608.webp" +date: 2024-11-21 15:32:51 +recommend: true +--- + +:::note +Web Watermark是一款在线的网页版可离线使用的安全的图片添加水印项目 +::: + +### 页面截图 + +![Web Watermark](https://i0.wp.com/uxiaohan.github.io/v2/2024/11/1732174890.webp) + +::btn[点击体验]{link="https://watermark.vvhan.com/"} + +### 项目地址 + +::btn[WebWatermark - Github]{link="https://github.com/uxiaohan/WebWatermark"} diff --git a/src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md b/src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md new file mode 100644 index 0000000..30e0209 --- /dev/null +++ b/src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md @@ -0,0 +1,42 @@ +--- +title: 【开源】Tarot-塔罗牌占卜 +categories: Code +tags: + - 开源 + - Tarot + - 塔罗牌占卜 + - Tarot-Web +id: kaiyuan-tarot +cover: https://i0.wp.com/uxiaohan.github.io/v2/2024/12/1733449691.png +date: 2024-12-06 09:37:11 +--- + +:::note +塔罗牌占卜作为一种深受人们喜爱的心理探索工具,已经成为许多人自我反思与探索人生的方式之一。Tarot-Web是一款基于Web的塔罗牌占卜应用,它提供了22种不同的塔罗牌,每一张卡片都融合了传统塔罗的象征意义与AI的独特解读能力。 +::: + +### 页面截图 + +![【开源】Tarot-塔罗牌占卜Tarot-Web](https://i0.wp.com/uxiaohan.github.io/v2/2024/12/1733449968.webp) + +::btn[点击体验]{link="https://tarot.4ce.cn/"} + +### 项目地址 + +::btn[Tarot-Web - Github]{link="https://github.com/uxiaohan/Tarot-Web"} + +## 如何部署 + +- 1、准备一个 Cloudflare 账户 +- 2、Fork 本仓库,自由修改`App.vue`和`index.html`文件中的文案 +- 3、登录`Cloudflare Dashboard`打开`Workers 和 Pages`创建`Pages` +- 4、`连接到Git`选择`Github`或`Gitlab`中你刚刚Fork的项目,点击开始设置 +- 5、只需要修改`框架预设`为`Vue`即可,点击保存并部署,即可部署成功并投入使用 + +**图片步骤** + +:::picture +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640641.png) +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640649.png) +![骤雨重山图床](https://i0.wp.com/uxiaohan.github.io/v2/2024/07/1721640656.png) +:::