✦ Open Source Projects
我的项目
这里整理了我正在开发和维护的一些开源项目,涵盖离线 IP
归属地服务、学习激励应用、Halo 博客主题、地图可视化插件,
以及基于 AI 的信息监控与风险预警工具。
🧩 Halo 生态
🐍 Python 服务
🤖 AI 应用
📦 开源项目
一个轻量、快速且完全离线的 IP
归属地查询服务。项目将地址数据库直接打包进容器镜像,
无须依赖外部接口,即可同时完成 IPv4 和 IPv6 地址查询。
核心特性
-
完全离线
IP 数据库 xdb
文件直接打包进镜像,本地完成查询,不出网,也不依赖第三方 API。
-
微秒级查询
服务启动时将完整数据库载入内存,查询过程无磁盘
I/O,并可安全处理并发请求。
-
IPv4 / IPv6 自动判别
使用同一个查询接口即可处理两种地址类型,无须调用不同的 API。
-
高精度地址数据
国内地址可精确到区县和运营商,海外地址可查询国家及州级信息。
-
Docker Compose 一键部署
内置健康检查,并采用非 root
用户运行,便于部署、升级和迁移。
-
CORS 白名单
仅允许指定站点发起跨域请求,避免服务被其他网页任意调用。
-
可视化查询页面
直接在浏览器中访问服务根路径,即可使用内置的 IP 查询界面。
Python
FastAPI
ip2region
IPv4
IPv6
Docker
一个将番茄钟与抽卡机制结合的自托管学习激励应用。完成专注任务赚取书页,
兑换藏书签、抽取双一流高校 SSR 卡片,收集图鉴、解锁成就,让学习像开盲盒一样上瘾。
核心特性
-
番茄钟激励
每专注 1 分钟获得 2 书页(可配置),
学习时长直接转化为抽卡资源。
-
早鸟奖励
每日 08:30 前完成首次专注,
额外奖励 100 书页,鼓励早起学习。
-
卡牌星级系统
3 张同名卡合成升 1 星,最高 5 星,
满星分解可返还书页。
-
成就系统
内置 18 个成就,涵盖单抽 SSR、
双黄蛋、保底 SSR、全周早鸟等趣味目标。
-
105 张高校卡片
39 所 985 高校 SSR 卡,搭配 SR / R / N
各级别卡池,图鉴收集感拉满。
-
开箱即用
单用户设计,SQLite 存储,无需登录,
Docker 一行命令即可部署使用。
Python
FastAPI
SQLite
原生前端
Docker
Sky Luxas 是本博客正在使用的主题。它基于 Halo 2.x
构建,采用现代化的前端技术栈,在视觉表现、交互体验和页面性能之间取得平衡。
项目简介
-
面向 Halo 2.x
围绕 Halo
新版本的模板结构和内容体系开发,适用于个人博客和技术站点。
-
现代前端技术栈
使用 Vite、Tailwind CSS、DaisyUI 和 Alpine.js
构建页面与交互。
-
响应式设计
针对桌面端、平板和移动端进行适配,保持统一的阅读体验。
-
持续维护
主题功能会随着博客实际使用需求不断调整、扩展和优化。
Halo 2.x
Vite
Tailwind CSS
DaisyUI
Alpine.js
一个为 Halo 开发的朋友地图插件,用于记录朋友所在地区,
并通过中国省级行政区及海外国家热力图,展示朋友在世界各地的分布情况。
主要功能
-
提供独立的前台页面
/friends-map,
用地图形式展示朋友所在地区。
-
在 Halo Console
的“内容”分组中提供“天涯比邻”管理菜单。
-
支持添加、编辑和删除朋友的姓名、关系、备注及当前位置。
-
当前位置支持搜索;中国覆盖全部省级行政区,
海外地区按照国家进行管理。
-
香港、澳门和台湾按照省级地区处理,
并统一纳入地图统计。
-
地图按照朋友数量显示主题色热力,
某个地区人数越多,显示颜色越明亮。
-
“遍布地区”由已点亮的中国省级地区数与海外国家数共同计算。
-
游客只能读取聚合数量;姓名、关系和备注等信息仅向具有管理权限的登录用户开放。
-
页面沿用 Sky Blog 的
#swup、
#swup-scripts 和
#swup-page-extras 容器结构。
-
从站内进入地图页面时,不会重新加载页眉和页脚,
保持主题原有的无刷新切换体验。
兼容性
Halo
≥ 2.21.8
Java
JDK 21
Node.js
20+
包管理器
pnpm 9
推荐主题
Sky Luxas
Halo Plugin
JDK 21
Map Visualization
Swup
Privacy Control
一个用于监控 Truth Social 上
@realDonaldTrump
最新发帖的自动化项目。系统会保存帖子、调用大模型分析其对虚拟货币市场的潜在影响,
并在识别到较高波动风险时发送邮件告警。
主要功能
-
周期性调用公开 API,抓取 Truth Social
指定账号发布的最新内容。
-
将帖子持久化保存至 SQLite,并使用 UUID
去重,避免重复保存和重复分析。
-
对尚未处理的帖子调用 OpenRouter
大模型,分析其是否可能显著影响虚拟货币市场。
-
除判断是否存在影响外,还会分析市场更可能受到上涨刺激还是下跌压力。
-
当分析结果满足
impact=true
且系统已进入第二轮及之后的轮询时,自动发送 HTML 邮件告警。
-
告警邮件包含东八区时间、影响方向、原文链接、英文原文和中文翻译。
-
邮件同时包含 AI 给出的分析理由、中英文解释及置信度。
-
所有运行日志统一写入同目录下的
log.txt,程序不向控制台输出日志。
-
内置 Tkinter 图形界面,可查看
trump_truths.sqlite3 数据库中的记录。
Python
Truth Social
OpenRouter
SQLite
Tkinter
Email Alert