自动化我的/现在页面 | Akash Goswami

主要观点:通过使用 Golang 和 GitHub Actions 实现个人网站的“now 页”自动化,解决手动更新困难的问题,介绍了如何从多个第三方服务获取数据并整合到“now 页”,包括电影(Letterboxd)、书籍(Oku)、视频游戏(Backloggd)、电视节目(Serializd)以及旅行统计(NomadList)等,还提到了更新静态内容、设置 GitHub Actions 以及手动统计等方面。
关键信息

  • 网站是静态网站,用 Hugo 构建,手动更新“now 页”繁琐。
  • 参考他人经验,使用 gofeed 包读取 RSS feeds,结合正则表达式处理数据。
  • 不同服务的特点及获取数据的方式,如 Letterboxd 的 RSS feed 及添加电影的方式等。
  • 为适应不同服务,对函数进行通用化处理,如将获取 Letterboxd 数据的函数改为通用函数 getGoFeedItems。
  • 因 Backloggd 无 RSS feed 或 API,尝试用 Golang 进行网页抓取。
  • 对于 Serializd,通过探索网络请求找到 API 端点获取电视节目数据。
  • 为旅行统计添加当前年和前一年的数据,处理边缘情况如去除伦敦的旅行记录等。
  • 将静态内容存储在“static.md”文件中,通过 GitHub Actions 每天运行脚本更新“now 页”。
    重要细节
  • 详细介绍了各个函数的实现,如获取 Letterboxd 数据的函数 getLetterboxdItems、处理电影标题和 URL 的函数等。
  • 展示了相关的单元测试代码,以确保函数功能的正确性。
  • 给出了 GitHub Actions 的工作流程示例,包括定时触发和推送更新等步骤。
  • 提及后续想要添加的功能,如更多单元测试和添加媒体海报图像等。
阅读 10
0 条评论