diff --git a/community/bot.py b/community/bot.py
index 6bc221a..003492d 100644
--- a/community/bot.py
+++ b/community/bot.py
@@ -2282,14 +2282,14 @@ class CommunityBot(Plugin):
)
error_list.append(roomname or room)
- results = "Power levels synced from parent room.\n\n"
+ results = "Power levels synced from parent room.
"
if success_list:
- results += f"Successfully updated rooms:\n{', '.join(success_list)}\n\n"
+ results += f"Successfully updated rooms:
{', '.join(success_list)}
"
if skipped_list:
- results += f"Skipped rooms due to verification settings:\n{', '.join(skipped_list)}\n\n"
+ results += f"Skipped rooms due to verification settings:
{', '.join(skipped_list)}
"
if error_list:
results += (
- f"Failed to update rooms:\n{', '.join(error_list)}"
+ f"Failed to update rooms:
{', '.join(error_list)}"
)
await evt.respond(results, allow_html=True, edits=msg)
@@ -2606,13 +2606,13 @@ class CommunityBot(Plugin):
# Check if default encryption is enabled and add warning for waiting room
warning_msg = ""
if self.config.get("encrypt", False):
- warning_msg = "\n\nā ļø **Note: Waiting room created without encryption (as it is a public room)**"
+ warning_msg = "
ā ļø **Note: Waiting room created without encryption (as it is a public room)**"
await evt.respond(
- f"Community space initialized successfully!\n\n"
- f"Community Slug: {self.config['community_slug']}\n"
- f"Space: {space_alias}\n"
- f"Moderators Room: {mod_room_alias}\n"
+ f"Community space initialized successfully!
"
+ f"Community Slug: {self.config['community_slug']}
"
+ f"Space: {space_alias}
"
+ f"Moderators Room: {mod_room_alias}
"
f"Waiting Room: {waiting_room_alias}{warning_msg}",
edits=msg,
allow_html=True
@@ -2780,24 +2780,24 @@ class CommunityBot(Plugin):
report["issues"].append(f"Failed to check room {room_id}: {e}")
# Generate concise summary response
- response = "
š Bot Permission Diagnostic Summary
\n\n"
+ response = "š Bot Permission Diagnostic Summary
"
# Space summary - only show if there are issues
space_has_issues = False
if "error" in report["space"]:
space_has_issues = True
- response += "š Parent Space
\n"
- response += f"ā Error: {report['space']['error']}\n\n"
+ response += "š Parent Space
"
+ response += f"ā Error: {report['space']['error']}
"
elif report["space"].get("bot_power_level", 0) < 100 or report["space"].get("users_higher") or report["space"].get("users_equal"):
space_has_issues = True
- response += "š Parent Space
\n"
+ response += "š Parent Space
"
space_status = "ā
" if report["space"]["has_admin"] else "ā"
- response += f"{space_status} Administrative privileges: {'Yes' if report['space']['has_admin'] else 'No'} (level: {report['space']['bot_power_level']})\n"
+ response += f"{space_status} Administrative privileges: {'Yes' if report['space']['has_admin'] else 'No'} (level: {report['space']['bot_power_level']})
"
if report["space"]["users_higher"]:
- response += f"ā ļø Users with higher power: {', '.join([f'{u['user']} ({u['level']})' for u in report['space']['users_higher']])}\n"
+ response += f"ā ļø Users with higher power: {', '.join([f'{u['user']} ({u['level']})' for u in report['space']['users_higher']])}
"
if report["space"]["users_equal"]:
- response += f"ā ļø Users with equal power: {', '.join([f'{u['user']} ({u['level']})' for u in report['space']['users_equal']])}\n"
- response += "\n"
+ response += f"ā ļø Users with equal power: {', '.join([f'{u['user']} ({u['level']})' for u in report['space']['users_equal']])}
"
+ response += "
"
# Rooms summary - only show problematic rooms with room IDs
problematic_rooms = []
@@ -2831,39 +2831,39 @@ class CommunityBot(Plugin):
# Only show rooms section if there are problematic rooms
if problematic_rooms:
- response += f"š Problematic Rooms ({len(problematic_rooms)} of {len(report['rooms'])} total)
\n"
- response += "Use !community doctor <room_id> for detailed analysis of specific rooms\n\n"
+ response += f"š Problematic Rooms ({len(problematic_rooms)} of {len(report['rooms'])} total)
"
+ response += "Use !community doctor <room_id> for detailed analysis of specific rooms
"
for room_info in problematic_rooms:
- response += f"{room_info}\n"
- response += "\n"
+ response += f"{room_info}
"
+ response += "
"
# Summary - always show
- response += f"š Summary
\n"
- response += f"⢠Parent space: {'ā
Admin' if report['space'].get('has_admin', False) else 'ā No admin'}\n"
- response += f"⢠Rooms with admin: {admin_rooms}\n"
- response += f"⢠Rooms without admin: {non_admin_rooms}\n"
+ response += f"š Summary
"
+ response += f"⢠Parent space: {'ā
Admin' if report['space'].get('has_admin', False) else 'ā No admin'}
"
+ response += f"⢠Rooms with admin: {admin_rooms}
"
+ response += f"⢠Rooms without admin: {non_admin_rooms}
"
if not_in_room_count > 0:
- response += f"⢠Rooms bot not in: {not_in_room_count}\n"
+ response += f"⢠Rooms bot not in: {not_in_room_count}
"
if error_rooms > 0:
- response += f"⢠Rooms with errors: {error_rooms}\n"
- response += "\n"
+ response += f"⢠Rooms with errors: {error_rooms}
"
+ response += "
"
# Issues and warnings - only show if they exist
if report["issues"]:
- response += f"šØ Critical Issues
\n"
+ response += f"šØ Critical Issues
"
for issue in report["issues"]:
- response += f"⢠{issue}\n"
- response += "\n"
+ response += f"⢠{issue}
"
+ response += "
"
if report["warnings"]:
- response += f"ā ļø Warnings
\n"
+ response += f"ā ļø Warnings
"
for warning in report["warnings"]:
- response += f"⢠{warning}\n"
- response += "\n"
+ response += f"⢠{warning}
"
+ response += "
"
if not report["issues"] and not report["warnings"] and not space_has_issues and not problematic_rooms:
- response += f"ā
All Clear
\n"
- response += "No permission issues detected. The bot should be able to manage all rooms and users effectively.\n"
+ response += f"ā
All Clear
"
+ response += "No permission issues detected. The bot should be able to manage all rooms and users effectively.
"
# Try to send the response, and if it's too large, break it up
try:
@@ -3002,15 +3002,15 @@ class CommunityBot(Plugin):
except:
pass
- response = f"š Detailed Analysis: {room_name}
\n"
- response += f"Room ID: {room_id}\n\n"
+ response = f"š Detailed Analysis: {room_name}
"
+ response += f"Room ID: {room_id}
"
# Check if bot is in the room
try:
await self.client.get_state_event(room_id, EventType.ROOM_MEMBER, self.client.mxid)
- response += "ā
Bot membership: Bot is a member of this room\n\n"
+ response += "ā
Bot membership: Bot is a member of this room
"
except Exception:
- response += "ā Bot membership: Bot is not a member of this room\n\n"
+ response += "ā Bot membership: Bot is not a member of this room
"
await evt.respond(response, edits=msg, allow_html=True)
return
@@ -3019,14 +3019,14 @@ class CommunityBot(Plugin):
power_levels = await self.client.get_state_event(room_id, EventType.ROOM_POWER_LEVELS)
bot_level = power_levels.get_user_level(self.client.mxid)
- response += f"š Power Level Analysis
\n"
- response += f"⢠Bot power level: {bot_level}\n"
- response += f"⢠Administrative privileges: {'ā
Yes' if bot_level >= 100 else 'ā No'}\n"
- response += f"⢠Default user level: {power_levels.users_default}\n"
- response += f"⢠Invite level: {power_levels.invite}\n"
- response += f"⢠Kick level: {power_levels.kick}\n"
- response += f"⢠Ban level: {power_levels.ban}\n"
- response += f"⢠Redact level: {power_levels.redact}\n\n"
+ response += f"š Power Level Analysis
"
+ response += f"⢠Bot power level: {bot_level}
"
+ response += f"⢠Administrative privileges: {'ā
Yes' if bot_level >= 100 else 'ā No'}
"
+ response += f"⢠Default user level: {power_levels.users_default}
"
+ response += f"⢠Invite level: {power_levels.invite}
"
+ response += f"⢠Kick level: {power_levels.kick}
"
+ response += f"⢠Ban level: {power_levels.ban}
"
+ response += f"⢠Redact level: {power_levels.redact}
"
# Check for users with equal or higher power level
users_higher = []
@@ -3040,22 +3040,22 @@ class CommunityBot(Plugin):
users_higher.append({"user": user, "level": level})
if users_higher:
- response += f"ā ļø Users with Higher Power Level
\n"
+ response += f"ā ļø Users with Higher Power Level
"
for user_info in users_higher:
- response += f"⢠{user_info['user']} (level: {user_info['level']})\n"
- response += "\n"
+ response += f"⢠{user_info['user']} (level: {user_info['level']})
"
+ response += "
"
if users_equal:
- response += f"ā ļø Users with Equal Power Level
\n"
+ response += f"ā ļø Users with Equal Power Level
"
for user_info in users_equal:
- response += f"⢠{user_info['user']} (level: {user_info['level']})\n"
- response += "\n"
+ response += f"⢠{user_info['user']} (level: {user_info['level']})
"
+ response += "
"
if not users_higher and not users_equal:
- response += "ā
No power level conflicts detected\n\n"
+ response += "ā
No power level conflicts detected
"
# Check specific permissions
- response += f"š Permission Analysis
\n"
+ response += f"š Permission Analysis
"
# Get required levels for various actions
events_default = power_levels.events_default
@@ -3075,38 +3075,38 @@ class CommunityBot(Plugin):
for perm_name, required_level in permissions:
has_perm = bot_level >= required_level
status = "ā
" if has_perm else "ā"
- response += f"⢠{status} {perm_name}: {'Yes' if has_perm else 'No'} (required: {required_level})\n"
+ response += f"⢠{status} {perm_name}: {'Yes' if has_perm else 'No'} (required: {required_level})
"
except Exception as e:
- response += f"ā Error getting power levels: {e}\n\n"
+ response += f"ā Error getting power levels: {e}
"
# Check room state
try:
- response += f"š Room State
\n"
+ response += f"š Room State
"
# Check join rules
try:
join_rules = await self.client.get_state_event(room_id, EventType.ROOM_JOIN_RULES)
- response += f"⢠Join rule: {join_rules.join_rule}\n"
+ response += f"⢠Join rule: {join_rules.join_rule}
"
except:
- response += "⢠Join rule: Could not determine\n"
+ response += "⢠Join rule: Could not determine
"
# Check encryption
try:
encryption = await self.client.get_state_event(room_id, EventType.ROOM_ENCRYPTION)
- response += f"⢠Encryption: ā
Enabled ({encryption.algorithm})\n"
+ response += f"⢠Encryption: ā
Enabled ({encryption.algorithm})
"
except:
- response += "⢠Encryption: ā Not enabled\n"
+ response += "⢠Encryption: ā Not enabled
"
# Check space parent
try:
space_parent = await self.client.get_state_event(room_id, EventType.SPACE_PARENT)
- response += f"⢠Space parent: ā
{space_parent.state_key}\n"
+ response += f"⢠Space parent: ā
{space_parent.state_key}
"
except:
- response += "⢠Space parent: ā Not set\n"
+ response += "⢠Space parent: ā Not set
"
except Exception as e:
- response += f"ā Error checking room state: {e}\n"
+ response += f"ā Error checking room state: {e}
"
await evt.respond(response, edits=msg, allow_html=True)