mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of gitlab.com:bashrc2/epicyon
commit
8437693336
|
@ -1118,7 +1118,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
return False
|
||||
|
||||
if not referer_domain:
|
||||
if not debug and not self.server.unit_test:
|
||||
if not (debug and self.server.unit_test):
|
||||
print('mastodon api request has no referer domain ' +
|
||||
str(ua_str))
|
||||
self._400()
|
||||
|
|
35
languages.py
35
languages.py
|
@ -7,7 +7,6 @@ __email__ = "bob@libreserver.org"
|
|||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
|
||||
import os
|
||||
import json
|
||||
from urllib import request, parse
|
||||
from utils import get_actor_languages_list
|
||||
|
@ -49,22 +48,15 @@ def get_understood_languages(base_dir: str, http_prefix: str,
|
|||
|
||||
def set_actor_languages(base_dir: str, actor_json: {},
|
||||
languages_str: str) -> None:
|
||||
"""Sets the languages used by the given actor
|
||||
"""Sets the languages understood by the given actor
|
||||
"""
|
||||
languages_str = languages_str.strip()
|
||||
separator = None
|
||||
if ',' in languages_str:
|
||||
separator = ','
|
||||
elif '/' in languages_str:
|
||||
separator = '/'
|
||||
elif ',' in languages_str:
|
||||
separator = ','
|
||||
elif ';' in languages_str:
|
||||
separator = ';'
|
||||
elif '+' in languages_str:
|
||||
separator = '+'
|
||||
elif ' ' in languages_str:
|
||||
separator = ' '
|
||||
possible_separators = (',', '/', ';', '+', ' ')
|
||||
for poss in possible_separators:
|
||||
if poss in languages_str:
|
||||
separator = poss
|
||||
break
|
||||
if separator:
|
||||
lang_list = languages_str.lower().split(separator)
|
||||
else:
|
||||
|
@ -72,18 +64,11 @@ def set_actor_languages(base_dir: str, actor_json: {},
|
|||
lang_list2 = ''
|
||||
for lang in lang_list:
|
||||
lang = lang.strip()
|
||||
if base_dir:
|
||||
language_filename = base_dir + '/translations/' + lang + '.json'
|
||||
if os.path.isfile(language_filename):
|
||||
if lang_list2:
|
||||
lang_list2 += ', ' + lang.strip()
|
||||
else:
|
||||
lang_list2 += lang.strip()
|
||||
if lang_list2:
|
||||
if ' ' + lang not in lang_list2:
|
||||
lang_list2 += ', ' + lang
|
||||
else:
|
||||
if lang_list2:
|
||||
lang_list2 += ', ' + lang.strip()
|
||||
else:
|
||||
lang_list2 += lang.strip()
|
||||
lang_list2 += lang
|
||||
|
||||
# remove any existing value
|
||||
property_found = None
|
||||
|
|
26
webfinger.py
26
webfinger.py
|
@ -78,6 +78,8 @@ def webfinger_handle(session, handle: str, http_prefix: str,
|
|||
wf_domain = remove_domain_port(domain)
|
||||
|
||||
wf_handle = nickname + '@' + wf_domain
|
||||
if debug:
|
||||
print('Parsed webfinger handle: ' + handle + ' -> ' + wf_handle)
|
||||
wfg = get_webfinger_from_cache(wf_handle, cached_webfingers)
|
||||
if wfg:
|
||||
if debug:
|
||||
|
@ -95,15 +97,37 @@ def webfinger_handle(session, handle: str, http_prefix: str,
|
|||
get_json(signing_priv_key_pem, session, url, hdr, par,
|
||||
debug, project_version, http_prefix, from_domain)
|
||||
except Exception as ex:
|
||||
print('ERROR: webfinger_handle ' + str(ex))
|
||||
print('ERROR: webfinger_handle ' + wf_handle + ' ' + str(ex))
|
||||
return None
|
||||
|
||||
# if the first attempt fails then try specifying the webfinger
|
||||
# resource in a different way
|
||||
if not result:
|
||||
resource = handle
|
||||
if handle == wf_handle:
|
||||
# reconstruct the actor
|
||||
resource = http_prefix + '://' + wf_domain + '/users/' + nickname
|
||||
# try again using the actor as the resource
|
||||
# See https://datatracker.ietf.org/doc/html/rfc7033 section 4.5
|
||||
par = {
|
||||
'resource': '{}'.format(resource)
|
||||
}
|
||||
try:
|
||||
result = \
|
||||
get_json(signing_priv_key_pem, session, url, hdr, par,
|
||||
debug, project_version, http_prefix, from_domain)
|
||||
except Exception as ex:
|
||||
print('ERROR: webfinger_handle ' + wf_handle + ' ' + str(ex))
|
||||
return None
|
||||
|
||||
if result:
|
||||
store_webfinger_in_cache(wf_handle, result, cached_webfingers)
|
||||
else:
|
||||
if debug:
|
||||
print("WARN: Unable to webfinger " + url + ' ' +
|
||||
'nickname: ' + str(nickname) + ' ' +
|
||||
'handle: ' + str(handle) + ' ' +
|
||||
'wf_handle: ' + str(wf_handle) + ' ' +
|
||||
'domain: ' + str(wf_domain) + ' ' +
|
||||
'headers: ' + str(hdr) + ' ' +
|
||||
'params: ' + str(par))
|
||||
|
|
Loading…
Reference in New Issue