"Delete Unreplied Topics" プラグイン

返信なしトピックの削除プラグインは、指定されたカテゴリをスキャンし、x 日以上経過して一切の返信がなかったトピックを検出し、削除します。これにより、何らかの理由で話題にならなかったトピックをフォーラムからきれいに整理できます。

設定項目:

  • delete_unreplied_topics_categories:対象とするカテゴリ
  • delete_unreplied_topics_days:投稿がないトピックが削除されるまでの日数
  • delete_unreplied_topics_dry_run:プラグインがフォーラムの不要な部分を誤って削除しないかを確認するための安全策(テスト実行)

プラグインの動作ログは /logs に記録されます。

リポジトリはこちらで確認できます。

本プロジェクトは @outofthebox のスポンサーシップにより実現しました。

「いいね!」 14

@RGJ さん、素晴らしいお仕事をありがとうございます!このプラグインの熟練した開発は、時間の大幅な節約となり、コミュニティの向上に大きく貢献しています。

「いいね!」 8

この投稿をありがとうございます。

トピックの ID だけでなく、タイトルもログに出力されると良いでしょう(DeleteUnrepliedTopics removing Topic 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」インジケーターが表示されています。これは「Info」あるいは「Warning」であるべきだと予想していました。

@RGJ これは想定された動作でしょうか?ご回答をお願いします。Discourse の最新バージョンを使用しています。

「いいね!」 1

はい、それは意図的なようです。デバッグレベルに関連する問題があったことをうっすらと覚えているので、error に設定しました。混乱させてしまい、申し訳ありません!

「いいね!」 4

ご説明いただき、ありがとうございます。プラグインは期待通り動作しています。ただ、興味深いことに、Discourse は「非公開化」という行為自体を少なくとも1件の返信があるものとして表示するため、このプラグインでは非公開トピックが削除されないようです。

「いいね!」 1

プラグインがピン留めされたトピックも削除しないことに気づきました。トピックをピン留めする行為は返信とみなされるためです。これは良いことです。

「いいね!」 2


これらのエラーメッセージが表示される理由をご存知ですか?

これが有効になっている場合、プラグインは実際にはアクションを実行せず、そのアクションをログに記録するだけです。

「いいね!」 2

こんにちは
このプラグインはまさに私が探していたもののように思えますが、リポジトリに4年間アクティビティがないため、インストールに少し不安があります。
現在のDiscourseバージョンでも動作するはずだと思いますか、それとも何か壊れる可能性が高いですか?

「いいね!」 1

とてもよく書かれていましたよ :sunglasses:

そして、これは非常に特殊なプラグインです。まだ正しく動作すると99.9%確信しています。

もし安心できるなら、まず「ドライラン」に設定すれば、何も壊れることはありません。

「いいね!」 4

完璧です。迅速なご対応ありがとうございます!

「いいね!」 1

他のユーザーからの複数のリクエストに基づき、@RGJ様:\nhttps://meta.discourse.org/t/category-level-auto-delete-topics-the-same-as-auto-close-feature/138361/16\n\nあなたのプラグインを、ユーザーが設定したN日以上前のトピックを特定のカテゴリで削除する新しいプラグインの基盤として利用できませんか?\n\nあなたのプラグインがすでにトピックをスキャンしている場合、次のようなルールを設定することは可能でしょうか?\n*カテゴリがXの場合、作成日と現在の日付がN日以上経過したトピックをスキャンし、もしそうであれば削除する.*\n\nプラグインの作成や変更の詳細については分かりませんが、これは素晴らしい機能になるでしょう。

single line を削除するだけのことです。(あるいは、明らかに、設定 max_replies を作成し、デフォルトを0にして、それを99999に設定することで望ましい効果を得ることができます)。

とはいえ、これの良いユースケースを思いつくのに苦労しています。

「いいね!」 4

考えられるユースケースの1つは、毎月リセットされるオフルトピックのラウンジかもしれません。息抜きのような自由な討論の場として。

それ以外にも、多くのユースケースは思いつきません。また、現時点では手動のみであり、自動化が可能かどうかは不明です。トピックタイマーと削除機能を適用するだけでしょうか?トピックを削除するオプションがあるのか、それとも返信のみなのか覚えていません。

「いいね!」 1

こちらで様々なケースについての議論があります。

上記トピックのユーザーの一人と似た私の特定のケースでは、「Classifieds」というカテゴリをミュージシャン向け(例:プロデューサーを探している歌手、またはその逆)に設定したいのですが、トピックが永久に利用可能になったり、新しい返信を追加するだけで更新されたりすることは望みません。例えば、そのカテゴリ内の2週間経過したすべてのトピックが、返信に関係なく削除されるタイマーを設定したいのです。そうすれば、ユーザーは意味のない返信(絵文字など)を追加するのではなく、新しいトピックを作成する必要があることを知ることができます。そうでなければ、トピックは絵文字の返信でいっぱいになり、見栄えが悪くなります。また、一緒に仕事をする人を見つけたいと思っているユーザーは、労力をかけて新しいトピックを作成することを強制されます。これは、新しいトピックを作成するのが面倒な人、コンピューターや携帯電話にテキストを保存する人などをふるいにかけるようなものです。

意味が通じますでしょうか?

もしこれがプラグインになり、私がCommuniteqをホスティングに使用している場合、プラグインをインストールするためにどのプランが必要になりますか?

トピックの自動クローズを設定できますか?

それはProfessionalプランになります。

「いいね!」 2

プラグインよりも効果が薄いでしょう。なぜなら、効果がなくなった古いトピックが表示されてしまうからです。3年前のミュージシャンを探している人々のトピックを削除したいのに、なぜ表示させたいと思うでしょうか?

また、トピックをクローズすることはプラグインと同じで、返信に依存します。これは私が望むものではありません。前述したように、ユーザーがトピックをアクティブに保つために絵文字のようなコメントを追加するだけで済んでしまう可能性があります。

基本的に、返信に関係なく、N日/週後にトピックを削除したいのです。共有したトピックからわかるように、他のユーザーも同様のニーズを持っています。あなたのプラグインはすでに同様のことを行っているので、返信に関係なく削除するバージョンを作成することは大したことではなく、各管理者はニーズに基づいてフォーラムに合ったものを選ぶことができると想定しています。

ちなみに、質問が間違っています。あなたが欲しいものは全く関係ありません。ユーザーが欲しいものが関係あります。そして、トピックには何も費用はかかりません。

「いいね!」 1