NeoDB API 创建观影页面

NeoDB API 创建观影页面

💡 原文中文,约16000字,阅读约需38分钟。
📝

内容提要

本文介绍了如何使用NeoDB API创建观影页面。用户需注册Mastodon账号并获取NeoDB的Access Token。通过Shell脚本下载电影和电视剧数据,并合并为JSON文件。创建HTML模板展示观影数据,添加CSS样式和JavaScript用于排序。最后,利用GitHub Actions自动更新数据,确保页面内容及时性。

🔎

延伸解读

为何选择静态化而非动态API

文章提到作者没有使用API动态获取数据,而是将数据下载到本地静态化,以提升性能。这种做法减少了实时API请求,加快页面加载速度,并降低对NeoDB服务的依赖。但代价是数据更新有延迟,需要定期同步。对于个人观影页面,这种权衡通常可以接受,尤其当标记频率不高时。

数据下载与合并的技术细节

由于NeoDB API限制分页,无法一次获取所有数据,作者使用Shell脚本按页下载电影和电视剧数据,并利用jq工具合并为单个JSON文件。合并时还进行了去重、按创建时间排序和反转,确保数据唯一且最新在前。这要求用户熟悉命令行和jq,但提供了灵活的数据处理方式。

前端展示与排序的实现

页面使用Hugo模板读取本地JSON数据,生成观影列表,并添加CSS样式实现网格布局和悬停效果。JavaScript用于排序功能,允许按观影时间、评分和评分人数排序。排序通过动态生成CSS样式表调整元素顺序,无需重新加载页面。这种实现方式简单有效,但依赖JavaScript,禁用JS时排序功能将失效。

自动化更新与部署流程

通过GitHub Actions,可以定期自动同步NeoDB数据,并将更新提交到仓库,触发Hugo构建和部署。工作流中比较本地和远程标记数,仅当数量变化时才下载新数据,节省资源。Access Token存储在GitHub Secrets中,确保安全。此外,海报图片会上传到腾讯云COS,加速访问。这实现了全自动更新,但需要配置多个Secrets和步骤。

❓

Q&A

如何注册NeoDB账号?

用户需先注册一个Mastodon账号,然后使用该账号登录NeoDB。

如何获取NeoDB的Access Token?

可以参考《NeoDB获取Access Token》一文来生成Access Token。

如何下载电影和电视剧数据?

使用Shell脚本按页下载数据,合并为一个JSON文件。

如何创建观影页面的HTML模板?

在Hugo根目录或主题目录下新建movie.html模板,并引入CSS和JSON数据。

如何使用GitHub Actions自动更新数据?

通过设置GitHub Actions,定期检查并下载新的NeoDB数据,确保页面内容及时更新。

观影页面的CSS样式如何设置?

CSS样式应放在Hugo的static目录中,设置必要的样式以影响观影页面。

🏷️

标签

➡️

继续阅读