嗯,我想我并没有做什么特别的事情,无非是将原本需要通过 curl 请求访问的公开 API 端点进行封装。不过,如果 @Discourse 团队对我的创作有任何不满,请随时告知。
就我个人而言,我认为该包本身并未违反任何服务条款(ToS),因为遵守论坛条款的责任始终在于使用该工具的开发者。该包仅访问公开且文档化的 API 端点;如果开发者怀有恶意意图去抓取或监控论坛,这实际上本来就是一个轻而易举的任务。
顺便提一下,pydiscourse 提供了相同的功能,唯一的区别是需要 API 密钥(我不确定作为普通用户获取密钥是否容易)。一旦获得密钥,它同样可能被用来违反任何论坛的服务条款。因此,如果默认规则是不允许自动化访问论坛,那么 pydiscourse 和 discourse2 是否也不应被视为违反服务条款?discourse2 甚至在其功能列表中宣传:若未提供 API 密钥,仍可访问公开数据:
同时适用于服务器和浏览器*环境(*适用于在相关源上查询公开数据而无需 API 密钥,例如获取最新主题等)
其他语言中可能还有更多支持此类访问的包。
补充一些背景信息:我开发这个工具是为了方便从我们的一位客户托管的论坛中提取数据(但我们没有直接的数据库访问权限)。它让我的工作流程更加简洁,我也希望能为处于同样境地的其他人提供帮助。