删除未回复主题插件

删除未回复主题 插件会扫描指定分类中超过 x 天且未收到任何回复的主题,并将其删除。这有助于保持论坛整洁,清除因各种原因未能获得关注的主题。

设置:

  • delete_unreplied_topics_categories:要处理的分类
  • delete_unreplied_topics_days:无回复主题在被删除前保留的天数
  • delete_unreplied_topics_dry_run:安全测试模式,用于验证插件不会误删论坛中的内容

该插件的操作日志记录在 /logs 中。

代码仓库可在此处查看:here

本工作由 @outofthebox 赞助支持。

14 个赞

太棒了 @RGJ!你出色地开发了这个插件,为我们社区节省了大量时间并极大提升了体验。

8 个赞

感谢您撰写此文。

如果能同时记录主题标题和 ID(例如 DeleteUnrepliedTopics 正在删除主题 ID #{t.id}),那就更好了。

此外,如果 delete_unreplied_topics_dry_run 默认值为 true,会让人感到更安心 :slight_smile:

2 个赞

谢谢,这些建议非常有用。我已经做了这些修改。

5 个赞

我终于安装了此插件,目前处于试运行模式。它似乎能正确识别需要删除的话题。

在日志中,每一行类似 DeleteUnrepliedTopics would remove Topic ID *number* (*topic title*) (dry run mode) 的内容之前都标有表示“错误”的 X 指示符。我原本以为应该是“信息”甚至“警告”。

@RGJ 这是预期的行为吗?谢谢。我使用的是最新版本的 Discourse。

1 个赞

是的,这似乎是有意为之。我隐约记得之前有关调试级别的一些问题,所以将其设置为了 error。如有任何混淆,敬请谅解!

4 个赞

感谢澄清。该插件按预期工作,谢谢——不过有趣的是,Discourse 会将未列出的主题显示为至少有一条回复(即“未列出”这一操作本身),这意味着您的插件并不会删除它们。

1 个赞

我刚注意到您的插件也不能删除置顶主题,因为置顶主题的行为被视为回复。这恰好是一件好事。

2 个赞


您知道为什么会出现这些错误消息吗?

启用此功能后,插件将仅记录其操作,而不会实际执行它们。

2 个赞

你好,
这个插件似乎正是我想要的,但我有点担心安装它,因为存储库已经有 4 年没有活动了。
你认为它应该仍然适用于当前的 Discourse 版本,还是可能会破坏任何东西?

1 个赞

写得非常好 :sunglasses:

而且这是一个非常特别的插件。我 99.9% 确定它仍然可以正常工作。
如果您愿意,可以先将其设置为“试运行”,这样就不会破坏任何东西。

4 个赞

好的。感谢您的快速回复!

1 个赞

@RGJ 根据其他用户的多项请求:

您能否将您的插件用作新插件的基础,该插件可以删除特定类别中超过 N 天(由用户设置)的主题?

如果您的插件已经在扫描主题,是否可以设置一些规则,说明:
如果类别是 X,则扫描创建日期和当前日期超过 N 天的主题,如果是,则删除它们。

我不知道创建和更改插件的细节,但这将是一个很好的补充。

只需移除单行即可。(或者,显然,创建一个设置 max_replies,默认为 0,然后可以将其设置为 99999 来达到所需的效果)。

话虽如此,我很难想到这个功能的好用例。

4 个赞

我想到的一个用例可能是每月重置一个不相关的休息室。也许是为了发泄情绪的自由竞争。

除此之外,我也想不到多少用例。另外,目前我认为它只能手动操作,除非可以进行自动化。是否可以简单地应用主题计时器并删除功能?我不记得它是否提供了删除主题的选项,还是只能删除回复。

1 个赞

这里有一个关于不同情况的讨论:

就我个人的情况而言(与上述主题中的一位用户类似),我希望有一个名为“分类广告”的类别,供音乐人使用(例如,歌手想找制作人,反之亦然),但我不想让主题永远可用,或者仅仅通过添加新回复来续订。我想设置一个计时器,例如,该类别中所有 2 周前的主题都将被删除,无论是否有回复。这样,用户就知道他们需要创建一个新主题,而不是仅仅添加一个无意义的回复,比如一个表情符号,否则主题将被 1 个表情符号回复填满,这看起来很糟糕。这也迫使用户,如果他们真的想找人合作,就努力创建新主题。这在某种程度上可以筛选掉那些懒得创建新主题、将文本保存在电脑或手机上等的人。

希望这有道理?

那么,如果这确实变成了一个插件,而我正在使用 Communiteq 进行托管,我需要选择哪个套餐才能安装该插件?

您可以为主题设置自动关闭吗?

那将是专业计划。

2 个赞

这不如您的插件有效,因为它允许旧主题在不再有效时可见。为什么我要看三年前寻找音乐人的帖子?我希望它们被删除。

另外,关闭主题与您的插件相同:它取决于回复,而这正是我不想要的。正如我提到的,这很容易导致用户仅仅添加表情符号类型的评论来让主题保持活跃。

我基本上只希望主题在 N 天/周后被删除,无论如何。正如您从我分享的主题中看到的,其他用户也有同样的需求。由于您的插件已经在做类似的事情,我认为创建一个无论回复如何都可以删除的版本应该不是什么大问题,每个管理员都可以根据自己的需求为他们的论坛选择他们想要的东西。

顺便说一句,你的问题问错了。你想要的东西完全不相关。用户想要的东西才是相关的。而且帖子又不花钱。

1 个赞