编程
我给站点加了几个登录才能用的小功能
这篇文章记录站点里几个登录后才能用的小功能:私密记事本、传文件、图床、音乐、影视、蓝奏文件管理、直播、书签、速记,以及热榜上的一键发现。它们都跟账号权限绑在一起,偏自用,重点是把常用的小需求收进同一个站点。
这篇文章记录站点里几个登录后才能用的小功能:私密记事本、传文件、图床、音乐、影视、蓝奏文件管理、直播、书签、速记,以及热榜上的一键发现。它们都跟账号权限绑在一起,偏自用,重点是把常用的小需求收进同一个站点。
一、私密记事本(vault)

1. 做了啥
就是个私人记事本。写进去的东西不会跑到公开文章或动态里,只有开了 vault 的账号能看。正文能用一点 Markdown,也能插私密图片。现在还补了文件附件,笔记里可以挂 `vault-file://{id}` 这种文件引用,点开后走站内代理跳到蓝奏分享链接。
用法还是很简单:登录,点进私密记事本,翻自己的笔记。写字、插图、挂文件,都跟公开博客分开。不是把文章设成「仅自己可见」糊弄一下。
[图片占位:私密记事本文件附件卡片]
2. 用了啥技术栈
Astro 页面里挂了个 VaultPanel,交互是 TypeScript,没再套一层 Vue。列表和详情走站点自己的 vault-notes 接口,带登录 token,顺带检查有没有 vault 权限。图片不直接裸链,走 vault-image 代理(webp)。文件也不直接暴露本地记录,正文里只放 `vault-file://{id}`,前台渲染成文件卡片,再通过 `/vault-file/{id}` 代理打开。
Markdown 是自己啃的一小撮语法:先把 HTML 转义掉,再把加粗、斜体、代码、链接、图片、文件卡片这些还原回来。免得笔记里随手写个标签就把页面弄花了。数据在 mono 那边,Stereo 负责展示和卡权限。写字、插图、挂文件的写入在 mono 后台完成,Stereo 这边只读。
3. 亮点是啥
入口和接口都卡着,缺一不可。链接只认 http/https/mailto,图片只认 http/https,私密图用 vault-image://,私密文件用 vault-file://。图片和文件都要确认归属,不是知道一个 id 就能乱引用。
文件这块没有硬塞进 S3。图片继续走原来的私密图片链路;普通文件上传到配置好的蓝奏目录,mono 只保存文件记录、分享链接、提取码和引用关系。后台还加了孤儿资源清理,图片会同步删 S3,对蓝奏源文件只删本地记录,不乱动云盘里的东西。
4. 都有啥功能
- 笔记列表,往下滚加载
- 点开看详情(标题、时间、正文)
- 常用 Markdown(加粗、斜体、代码、链接、图片、列表、引用、代码块之类)
- 笔记里的私密图
- 笔记里的文件附件卡片
- 文件新窗口打开
- 后台上传、打开、删除文件记录
- 清理未被笔记引用的私密图片和文件记录
- 没开 vault 的账号看不见
5. 解决什么痛点
有些东西不想发公开,又懒得再开一个备忘录 App,还想跟站点账号绑在一起。只有文字还不够,很多笔记会带截图、压缩包、文档或临时材料。现在图和文件都能放进去,还是只在自己的登录入口里看。
二、传文件(catbox)

1. 做了啥
选个文件传上去,拿到下载链接,自己这边留一条记录。文件实际在 Catbox 上;我们这边负责代传、记下你传过啥。浏览器把文件 multipart 交给 mono,中台异步上传 Catbox,轮询 upload-jobs 完成后写回列表,复制链接或删记录都行。
列表上能看到大小和上传时间。不再选保留多久,也不再走钛盘直传。
2. 用了啥技术栈
还是 Astro 面板 + TypeScript。流程大概是:浏览器 multipart 上传 → mono 建异步任务 → 轮询 upload-jobs → 完成后把文件名、大小、链接写回列表。进度条会走过上传、处理、完成这几步。文件名后面会自动拼一段时间戳,少撞名。单文件上限 200MB。
中台代传 Catbox,浏览器只管交文件和看进度。能力码是 catbox;没开权限入口和接口都没有。
3. 亮点是啥
权限还是我们说了算。上传有进度,卡在哪一步能看出来。历史列表可翻、可复制、可删。删记录时先清本地;远端 deletefiles 失败只打日志,不挡你把记录清掉。
异步任务状态放 Redis,PM2 多实例也能查到,避免「创建成功了却轮询不到任务」。
4. 都有啥功能
- 选文件上传
- 上传进度
- 历史上传列表(滚动加载)
- 复制下载链接
- 删掉某条记录
- 看大小、上传时间
- 没开 catbox 用不了
5. 解决什么痛点
临时甩个包、搬个安装文件、丢段日志,邮箱嫌大,聊天软件压缩或过期对不上号,自建网盘又太重。这里就是图个快:传完有链接,自己还能翻到「我到底传过啥」。
三、图床(gallery)

1. 做了啥
个人图床。上传、打标签、改名、批量删,还能跟 R2 对象存储同步一下。图片有固定地址,写文章配图、存截图都方便。网格展示,往下滚继续加载,也能按标签筛。
JPG / PNG / WebP / GIF,单张不超过 10MB,一次最多 9 张。
2. 用了啥技术栈
GalleryPanel 一套 Astro + TypeScript,上传编辑弹层也是自己写的。浏览器带着登录态打 mono 的 gallery 接口:上传提交后拿 jobId,再轮询 upload-jobs,成功后再写标签;还有改信息、批量删、同步 R2。前台入口叫 gallery,后台能力码那边对应的是 cf 这类图床 option。展示风格跟站点动态多图差不多,懒得再发明一套看图方式。文件在 mono / R2,页面这边管交互和权限。
3. 亮点是啥
图是挂在账号上的,不是谁都能往里扔。标签没有就创建,图片能改名改标签,多了按标签找。批量勾选删除,清库存不用一张张点。同步 R2 是给「桶里有文件、库里没记录」这种对不齐的情况用的。上传前先查类型和大小,明显不合格的别浪费一次请求。
上传任务同样走异步任务;多实例下任务状态放 Redis。删除做成幂等,库里没有的 id 直接跳过,少一点误报。
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 的 hls-proxy 迂回;可以记片头片尾跳过,剧集能自动连播。列表用文字海报,不拉封面图。没有「随便看看」。
播放页还接了弹幕:进片后会按片名和集数去弹幕库自动对一下,对上了就按时间轴飘出来;对不上或对错了,可以自己搜片名换一条匹配。弹幕显隐走 DPlayer 控件栏自带按钮,默认关,写在 sessionStorage 里,上一集/下一集重建播放器后还保留。面板里还能看匹配到哪、有多少条,以及薄厚/高度/字号设置。
片源改走 mono 的 `/web/tv/source/*`(iyf 签钥取流),浏览器只拿 m3u8,再包装成 hls-proxy 地址播放。豆瓣、历史、收藏、跳过偏好、弹幕继续走既有 `/web/tv/*`。
2. 用了啥技术栈
这块交互最重,所以用了 Vue islands:搜索库、播放页、播放器、豆瓣详情、历史轨、弹幕面板之类。播放器是 DPlayer,HLS 用 hls.js 按需挂上去。搜片 / 选集 / 取流走 mono 的 source 接口;收藏、续看、跳过偏好、豆瓣、弹幕匹配/搜索/拉取走 mono 的 `/web/tv/*`。搜索历史放本地,输入框聚焦时用 popover 过滤,支持单项清除和清空。
hls-proxy 只代理 `*.pipecdn.vip`,请求上游时补 Origin / Referer / UA,并把清单里的分片地址回写到代理,避免浏览器直连 CDN 被拦。没登录或没 tv 权限,会把你打发回文章流。
弹幕不是直播那种「立刻全刷上屏」:列表按 time 排好,塞进 DPlayer 的时间轴池,跟着 currentTime 往外冒;异步加载完了再 clear + seek 对齐当前进度,拖进度条也不会整页弹幕乱飞。
3. 亮点是啥
该重的地方用 Vue,其它页面还是 Astro,没整站 Vue 化。片源密钥和签名留在 mono,浏览器不碰。文字海报省掉封面防盗链和代理复杂度。豆瓣热门和短评接到播放链路上,选片少一点纯蒙。续看和跳过片头片尾跟账号走,换设备登录还能接着。
搜索历史做成输入框底部 popover,聚焦才出,按关键词过滤,点外关闭。空态和加载态收成一块居中舞台,少一点散落提示。
弹幕这边:先自动匹配,匹配歪了还能手搜重选;显隐默认关,跨切集记住;条数和匹配状态一眼能看。VOD 按时间轴出弹幕,别跟直播 draw 混用。
4. 都有啥功能
- 关键词搜索
- 搜索历史(单项删除 / 清空)
- 收藏
- 豆瓣热门电影、热门剧集
- 豆瓣详情(评分、简介、热评)
- 播放页(HLS / DPlayer / hls-proxy)
- 弹幕:自动匹配、手动搜索换源、DPlayer 显隐(默认关,跨切集保留)、按时间轴显示、薄厚/高度/字号
- 右侧续看历史
- 片头片尾跳过偏好
- 自动连播
- 没开 tv 用不了
5. 解决什么痛点
旧片源挂了之后换成 iyf;继续用账号能力控制谁能看,进度跟账号走。找片、看片、记进度、瞄一眼豆瓣,收进同一套登录站点里。不是要取代正版平台,就是给自己弄个顺手的观影台。
弹幕补的是另一头:片能播了,但画面干巴巴的,想看别人吐槽还得另开播放器或站。现在播的时候就能飘,对不上集也能自己搜着换,不用为了弹幕再跳一次应用。
六、蓝奏文件管理(lanzou)

1. 做了啥
登录后才能用的蓝奏入口。地址是 `/?tab=lanzou`。它不是公开网盘页,就是给有 lanzou 能力的账号用来管自己的蓝奏文件。
进去后先填 ylogin 和 phpdisk_info。这两个值只存在当前浏览器 localStorage,不入库,也不写日志。后续列目录、上传、复制分享链接、新窗口打开、建文件夹、移入回收站,都是带着这份本地 Cookie 去请求 mono 的 Web API。
2. 用了啥技术栈
Stereo 这边是 Astro + TypeScript 面板,没有再上 Vue。前端负责目录 UI、面包屑、连接设置、本地存储、选择文件和 toast。真正碰蓝奏接口的是 mono:`WebLanzouService` 包了一层账号目录、文件列表、文件夹列表、分享信息、创建文件夹、上传和删除。
上传不是 Stereo 代理。浏览器把文件交给 mono,mono 临时落盘后转发给蓝奏,结束后删临时文件。上传限制走 mono 的 `lanzou/status` 返回:最大 100MB,只允许蓝奏官方支持的扩展名。前端选中文件后先拦一遍,省得明知道不支持还发请求。
3. 亮点是啥
这个入口最重要的是边界清楚。账号 Cookie 只留在你的浏览器;mono 只随请求使用,不持久化。写操作有更低频率限制,还按客户端串行,避免一个账号同时打太多蓝奏请求。
只读接口(files / folders / share-info / folder-info)走 Redis 缓存,TTL 120 秒;upload / delete / mkdir 不缓存,写成功后清掉 lanzou scope,少读到旧目录。
蓝奏的接口不算稳定,所以这边专门补了几轮兜底:分享信息里 `name`、`name_all`、`folder_name`、`url` 都做兼容;`login not` 会明确提示登录状态无效;上传失败时尽量透出蓝奏返回的 `info` / `text`;中文文件名也按实际上传链路修过编码问题。
UI 上按文件管理器来做:当前路径和上传位置固定显示,上传按钮明确写「上传到此处」。文件和文件夹都有打开、复制链接、移入回收站。文件图标按扩展名走 Iconify 的 vscode-icons,txt、pdf、doc、xls、ppt、zip、audio 这些至少不会全长一个样。
4. 都有啥功能
- 目录浏览
- 面包屑返回上级目录
- 保存 / 覆盖 / 清除本地连接设置
- 上传到当前目录
- 上传前检查 100MB 和官方允许扩展名
- 新建文件夹
- 复制文件或文件夹分享链接
- 新窗口打开文件或文件夹
- 移入回收站
- 文件类型图标
- 没开 lanzou 用不了
5. 解决什么痛点
蓝奏适合放一些小文件,但每次都进它的网页管理后台挺烦。尤其是只是想看目录、传个文件、复制链接、开个分享页,没必要绕一圈。
这个入口就是把常用动作收进站点里。权限还是站点账号管,Cookie 还是放你本机,mono 负责跟蓝奏打交道。它不替代完整蓝奏后台,只管我自己高频用的那几步。
七、直播(live)

1. 做了啥
登录且开了 live 的账号,侧栏影视下面会出现「直播」。地址是 `/?tab=live`。进去是电视机 + 遥控器:上面播画面;桌面端遥控在右侧发现栏,窄屏落到主栏下方。数字键 / CH / 热门键切台。
源是华视 IPTV。台单同步进 MySQL,playlist 走 mono 的 HLS 代理;媒体分片在清单里保留 CDN 绝对地址,浏览器直连,不再经 mono 中转带宽。华视 Cookie 在本机登记三项(cf_clearance / CF_HUAREN_LIVE / server_name_session),请求时拼成 `X-Huavod-Cookie`,不入库。
2. 用了啥技术栈
Stereo 是 LiveApp(Vue Options API):LiveTvFrame 套电视机壳,LiveHlsPlayer 用 hls.js,LiveRemote / LiveRemoteRail 做遥控,LiveHuavodCookieDialog 管本机 Cookie。台号逻辑在 channel-zap:数字连按,停约 2 秒或按 OK 切台,超出总数取余;画面有 OSD。
mono 侧:`GET /web/live/huavod/channels` 读已同步台单(央视 cctv / 地方台 local);`GET /web/live/huavod/hot-channels` 读热门地方台快捷键;`POST /web/live/huavod/sync` 抓 liveshow/1+2 写入 MySQL,并按 Cookie 指纹预热 Redis 里的 streamUrl;播放地址固定成 `/web/live/huavod/hls?id=`。playlist / KEY 走原生 HTTP 代理 + DNS 短缓存 + keep-alive;`.ts` 等分片由浏览器直连 CDN(CDN 已 CORS)。hls.js 只对 mono 的 hls/asset 带 Bearer 和 Cookie 头。
旧的 TXT 节目单、playMode、udpxy、mpegts.js、stream-proxy 都去掉了。Admin `/setting` 还能配热门地方台(CRUD + 拖拽排序)。热路径上 Web 会话有约 30 秒进程内缓存,能力校验复用当前会话的 clientOptions,少回库。
3. 亮点是啥
用户只关心台号和画面。Cookie 留在浏览器,mono 只随请求用,按指纹隔离 Redis 缓存。streamUrl 默认大约 30 分钟 TTL;playlist 403 会记存活时长,再算出更合适的 TTL,并在约 80% 寿命时后台提前换签,尽量不挡正在播的清单。hls.js 碰到 fatal network/media,会先 startLoad,再短延迟重挂,最多两次。切离直播 tab 会先停播再卸载,避免游离 video 继续出声。
能力码还是单独的 live,跟影视 tv 分开。没开 live 看不见入口,接口也进不去。
4. 都有啥功能
- 电视机 + 遥控器切台(数字键 / CH± / OK)
- 本机登记华视 Cookie(三项,localStorage)
- 同步台单并预热流
- 热门地方台快捷键(未命中台单时灰显)
- HLS 播放(playlist 走 mono,分片直连 CDN)
- 画面 OSD 台号 / 台名
- fatal 时自动重挂
- 桌面遥控在右栏;窄屏回退主栏下方横向紧凑遥控
- 没开 live 看不见入口
5. 解决什么痛点
以前靠本地 TXT + TS 中转,源和 CORS / 混合内容经常自己打架;后来又遇到「浏览器→mono→CDN」带宽瓶颈。现在台单固化,playlist 稳定代理,分片直连 CDN;Cookie 自己管,挂了就重新登一下华视再同步。想在站里随手看电视,按台号切就行。
八、书签(bookmarks)

1. 做了啥
登录且开了 bookmarks 的账号,侧栏「文件与笔记」里会出现「书签」。地址是 `/?tab=bookmarks`。这是一份站点共享书签池:浏览器扩展把 Edge / Chrome 书签同步上来,前台按文件夹树展示,也能看经常访问 Top10,点开记一次访问,不需要的条目可以删云端记录。
同步走 Client API(`x-oolaf-client-key`),不是浏览器手动一条条加。Stereo 这边只负责读、点开、删除;写目录结构的是扩展侧 sync。
2. 用了啥技术栈
Stereo 是 BookmarksPanel(Astro + TypeScript)。列表走 `GET /web/bookmarks`,返回 `{ items, folders }`,按 `positionPath` 还原 Edge 同层顺序,空文件夹也在。经常访问走 `GET /web/bookmarks/frequent`;点开记访问走 `POST /web/bookmarks/visit`;删除走 `POST /web/bookmarks/delete`。
mono 表是 `web_bookmark`(链接,url_hash 唯一)和 `web_bookmark_folder`(显式文件夹节点)。Client `POST /client/bookmarks/sync` 接收链接的 folderPath / positionPath,以及 folders 全量替换。删除只动 MySQL,不动你本机浏览器书签。
3. 亮点是啥
重点是「文件夹顺序对齐」。光有链接列表不够,空文件夹、同层交错顺序都要回来,不然树看起来就不像自己浏览器里那份。经常访问单独一条 Top10,日常点开常用站少翻树。
能力码是 bookmarks。没开权限,入口和接口都没有。全员共享同一份池子,适合家里几台机器对着同一套收藏夹用。
4. 都有啥功能
- 经常访问 Top10
- 按 Edge 顺序展示文件夹树(含空文件夹)
- 点开链接并记访问
- 删除云端书签
- 扩展侧 Client API 同步写入
- 没开 bookmarks 用不了
5. 解决什么痛点
换电脑或重装浏览器后,收藏夹要对齐很烦。这里把常用书签收进站点账号体系:扩展同步一次,登录就能翻;经常访问单独拎出来,少在树里找。
九、速记(dump)


1. 做了啥
登录且开了 dump 的账号,导航里会出现「速记」。地址是 `/?tab=dump`。它是私人单会话速记窗,长得像聊天:气泡按时间往下排,能发文字、备注、附件,也能事后改正文。不是公开动态,只有自己的 dump 权限能进。
附件任意类型最多 5 个。小于 10MB 走 mono 上传(`dump_small`,默认 MinIO);10MB~500MB 走预签名直传(`dump_large`,默认 R2)。选文件或拖拽先暂存在本机 IndexedDB,点发送再实际上传。图片列表优先缩略图,点开 PhotoSwipe;多图消息列表只露首图加 `+n`。
2. 用了啥技术栈
Stereo 用 DumpApp(Vue island):时间线、搜索、索引、选择栏、输入区拆开。进页先读 IndexedDB 最近一页快照,再后台拉齐;待发附件也走 IndexedDB。创建可带 `#备注 正文`(备注 ≤20 字),或事后改备注 / 改正文。发送端带 `clientKind`(pc / mobile),分组旁标设备图标。
mono 表是 `dump_message` / `dump_attachment`。Web API 覆盖 messages / search / remarks / days / upload / presign / complete,以及改备注、改正文、删除。小文件上传和大文件 complete 时尽量出 WebP 缩略图(最长边 720,GIF 跳过);删消息只删库,不删对象文件。
3. 亮点是啥
秒开靠本地快照,不是每次白屏等接口。附件先暂存再发送,刷新页也不会把刚选的文件弄丢。索引按备注和上海时区日期轴下钻,点摘要跳回时间线高亮。PC Enter 发送、Shift+Enter 换行;移动端 Enter 换行,另有发送按钮。
图片预览从缩略图位 zoom 进出;多图切换后关闭仍收回共享缩略图。PC 预览栏有下载,移动端不显示。能力码是 dump,没开就没有入口。
4. 都有啥功能
- 聊天式时间线(相对时间,悬停看绝对时间)
- 文字 + 可选备注(`#备注 正文` 或气泡改备注)
- 已发消息改正文
- 多附件(最多 5;选文件/拖拽/粘贴;发送前 IndexedDB 暂存)
- 图片缩略图 + PhotoSwipe 相册(PC 可下载)
- 消息搜索跳转
- 索引:按备注 / 按日期
- 批量选择删除
- 发送端 PC / 移动标记
- 最近一页消息本地快照秒开
- 没开 dump 用不了
5. 解决什么痛点
有些东西既不像正式笔记,也不想发动态:临时链接、截图、说话碎片、稍后处理的文件。速记就是把这些收进同一会话里,手机电脑都能丢,回来还能按备注或日期翻。
十、热榜一键发现(hotlist-discover)

1. 做了啥
「今日热榜」本身是公开入口(导航在意见反馈上方,也可 `/?tab=hotlist`),不登录也能刷各平台热搜。登录相关的是「一键发现」:账号要开 `hotlist-discover`,才会出现兴趣标签栏和按钮。
用法是:先在本地写几个兴趣标签,点一键发现。服务端拿当前可见的热榜标题去问 AI(兼容协议池里的默认模型,常见是 DeepSeek),按标签筛一圈,命中条目高亮。标签存在浏览器本地,不入库。
2. 用了啥技术栈
Stereo 用 HotlistApp(Vue island)展示平台卡;列表经同源 `/hotlist.json` BFF 转发 mono,浏览器不直连 `/web/hotlist*`。一键发现走 BFF 的 analyze,带登录 Authorization,落到 mono `POST /web/hotlist/analyze`。
mono 侧热榜中台约 30 个平台采集器,结果进 Redis(成功 TTL 8 小时)。`GET /web/hotlist` 只读缓存立刻返回;缺源或失败源丢后台并发补采(并发约 3、单源最多 2 次、进程内去重),失败时尽量保留上一份成功 items。analyze 走 AI JSON,强制关 thinking,校验 source/id/tags,过滤幻觉条目。限流大约每 IP 6 次/小时。
3. 亮点是啥
公开刷榜和账号能力拆开:谁都能看热榜;带 AI 筛选才要 `hotlist-discover`。平台卡一行两列,卡内新闻也是两列网格;桌面每平台最多 20 条,窄屏最多 10 条,analyze 只提交当前可见条数。省略标题用浮层提示全称,命中条目浮层跟着高亮描边。
4. 都有啥功能
- 公开浏览今日热榜(多平台)
- 单源刷新(有频率限制)
- 本地兴趣标签(增删,最多约 20 个)
- 一键发现(需登录 + hotlist-discover)
- 命中条目高亮
- 没开 hotlist-discover 时不显示标签栏和按钮
5. 解决什么痛点
热搜平台多,刷一圈费眼。公开页先把各平台拢到一起;开了发现权限后,能按自己关心的词把相关标题标出来,少自己肉眼扫。
暂无评论
确认操作
请再次确认编辑图片
待上传图片 (剩余 0 张)
项目详情
确认评论邮箱
邀请制评论