merge-requests/30/head
Bob Mottram 2021-06-24 20:55:29 +01:00
parent c8b8663725
commit d90336239e
1 changed files with 31 additions and 66 deletions

View File

@ -834,56 +834,34 @@ def getNicknameFromActor(actor: str) -> str:
""" """
if actor.startswith('@'): if actor.startswith('@'):
actor = actor[1:] actor = actor[1:]
if '/users/' not in actor: usersPaths = ('/users/', '/profile/', '/channel/', '/accounts/', '/u/')
if '/profile/' in actor: for possiblePath in usersPaths:
nickStr = actor.split('/profile/')[1].replace('@', '') if possiblePath in actor:
nickStr = actor.split(possiblePath)[1].replace('@', '')
if '/' not in nickStr: if '/' not in nickStr:
return nickStr return nickStr
else: else:
return nickStr.split('/')[0] return nickStr.split('/')[0]
elif '/channel/' in actor: if '/@' in actor:
nickStr = actor.split('/channel/')[1].replace('@', '') # https://domain/@nick
if '/' not in nickStr: nickStr = actor.split('/@')[1]
return nickStr if '/' in nickStr:
else: nickStr = nickStr.split('/')[0]
return nickStr.split('/')[0]
elif '/accounts/' in actor:
nickStr = actor.split('/accounts/')[1].replace('@', '')
if '/' not in nickStr:
return nickStr
else:
return nickStr.split('/')[0]
elif '/u/' in actor:
nickStr = actor.split('/u/')[1].replace('@', '')
if '/' not in nickStr:
return nickStr
else:
return nickStr.split('/')[0]
elif '/@' in actor:
# https://domain/@nick
nickStr = actor.split('/@')[1]
if '/' in nickStr:
nickStr = nickStr.split('/')[0]
return nickStr
elif '@' in actor:
nickStr = actor.split('@')[0]
return nickStr
elif '://' in actor:
domain = actor.split('://')[1]
if '/' in domain:
domain = domain.split('/')[0]
if '://' + domain + '/' not in actor:
return None
nickStr = actor.split('://' + domain + '/')[1]
if '/' in nickStr or '.' in nickStr:
return None
return nickStr
return None
nickStr = actor.split('/users/')[1].replace('@', '')
if '/' not in nickStr:
return nickStr return nickStr
else: elif '@' in actor:
return nickStr.split('/')[0] nickStr = actor.split('@')[0]
return nickStr
elif '://' in actor:
domain = actor.split('://')[1]
if '/' in domain:
domain = domain.split('/')[0]
if '://' + domain + '/' not in actor:
return None
nickStr = actor.split('://' + domain + '/')[1]
if '/' in nickStr or '.' in nickStr:
return None
return nickStr
return None
def getDomainFromActor(actor: str) -> (str, int): def getDomainFromActor(actor: str) -> (str, int):
@ -893,27 +871,14 @@ def getDomainFromActor(actor: str) -> (str, int):
actor = actor[1:] actor = actor[1:]
port = None port = None
prefixes = getProtocolPrefixes() prefixes = getProtocolPrefixes()
if '/profile/' in actor: usersPaths = ('/users/', '/profile/', '/accounts/', '/channel/', '/u/')
domain = actor.split('/profile/')[0] for possiblePath in usersPaths:
for prefix in prefixes: if possiblePath in actor:
domain = domain.replace(prefix, '') domain = actor.split(possiblePath)[0]
elif '/accounts/' in actor: for prefix in prefixes:
domain = actor.split('/accounts/')[0] domain = domain.replace(prefix, '')
for prefix in prefixes: break
domain = domain.replace(prefix, '') if '/@' in actor:
elif '/channel/' in actor:
domain = actor.split('/channel/')[0]
for prefix in prefixes:
domain = domain.replace(prefix, '')
elif '/users/' in actor:
domain = actor.split('/users/')[0]
for prefix in prefixes:
domain = domain.replace(prefix, '')
elif '/u/' in actor:
domain = actor.split('/u/')[0]
for prefix in prefixes:
domain = domain.replace(prefix, '')
elif '/@' in actor:
domain = actor.split('/@')[0] domain = actor.split('/@')[0]
for prefix in prefixes: for prefix in prefixes:
domain = domain.replace(prefix, '') domain = domain.replace(prefix, '')