感谢您的提醒!
快速状态:我目前正在运行三个 Python ICS→Discourse 导入器实例(Uni 时间表、体育中心预订和 Outlook 日历)。我确实开始将其包装成一个 Discourse 插件,但插件版本未能达到脚本的功能集——主要是因为每个提要都需要专门处理(UID 细微差别、部分更新、取消、冗余修订等)。Angus 的插件在许多情况下都很好;我的用例似乎更“特定于提要”。
我还对核心有一个开放的 PR,旨在减少大型/突发 ICS 更新期间“最新”蓝色按钮的噪音。对于繁忙的提要(如大学时间表),一批低价值的编辑可能会使“最新”保持跳动状态;当“最新”在自动化批处理运行时保持打开状态时,PR 会有效地对“新主题”按钮执行“无操作”。如果有用,我很乐意在此处交叉链接该 PR。
长期来看:我现在使用的是自托管的 IONOS。如果我以后迁移到官方托管,我仍然希望有一种方法可以在不需要企业功能的情况下保持 Python 流程(或等效流程),如果那里存在 ICS 入站。我怀疑一个通用的核心/插件解决方案可以工作,如果它允许每个提要使用可插拔的“适配器”,同时保持强大的幂等性(ICS UID)、取消处理和无编辑更新语义。
如果有兴趣,我可以勾勒出一个最小的适配器接口以及从我的 Python 脚本到 Ruby 作业的迁移路径,或者为日历/事件插件贡献与提要无关的部分(UID 映射、去抖动/无更新、取消逻辑)。