实现这一目标最简单的方法是什么?
是使用一个每晚运行的外部脚本并通过 Discourse 的 API 来实现?
还是已经存在现成的插件?
谢谢。
实现这一目标最简单的方法是什么?
是使用一个每晚运行的外部脚本并通过 Discourse 的 API 来实现?
还是已经存在现成的插件?
谢谢。
你描述的可能是解决该问题的最糟糕方案。能否退一步,先明确问题本身?
是什么在维护这个列表?DiscourseConnect - Discourse 官方单点登录 (SSO) 是一个可能的解决方案,但也可能存在其他选择。
我喜欢计算机从业者的直率 ![]()
我正考虑尝试一下 Mirroring a read-only mailing list in Discourse Discourse 分类来使用。
那最好的方法是什么呢?或者至少是稍微好一些的方法?如果邮件列表里的人更倾向于论坛的私密分类,那对 Discourse 来说就是胜利。
如果您没有通过某个外部应用程序管理这些用户,那么您可以这样做:
def load_csv(path)
CSV.parse(File.read(path), headers: true)
end
def update_group
g = Group.find(43) # 您想要的任意群组 ID
GroupUser.where(group_id: g.id).destroy_all
user_emails = load_csv('/path/to/file')
user_emails.each do |u|
user = User.find_by_email(u['Email'])
next unless user
puts "找到用户 #{uid}"
GroupUser.find_or_create_by(group_id: g.id, user_id: user.id)
end
end
如何实施则是另一个问题。也许可以开发一个插件。
或许可以开发一个插件,当用户在某个分类中发帖时,自动将其添加到对应的群组中?
谢谢。
但该分类仅对群组成员可见,因此这里会出现“先有鸡还是先有蛋”的困境!
我对 PHP 相当熟悉,因此我认为可以编写一个脚本,从 Mailman 2 中获取电子邮件地址(它有一个 Python 脚本可用于此目的),然后将其与 Discourse 用户列表进行比对,并相应地将 Discourse 用户添加或移除出相关群组。我知道你说过这可能是“最糟糕的解决方案”……
我甚至还没有设置邮件列表镜像,所以目前这些都只是想法。
是的,但我原本的想法是,你会通过其他方式将数据导入到列表中。
你也可以让该群组允许加入请求,并让 Discourse 来处理这些请求。
我讨厌 PHP,所以你的方案听起来越来越糟了!![]()
不过 Discourse API 其实很容易上手,所以我觉得这个方案对你来说是最合适的!
如果 Mailman 支持钩子(hooks),你可以让它更新订阅者列表时调用 API。
有一个类别设置,名称类似于“……镜像列表”,可能也会有所帮助。