From 7a8ced6dcac74fcd598be3872f98e9f99a877e47 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 17 Sep 2025 20:10:19 -0700 Subject: feat(intelligent_moderator): Don't include reasoning in art re-flairs --- src/umabot/rules/intelligent_roleplay_moderator.py | 10 +++++++--- test_moderator.py | 13 +++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/umabot/rules/intelligent_roleplay_moderator.py b/src/umabot/rules/intelligent_roleplay_moderator.py index ab6f61e..81fda8e 100644 --- a/src/umabot/rules/intelligent_roleplay_moderator.py +++ b/src/umabot/rules/intelligent_roleplay_moderator.py @@ -107,8 +107,8 @@ class IntelligentRoleplayModerator(Rule, IntelligentModeratorBase): username = submission.author.name subject = "Your post flair has been changed to Art" - # Format reasoning based on configuration - formatted_reasoning = self._format_reasoning(evaluation) + # Format reasoning based on configuration (never include for art flair changes) + formatted_reasoning = self._format_reasoning(evaluation, is_art_flair_change=True) message = f"""Hello u/{username}, @@ -169,8 +169,12 @@ Thank you for understanding!""" except Exception as e: self.logger.error(f"Error sending low effort notification for {submission.id}: {e}") - def _format_reasoning(self, evaluation: dict) -> str: + def _format_reasoning(self, evaluation: dict, is_art_flair_change: bool = False) -> str: """Format reasoning based on the configured reasoning level.""" + # Never include reasoning for art flair changes + if is_art_flair_change: + return "" + reasoning_level = self.config.reasoning_level original_reasoning = evaluation.get('reasoning', '') diff --git a/test_moderator.py b/test_moderator.py index 70b57f2..6764a9e 100755 --- a/test_moderator.py +++ b/test_moderator.py @@ -250,8 +250,12 @@ class TestIntelligentModerator(IntelligentModeratorBase): return results - def _format_reasoning(self, evaluation: dict) -> str: + def _format_reasoning(self, evaluation: dict, is_art_flair_change: bool = False) -> str: """Format reasoning based on the configured reasoning level.""" + # Never include reasoning for art flair changes + if is_art_flair_change: + return "" + original_reasoning = evaluation.get('reasoning', '') if self.reasoning_level == 0: @@ -384,13 +388,14 @@ def print_results(results: List[Dict[str, Any]], pause: bool = False, moderator: print(f" Subject: Your post flair has been changed to Art") print(f" Message: Your roleplay post has been automatically re-flaired as 'Art' because it appears to be primarily showcasing artwork or visual content rather than roleplay.") - # Format reasoning based on moderator's reasoning level + # Format reasoning based on moderator's reasoning level (never include for art flair changes) if moderator: - formatted_reasoning = moderator._format_reasoning(evaluation) + formatted_reasoning = moderator._format_reasoning(evaluation, is_art_flair_change=True) if formatted_reasoning: print(f" Reasoning: {formatted_reasoning}") else: - print(f" Reasoning: {evaluation['reasoning']}") + # For art flair changes, never show reasoning even without moderator + pass if "REMOVE_POST" in actions: print(f"\n📧 Mod Mail (Low Effort Removal):") -- cgit v1.2.3