Remove did fluff from nicknames

These dids are literally pointless - adding no value - and ought to be web urls
main
bashrc 2026-04-14 11:52:33 +01:00
parent 73ab5f80d6
commit 8f67458549
2 changed files with 22 additions and 7 deletions

View File

@ -3906,6 +3906,14 @@ def _test_actor_parsing():
nickname = get_nickname_from_actor(actor)
assert nickname == 'othernick'
actor = 'https://bsky.brid.gy/ap/did:plc:abcdefg'
domain, port = get_domain_from_actor(actor)
assert domain == 'bsky.brid.gy'
nickname = get_nickname_from_actor(actor)
if nickname != 'abcdefg':
print(nickname)
assert nickname == 'abcdefg'
def _test_web_links():
print('test_web_links')
@ -9460,9 +9468,9 @@ def _test_bridgy() -> None:
'https://brid.gy/convert/ap/at://' + \
'did:plc:dcbhwedfgwuyfgwfnj/app.bsky.feed.post/fchbuiweefwui'
nickname = get_nickname_from_actor(bridgy_url)
if nickname != 'did:plc:dcbhwedfgwuyfgwfnj':
if nickname != 'dcbhwedfgwuyfgwfnj':
print('nickname: ' + nickname)
assert nickname == 'did:plc:dcbhwedfgwuyfgwfnj'
assert nickname == 'dcbhwedfgwuyfgwfnj'
domain, _ = get_domain_from_actor(bridgy_url)
if domain != 'brid.gy':
print('domain: ' + domain)

View File

@ -1449,6 +1449,12 @@ def get_gender_from_bio(base_dir: str, actor: str, person_cache: {},
return gender
def _remove_did_prefix(nickname: str) -> str:
"""Removes decentralized ID (DID) prefix from a nickname
"""
return nickname.replace('did:plc:', '')
def get_nickname_from_actor(actor: str) -> str:
"""Returns the nickname from an actor url
"""
@ -1464,18 +1470,19 @@ def get_nickname_from_actor(actor: str) -> str:
continue
nick_str = actor.split(possible_path)[1].replace('@', '')
if '/' not in nick_str:
return nick_str
return nick_str.split('/')[0]
return _remove_did_prefix(nick_str)
nick_str = nick_str.split('/')[0]
return _remove_did_prefix(nick_str)
if '/@/' not in actor:
if '/@' in actor:
# https://domain/@nick
nick_str = actor.split('/@')[1]
if '/' in nick_str:
nick_str = nick_str.split('/')[0]
return nick_str
return _remove_did_prefix(nick_str)
if '@' in actor:
nick_str = actor.split('@')[0]
return nick_str
return _remove_did_prefix(nick_str)
if '://' in actor:
domain = actor.split('://')[1]
if '/' in domain:
@ -1485,7 +1492,7 @@ def get_nickname_from_actor(actor: str) -> str:
nick_str = actor.split('://' + domain + '/')[1]
if '/' in nick_str or '.' in nick_str:
return None
return nick_str
return _remove_did_prefix(nick_str)
return None