Support i2p webfinger

main
Bob Mottram 2022-03-13 20:58:05 +00:00
parent ed820dbcfc
commit 17746b74df
2 changed files with 14 additions and 4 deletions

View File

@ -1479,7 +1479,9 @@ class PubServer(BaseHTTPRequestHandler):
str(self.server.base_dir)) str(self.server.base_dir))
wf_result = \ wf_result = \
webfinger_lookup(self.path, self.server.base_dir, webfinger_lookup(self.path, self.server.base_dir,
self.server.domain, self.server.onion_domain, self.server.domain,
self.server.onion_domain,
self.server.i2p_domain,
self.server.port, self.server.debug) self.server.port, self.server.debug)
if wf_result: if wf_result:
msg_str = json.dumps(wf_result) msg_str = json.dumps(wf_result)

View File

@ -245,7 +245,7 @@ def webfinger_meta(http_prefix: str, domain_full: str) -> str:
def webfinger_lookup(path: str, base_dir: str, def webfinger_lookup(path: str, base_dir: str,
domain: str, onion_domain: str, domain: str, onion_domain: str, i2p_domain: str,
port: int, debug: bool) -> {}: port: int, debug: bool) -> {}:
"""Lookup the webfinger endpoint for an account """Lookup the webfinger endpoint for an account
""" """
@ -287,6 +287,11 @@ def webfinger_lookup(path: str, base_dir: str,
if onion_domain in handle: if onion_domain in handle:
handle = handle.replace(onion_domain, domain) handle = handle.replace(onion_domain, domain)
onionify = True onionify = True
i2pify = False
if i2p_domain:
if i2p_domain in handle:
handle = handle.replace(i2p_domain, domain)
i2pify = True
# instance actor # instance actor
if handle.startswith('actor@'): if handle.startswith('actor@'):
handle = handle.replace('actor@', 'inbox@', 1) handle = handle.replace('actor@', 'inbox@', 1)
@ -299,11 +304,14 @@ def webfinger_lookup(path: str, base_dir: str,
if debug: if debug:
print('DEBUG: WEBFINGER filename not found ' + filename) print('DEBUG: WEBFINGER filename not found ' + filename)
return None return None
if not onionify: if not onionify and not i2pify:
wf_json = load_json(filename) wf_json = load_json(filename)
else: elif onionify:
print('Webfinger request for onionified ' + handle) print('Webfinger request for onionified ' + handle)
wf_json = load_json_onionify(filename, domain, onion_domain) wf_json = load_json_onionify(filename, domain, onion_domain)
else:
print('Webfinger request for i2pified ' + handle)
wf_json = load_json_onionify(filename, domain, i2p_domain)
if not wf_json: if not wf_json:
wf_json = {"nickname": "unknown"} wf_json = {"nickname": "unknown"}
return wf_json return wf_json