mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of gitlab.com:bashrc2/epicyon
commit
afe133b871
24
daemon.py
24
daemon.py
|
@ -2165,7 +2165,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
print('EX: Unable to save token for ' +
|
print('EX: Unable to save token for ' +
|
||||||
login_nickname + ' ' + str(ex))
|
login_nickname + ' ' + str(ex))
|
||||||
|
|
||||||
person_upgrade_actor(base_dir, None, login_handle,
|
person_upgrade_actor(base_dir, None,
|
||||||
base_dir + '/accounts/' +
|
base_dir + '/accounts/' +
|
||||||
login_handle + '.json')
|
login_handle + '.json')
|
||||||
|
|
||||||
|
@ -2408,8 +2408,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
locate_post(base_dir, nickname, domain,
|
locate_post(base_dir, nickname, domain,
|
||||||
moderation_text)
|
moderation_text)
|
||||||
if post_filename:
|
if post_filename:
|
||||||
if can_remove_post(base_dir,
|
if can_remove_post(base_dir, domain, port,
|
||||||
nickname, domain, port,
|
|
||||||
moderation_text):
|
moderation_text):
|
||||||
delete_post(base_dir,
|
delete_post(base_dir,
|
||||||
http_prefix,
|
http_prefix,
|
||||||
|
@ -2425,8 +2424,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
locate_post(base_dir, 'news', domain,
|
locate_post(base_dir, 'news', domain,
|
||||||
moderation_text)
|
moderation_text)
|
||||||
if post_filename:
|
if post_filename:
|
||||||
if can_remove_post(base_dir,
|
if can_remove_post(base_dir, domain, port,
|
||||||
'news', domain, port,
|
|
||||||
moderation_text):
|
moderation_text):
|
||||||
delete_post(base_dir,
|
delete_post(base_dir,
|
||||||
http_prefix,
|
http_prefix,
|
||||||
|
@ -2575,9 +2573,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
if 'submitThemeDesignerReset=' in theme_params or \
|
if 'submitThemeDesignerReset=' in theme_params or \
|
||||||
'submitThemeDesigner=' not in theme_params:
|
'submitThemeDesigner=' not in theme_params:
|
||||||
if 'submitThemeDesignerReset=' in theme_params:
|
if 'submitThemeDesignerReset=' in theme_params:
|
||||||
reset_theme_designer_settings(base_dir, theme_name, domain,
|
reset_theme_designer_settings(base_dir)
|
||||||
allow_local_network_access,
|
|
||||||
system_language)
|
|
||||||
set_theme(base_dir, theme_name, domain,
|
set_theme(base_dir, theme_name, domain,
|
||||||
allow_local_network_access, system_language,
|
allow_local_network_access, system_language,
|
||||||
dyslexic_font, True)
|
dyslexic_font, True)
|
||||||
|
@ -4555,7 +4551,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
get_domain_from_actor(share_actor)
|
get_domain_from_actor(share_actor)
|
||||||
remove_shared_item(base_dir,
|
remove_shared_item(base_dir,
|
||||||
share_nickname, share_domain, item_id,
|
share_nickname, share_domain, item_id,
|
||||||
http_prefix, domain_full, 'shares')
|
'shares')
|
||||||
|
|
||||||
if calling_domain.endswith('.onion') and onion_domain:
|
if calling_domain.endswith('.onion') and onion_domain:
|
||||||
origin_path_str = 'http://' + onion_domain + users_path
|
origin_path_str = 'http://' + onion_domain + users_path
|
||||||
|
@ -4628,7 +4624,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
get_domain_from_actor(share_actor)
|
get_domain_from_actor(share_actor)
|
||||||
remove_shared_item(base_dir,
|
remove_shared_item(base_dir,
|
||||||
share_nickname, share_domain, item_id,
|
share_nickname, share_domain, item_id,
|
||||||
http_prefix, domain_full, 'wanted')
|
'wanted')
|
||||||
|
|
||||||
if calling_domain.endswith('.onion') and onion_domain:
|
if calling_domain.endswith('.onion') and onion_domain:
|
||||||
origin_path_str = 'http://' + onion_domain + users_path
|
origin_path_str = 'http://' + onion_domain + users_path
|
||||||
|
@ -18528,14 +18524,12 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
response_str = None
|
response_str = None
|
||||||
if endpoint_type == 'propfind':
|
if endpoint_type == 'propfind':
|
||||||
response_str = \
|
response_str = \
|
||||||
dav_propfind_response(self.server.base_dir,
|
dav_propfind_response(nickname, propfind_xml)
|
||||||
nickname, self.server.domain,
|
|
||||||
depth, propfind_xml)
|
|
||||||
elif endpoint_type == 'put':
|
elif endpoint_type == 'put':
|
||||||
response_str = \
|
response_str = \
|
||||||
dav_put_response(self.server.base_dir,
|
dav_put_response(self.server.base_dir,
|
||||||
nickname, self.server.domain,
|
nickname, self.server.domain,
|
||||||
depth, propfind_xml,
|
propfind_xml,
|
||||||
self.server.http_prefix,
|
self.server.http_prefix,
|
||||||
self.server.system_language,
|
self.server.system_language,
|
||||||
self.server.recent_dav_etags)
|
self.server.recent_dav_etags)
|
||||||
|
@ -18548,7 +18542,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
response_str = \
|
response_str = \
|
||||||
dav_report_response(self.server.base_dir,
|
dav_report_response(self.server.base_dir,
|
||||||
nickname, self.server.domain,
|
nickname, self.server.domain,
|
||||||
depth, propfind_xml,
|
propfind_xml,
|
||||||
self.server.person_cache,
|
self.server.person_cache,
|
||||||
self.server.http_prefix,
|
self.server.http_prefix,
|
||||||
curr_etag,
|
curr_etag,
|
||||||
|
|
|
@ -793,8 +793,7 @@ def _dav_decode_token(token: str) -> (int, int, str):
|
||||||
return token_year, token_month_number, token_post_id
|
return token_year, token_month_number, token_post_id
|
||||||
|
|
||||||
|
|
||||||
def dav_propfind_response(base_dir: str, nickname: str, domain: str,
|
def dav_propfind_response(nickname: str, xml_str: str) -> str:
|
||||||
depth: int, xml_str: str) -> str:
|
|
||||||
"""Returns the response to caldav PROPFIND
|
"""Returns the response to caldav PROPFIND
|
||||||
"""
|
"""
|
||||||
if '<d:propfind' not in xml_str or \
|
if '<d:propfind' not in xml_str or \
|
||||||
|
@ -977,7 +976,7 @@ def _dav_update_recent_etags(etag: str, nickname: str,
|
||||||
|
|
||||||
|
|
||||||
def dav_put_response(base_dir: str, nickname: str, domain: str,
|
def dav_put_response(base_dir: str, nickname: str, domain: str,
|
||||||
depth: int, xml_str: str, http_prefix: str,
|
xml_str: str, http_prefix: str,
|
||||||
system_language: str,
|
system_language: str,
|
||||||
recent_dav_etags: {}) -> str:
|
recent_dav_etags: {}) -> str:
|
||||||
"""Returns the response to caldav PUT
|
"""Returns the response to caldav PUT
|
||||||
|
@ -1023,7 +1022,7 @@ def dav_put_response(base_dir: str, nickname: str, domain: str,
|
||||||
|
|
||||||
|
|
||||||
def dav_report_response(base_dir: str, nickname: str, domain: str,
|
def dav_report_response(base_dir: str, nickname: str, domain: str,
|
||||||
depth: int, xml_str: str,
|
xml_str: str,
|
||||||
person_cache: {}, http_prefix: str,
|
person_cache: {}, http_prefix: str,
|
||||||
curr_etag: str, recent_dav_etags: {},
|
curr_etag: str, recent_dav_etags: {},
|
||||||
domain_full: str, system_language: str) -> str:
|
domain_full: str, system_language: str) -> str:
|
||||||
|
|
|
@ -66,8 +66,7 @@ def _update_feeds_outbox_index(base_dir: str, domain: str,
|
||||||
print('EX: unable to write ' + index_filename)
|
print('EX: unable to write ' + index_filename)
|
||||||
|
|
||||||
|
|
||||||
def _save_arrived_time(base_dir: str, post_filename: str,
|
def _save_arrived_time(post_filename: str, arrived: str) -> None:
|
||||||
arrived: str) -> None:
|
|
||||||
"""Saves the time when an rss post arrived to a file
|
"""Saves the time when an rss post arrived to a file
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
@ -100,8 +99,7 @@ def _hashtag_logical_not(tree: [], hashtags: [], moderated: bool,
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool,
|
def _hashtag_logical_contains(tree: [], content: str) -> bool:
|
||||||
content: str, url: str) -> bool:
|
|
||||||
""" Contains
|
""" Contains
|
||||||
"""
|
"""
|
||||||
if len(tree) != 2:
|
if len(tree) != 2:
|
||||||
|
@ -121,8 +119,7 @@ def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool,
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _hashtag_logical_from(tree: [], hashtags: [], moderated: bool,
|
def _hashtag_logical_from(tree: [], url: str) -> bool:
|
||||||
content: str, url: str) -> bool:
|
|
||||||
""" FROM
|
""" FROM
|
||||||
"""
|
"""
|
||||||
if len(tree) != 2:
|
if len(tree) != 2:
|
||||||
|
@ -210,10 +207,9 @@ def hashtag_rule_resolve(tree: [], hashtags: [], moderated: bool,
|
||||||
if tree[0] == 'not':
|
if tree[0] == 'not':
|
||||||
return _hashtag_logical_not(tree, hashtags, moderated, content, url)
|
return _hashtag_logical_not(tree, hashtags, moderated, content, url)
|
||||||
if tree[0] == 'contains':
|
if tree[0] == 'contains':
|
||||||
return _hashtag_logical_contains(tree, hashtags, moderated,
|
return _hashtag_logical_contains(tree, content)
|
||||||
content, url)
|
|
||||||
if tree[0] == 'from':
|
if tree[0] == 'from':
|
||||||
return _hashtag_logical_from(tree, hashtags, moderated, content, url)
|
return _hashtag_logical_from(tree, url)
|
||||||
if tree[0] == 'and':
|
if tree[0] == 'and':
|
||||||
return _hashtag_logical_and(tree, hashtags, moderated, content, url)
|
return _hashtag_logical_and(tree, hashtags, moderated, content, url)
|
||||||
if tree[0] == 'or':
|
if tree[0] == 'or':
|
||||||
|
@ -378,13 +374,9 @@ def _hashtag_remove(http_prefix: str, domain_full: str, post_json_object: {},
|
||||||
post_json_object['object']['tag'].remove(rm_tag_object)
|
post_json_object['object']['tag'].remove(rm_tag_object)
|
||||||
|
|
||||||
|
|
||||||
def _newswire_hashtag_processing(session, base_dir: str, post_json_object: {},
|
def _newswire_hashtag_processing(base_dir: str, post_json_object: {},
|
||||||
hashtags: [], http_prefix: str,
|
hashtags: [], http_prefix: str,
|
||||||
domain: str, port: int,
|
domain: str, port: int,
|
||||||
person_cache: {},
|
|
||||||
cached_webfingers: {},
|
|
||||||
federation_list: [],
|
|
||||||
send_threads: [], post_log: [],
|
|
||||||
moderated: bool, url: str,
|
moderated: bool, url: str,
|
||||||
system_language: str,
|
system_language: str,
|
||||||
translate: {}) -> bool:
|
translate: {}) -> bool:
|
||||||
|
@ -549,11 +541,6 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
||||||
newswire: {},
|
newswire: {},
|
||||||
translate: {},
|
translate: {},
|
||||||
recent_posts_cache: {},
|
recent_posts_cache: {},
|
||||||
max_recent_posts: int,
|
|
||||||
session, cached_webfingers: {},
|
|
||||||
person_cache: {},
|
|
||||||
federation_list: [],
|
|
||||||
send_threads: [], post_log: [],
|
|
||||||
max_mirrored_articles: int,
|
max_mirrored_articles: int,
|
||||||
allow_local_network_access: bool,
|
allow_local_network_access: bool,
|
||||||
system_language: str,
|
system_language: str,
|
||||||
|
@ -697,12 +684,8 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
||||||
moderated = item[5]
|
moderated = item[5]
|
||||||
|
|
||||||
save_post = \
|
save_post = \
|
||||||
_newswire_hashtag_processing(session, base_dir,
|
_newswire_hashtag_processing(base_dir, blog, hashtags,
|
||||||
blog, hashtags,
|
|
||||||
http_prefix, domain, port,
|
http_prefix, domain, port,
|
||||||
person_cache, cached_webfingers,
|
|
||||||
federation_list,
|
|
||||||
send_threads, post_log,
|
|
||||||
moderated, url, system_language,
|
moderated, url, system_language,
|
||||||
translate)
|
translate)
|
||||||
|
|
||||||
|
@ -755,7 +738,7 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
|
||||||
# this can then later be used to construct the news timeline
|
# this can then later be used to construct the news timeline
|
||||||
# excluding items during the voting period
|
# excluding items during the voting period
|
||||||
if moderated:
|
if moderated:
|
||||||
_save_arrived_time(base_dir, filename,
|
_save_arrived_time(filename,
|
||||||
blog['object']['arrived'])
|
blog['object']['arrived'])
|
||||||
else:
|
else:
|
||||||
if os.path.isfile(filename + '.arrived'):
|
if os.path.isfile(filename + '.arrived'):
|
||||||
|
@ -842,17 +825,9 @@ def run_newswire_daemon(base_dir: str, httpd,
|
||||||
print('No new newswire')
|
print('No new newswire')
|
||||||
|
|
||||||
print('Converting newswire to activitypub format')
|
print('Converting newswire to activitypub format')
|
||||||
_convert_rss_to_activitypub(base_dir,
|
_convert_rss_to_activitypub(base_dir, http_prefix, domain, port,
|
||||||
http_prefix, domain, port,
|
|
||||||
new_newswire, translate,
|
new_newswire, translate,
|
||||||
httpd.recent_posts_cache,
|
httpd.recent_posts_cache,
|
||||||
httpd.max_recent_posts,
|
|
||||||
httpd.session,
|
|
||||||
httpd.cached_webfingers,
|
|
||||||
httpd.person_cache,
|
|
||||||
httpd.federation_list,
|
|
||||||
httpd.send_threads,
|
|
||||||
httpd.postLog,
|
|
||||||
httpd.max_mirrored_articles,
|
httpd.max_mirrored_articles,
|
||||||
httpd.allow_local_network_access,
|
httpd.allow_local_network_access,
|
||||||
httpd.system_language,
|
httpd.system_language,
|
||||||
|
|
17
outbox.py
17
outbox.py
|
@ -60,8 +60,7 @@ from webapp_post import individual_post_as_html
|
||||||
from speaker import update_speaker
|
from speaker import update_speaker
|
||||||
|
|
||||||
|
|
||||||
def _person_receive_update_outbox(recent_posts_cache: {},
|
def _person_receive_update_outbox(base_dir: str, http_prefix: str,
|
||||||
base_dir: str, http_prefix: str,
|
|
||||||
nickname: str, domain: str, port: int,
|
nickname: str, domain: str, port: int,
|
||||||
message_json: {}, debug: bool) -> None:
|
message_json: {}, debug: bool) -> None:
|
||||||
""" Receive an actor update from c2s
|
""" Receive an actor update from c2s
|
||||||
|
@ -588,14 +587,12 @@ def post_message_to_outbox(session, translate: {},
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: handle any emoji reaction requests')
|
print('DEBUG: handle any emoji reaction requests')
|
||||||
outbox_reaction(recent_posts_cache,
|
outbox_reaction(recent_posts_cache,
|
||||||
base_dir, http_prefix,
|
base_dir, post_to_nickname, domain,
|
||||||
post_to_nickname, domain, port,
|
|
||||||
message_json, debug)
|
message_json, debug)
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: handle any undo emoji reaction requests')
|
print('DEBUG: handle any undo emoji reaction requests')
|
||||||
outbox_undo_reaction(recent_posts_cache,
|
outbox_undo_reaction(recent_posts_cache,
|
||||||
base_dir, http_prefix,
|
base_dir, post_to_nickname, domain,
|
||||||
post_to_nickname, domain, port,
|
|
||||||
message_json, debug)
|
message_json, debug)
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
|
@ -659,14 +656,12 @@ def post_message_to_outbox(session, translate: {},
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: handle undo share uploads')
|
print('DEBUG: handle undo share uploads')
|
||||||
outbox_undo_share_upload(base_dir, http_prefix,
|
outbox_undo_share_upload(base_dir, post_to_nickname, domain,
|
||||||
post_to_nickname, domain,
|
message_json, debug)
|
||||||
port, message_json, debug)
|
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: handle actor updates from c2s')
|
print('DEBUG: handle actor updates from c2s')
|
||||||
_person_receive_update_outbox(recent_posts_cache,
|
_person_receive_update_outbox(base_dir, http_prefix,
|
||||||
base_dir, http_prefix,
|
|
||||||
post_to_nickname, domain, port,
|
post_to_nickname, domain, port,
|
||||||
message_json, debug)
|
message_json, debug)
|
||||||
|
|
||||||
|
|
14
person.py
14
person.py
|
@ -74,6 +74,8 @@ from follow import is_following_actor
|
||||||
|
|
||||||
|
|
||||||
def generate_rsa_key() -> (str, str):
|
def generate_rsa_key() -> (str, str):
|
||||||
|
"""Creates an RSA key for signing
|
||||||
|
"""
|
||||||
key = rsa.generate_private_key(
|
key = rsa.generate_private_key(
|
||||||
public_exponent=65537,
|
public_exponent=65537,
|
||||||
key_size=2048,
|
key_size=2048,
|
||||||
|
@ -755,7 +757,7 @@ def create_news_inbox(base_dir: str, domain: str, port: int,
|
||||||
|
|
||||||
|
|
||||||
def person_upgrade_actor(base_dir: str, person_json: {},
|
def person_upgrade_actor(base_dir: str, person_json: {},
|
||||||
handle: str, filename: str) -> None:
|
filename: str) -> None:
|
||||||
"""Alter the actor to add any new properties
|
"""Alter the actor to add any new properties
|
||||||
"""
|
"""
|
||||||
update_actor = False
|
update_actor = False
|
||||||
|
@ -948,7 +950,7 @@ def person_lookup(domain: str, path: str, base_dir: str) -> {}:
|
||||||
return None
|
return None
|
||||||
person_json = load_json(filename)
|
person_json = load_json(filename)
|
||||||
if not is_shared_inbox:
|
if not is_shared_inbox:
|
||||||
person_upgrade_actor(base_dir, person_json, handle, filename)
|
person_upgrade_actor(base_dir, person_json, filename)
|
||||||
# if not person_json:
|
# if not person_json:
|
||||||
# person_json={"user": "unknown"}
|
# person_json={"user": "unknown"}
|
||||||
return person_json
|
return person_json
|
||||||
|
@ -1053,6 +1055,8 @@ def person_box_json(recent_posts_cache: {},
|
||||||
|
|
||||||
def set_display_nickname(base_dir: str, nickname: str, domain: str,
|
def set_display_nickname(base_dir: str, nickname: str, domain: str,
|
||||||
display_name: str) -> bool:
|
display_name: str) -> bool:
|
||||||
|
"""Sets the display name for an account
|
||||||
|
"""
|
||||||
if len(display_name) > 32:
|
if len(display_name) > 32:
|
||||||
return False
|
return False
|
||||||
handle = nickname + '@' + domain
|
handle = nickname + '@' + domain
|
||||||
|
@ -1159,7 +1163,7 @@ def suspend_account(base_dir: str, nickname: str, domain: str) -> None:
|
||||||
print('EX: unable to write ' + suspended_filename)
|
print('EX: unable to write ' + suspended_filename)
|
||||||
|
|
||||||
|
|
||||||
def can_remove_post(base_dir: str, nickname: str,
|
def can_remove_post(base_dir: str,
|
||||||
domain: str, port: int, post_id: str) -> bool:
|
domain: str, port: int, post_id: str) -> bool:
|
||||||
"""Returns true if the given post can be removed
|
"""Returns true if the given post can be removed
|
||||||
"""
|
"""
|
||||||
|
@ -1679,8 +1683,8 @@ def get_actor_json(host_domain: str, handle: str, http: bool, gnunet: bool,
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
def get_person_avatar_url(base_dir: str, person_url: str, person_cache: {},
|
def get_person_avatar_url(base_dir: str, person_url: str,
|
||||||
allow_downloads: bool) -> str:
|
person_cache: {}) -> str:
|
||||||
"""Returns the avatar url for the person
|
"""Returns the avatar url for the person
|
||||||
"""
|
"""
|
||||||
person_json = \
|
person_json = \
|
||||||
|
|
|
@ -361,8 +361,7 @@ def send_undo_reaction_via_server(base_dir: str, session,
|
||||||
|
|
||||||
|
|
||||||
def outbox_reaction(recent_posts_cache: {},
|
def outbox_reaction(recent_posts_cache: {},
|
||||||
base_dir: str, http_prefix: str,
|
base_dir: str, nickname: str, domain: str,
|
||||||
nickname: str, domain: str, port: int,
|
|
||||||
message_json: {}, debug: bool) -> None:
|
message_json: {}, debug: bool) -> None:
|
||||||
""" When a reaction request is received by the outbox from c2s
|
""" When a reaction request is received by the outbox from c2s
|
||||||
"""
|
"""
|
||||||
|
@ -405,8 +404,7 @@ def outbox_reaction(recent_posts_cache: {},
|
||||||
|
|
||||||
|
|
||||||
def outbox_undo_reaction(recent_posts_cache: {},
|
def outbox_undo_reaction(recent_posts_cache: {},
|
||||||
base_dir: str, http_prefix: str,
|
base_dir: str, nickname: str, domain: str,
|
||||||
nickname: str, domain: str, port: int,
|
|
||||||
message_json: {}, debug: bool) -> None:
|
message_json: {}, debug: bool) -> None:
|
||||||
""" When an undo reaction request is received by the outbox from c2s
|
""" When an undo reaction request is received by the outbox from c2s
|
||||||
"""
|
"""
|
||||||
|
|
13
shares.py
13
shares.py
|
@ -119,9 +119,7 @@ def _get_valid_shared_item_id(actor: str, display_name: str) -> str:
|
||||||
|
|
||||||
|
|
||||||
def remove_shared_item(base_dir: str, nickname: str, domain: str,
|
def remove_shared_item(base_dir: str, nickname: str, domain: str,
|
||||||
item_id: str,
|
item_id: str, shares_file_type: str) -> None:
|
||||||
http_prefix: str, domain_full: str,
|
|
||||||
shares_file_type: str) -> None:
|
|
||||||
"""Removes a share for a person
|
"""Removes a share for a person
|
||||||
"""
|
"""
|
||||||
shares_filename = \
|
shares_filename = \
|
||||||
|
@ -992,8 +990,7 @@ def send_undo_wanted_via_server(base_dir: str, session,
|
||||||
return undo_share_json
|
return undo_share_json
|
||||||
|
|
||||||
|
|
||||||
def get_shared_items_catalog_via_server(base_dir, session,
|
def get_shared_items_catalog_via_server(session, nickname: str, password: str,
|
||||||
nickname: str, password: str,
|
|
||||||
domain: str, port: int,
|
domain: str, port: int,
|
||||||
http_prefix: str, debug: bool,
|
http_prefix: str, debug: bool,
|
||||||
signing_priv_key_pem: str) -> {}:
|
signing_priv_key_pem: str) -> {}:
|
||||||
|
@ -1100,8 +1097,7 @@ def outbox_share_upload(base_dir: str, http_prefix: str,
|
||||||
print('DEBUG: shared item received via c2s')
|
print('DEBUG: shared item received via c2s')
|
||||||
|
|
||||||
|
|
||||||
def outbox_undo_share_upload(base_dir: str, http_prefix: str,
|
def outbox_undo_share_upload(base_dir: str, nickname: str, domain: str,
|
||||||
nickname: str, domain: str, port: int,
|
|
||||||
message_json: {}, debug: bool) -> None:
|
message_json: {}, debug: bool) -> None:
|
||||||
""" When a shared item is removed via c2s
|
""" When a shared item is removed via c2s
|
||||||
"""
|
"""
|
||||||
|
@ -1119,10 +1115,9 @@ def outbox_undo_share_upload(base_dir: str, http_prefix: str,
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: displayName missing from Offer')
|
print('DEBUG: displayName missing from Offer')
|
||||||
return
|
return
|
||||||
domain_full = get_full_domain(domain, port)
|
|
||||||
remove_shared_item(base_dir, nickname, domain,
|
remove_shared_item(base_dir, nickname, domain,
|
||||||
message_json['object']['displayName'],
|
message_json['object']['displayName'],
|
||||||
http_prefix, domain_full, 'shares')
|
'shares')
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: shared item removed via c2s')
|
print('DEBUG: shared item removed via c2s')
|
||||||
|
|
||||||
|
|
2
tests.py
2
tests.py
|
@ -1994,7 +1994,7 @@ def test_shared_items_federation(base_dir: str) -> None:
|
||||||
print('Bob can read the shared items catalog on his own instance')
|
print('Bob can read the shared items catalog on his own instance')
|
||||||
signing_priv_key_pem = None
|
signing_priv_key_pem = None
|
||||||
catalog_json = \
|
catalog_json = \
|
||||||
get_shared_items_catalog_via_server(bob_dir, session_bob,
|
get_shared_items_catalog_via_server(session_bob,
|
||||||
'bob', bob_password,
|
'bob', bob_password,
|
||||||
bob_domain, bob_port,
|
bob_domain, bob_port,
|
||||||
http_prefix, True,
|
http_prefix, True,
|
||||||
|
|
12
theme.py
12
theme.py
|
@ -394,10 +394,10 @@ def _set_theme_from_dict(base_dir: str, name: str,
|
||||||
)
|
)
|
||||||
for scr in screen_name:
|
for scr in screen_name:
|
||||||
if bg_params.get(scr):
|
if bg_params.get(scr):
|
||||||
_set_background_format(base_dir, name, scr, bg_params[scr])
|
_set_background_format(base_dir, scr, bg_params[scr])
|
||||||
|
|
||||||
|
|
||||||
def _set_background_format(base_dir: str, name: str,
|
def _set_background_format(base_dir: str,
|
||||||
background_type: str, extension: str) -> None:
|
background_type: str, extension: str) -> None:
|
||||||
"""Sets the background file extension
|
"""Sets the background file extension
|
||||||
"""
|
"""
|
||||||
|
@ -533,9 +533,7 @@ def set_theme_from_designer(base_dir: str, theme_name: str, domain: str,
|
||||||
dyslexic_font, False)
|
dyslexic_font, False)
|
||||||
|
|
||||||
|
|
||||||
def reset_theme_designer_settings(base_dir: str, theme_name: str, domain: str,
|
def reset_theme_designer_settings(base_dir: str) -> None:
|
||||||
allow_local_network_access: bool,
|
|
||||||
system_language: str) -> None:
|
|
||||||
"""Resets the theme designer settings
|
"""Resets the theme designer settings
|
||||||
"""
|
"""
|
||||||
custom_variables_file = base_dir + '/accounts/theme.json'
|
custom_variables_file = base_dir + '/accounts/theme.json'
|
||||||
|
@ -864,9 +862,7 @@ def set_theme(base_dir: str, name: str, domain: str,
|
||||||
|
|
||||||
# if the theme has changed then remove any custom settings
|
# if the theme has changed then remove any custom settings
|
||||||
if prev_theme_name != name or designer_reset:
|
if prev_theme_name != name or designer_reset:
|
||||||
reset_theme_designer_settings(base_dir, name, domain,
|
reset_theme_designer_settings(base_dir)
|
||||||
allow_local_network_access,
|
|
||||||
system_language)
|
|
||||||
|
|
||||||
_remove_theme(base_dir)
|
_remove_theme(base_dir)
|
||||||
|
|
||||||
|
|
|
@ -149,8 +149,7 @@ def html_likers_of_post(base_dir: str, nickname: str,
|
||||||
if likers_list:
|
if likers_list:
|
||||||
likers_list += ' '
|
likers_list += ' '
|
||||||
liker_avatar_url = \
|
liker_avatar_url = \
|
||||||
get_person_avatar_url(base_dir, liker_actor,
|
get_person_avatar_url(base_dir, liker_actor, person_cache)
|
||||||
person_cache, False)
|
|
||||||
if not liker_avatar_url:
|
if not liker_avatar_url:
|
||||||
liker_avatar_url = ''
|
liker_avatar_url = ''
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -347,8 +347,7 @@ def _get_post_from_recent_cache(session,
|
||||||
# update avatar if needed
|
# update avatar if needed
|
||||||
if not avatar_url:
|
if not avatar_url:
|
||||||
avatar_url = \
|
avatar_url = \
|
||||||
get_person_avatar_url(base_dir, post_actor, person_cache,
|
get_person_avatar_url(base_dir, post_actor, person_cache)
|
||||||
allow_downloads)
|
|
||||||
|
|
||||||
_log_post_timing(enable_timing_log, post_start_time, '2.1')
|
_log_post_timing(enable_timing_log, post_start_time, '2.1')
|
||||||
|
|
||||||
|
@ -1145,8 +1144,7 @@ def _get_post_title_announce_html(base_dir: str,
|
||||||
# show avatar of person replied to
|
# show avatar of person replied to
|
||||||
announce_actor = attributed_to
|
announce_actor = attributed_to
|
||||||
announce_avatar_url = \
|
announce_avatar_url = \
|
||||||
get_person_avatar_url(base_dir, announce_actor,
|
get_person_avatar_url(base_dir, announce_actor, person_cache)
|
||||||
person_cache, allow_downloads)
|
|
||||||
|
|
||||||
_log_post_timing(enable_timing_log, post_start_time, '13.4')
|
_log_post_timing(enable_timing_log, post_start_time, '13.4')
|
||||||
|
|
||||||
|
@ -1353,8 +1351,7 @@ def _get_post_title_reply_html(base_dir: str,
|
||||||
|
|
||||||
# show avatar of person replied to
|
# show avatar of person replied to
|
||||||
reply_avatar_url = \
|
reply_avatar_url = \
|
||||||
get_person_avatar_url(base_dir, reply_actor, person_cache,
|
get_person_avatar_url(base_dir, reply_actor, person_cache)
|
||||||
allow_downloads)
|
|
||||||
|
|
||||||
_log_post_timing(enable_timing_log, post_start_time, '13.8')
|
_log_post_timing(enable_timing_log, post_start_time, '13.8')
|
||||||
|
|
||||||
|
|
|
@ -202,8 +202,7 @@ def html_profile_after_search(recent_posts_cache: {}, max_recent_posts: int,
|
||||||
if profile_json['icon'].get('url'):
|
if profile_json['icon'].get('url'):
|
||||||
avatar_url = profile_json['icon']['url']
|
avatar_url = profile_json['icon']['url']
|
||||||
if not avatar_url:
|
if not avatar_url:
|
||||||
avatar_url = get_person_avatar_url(base_dir, person_url,
|
avatar_url = get_person_avatar_url(base_dir, person_url, person_cache)
|
||||||
person_cache, True)
|
|
||||||
display_name = search_nickname
|
display_name = search_nickname
|
||||||
if profile_json.get('name'):
|
if profile_json.get('name'):
|
||||||
display_name = profile_json['name']
|
display_name = profile_json['name']
|
||||||
|
@ -2473,7 +2472,7 @@ def _individual_follow_as_html(signing_priv_key_pem: str,
|
||||||
get_full_domain(follow_url_domain, follow_url_port)
|
get_full_domain(follow_url_domain, follow_url_port)
|
||||||
title_str = '@' + follow_url_nickname + '@' + follow_url_domain_full
|
title_str = '@' + follow_url_nickname + '@' + follow_url_domain_full
|
||||||
avatar_url = \
|
avatar_url = \
|
||||||
get_person_avatar_url(base_dir, follow_url, person_cache, True)
|
get_person_avatar_url(base_dir, follow_url, person_cache)
|
||||||
if not avatar_url:
|
if not avatar_url:
|
||||||
avatar_url = follow_url + '/avatar.png'
|
avatar_url = follow_url + '/avatar.png'
|
||||||
|
|
||||||
|
|
|
@ -378,8 +378,7 @@ def update_avatar_image_cache(signing_priv_key_pem: str,
|
||||||
return None
|
return None
|
||||||
store_person_in_cache(base_dir, actor, person_json, person_cache,
|
store_person_in_cache(base_dir, actor, person_json, person_cache,
|
||||||
allow_downloads)
|
allow_downloads)
|
||||||
return get_person_avatar_url(base_dir, actor, person_cache,
|
return get_person_avatar_url(base_dir, actor, person_cache)
|
||||||
allow_downloads)
|
|
||||||
return None
|
return None
|
||||||
return avatar_image_filename.replace(base_dir + '/cache', '')
|
return avatar_image_filename.replace(base_dir + '/cache', '')
|
||||||
|
|
||||||
|
@ -1429,8 +1428,7 @@ def get_avatar_image_url(session, base_dir: str, http_prefix: str,
|
||||||
# get the avatar image url for the post actor
|
# get the avatar image url for the post actor
|
||||||
if not avatar_url:
|
if not avatar_url:
|
||||||
avatar_url = \
|
avatar_url = \
|
||||||
get_person_avatar_url(base_dir, post_actor, person_cache,
|
get_person_avatar_url(base_dir, post_actor, person_cache)
|
||||||
allow_downloads)
|
|
||||||
avatar_url = \
|
avatar_url = \
|
||||||
update_avatar_image_cache(signing_priv_key_pem,
|
update_avatar_image_cache(signing_priv_key_pem,
|
||||||
session, base_dir, http_prefix,
|
session, base_dir, http_prefix,
|
||||||
|
|
Loading…
Reference in New Issue