From b659627d44bbc9db7c53652f0d2886fa70383cb8 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 28 Jan 2022 11:29:01 +0000 Subject: [PATCH] Get understood languages for actor making new post --- daemon.py | 73 +++++++++++++++++++++++++++++++++++++++++++++------- languages.py | 14 ++++++++++ 2 files changed, 78 insertions(+), 9 deletions(-) diff --git a/daemon.py b/daemon.py index 1db4edd6f..0dcd6da04 100644 --- a/daemon.py +++ b/daemon.py @@ -242,6 +242,7 @@ from categories import set_hashtag_category from categories import update_hashtag_categories from languages import get_actor_languages from languages import set_actor_languages +from languages import get_understood_languages from like import update_likes_collection from reaction import update_reaction_collection from utils import undo_reaction_collection_entry @@ -499,6 +500,12 @@ class PubServer(BaseHTTPRequestHandler): city = get_spoofed_city(self.server.city, self.server.base_dir, nickname, self.server.domain) + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_public_post(self.server.base_dir, @@ -520,7 +527,7 @@ class PubServer(BaseHTTPRequestHandler): conversation_id, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: # name field contains the answer message_json['object']['name'] = answer @@ -16812,6 +16819,14 @@ class PubServer(BaseHTTPRequestHandler): conversation_id = None if fields.get('conversationId'): conversation_id = fields['conversationId'] + + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) + message_json = \ create_public_post(self.server.base_dir, nickname, @@ -16833,7 +16848,7 @@ class PubServer(BaseHTTPRequestHandler): conversation_id, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: if fields['schedulePost']: return 1 @@ -16900,6 +16915,12 @@ class PubServer(BaseHTTPRequestHandler): conversation_id = None if fields.get('conversationId'): conversation_id = fields['conversationId'] + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_blog_post(self.server.base_dir, nickname, self.server.domain, self.server.port, @@ -16920,7 +16941,7 @@ class PubServer(BaseHTTPRequestHandler): conversation_id, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: if fields['schedulePost']: return 1 @@ -17052,6 +17073,13 @@ class PubServer(BaseHTTPRequestHandler): if fields.get('conversationId'): conversation_id = fields['conversationId'] + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) + message_json = \ create_unlisted_post(self.server.base_dir, nickname, @@ -17074,7 +17102,7 @@ class PubServer(BaseHTTPRequestHandler): conversation_id, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: if fields['schedulePost']: return 1 @@ -17104,7 +17132,12 @@ class PubServer(BaseHTTPRequestHandler): conversation_id = fields['conversationId'] mentions_message = mentions_str + fields['message'] - languages_understood = self.server.languages_understood + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_followers_only_post(self.server.base_dir, nickname, @@ -17162,7 +17195,12 @@ class PubServer(BaseHTTPRequestHandler): conversation_id = fields['conversationId'] content_license_url = self.server.content_license_url - languages_understood = self.server.languages_understood + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_direct_message_post(self.server.base_dir, @@ -17226,7 +17264,12 @@ class PubServer(BaseHTTPRequestHandler): comments_enabled = False conversation_id = None mentions_message = mentions_str + fields['message'] - languages_understood = self.server.languages_understood + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_direct_message_post(self.server.base_dir, nickname, @@ -17273,6 +17316,12 @@ class PubServer(BaseHTTPRequestHandler): self.server.base_dir, nickname, self.server.domain) + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_report_post(self.server.base_dir, nickname, @@ -17287,7 +17336,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.system_language, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: if self._post_to_outbox(message_json, self.server.project_version, @@ -17312,6 +17361,12 @@ class PubServer(BaseHTTPRequestHandler): nickname, self.server.domain) int_duration = int(fields['duration']) + languages_understood = \ + get_understood_languages(self.server.base_dir, + self.server.http_prefix, + nickname, + self.server.domain_full, + self.server.person_cache) message_json = \ create_question_post(self.server.base_dir, nickname, @@ -17329,7 +17384,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.system_language, self.server.low_bandwidth, self.server.content_license_url, - self.server.languages_understood) + languages_understood) if message_json: if self.server.debug: print('DEBUG: new Question') diff --git a/languages.py b/languages.py index 52da5048a..0506b219c 100644 --- a/languages.py +++ b/languages.py @@ -33,6 +33,20 @@ def get_actor_languages(actor_json: {}) -> str: return languages_str +def get_understood_languages(base_dir: str, http_prefix: str, + nickname: str, domain_full: str, + person_cache: {}) -> []: + """Returns a list of understood languages for the given account + """ + person_url = local_actor_url(http_prefix, nickname, domain_full) + actor_json = \ + get_person_from_cache(base_dir, person_url, person_cache, False) + if not actor_json: + print('WARN: unable to load actor to obtain languages ' + person_url) + return [] + return get_actor_languages_list(actor_json) + + def set_actor_languages(base_dir: str, actor_json: {}, languages_str: str) -> None: """Sets the languages used by the given actor