diff --git a/daemon.py b/daemon.py index 0f5b65e4a..28f715512 100644 --- a/daemon.py +++ b/daemon.py @@ -12282,7 +12282,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.access_keys, self.server.min_images_for_accounts, self.server.debug, - self.server.buy_sites) + self.server.buy_sites, + self.server.blocked_cache) if conv_str: msg = conv_str.encode('utf-8') msglen = len(msg) diff --git a/webapp_conversation.py b/webapp_conversation.py index 3c6bbd7b2..411e8e25f 100644 --- a/webapp_conversation.py +++ b/webapp_conversation.py @@ -11,6 +11,9 @@ __module_group__ = "Timeline" import os from conversation import download_conversation_posts from utils import get_config_param +from utils import get_nickname_from_actor +from utils import get_domain_from_actor +from blocking import is_blocked from webapp_utils import html_header_with_external_style from webapp_utils import html_post_separator from webapp_utils import html_footer @@ -42,7 +45,8 @@ def html_conversation_view(post_id: str, timezone: str, bold_reading: bool, dogwhistles: {}, access_keys: {}, min_images_for_accounts: [], - debug: bool, buy_sites: {}) -> str: + debug: bool, buy_sites: {}, + blocked_cache: []) -> str: """Show a page containing a conversation thread """ conv_posts = \ @@ -69,7 +73,16 @@ def html_conversation_view(post_id: str, if nickname in min_images_for_accounts: minimize_all_images = True for post_json_object in conv_posts: - show_individual_post_icons = False + show_individual_post_icons = True + from_actor = post_json_object['object']['attributedTo'] + from_nickname = get_nickname_from_actor(from_actor) + from_domain, _ = get_domain_from_actor(from_actor) + # don't show icons on posts from blocked accounts/instances + if from_nickname and from_domain: + if is_blocked(base_dir, nickname, domain, + from_nickname, from_domain, + blocked_cache): + show_individual_post_icons = False allow_deletion = False post_str = \ individual_post_as_html(signing_priv_key_pem, diff --git a/webapp_question.py b/webapp_question.py index 93bdcf3e9..acb0cf0d5 100644 --- a/webapp_question.py +++ b/webapp_question.py @@ -8,6 +8,7 @@ __status__ = "Production" __module_group__ = "Web Interface" import os +import urllib.parse from question import is_question from utils import remove_id_ending from utils import acct_dir @@ -52,9 +53,10 @@ def insert_question(base_dir: str, translate: {}, continue if not choice.get('name'): continue + quoted_name = urllib.parse.quote_plus(choice['name']) content += \ ' ' + \ + quoted_name + '" tabindex="10"> ' + \ choice['name'] + '

\n' content += \ '