将 Steam 愿望单物品的发售日期导入/同步至各大日历应用

2021-12-12 16:45:32 +08:00
 Natsumoku

简介

Python 脚本配合 GitHub Actions 实现定时把 Steam 账号愿望单上的发售日做成公开的 ICS 文件,然后就可以被各个日历 App 通过 URL 订阅了(也可以一次性地导入)。据我所知 Google Calendar ,Apple Calendar ,Outlook ,滴答清单等都支持 URL 订阅,只是同步速度有快有慢。

这是 Google Calendar 的效果图,每个事件内会有游戏的商店链接:

使用

GitHub: https://github.com/icue/SteamWishlistCalendar

使用说明(不在此赘述): https://github.com/icue/SteamWishlistCalendar/wiki/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E

唯一需要注意的地方是 yml 文件里存的是我自己的 Steam ID ,拿来用的话需要改一下。

写这个脚本的时候还顺带用 matplotlib 根据历史数据画了统计图(当然,只有用这个脚本跑过的那些天会有数据,所以第一次跑的话 x 轴上只会有一个日期,不过也可以手动捏造之前的数据):

几个有意思的地方

脚本会遇到各种格式、各种书写习惯的发售日,我选用的一个叫 dateparser 的包挺强大的,中文也好英文也好,许多日期都能被正确地识别;而对于一些模糊的发售日,我制定了一些规则,试着把它们转为某一个确定的、相对合理的日期。比如 Early 2022 会被替换成 2022 年 3 月; Summer 会被替换成 6 月; Q4 会被替换成 11 月,等等。然后将 dateparser 设置为“偏向未来”,就能把只说明月份未说明哪天的日期一律视为月底。

也有一些“黑名单”字段,一旦遇到就跳过,比如“TBD”,“When it's done”等。

另外,在这里使用版本管理的另一个好处是,可以通过 GitHub action 的 commit 记录来观察哪些游戏(悄悄地)更改了发售日期。

1395 次点击
所在节点    分享创造
4 条回复
LuciusChen
2021-12-12 17:04:29 +08:00
不能用,用了钱包守不住。
MonkeyJon
2021-12-13 09:54:28 +08:00
不能够,发售就买,除非是真粉
lylsh1993
2021-12-14 21:40:28 +08:00
更简单的是楼主做个日历我们直接订阅😅😅😅
Natsumoku
2021-12-14 22:47:26 +08:00
@lylsh1993 我的这个 repo 里已经有存着我自己愿望单的日历了,是公开的,所以谁都可以订阅。不过我猜你的意思是人们提供自己的 steam ID ,然后去某个网站或者 app 里一键生成可订阅日历的 URL ?是个可拓展的方向,虽然实现起来会麻烦好多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX