From aef20fc19876f55dbe8c03020846e0be2c545c73 Mon Sep 17 00:00:00 2001 From: bashrc Date: Mon, 17 Aug 2026 13:27:05 +0100 Subject: [PATCH] Remove prefix from nickname --- src/utils.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/utils.py b/src/utils.py index 16f61bfdc..62323fb25 100644 --- a/src/utils.py +++ b/src/utils.py @@ -1447,6 +1447,17 @@ def _remove_did_prefix(nickname: str) -> str: return nickname.replace('did:plc:', '') +def _tidy_nickname(nickname: str) -> str: + """Cleans up a nickname + """ + nickname = _remove_did_prefix(nickname) + if ':' in nickname: + nickname = nickname.split(':')[0] + if nickname.startswith('?') and '=' in nickname: + nickname = nickname.split('=')[1] + return nickname + + def get_nickname_from_actor(actor: str) -> str: """Returns the nickname from an actor url """ @@ -1463,13 +1474,10 @@ def get_nickname_from_actor(actor: str) -> str: nick_str: str = actor.split(possible_path)[1].replace('@', '') if '/' not in nick_str: nick_str = _remove_did_prefix(nick_str) - if ':' in nick_str: - nick_str = nick_str.split(':')[0] + nick_str = _tidy_nickname(nick_str) return nick_str nick_str = nick_str.split('/')[0] - nick_str = _remove_did_prefix(nick_str) - if ':' in nick_str: - nick_str = nick_str.split(':')[0] + nick_str = _tidy_nickname(nick_str) return nick_str if '/@/' not in actor: if '/@' in actor: @@ -1477,15 +1485,11 @@ def get_nickname_from_actor(actor: str) -> str: nick_str: str = actor.split('/@')[1] if '/' in nick_str: nick_str = nick_str.split('/')[0] - nick_str = _remove_did_prefix(nick_str) - if ':' in nick_str: - nick_str = nick_str.split(':')[0] + nick_str = _tidy_nickname(nick_str) return nick_str if '@' in actor: nick_str: str = actor.split('@')[0] - nick_str = _remove_did_prefix(nick_str) - if ':' in nick_str: - nick_str = nick_str.split(':')[0] + nick_str = _tidy_nickname(nick_str) return nick_str if '://' in actor: domain: str = actor.split('://')[1] @@ -1496,9 +1500,7 @@ def get_nickname_from_actor(actor: str) -> str: nick_str: str = actor.split('://' + domain + '/')[1] if '/' in nick_str or '.' in nick_str: return None - nick_str = _remove_did_prefix(nick_str) - if ':' in nick_str: - nick_str = nick_str.split(':')[0] + nick_str = _tidy_nickname(nick_str) return nick_str return None