编程
我给站点加了几个登录才能用的小功能
该文章介绍了五个私密功能模块:私密记事本(vault)、临时传文件(tmplink)、图床(gallery)、音乐(music)和影视(tv),每个模块都说明了功能、技术栈和解决痛点,强调权限控制和用
该文章介绍了五个私密功能模块:私密记事本(vault)、临时传文件(tmplink)、图床(gallery)、音乐(music)和影视(tv),每个模块都说明了功能、技术栈和解决痛点,强调权限控制和用
============================================================
一、私密记事本(vault)
============================================================

1. 做了啥
就是个私人记事本。写进去的东西不会跑到公开文章或动态里,只有开了 vault 的账号能看。正文能用一点 Markdown,也能插私密图片。列表往下滚继续加载。
用法很简单:登录,点进私密记事本,翻自己的笔记。跟博客那套内容是分开的,不是把文章设成「仅自己可见」糊弄一下。
2. 用了啥技术栈
Astro 页面里挂了个 VaultPanel,交互是 TypeScript,没再套一层 Vue。列表和详情走站点自己的 vault-notes 接口,带登录 token,顺带检查有没有 vault 权限。图片不直接裸链,走 vault-image 代理(webp),鉴权好做一点。
Markdown 是自己啃的一小撮语法:先把 HTML 转义掉,再把加粗、斜体、代码、链接、图片这些还原回来。免得笔记里随手写个标签就把页面弄花了。数据在 mono 那边,Stereo 负责展示和卡权限。
3. 亮点是啥
入口和接口都卡着,缺一不可。链接只认 http/https/mailto,图片只认 http/https,私密图用 vault-image:// 这种站内写法,少踩 XSS 和奇怪协议的坑。笔记多了就滚着加载,不会一次全拉爆。最重要的是:这就是记事本,别跟公开博客搅在一块。
4. 都有啥功能
- 笔记列表,往下滚加载
- 点开看详情(标题、时间、正文)
- 常用 Markdown(加粗、斜体、代码、链接、图片、列表、引用、代码块之类)
- 笔记里的私密图
- 没开 vault 的账号看不见
5. 解决什么痛点
有些东西不想发公开,又懒得再开一个备忘录 App,还想跟站点账号绑在一起。丢公开博客里设私密又别扭。这个就是给自己留个能写字、能插图、外人进不来的角落。
============================================================
二、临时传文件(tmplink)
============================================================

1. 做了啥
选个文件传上去,拿到下载链接,自己这边留一条记录。文件实际在钛盘(tmp.link)上;我们这边负责帮你要上传凭证、记下你传过啥、啥时候过期。浏览器直传钛盘,传完把结果写回列表,复制链接或删记录都行。
有效期自己选:24 小时、3 天、7 天、永久。列表上能看到大小和到期时间。
2. 用了啥技术栈
还是 Astro 面板 + TypeScript。流程大概是:浏览器先算 SHA1 → 找 mono 要钛盘会话 → 浏览器直连钛盘分片传 → 传完把文件名、大小、链接、有效期写回 mono。进度条会走过算哈希、要会话、上传、完成这几步。文件名后面会自动拼一段时间戳,少撞名。
大文件不经过我们服务器中转,省带宽也省磁盘。中台只管「你能不能传」和「传完记一笔」。
3. 亮点是啥
自己的机器不当快递中转站,但权限还是我们说了算。上传有进度,卡在哪一步能看出来。历史里带着到期时间,链接死没死不用瞎猜。钛盘有时候返回一堆文案而不是干净的下载标识,这边做了兜底解析,少出现「传成功了链接却没有」这种鬼事。
4. 都有啥功能
- 选文件上传
- 选保留多久(24 小时 / 3 天 / 7 天 / 永久)
- 上传进度
- 历史上传列表(滚动加载)
- 复制下载链接
- 删掉某条记录
- 看大小、有效期、到期时间
- 没开 tmplink 用不了
5. 解决什么痛点
临时甩个包、搬个安装文件、丢段日志,邮箱嫌大,聊天软件压缩或过期对不上号,自建网盘又太重。这里就是图个快:传完有链接,自己还能翻到「我到底传过啥、还在不在」。
============================================================
三、图床(gallery)
============================================================

1. 做了啥
个人图床。上传、打标签、改名、批量删,还能跟 R2 对象存储同步一下。图片有固定地址,写文章配图、存截图都方便。网格展示,往下滚继续加载,也能按标签筛。
JPG / PNG / WebP / GIF,单张不超过 10MB,一次最多 9 张。
2. 用了啥技术栈
GalleryPanel 一套 Astro + TypeScript,上传编辑弹层也是自己写的。浏览器带着登录态打 mono 的 gallery 接口:上传用 FormData,还有标签、改信息、批量删、同步 R2。前台入口叫 gallery,后台能力码那边对应的是 cf 这类图床 option。展示风格跟站点动态多图差不多,懒得再发明一套看图方式。文件在 mono / R2,页面这边管交互和权限。
3. 亮点是啥
图是挂在账号上的,不是谁都能往里扔。标签没有就创建,图片能改名改标签,多了按标签找。批量勾选删除,清库存不用一张张点。同步 R2 是给「桶里有文件、库里没记录」这种对不齐的情况用的。上传前先查类型和大小,明显不合格的别浪费一次请求。
4. 都有啥功能
- 多图上传(类型、大小、数量会拦)
- 网格浏览,滚动加载
- 标签、按标签筛选
- 改名字、改标签
- 批量选、批量删
- 同步 R2
- 拿图片 URL 当图床用
- 没开图床能力看不见
5. 解决什么痛点
免费图床三天两头防盗链、限流,或者哪天直接没了;图只放本地又没法在网页里引用。自己图床好歹地址稳一点,还能分类管理,配图不用看别人脸色。
============================================================
四、音乐(music)
============================================================

1. 做了啥
自己的曲库 + 底下一条播放器。按专辑/目录翻,点歌就播。顺序、列表循环、单曲循环、随机都有。队列和进度会尽量记住,刷新页面还能接着听。曲库优先读本地缓存,想更新再点刷新,不用每次打开都干等。
没开 music 的账号,入口和接口都没有。
2. 用了啥技术栈
曲库面板和底部播放条是 Astro 挂的。播放器用自己写的 MusicPlayer,底下就是 HTMLAudioElement,状态变了通知界面更新。曲库走 music-library.json,整理成专辑和曲目;localStorage 里缓存曲库快照和播放状态(队列、当前第几首、模式、进度)。右侧有一块正在播放的信息,跟主栏选歌、底栏控制分开,别挤一块。
音频 URL 还是 mono / 存储那边出,Stereo 管听起来顺不顺手。
3. 亮点是啥
播放器按「听着逛站」来做的,不是打开音乐页才存在、关掉就没。四种模式够日常用,没必要为了听歌再拉个巨型播放器库。缓存让二次打开快一点,真要同步曲库再手动刷。进度等 metadata 好了再跳,少一点进度条乱蹦。同样,这是私人曲库,不是给所有访客放的背景音乐。
4. 都有啥功能
- 按专辑/曲目浏览
- 播放、暂停、切歌
- 顺序 / 列表循环 / 单曲循环 / 随机
- 底部播放条(进度、缓冲、当前歌)
- 曲库缓存和手动刷新
- 记住队列和进度
- 没开 music 用不了
5. 解决什么痛点
就想在自己站点听自己整理的歌,不想被商业 App 的推荐和广告缠上;做成干巴巴的外链列表又难用。这里把曲库和能用的播放器塞进站点日常路径里,登录就能听,听着还能去干别的。
============================================================
五、影视(tv)
============================================================


1. 做了啥
登录后能搜片、随便看看、收藏,也能刷豆瓣热门电影/剧集,点进详情看评分和热评。播放页能续看,右侧有「接着看」历史。播的是 HLS;可以记片头片尾跳过,剧集能自动连播。成人向内容在服务端直接滤掉,没有「我已成年」那种开关给你绕。
播放页还接了弹幕:进片后会按片名和集数去弹幕库自动对一下,对上了就按时间轴飘出来;对不上或对错了,可以自己搜片名换一条匹配。弹幕能开关,状态栏能看到匹配到哪、有多少条。
搜索默认会尽量把同名同年份的源收一收,看着清爽点;想看全也可以切「显示全部片源」。豆瓣相关走 mono(Just One API 那些),片源走 Astro 的 JSON BFF,别把脏活和密钥摊在浏览器里。
2. 用了啥技术栈
这块交互最重,所以用了 Vue islands(Options API):搜索库、播放页、播放器、豆瓣详情、历史轨、弹幕面板之类。播放器是 DPlayer,HLS 用 hls.js 按需挂上去。搜片、拉详情走 /tv-search.json、/tv-item.json;收藏、续看、跳过偏好、豆瓣、弹幕匹配/搜索/拉取走 mono 的 /web/tv/*(弹幕库凭证和请求在 mono 侧,前端不直接碰)。搜索历史之类轻量的放本地。成人内容按标题、分类、简介等关键词在服务端硬拦。没登录或没 tv 权限,会把你打发回文章流。
弹幕不是直播那种「立刻全刷上屏」:列表按 time 排好,塞进 DPlayer 的时间轴池,跟着 currentTime 往外冒;异步加载完了再 clear + seek 对齐当前进度,拖进度条也不会整页弹幕乱飞。
3. 亮点是啥
该重的地方用 Vue,其它页面还是 Astro,没整站 Vue 化。成人内容服务端滤,不靠前端开关装样子。同源太多时先给精简列表,需要再展开。豆瓣热门和短评接到播放链路上,有 doubanId 时播放页能看到评分,选片少一点纯蒙。续看和跳过片头片尾跟账号走,换设备登录还能接着。封面和空图这事踩过坑,后面也调过几轮,尽量别出现「有数据但一整排空白壳」。
弹幕这边:先自动匹配,匹配歪了还能手搜重选;开关和条数状态一眼能看。VOD 按时间轴出弹幕,别跟直播 draw 混用——这点踩过,注释里都写明白了。
4. 都有啥功能
- 关键词搜索
- 随便看看
- 搜索历史(能清空)
- 精简片源 / 显示全部片源
- 收藏
- 豆瓣热门电影、热门剧集
- 豆瓣详情(评分、简介、热评)
- 播放页(HLS / DPlayer)
- 弹幕:自动匹配、手动搜索换源、开关、按时间轴显示
- 右侧续看历史
- 片头片尾跳过偏好
- 自动连播
- 成人内容服务端过滤
- 没开 tv 用不了
5. 解决什么痛点
找片站广告多、源乱、夹杂不该出现的内容,看到一半换设备进度没了,想对一下豆瓣口碑还得来回切 App。这里把搜、看、记进度、瞄一眼豆瓣收进同一套登录站点里。不是要取代正版平台,就是给自己弄个顺手的观影台:谁能进由账号管,进度跟账号走,不该出现的内容别指望前端开关放行。
弹幕补的是另一头:片能播了,但画面干巴巴的,想看别人吐槽还得另开播放器或站。现在播的时候就能飘,对不上集也能自己搜着换,不用为了弹幕再跳一次应用。
暂无评论
确认操作
请再次确认编辑图片
待上传图片 (剩余 0 张)
项目详情
确认评论邮箱
邀请制评论