mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Merge branch 'main' of gitlab.com:bashrc2/epicyon
						commit
						d449b7d26a
					
				|  | @ -200,8 +200,8 @@ def create_announce(session, base_dir: str, federation_list: [], | ||||||
|         send_signed_json(new_announce, session, base_dir, |         send_signed_json(new_announce, session, base_dir, | ||||||
|                          nickname, domain, port, |                          nickname, domain, port, | ||||||
|                          announce_nickname, announce_domain, |                          announce_nickname, announce_domain, | ||||||
|                          announce_port, None, |                          announce_port, | ||||||
|                          http_prefix, True, client_to_server, federation_list, |                          http_prefix, client_to_server, federation_list, | ||||||
|                          send_threads, post_log, cached_webfingers, |                          send_threads, post_log, cached_webfingers, | ||||||
|                          person_cache, |                          person_cache, | ||||||
|                          debug, project_version, None, group_account, |                          debug, project_version, None, group_account, | ||||||
|  |  | ||||||
|  | @ -469,8 +469,7 @@ def outbox_block(base_dir: str, http_prefix: str, | ||||||
|     return True |     return True | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def outbox_undo_block(base_dir: str, http_prefix: str, | def outbox_undo_block(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 block request is received by the outbox from c2s |     """ When an undo block request is received by the outbox from c2s | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								blog.py
								
								
								
								
							
							
						
						
									
										6
									
								
								blog.py
								
								
								
								
							|  | @ -541,7 +541,7 @@ def html_blog_page(authorized: bool, session, | ||||||
|         return blog_str + html_footer() |         return blog_str + html_footer() | ||||||
| 
 | 
 | ||||||
|     timeline_json = \ |     timeline_json = \ | ||||||
|         create_blogs_timeline(session, base_dir, |         create_blogs_timeline(base_dir, | ||||||
|                               nickname, domain, port, http_prefix, |                               nickname, domain, port, http_prefix, | ||||||
|                               no_of_items, False, page_number) |                               no_of_items, False, page_number) | ||||||
| 
 | 
 | ||||||
|  | @ -629,7 +629,7 @@ def html_blog_page_rss2(authorized: bool, session, | ||||||
|             return blog_rss2 + rss2footer() |             return blog_rss2 + rss2footer() | ||||||
|         return blog_rss2 |         return blog_rss2 | ||||||
| 
 | 
 | ||||||
|     timeline_json = create_blogs_timeline(session, base_dir, |     timeline_json = create_blogs_timeline(base_dir, | ||||||
|                                           nickname, domain, port, |                                           nickname, domain, port, | ||||||
|                                           http_prefix, |                                           http_prefix, | ||||||
|                                           no_of_items, False, |                                           no_of_items, False, | ||||||
|  | @ -677,7 +677,7 @@ def html_blog_page_rss3(authorized: bool, session, | ||||||
|         return blog_rss3 |         return blog_rss3 | ||||||
| 
 | 
 | ||||||
|     timeline_json = \ |     timeline_json = \ | ||||||
|         create_blogs_timeline(session, base_dir, |         create_blogs_timeline(base_dir, | ||||||
|                               nickname, domain, port, http_prefix, |                               nickname, domain, port, http_prefix, | ||||||
|                               no_of_items, False, page_number) |                               no_of_items, False, page_number) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										60
									
								
								content.py
								
								
								
								
							
							
						
						
									
										60
									
								
								content.py
								
								
								
								
							|  | @ -1273,8 +1273,9 @@ def save_media_in_form_post(media_bytes, debug: bool, | ||||||
|                 extension = 'mp3' |                 extension = 'mp3' | ||||||
|             if filename_base: |             if filename_base: | ||||||
|                 filename = filename_base + '.' + extension |                 filename = filename_base + '.' + extension | ||||||
|  |             search_lst = search_str.decode().split('/', maxsplit=1) | ||||||
|             attachment_media_type = \ |             attachment_media_type = \ | ||||||
|                 search_str.decode().split('/')[0].replace('Content-Type: ', '') |                 search_lst[0].replace('Content-Type: ', '') | ||||||
|             detected_extension = extension |             detected_extension = extension | ||||||
|             break |             break | ||||||
| 
 | 
 | ||||||
|  | @ -1331,15 +1332,15 @@ def save_media_in_form_post(media_bytes, debug: bool, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def extract_text_fields_in_post(post_bytes, boundary: str, debug: bool, | def extract_text_fields_in_post(post_bytes, boundary: str, debug: bool, | ||||||
|                                 unit_testData: str = None) -> {}: |                                 unit_test_data: str = None) -> {}: | ||||||
|     """Returns a dictionary containing the text fields of a http form POST |     """Returns a dictionary containing the text fields of a http form POST | ||||||
|     The boundary argument comes from the http header |     The boundary argument comes from the http header | ||||||
|     """ |     """ | ||||||
|     if not unit_testData: |     if not unit_test_data: | ||||||
|         msg_bytes = email.parser.BytesParser().parsebytes(post_bytes) |         msg_bytes = email.parser.BytesParser().parsebytes(post_bytes) | ||||||
|         message_fields = msg_bytes.get_payload(decode=True).decode('utf-8') |         message_fields = msg_bytes.get_payload(decode=True).decode('utf-8') | ||||||
|     else: |     else: | ||||||
|         message_fields = unit_testData |         message_fields = unit_test_data | ||||||
| 
 | 
 | ||||||
|     if debug: |     if debug: | ||||||
|         print('DEBUG: POST arriving ' + message_fields) |         print('DEBUG: POST arriving ' + message_fields) | ||||||
|  | @ -1690,30 +1691,31 @@ def remove_script(content: str, log_filename: str, | ||||||
|     for sep in separators: |     for sep in separators: | ||||||
|         prefix = sep[0] + 'script' |         prefix = sep[0] + 'script' | ||||||
|         ending = '/script' + sep[1] |         ending = '/script' + sep[1] | ||||||
|         if prefix in content: |         if prefix not in content: | ||||||
|             sections = content.split(prefix) |             continue | ||||||
|             ctr = 0 |         sections = content.split(prefix) | ||||||
|             for text in sections: |         ctr = 0 | ||||||
|                 if ctr == 0: |         for text in sections: | ||||||
|                     ctr += 1 |             if ctr == 0: | ||||||
|  |                 ctr += 1 | ||||||
|  |                 continue | ||||||
|  |             if ending not in text: | ||||||
|  |                 if '/' + sep[1] not in text: | ||||||
|                     continue |                     continue | ||||||
|                 if ending not in text: |             if ending in text: | ||||||
|                     if '/' + sep[1] not in text: |                 text = prefix + text.split(ending)[0] + ending | ||||||
|                         continue |             else: | ||||||
|                 if ending in text: |                 text = prefix + text.split('/' + sep[1])[0] + '/' + sep[1] | ||||||
|                     text = prefix + text.split(ending)[0] + ending |                 if log_filename and actor: | ||||||
|                 else: |                     # write the detected script to a log file | ||||||
|                     text = prefix + text.split('/' + sep[1])[0] + '/' + sep[1] |                     log_str = actor + ' ' + url + ' ' + text + '\n' | ||||||
|                     if log_filename and actor: |                     write_type = 'a+' | ||||||
|                         # write the detected script to a log file |                     if os.path.isfile(log_filename): | ||||||
|                         log_str = actor + ' ' + url + ' ' + text + '\n' |                         write_type = 'w+' | ||||||
|                         write_type = 'a+' |                     try: | ||||||
|                         if os.path.isfile(log_filename): |                         with open(log_filename, write_type) as fp_log: | ||||||
|                             write_type = 'w+' |                             fp_log.write(log_str) | ||||||
|                         try: |                     except OSError: | ||||||
|                             with open(log_filename, write_type) as fp_log: |                         print('EX: cannot append to svg script log') | ||||||
|                                 fp_log.write(log_str) |             content = content.replace(text, '') | ||||||
|                         except OSError: |  | ||||||
|                             print('EX: cannot append to svg script log') |  | ||||||
|                 content = content.replace(text, '') |  | ||||||
|     return content |     return content | ||||||
|  |  | ||||||
							
								
								
									
										84
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										84
									
								
								daemon.py
								
								
								
								
							|  | @ -544,7 +544,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                nickname, |                                nickname, | ||||||
|                                self.server.domain, self.server.port, |                                self.server.domain, self.server.port, | ||||||
|                                self.server.http_prefix, |                                self.server.http_prefix, | ||||||
|                                answer, False, False, False, |                                answer, False, False, | ||||||
|                                comments_enabled, |                                comments_enabled, | ||||||
|                                attach_image_filename, media_type, |                                attach_image_filename, media_type, | ||||||
|                                image_description, city, |                                image_description, city, | ||||||
|  | @ -3835,8 +3835,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 if self.server.bold_reading.get(nickname): |                 if self.server.bold_reading.get(nickname): | ||||||
|                     bold_reading = True |                     bold_reading = True | ||||||
|                 hashtag_str = \ |                 hashtag_str = \ | ||||||
|                     html_hashtag_search(self.server.css_cache, |                     html_hashtag_search(nickname, domain, port, | ||||||
|                                         nickname, domain, port, |  | ||||||
|                                         self.server.recent_posts_cache, |                                         self.server.recent_posts_cache, | ||||||
|                                         self.server.max_recent_posts, |                                         self.server.max_recent_posts, | ||||||
|                                         self.server.translate, |                                         self.server.translate, | ||||||
|  | @ -3881,10 +3880,8 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 search_str = search_str.replace('*', '').strip() |                 search_str = search_str.replace('*', '').strip() | ||||||
|                 skill_str = \ |                 skill_str = \ | ||||||
|                     html_skills_search(actor_str, |                     html_skills_search(actor_str, | ||||||
|                                        self.server.css_cache, |  | ||||||
|                                        self.server.translate, |                                        self.server.translate, | ||||||
|                                        base_dir, |                                        base_dir, | ||||||
|                                        http_prefix, |  | ||||||
|                                        search_str, |                                        search_str, | ||||||
|                                        self.server.instance_only_skills_search, |                                        self.server.instance_only_skills_search, | ||||||
|                                        64) |                                        64) | ||||||
|  | @ -3940,8 +3937,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 if self.server.bold_reading.get(nickname): |                 if self.server.bold_reading.get(nickname): | ||||||
|                     bold_reading = True |                     bold_reading = True | ||||||
|                 history_str = \ |                 history_str = \ | ||||||
|                     html_history_search(self.server.css_cache, |                     html_history_search(self.server.translate, | ||||||
|                                         self.server.translate, |  | ||||||
|                                         base_dir, |                                         base_dir, | ||||||
|                                         http_prefix, |                                         http_prefix, | ||||||
|                                         nickname, |                                         nickname, | ||||||
|  | @ -4021,8 +4017,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 if self.server.bold_reading.get(nickname): |                 if self.server.bold_reading.get(nickname): | ||||||
|                     bold_reading = True |                     bold_reading = True | ||||||
|                 bookmarks_str = \ |                 bookmarks_str = \ | ||||||
|                     html_history_search(self.server.css_cache, |                     html_history_search(self.server.translate, | ||||||
|                                         self.server.translate, |  | ||||||
|                                         base_dir, |                                         base_dir, | ||||||
|                                         http_prefix, |                                         http_prefix, | ||||||
|                                         nickname, |                                         nickname, | ||||||
|  | @ -4187,8 +4182,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                         bold_reading = True |                         bold_reading = True | ||||||
| 
 | 
 | ||||||
|                     profile_str = \ |                     profile_str = \ | ||||||
|                         html_profile_after_search(self.server.css_cache, |                         html_profile_after_search(recent_posts_cache, | ||||||
|                                                   recent_posts_cache, |  | ||||||
|                                                   self.server.max_recent_posts, |                                                   self.server.max_recent_posts, | ||||||
|                                                   self.server.translate, |                                                   self.server.translate, | ||||||
|                                                   base_dir, |                                                   base_dir, | ||||||
|  | @ -4243,10 +4237,8 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                         search_str.replace(' emoji', '') |                         search_str.replace(' emoji', '') | ||||||
|                 # emoji search |                 # emoji search | ||||||
|                 emoji_str = \ |                 emoji_str = \ | ||||||
|                     html_search_emoji(self.server.css_cache, |                     html_search_emoji(self.server.translate, | ||||||
|                                       self.server.translate, |  | ||||||
|                                       base_dir, |                                       base_dir, | ||||||
|                                       http_prefix, |  | ||||||
|                                       search_str) |                                       search_str) | ||||||
|                 if emoji_str: |                 if emoji_str: | ||||||
|                     msg = emoji_str.encode('utf-8') |                     msg = emoji_str.encode('utf-8') | ||||||
|  | @ -4261,8 +4253,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 shared_items_federated_domains = \ |                 shared_items_federated_domains = \ | ||||||
|                     self.server.shared_items_federated_domains |                     self.server.shared_items_federated_domains | ||||||
|                 wanted_items_str = \ |                 wanted_items_str = \ | ||||||
|                     html_search_shared_items(self.server.css_cache, |                     html_search_shared_items(self.server.translate, | ||||||
|                                              self.server.translate, |  | ||||||
|                                              base_dir, |                                              base_dir, | ||||||
|                                              search_str[1:], page_number, |                                              search_str[1:], page_number, | ||||||
|                                              MAX_POSTS_IN_FEED, |                                              MAX_POSTS_IN_FEED, | ||||||
|  | @ -4284,8 +4275,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 shared_items_federated_domains = \ |                 shared_items_federated_domains = \ | ||||||
|                     self.server.shared_items_federated_domains |                     self.server.shared_items_federated_domains | ||||||
|                 shared_items_str = \ |                 shared_items_str = \ | ||||||
|                     html_search_shared_items(self.server.css_cache, |                     html_search_shared_items(self.server.translate, | ||||||
|                                              self.server.translate, |  | ||||||
|                                              base_dir, |                                              base_dir, | ||||||
|                                              search_str, page_number, |                                              search_str, page_number, | ||||||
|                                              MAX_POSTS_IN_FEED, |                                              MAX_POSTS_IN_FEED, | ||||||
|  | @ -5998,12 +5988,12 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     current_show_languages = get_actor_languages(actor_json) |                     current_show_languages = get_actor_languages(actor_json) | ||||||
|                     if fields.get('showLanguages'): |                     if fields.get('showLanguages'): | ||||||
|                         if fields['showLanguages'] != current_show_languages: |                         if fields['showLanguages'] != current_show_languages: | ||||||
|                             set_actor_languages(base_dir, actor_json, |                             set_actor_languages(actor_json, | ||||||
|                                                 fields['showLanguages']) |                                                 fields['showLanguages']) | ||||||
|                             actor_changed = True |                             actor_changed = True | ||||||
|                     else: |                     else: | ||||||
|                         if current_show_languages: |                         if current_show_languages: | ||||||
|                             set_actor_languages(base_dir, actor_json, '') |                             set_actor_languages(actor_json, '') | ||||||
|                             actor_changed = True |                             actor_changed = True | ||||||
| 
 | 
 | ||||||
|                     # change time zone |                     # change time zone | ||||||
|  | @ -8353,7 +8343,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|         hashtag = urllib.parse.unquote_plus(hashtag) |         hashtag = urllib.parse.unquote_plus(hashtag) | ||||||
|         if is_blocked_hashtag(base_dir, hashtag): |         if is_blocked_hashtag(base_dir, hashtag): | ||||||
|             print('BLOCK: hashtag #' + hashtag) |             print('BLOCK: hashtag #' + hashtag) | ||||||
|             msg = html_hashtag_blocked(self.server.css_cache, base_dir, |             msg = html_hashtag_blocked(base_dir, | ||||||
|                                        self.server.translate).encode('utf-8') |                                        self.server.translate).encode('utf-8') | ||||||
|             msglen = len(msg) |             msglen = len(msg) | ||||||
|             self._login_headers('text/html', msglen, calling_domain) |             self._login_headers('text/html', msglen, calling_domain) | ||||||
|  | @ -8374,8 +8364,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|         if self.server.bold_reading.get(nickname): |         if self.server.bold_reading.get(nickname): | ||||||
|             bold_reading = True |             bold_reading = True | ||||||
|         hashtag_str = \ |         hashtag_str = \ | ||||||
|             html_hashtag_search(self.server.css_cache, |             html_hashtag_search(nickname, domain, port, | ||||||
|                                 nickname, domain, port, |  | ||||||
|                                 self.server.recent_posts_cache, |                                 self.server.recent_posts_cache, | ||||||
|                                 self.server.max_recent_posts, |                                 self.server.max_recent_posts, | ||||||
|                                 self.server.translate, |                                 self.server.translate, | ||||||
|  | @ -9877,8 +9866,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|             bold_reading = True |             bold_reading = True | ||||||
| 
 | 
 | ||||||
|         msg = \ |         msg = \ | ||||||
|             html_emoji_reaction_picker(self.server.css_cache, |             html_emoji_reaction_picker(self.server.recent_posts_cache, | ||||||
|                                        self.server.recent_posts_cache, |  | ||||||
|                                        self.server.max_recent_posts, |                                        self.server.max_recent_posts, | ||||||
|                                        self.server.translate, |                                        self.server.translate, | ||||||
|                                        self.server.base_dir, |                                        self.server.base_dir, | ||||||
|  | @ -10681,8 +10669,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 if self.server.bold_reading.get(nickname): |                 if self.server.bold_reading.get(nickname): | ||||||
|                     bold_reading = True |                     bold_reading = True | ||||||
|                 msg = \ |                 msg = \ | ||||||
|                     html_post_replies(self.server.css_cache, |                     html_post_replies(recent_posts_cache, | ||||||
|                                       recent_posts_cache, |  | ||||||
|                                       max_recent_posts, |                                       max_recent_posts, | ||||||
|                                       translate, |                                       translate, | ||||||
|                                       base_dir, |                                       base_dir, | ||||||
|  | @ -10786,8 +10773,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 if self.server.bold_reading.get(nickname): |                 if self.server.bold_reading.get(nickname): | ||||||
|                     bold_reading = True |                     bold_reading = True | ||||||
|                 msg = \ |                 msg = \ | ||||||
|                     html_post_replies(self.server.css_cache, |                     html_post_replies(recent_posts_cache, | ||||||
|                                       recent_posts_cache, |  | ||||||
|                                       max_recent_posts, |                                       max_recent_posts, | ||||||
|                                       translate, |                                       translate, | ||||||
|                                       base_dir, |                                       base_dir, | ||||||
|  | @ -11397,8 +11383,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                 bold_reading = True |                 bold_reading = True | ||||||
| 
 | 
 | ||||||
|             msg = \ |             msg = \ | ||||||
|                 html_individual_post(self.server.css_cache, |                 html_individual_post(self.server.recent_posts_cache, | ||||||
|                                      self.server.recent_posts_cache, |  | ||||||
|                                      self.server.max_recent_posts, |                                      self.server.max_recent_posts, | ||||||
|                                      self.server.translate, |                                      self.server.translate, | ||||||
|                                      base_dir, |                                      base_dir, | ||||||
|  | @ -16226,17 +16211,14 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|         if self.path.startswith('/terms'): |         if self.path.startswith('/terms'): | ||||||
|             if calling_domain.endswith('.onion') and \ |             if calling_domain.endswith('.onion') and \ | ||||||
|                self.server.onion_domain: |                self.server.onion_domain: | ||||||
|                 msg = html_terms_of_service(self.server.css_cache, |                 msg = html_terms_of_service(self.server.base_dir, 'http', | ||||||
|                                             self.server.base_dir, 'http', |  | ||||||
|                                             self.server.onion_domain) |                                             self.server.onion_domain) | ||||||
|             elif (calling_domain.endswith('.i2p') and |             elif (calling_domain.endswith('.i2p') and | ||||||
|                   self.server.i2p_domain): |                   self.server.i2p_domain): | ||||||
|                 msg = html_terms_of_service(self.server.css_cache, |                 msg = html_terms_of_service(self.server.base_dir, 'http', | ||||||
|                                             self.server.base_dir, 'http', |  | ||||||
|                                             self.server.i2p_domain) |                                             self.server.i2p_domain) | ||||||
|             else: |             else: | ||||||
|                 msg = html_terms_of_service(self.server.css_cache, |                 msg = html_terms_of_service(self.server.base_dir, | ||||||
|                                             self.server.base_dir, |  | ||||||
|                                             self.server.http_prefix, |                                             self.server.http_prefix, | ||||||
|                                             self.server.domain_full) |                                             self.server.domain_full) | ||||||
|             msg = msg.encode('utf-8') |             msg = msg.encode('utf-8') | ||||||
|  | @ -16265,8 +16247,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|             if not os.path.isfile(following_filename): |             if not os.path.isfile(following_filename): | ||||||
|                 self._404() |                 self._404() | ||||||
|                 return |                 return | ||||||
|             msg = html_following_list(self.server.css_cache, |             msg = html_following_list(self.server.base_dir, following_filename) | ||||||
|                                       self.server.base_dir, following_filename) |  | ||||||
|             msglen = len(msg) |             msglen = len(msg) | ||||||
|             self._login_headers('text/html', msglen, calling_domain) |             self._login_headers('text/html', msglen, calling_domain) | ||||||
|             self._write(msg.encode('utf-8')) |             self._write(msg.encode('utf-8')) | ||||||
|  | @ -16435,9 +16416,6 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                               self.server.domain): |                                               self.server.domain): | ||||||
|                 msg = \ |                 msg = \ | ||||||
|                     html_welcome_final(self.server.base_dir, nickname, |                     html_welcome_final(self.server.base_dir, nickname, | ||||||
|                                        self.server.domain, |  | ||||||
|                                        self.server.http_prefix, |  | ||||||
|                                        self.server.domain_full, |  | ||||||
|                                        self.server.system_language, |                                        self.server.system_language, | ||||||
|                                        self.server.translate, |                                        self.server.translate, | ||||||
|                                        self.server.theme_name) |                                        self.server.theme_name) | ||||||
|  | @ -17016,8 +16994,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     access_keys = self.server.key_shortcuts[nickname] |                     access_keys = self.server.key_shortcuts[nickname] | ||||||
| 
 | 
 | ||||||
|                 # show the search screen |                 # show the search screen | ||||||
|                 msg = html_search(self.server.css_cache, |                 msg = html_search(self.server.translate, | ||||||
|                                   self.server.translate, |  | ||||||
|                                   self.server.base_dir, self.path, |                                   self.server.base_dir, self.path, | ||||||
|                                   self.server.domain, |                                   self.server.domain, | ||||||
|                                   self.server.default_timeline, |                                   self.server.default_timeline, | ||||||
|  | @ -17171,8 +17148,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|             if self.path.endswith('/searchemoji'): |             if self.path.endswith('/searchemoji'): | ||||||
|                 # show the search screen |                 # show the search screen | ||||||
|                 msg = \ |                 msg = \ | ||||||
|                     html_search_emoji_text_entry(self.server.css_cache, |                     html_search_emoji_text_entry(self.server.translate, | ||||||
|                                                  self.server.translate, |  | ||||||
|                                                  self.server.base_dir, |                                                  self.server.base_dir, | ||||||
|                                                  self.path).encode('utf-8') |                                                  self.path).encode('utf-8') | ||||||
|                 msglen = len(msg) |                 msglen = len(msg) | ||||||
|  | @ -18902,7 +18878,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                        self.server.port, |                                        self.server.port, | ||||||
|                                        self.server.http_prefix, |                                        self.server.http_prefix, | ||||||
|                                        mentions_str + fields['message'], |                                        mentions_str + fields['message'], | ||||||
|                                        False, False, False, comments_enabled, |                                        False, False, comments_enabled, | ||||||
|                                        filename, attachment_media_type, |                                        filename, attachment_media_type, | ||||||
|                                        fields['imageDescription'], |                                        fields['imageDescription'], | ||||||
|                                        city, |                                        city, | ||||||
|  | @ -18928,8 +18904,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                                        sys_language) |                                                        sys_language) | ||||||
|                         followers_only = False |                         followers_only = False | ||||||
|                         pin_post(self.server.base_dir, |                         pin_post(self.server.base_dir, | ||||||
|                                  nickname, self.server.domain, content_str, |                                  nickname, self.server.domain, content_str) | ||||||
|                                  followers_only) |  | ||||||
|                         return 1 |                         return 1 | ||||||
|                     if self._post_to_outbox(message_json, |                     if self._post_to_outbox(message_json, | ||||||
|                                             self.server.project_version, |                                             self.server.project_version, | ||||||
|  | @ -19159,7 +19134,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                          self.server.domain, self.server.port, |                                          self.server.domain, self.server.port, | ||||||
|                                          self.server.http_prefix, |                                          self.server.http_prefix, | ||||||
|                                          mentions_str + fields['message'], |                                          mentions_str + fields['message'], | ||||||
|                                          followers_only, save_to_file, |                                          save_to_file, | ||||||
|                                          client_to_server, comments_enabled, |                                          client_to_server, comments_enabled, | ||||||
|                                          filename, attachment_media_type, |                                          filename, attachment_media_type, | ||||||
|                                          fields['imageDescription'], |                                          fields['imageDescription'], | ||||||
|  | @ -19220,7 +19195,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                                self.server.port, |                                                self.server.port, | ||||||
|                                                self.server.http_prefix, |                                                self.server.http_prefix, | ||||||
|                                                mentions_message, |                                                mentions_message, | ||||||
|                                                followers_only, save_to_file, |                                                save_to_file, | ||||||
|                                                client_to_server, |                                                client_to_server, | ||||||
|                                                comments_enabled, |                                                comments_enabled, | ||||||
|                                                filename, attachment_media_type, |                                                filename, attachment_media_type, | ||||||
|  | @ -19291,7 +19266,6 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                                    self.server.http_prefix, |                                                    self.server.http_prefix, | ||||||
|                                                    mentions_str + |                                                    mentions_str + | ||||||
|                                                    fields['message'], |                                                    fields['message'], | ||||||
|                                                    followers_only, |  | ||||||
|                                                    save_to_file, |                                                    save_to_file, | ||||||
|                                                    client_to_server, |                                                    client_to_server, | ||||||
|                                                    comments_enabled, |                                                    comments_enabled, | ||||||
|  | @ -19361,7 +19335,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                                self.server.port, |                                                self.server.port, | ||||||
|                                                self.server.http_prefix, |                                                self.server.http_prefix, | ||||||
|                                                mentions_message, |                                                mentions_message, | ||||||
|                                                followers_only, save_to_file, |                                                save_to_file, | ||||||
|                                                client_to_server, |                                                client_to_server, | ||||||
|                                                comments_enabled, |                                                comments_enabled, | ||||||
|                                                filename, attachment_media_type, |                                                filename, attachment_media_type, | ||||||
|  | @ -19415,7 +19389,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                        self.server.domain, self.server.port, |                                        self.server.domain, self.server.port, | ||||||
|                                        self.server.http_prefix, |                                        self.server.http_prefix, | ||||||
|                                        mentions_str + fields['message'], |                                        mentions_str + fields['message'], | ||||||
|                                        True, False, False, True, |                                        False, False, True, | ||||||
|                                        filename, attachment_media_type, |                                        filename, attachment_media_type, | ||||||
|                                        fields['imageDescription'], |                                        fields['imageDescription'], | ||||||
|                                        city, |                                        city, | ||||||
|  | @ -19462,7 +19436,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                                          self.server.port, |                                          self.server.port, | ||||||
|                                          self.server.http_prefix, |                                          self.server.http_prefix, | ||||||
|                                          fields['message'], q_options, |                                          fields['message'], q_options, | ||||||
|                                          False, False, False, |                                          False, False, | ||||||
|                                          comments_enabled, |                                          comments_enabled, | ||||||
|                                          filename, attachment_media_type, |                                          filename, attachment_media_type, | ||||||
|                                          fields['imageDescription'], |                                          fields['imageDescription'], | ||||||
|  |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -461,7 +461,6 @@ def _desktop_reply_to_post(session, post_id: str, | ||||||
|         _say_command(say_str, say_str, screenreader, system_language, espeak) |         _say_command(say_str, say_str, screenreader, system_language, espeak) | ||||||
|         return |         return | ||||||
|     cc_url = None |     cc_url = None | ||||||
|     followers_only = False |  | ||||||
|     attach = None |     attach = None | ||||||
|     media_type = None |     media_type = None | ||||||
|     attached_image_description = None |     attached_image_description = None | ||||||
|  | @ -479,7 +478,7 @@ def _desktop_reply_to_post(session, post_id: str, | ||||||
|                             base_dir, session, nickname, password, |                             base_dir, session, nickname, password, | ||||||
|                             domain, port, |                             domain, port, | ||||||
|                             to_nickname, to_domain, to_port, cc_url, |                             to_nickname, to_domain, to_port, cc_url, | ||||||
|                             http_prefix, reply_message, followers_only, |                             http_prefix, reply_message, | ||||||
|                             comments_enabled, attach, media_type, |                             comments_enabled, attach, media_type, | ||||||
|                             attached_image_description, city, |                             attached_image_description, city, | ||||||
|                             cached_webfingers, person_cache, is_article, |                             cached_webfingers, person_cache, is_article, | ||||||
|  | @ -534,7 +533,6 @@ def _desktop_new_post(session, | ||||||
|         _say_command(say_str, say_str, screenreader, system_language, espeak) |         _say_command(say_str, say_str, screenreader, system_language, espeak) | ||||||
|         return |         return | ||||||
|     cc_url = None |     cc_url = None | ||||||
|     followers_only = False |  | ||||||
|     attach = None |     attach = None | ||||||
|     media_type = None |     media_type = None | ||||||
|     attached_image_description = None |     attached_image_description = None | ||||||
|  | @ -553,7 +551,7 @@ def _desktop_new_post(session, | ||||||
|                             base_dir, session, nickname, password, |                             base_dir, session, nickname, password, | ||||||
|                             domain, port, |                             domain, port, | ||||||
|                             None, '#Public', port, cc_url, |                             None, '#Public', port, cc_url, | ||||||
|                             http_prefix, new_message, followers_only, |                             http_prefix, new_message, | ||||||
|                             comments_enabled, attach, media_type, |                             comments_enabled, attach, media_type, | ||||||
|                             attached_image_description, city, |                             attached_image_description, city, | ||||||
|                             cached_webfingers, person_cache, is_article, |                             cached_webfingers, person_cache, is_article, | ||||||
|  | @ -722,7 +720,7 @@ def _read_local_box_post(session, nickname: str, domain: str, | ||||||
|                               http_prefix, |                               http_prefix, | ||||||
|                               nickname, domain, |                               nickname, domain, | ||||||
|                               post_json_object, |                               post_json_object, | ||||||
|                               __version__, translate, |                               __version__, | ||||||
|                               yt_replace_domain, |                               yt_replace_domain, | ||||||
|                               twitter_replacement_domain, |                               twitter_replacement_domain, | ||||||
|                               allow_local_network_access, |                               allow_local_network_access, | ||||||
|  | @ -1229,7 +1227,6 @@ def _desktop_new_dm_base(session, to_handle: str, | ||||||
|     _say_command(new_message, new_message, |     _say_command(new_message, new_message, | ||||||
|                  screenreader, system_language, espeak) |                  screenreader, system_language, espeak) | ||||||
|     cc_url = None |     cc_url = None | ||||||
|     followers_only = False |  | ||||||
|     attach = None |     attach = None | ||||||
|     media_type = None |     media_type = None | ||||||
|     attached_image_description = None |     attached_image_description = None | ||||||
|  | @ -1288,7 +1285,7 @@ def _desktop_new_dm_base(session, to_handle: str, | ||||||
|                             base_dir, session, nickname, password, |                             base_dir, session, nickname, password, | ||||||
|                             domain, port, |                             domain, port, | ||||||
|                             to_nickname, to_domain, to_port, cc_url, |                             to_nickname, to_domain, to_port, cc_url, | ||||||
|                             http_prefix, new_message, followers_only, |                             http_prefix, new_message, | ||||||
|                             comments_enabled, attach, media_type, |                             comments_enabled, attach, media_type, | ||||||
|                             attached_image_description, city, |                             attached_image_description, city, | ||||||
|                             cached_webfingers, person_cache, is_article, |                             cached_webfingers, person_cache, is_article, | ||||||
|  | @ -1482,25 +1479,22 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                              system_language, espeak) |                              system_language, espeak) | ||||||
|             pgp_key_upload = True |             pgp_key_upload = True | ||||||
| 
 | 
 | ||||||
|         box_json = c2s_box_json(base_dir, session, |         box_json = c2s_box_json(session, nickname, password, | ||||||
|                                 nickname, password, |  | ||||||
|                                 domain, port, http_prefix, |                                 domain, port, http_prefix, | ||||||
|                                 curr_timeline, page_number, |                                 curr_timeline, page_number, | ||||||
|                                 debug, signing_priv_key_pem) |                                 debug, signing_priv_key_pem) | ||||||
| 
 | 
 | ||||||
|         follow_requests_json = \ |         follow_requests_json = \ | ||||||
|             get_follow_requests_via_server(base_dir, session, |             get_follow_requests_via_server(session, | ||||||
|                                            nickname, password, |                                            nickname, password, | ||||||
|                                            domain, port, |                                            domain, port, | ||||||
|                                            http_prefix, 1, |                                            http_prefix, 1, | ||||||
|                                            cached_webfingers, person_cache, |  | ||||||
|                                            debug, __version__, |                                            debug, __version__, | ||||||
|                                            signing_priv_key_pem) |                                            signing_priv_key_pem) | ||||||
| 
 | 
 | ||||||
|         if not (curr_timeline == 'inbox' and page_number == 1): |         if not (curr_timeline == 'inbox' and page_number == 1): | ||||||
|             # monitor the inbox to generate notifications |             # monitor the inbox to generate notifications | ||||||
|             inbox_json = c2s_box_json(base_dir, session, |             inbox_json = c2s_box_json(session, nickname, password, | ||||||
|                                       nickname, password, |  | ||||||
|                                       domain, port, http_prefix, |                                       domain, port, http_prefix, | ||||||
|                                       'inbox', 1, debug, |                                       'inbox', 1, debug, | ||||||
|                                       signing_priv_key_pem) |                                       signing_priv_key_pem) | ||||||
|  | @ -1575,8 +1569,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                 page_number = 1 |                 page_number = 1 | ||||||
|                 prev_timeline_first_id = '' |                 prev_timeline_first_id = '' | ||||||
|                 curr_timeline = 'dm' |                 curr_timeline = 'dm' | ||||||
|                 box_json = c2s_box_json(base_dir, session, |                 box_json = c2s_box_json(session, nickname, password, | ||||||
|                                         nickname, password, |  | ||||||
|                                         domain, port, http_prefix, |                                         domain, port, http_prefix, | ||||||
|                                         curr_timeline, page_number, |                                         curr_timeline, page_number, | ||||||
|                                         debug, signing_priv_key_pem) |                                         debug, signing_priv_key_pem) | ||||||
|  | @ -1592,8 +1585,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                 page_number = 1 |                 page_number = 1 | ||||||
|                 prev_timeline_first_id = '' |                 prev_timeline_first_id = '' | ||||||
|                 curr_timeline = 'tlreplies' |                 curr_timeline = 'tlreplies' | ||||||
|                 box_json = c2s_box_json(base_dir, session, |                 box_json = c2s_box_json(session, nickname, password, | ||||||
|                                         nickname, password, |  | ||||||
|                                         domain, port, http_prefix, |                                         domain, port, http_prefix, | ||||||
|                                         curr_timeline, page_number, |                                         curr_timeline, page_number, | ||||||
|                                         debug, signing_priv_key_pem) |                                         debug, signing_priv_key_pem) | ||||||
|  | @ -1610,8 +1602,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                 page_number = 1 |                 page_number = 1 | ||||||
|                 prev_timeline_first_id = '' |                 prev_timeline_first_id = '' | ||||||
|                 curr_timeline = 'tlbookmarks' |                 curr_timeline = 'tlbookmarks' | ||||||
|                 box_json = c2s_box_json(base_dir, session, |                 box_json = c2s_box_json(session, nickname, password, | ||||||
|                                         nickname, password, |  | ||||||
|                                         domain, port, http_prefix, |                                         domain, port, http_prefix, | ||||||
|                                         curr_timeline, page_number, |                                         curr_timeline, page_number, | ||||||
|                                         debug, signing_priv_key_pem) |                                         debug, signing_priv_key_pem) | ||||||
|  | @ -1629,8 +1620,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                 page_number = 1 |                 page_number = 1 | ||||||
|                 prev_timeline_first_id = '' |                 prev_timeline_first_id = '' | ||||||
|                 curr_timeline = 'outbox' |                 curr_timeline = 'outbox' | ||||||
|                 box_json = c2s_box_json(base_dir, session, |                 box_json = c2s_box_json(session, nickname, password, | ||||||
|                                         nickname, password, |  | ||||||
|                                         domain, port, http_prefix, |                                         domain, port, http_prefix, | ||||||
|                                         curr_timeline, page_number, |                                         curr_timeline, page_number, | ||||||
|                                         debug, signing_priv_key_pem) |                                         debug, signing_priv_key_pem) | ||||||
|  | @ -1655,8 +1645,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                 page_number -= 1 |                 page_number -= 1 | ||||||
|                 page_number = max(page_number, 1) |                 page_number = max(page_number, 1) | ||||||
|                 prev_timeline_first_id = '' |                 prev_timeline_first_id = '' | ||||||
|                 box_json = c2s_box_json(base_dir, session, |                 box_json = c2s_box_json(session, nickname, password, | ||||||
|                                         nickname, password, |  | ||||||
|                                         domain, port, http_prefix, |                                         domain, port, http_prefix, | ||||||
|                                         curr_timeline, page_number, |                                         curr_timeline, page_number, | ||||||
|                                         debug, signing_priv_key_pem) |                                         debug, signing_priv_key_pem) | ||||||
|  | @ -2224,12 +2213,10 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                     if page_num.isdigit(): |                     if page_num.isdigit(): | ||||||
|                         curr_page = int(page_num) |                         curr_page = int(page_num) | ||||||
|                 follow_requests_json = \ |                 follow_requests_json = \ | ||||||
|                     get_follow_requests_via_server(base_dir, session, |                     get_follow_requests_via_server(session, | ||||||
|                                                    nickname, password, |                                                    nickname, password, | ||||||
|                                                    domain, port, |                                                    domain, port, | ||||||
|                                                    http_prefix, curr_page, |                                                    http_prefix, curr_page, | ||||||
|                                                    cached_webfingers, |  | ||||||
|                                                    person_cache, |  | ||||||
|                                                    debug, __version__, |                                                    debug, __version__, | ||||||
|                                                    signing_priv_key_pem) |                                                    signing_priv_key_pem) | ||||||
|                 if follow_requests_json: |                 if follow_requests_json: | ||||||
|  | @ -2245,11 +2232,10 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                     if page_num.isdigit(): |                     if page_num.isdigit(): | ||||||
|                         curr_page = int(page_num) |                         curr_page = int(page_num) | ||||||
|                 following_json = \ |                 following_json = \ | ||||||
|                     get_following_via_server(base_dir, session, |                     get_following_via_server(session, | ||||||
|                                              nickname, password, |                                              nickname, password, | ||||||
|                                              domain, port, |                                              domain, port, | ||||||
|                                              http_prefix, curr_page, |                                              http_prefix, curr_page, | ||||||
|                                              cached_webfingers, person_cache, |  | ||||||
|                                              debug, __version__, |                                              debug, __version__, | ||||||
|                                              signing_priv_key_pem) |                                              signing_priv_key_pem) | ||||||
|                 if following_json: |                 if following_json: | ||||||
|  | @ -2266,11 +2252,10 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                     if page_num.isdigit(): |                     if page_num.isdigit(): | ||||||
|                         curr_page = int(page_num) |                         curr_page = int(page_num) | ||||||
|                 followers_json = \ |                 followers_json = \ | ||||||
|                     get_followers_via_server(base_dir, session, |                     get_followers_via_server(session, | ||||||
|                                              nickname, password, |                                              nickname, password, | ||||||
|                                              domain, port, |                                              domain, port, | ||||||
|                                              http_prefix, curr_page, |                                              http_prefix, curr_page, | ||||||
|                                              cached_webfingers, person_cache, |  | ||||||
|                                              debug, __version__, |                                              debug, __version__, | ||||||
|                                              signing_priv_key_pem) |                                              signing_priv_key_pem) | ||||||
|                 if followers_json: |                 if followers_json: | ||||||
|  | @ -2369,14 +2354,11 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                         _say_command(say_str, say_str, |                         _say_command(say_str, say_str, | ||||||
|                                      screenreader, system_language, espeak) |                                      screenreader, system_language, espeak) | ||||||
|                         session_approve = create_session(proxy_type) |                         session_approve = create_session(proxy_type) | ||||||
|                         approve_follow_request_via_server(base_dir, |                         approve_follow_request_via_server(session_approve, | ||||||
|                                                           session_approve, |  | ||||||
|                                                           nickname, password, |                                                           nickname, password, | ||||||
|                                                           domain, port, |                                                           domain, port, | ||||||
|                                                           http_prefix, |                                                           http_prefix, | ||||||
|                                                           approve_handle, |                                                           approve_handle, | ||||||
|                                                           cached_webfingers, |  | ||||||
|                                                           person_cache, |  | ||||||
|                                                           debug, |                                                           debug, | ||||||
|                                                           __version__, |                                                           __version__, | ||||||
|                                                           signing_priv_key_pem) |                                                           signing_priv_key_pem) | ||||||
|  | @ -2403,13 +2385,11 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                         _say_command(say_str, say_str, |                         _say_command(say_str, say_str, | ||||||
|                                      screenreader, system_language, espeak) |                                      screenreader, system_language, espeak) | ||||||
|                         session_deny = create_session(proxy_type) |                         session_deny = create_session(proxy_type) | ||||||
|                         deny_follow_request_via_server(base_dir, session_deny, |                         deny_follow_request_via_server(session_deny, | ||||||
|                                                        nickname, password, |                                                        nickname, password, | ||||||
|                                                        domain, port, |                                                        domain, port, | ||||||
|                                                        http_prefix, |                                                        http_prefix, | ||||||
|                                                        deny_handle, |                                                        deny_handle, | ||||||
|                                                        cached_webfingers, |  | ||||||
|                                                        person_cache, |  | ||||||
|                                                        debug, |                                                        debug, | ||||||
|                                                        __version__, |                                                        __version__, | ||||||
|                                                        signing_priv_key_pem) |                                                        signing_priv_key_pem) | ||||||
|  | @ -2494,7 +2474,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | ||||||
|                                               http_prefix, |                                               http_prefix, | ||||||
|                                               nickname, domain, |                                               nickname, domain, | ||||||
|                                               post_json_object, |                                               post_json_object, | ||||||
|                                               __version__, translate, |                                               __version__, | ||||||
|                                               yt_replace_domain, |                                               yt_replace_domain, | ||||||
|                                               twitter_replacement_domain, |                                               twitter_replacement_domain, | ||||||
|                                               allow_local_network_access, |                                               allow_local_network_access, | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								epicyon.py
								
								
								
								
							
							
						
						
									
										25
									
								
								epicyon.py
								
								
								
								
							|  | @ -1519,7 +1519,6 @@ def _command_options() -> None: | ||||||
| 
 | 
 | ||||||
|         cc_url = None |         cc_url = None | ||||||
|         send_message = argb.message |         send_message = argb.message | ||||||
|         followers_only = argb.followersonly |  | ||||||
|         # client_to_server = argb.client |         # client_to_server = argb.client | ||||||
|         attached_image_description = argb.imageDescription |         attached_image_description = argb.imageDescription | ||||||
|         city = 'London, England' |         city = 'London, England' | ||||||
|  | @ -1533,7 +1532,6 @@ def _command_options() -> None: | ||||||
|         if attach: |         if attach: | ||||||
|             media_type = get_attachment_media_type(attach) |             media_type = get_attachment_media_type(attach) | ||||||
|         reply_to = argb.replyto |         reply_to = argb.replyto | ||||||
|         followers_only = False |  | ||||||
|         is_article = False |         is_article = False | ||||||
|         if not domain: |         if not domain: | ||||||
|             domain = get_config_param(base_dir, 'domain') |             domain = get_config_param(base_dir, 'domain') | ||||||
|  | @ -1549,7 +1547,7 @@ def _command_options() -> None: | ||||||
|                              base_dir, session, argb.nickname, argb.password, |                              base_dir, session, argb.nickname, argb.password, | ||||||
|                              domain, port, |                              domain, port, | ||||||
|                              to_nickname, to_domain, to_port, cc_url, |                              to_nickname, to_domain, to_port, cc_url, | ||||||
|                              http_prefix, send_message, followers_only, |                              http_prefix, send_message, | ||||||
|                              argb.commentsEnabled, attach, media_type, |                              argb.commentsEnabled, attach, media_type, | ||||||
|                              attached_image_description, city, |                              attached_image_description, city, | ||||||
|                              cached_webfingers, person_cache, is_article, |                              cached_webfingers, person_cache, is_article, | ||||||
|  | @ -1681,8 +1679,7 @@ def _command_options() -> None: | ||||||
|             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) |             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) | ||||||
| 
 | 
 | ||||||
|         session = create_session(proxy_type) |         session = create_session(proxy_type) | ||||||
|         box_json = c2s_box_json(base_dir, session, |         box_json = c2s_box_json(session, argb.nickname, argb.password, | ||||||
|                                 argb.nickname, argb.password, |  | ||||||
|                                 domain, port, http_prefix, |                                 domain, port, http_prefix, | ||||||
|                                 argb.box, argb.pageNumber, |                                 argb.box, argb.pageNumber, | ||||||
|                                 argb.debug, signing_priv_key_pem) |                                 argb.debug, signing_priv_key_pem) | ||||||
|  | @ -2271,11 +2268,10 @@ def _command_options() -> None: | ||||||
|             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) |             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) | ||||||
| 
 | 
 | ||||||
|         following_json = \ |         following_json = \ | ||||||
|             get_following_via_server(base_dir, session, |             get_following_via_server(session, | ||||||
|                                      argb.nickname, argb.password, |                                      argb.nickname, argb.password, | ||||||
|                                      domain, port, |                                      domain, port, | ||||||
|                                      follow_http_prefix, argb.pageNumber, |                                      follow_http_prefix, argb.pageNumber, | ||||||
|                                      cached_webfingers, person_cache, |  | ||||||
|                                      debug, __version__, signing_priv_key_pem) |                                      debug, __version__, signing_priv_key_pem) | ||||||
|         if following_json: |         if following_json: | ||||||
|             pprint(following_json) |             pprint(following_json) | ||||||
|  | @ -2305,11 +2301,10 @@ def _command_options() -> None: | ||||||
|             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) |             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) | ||||||
| 
 | 
 | ||||||
|         followers_json = \ |         followers_json = \ | ||||||
|             get_followers_via_server(base_dir, session, |             get_followers_via_server(session, | ||||||
|                                      argb.nickname, argb.password, |                                      argb.nickname, argb.password, | ||||||
|                                      domain, port, |                                      domain, port, | ||||||
|                                      follow_http_prefix, argb.pageNumber, |                                      follow_http_prefix, argb.pageNumber, | ||||||
|                                      cached_webfingers, person_cache, |  | ||||||
|                                      debug, __version__, |                                      debug, __version__, | ||||||
|                                      signing_priv_key_pem) |                                      signing_priv_key_pem) | ||||||
|         if followers_json: |         if followers_json: | ||||||
|  | @ -2340,11 +2335,10 @@ def _command_options() -> None: | ||||||
|             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) |             signing_priv_key_pem = get_instance_actor_key(base_dir, domain) | ||||||
| 
 | 
 | ||||||
|         follow_requests_json = \ |         follow_requests_json = \ | ||||||
|             get_follow_requests_via_server(base_dir, session, |             get_follow_requests_via_server(session, | ||||||
|                                            argb.nickname, argb.password, |                                            argb.nickname, argb.password, | ||||||
|                                            domain, port, |                                            domain, port, | ||||||
|                                            follow_http_prefix, argb.pageNumber, |                                            follow_http_prefix, argb.pageNumber, | ||||||
|                                            cached_webfingers, person_cache, |  | ||||||
|                                            debug, __version__, |                                            debug, __version__, | ||||||
|                                            signing_priv_key_pem) |                                            signing_priv_key_pem) | ||||||
|         if follow_requests_json: |         if follow_requests_json: | ||||||
|  | @ -3199,7 +3193,6 @@ def _command_options() -> None: | ||||||
|         delete_all_posts(base_dir, nickname, domain, 'inbox') |         delete_all_posts(base_dir, nickname, domain, 'inbox') | ||||||
|         delete_all_posts(base_dir, nickname, domain, 'outbox') |         delete_all_posts(base_dir, nickname, domain, 'outbox') | ||||||
| 
 | 
 | ||||||
|         test_followers_only = False |  | ||||||
|         test_save_to_file = True |         test_save_to_file = True | ||||||
|         test_c2s = False |         test_c2s = False | ||||||
|         test_comments_enabled = True |         test_comments_enabled = True | ||||||
|  | @ -3222,7 +3215,6 @@ def _command_options() -> None: | ||||||
| 
 | 
 | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "like this is totally just a #test man", |                            "like this is totally just a #test man", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3237,7 +3229,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "Zoiks!!!", |                            "Zoiks!!!", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3252,7 +3243,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "Hey scoob we need like a hundred more #milkshakes", |                            "Hey scoob we need like a hundred more #milkshakes", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3267,7 +3257,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "Getting kinda spooky around here", |                            "Getting kinda spooky around here", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3283,7 +3272,6 @@ def _command_options() -> None: | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "And they would have gotten away with it too" + |                            "And they would have gotten away with it too" + | ||||||
|                            "if it wasn't for those pesky hackers", |                            "if it wasn't for those pesky hackers", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3298,7 +3286,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "man these centralized sites are like the worst!", |                            "man these centralized sites are like the worst!", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3313,7 +3300,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "another mystery solved #test", |                            "another mystery solved #test", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -3328,7 +3314,6 @@ def _command_options() -> None: | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            "let's go bowling", |                            "let's go bowling", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            test_c2s, |                            test_c2s, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  |  | ||||||
							
								
								
									
										96
									
								
								follow.py
								
								
								
								
							
							
						
						
									
										96
									
								
								follow.py
								
								
								
								
							|  | @ -386,7 +386,6 @@ def clear_followers(base_dir: str, nickname: str, domain: str) -> None: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_no_of_follows(base_dir: str, nickname: str, domain: str, | def _get_no_of_follows(base_dir: str, nickname: str, domain: str, | ||||||
|                        authenticated: bool, |  | ||||||
|                        follow_file='following.txt') -> int: |                        follow_file='following.txt') -> int: | ||||||
|     """Returns the number of follows or followers |     """Returns the number of follows or followers | ||||||
|     """ |     """ | ||||||
|  | @ -422,13 +421,10 @@ def _get_no_of_follows(base_dir: str, nickname: str, domain: str, | ||||||
|     return ctr |     return ctr | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_no_of_followers(base_dir: str, | def get_no_of_followers(base_dir: str, nickname: str, domain: str) -> int: | ||||||
|                         nickname: str, domain: str, |  | ||||||
|                         authenticated: bool) -> int: |  | ||||||
|     """Returns the number of followers of the given person |     """Returns the number of followers of the given person | ||||||
|     """ |     """ | ||||||
|     return _get_no_of_follows(base_dir, nickname, domain, |     return _get_no_of_follows(base_dir, nickname, domain, 'followers.txt') | ||||||
|                               authenticated, 'followers.txt') |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_following_feed(base_dir: str, domain: str, port: int, path: str, | def get_following_feed(base_dir: str, domain: str, port: int, path: str, | ||||||
|  | @ -482,7 +478,7 @@ def get_following_feed(base_dir: str, domain: str, port: int, path: str, | ||||||
|         id_str = \ |         id_str = \ | ||||||
|             local_actor_url(http_prefix, nickname, domain) + '/' + follow_file |             local_actor_url(http_prefix, nickname, domain) + '/' + follow_file | ||||||
|         total_str = \ |         total_str = \ | ||||||
|             _get_no_of_follows(base_dir, nickname, domain, authorized) |             _get_no_of_follows(base_dir, nickname, domain) | ||||||
|         following = { |         following = { | ||||||
|             '@context': 'https://www.w3.org/ns/activitystreams', |             '@context': 'https://www.w3.org/ns/activitystreams', | ||||||
|             'first': first_str, |             'first': first_str, | ||||||
|  | @ -599,7 +595,6 @@ def follow_approval_required(base_dir: str, nickname_to_follow: str, | ||||||
| 
 | 
 | ||||||
| def no_of_follow_requests(base_dir: str, | def no_of_follow_requests(base_dir: str, | ||||||
|                           nickname_to_follow: str, domain_to_follow: str, |                           nickname_to_follow: str, domain_to_follow: str, | ||||||
|                           nickname: str, domain: str, from_port: int, |  | ||||||
|                           follow_type: str) -> int: |                           follow_type: str) -> int: | ||||||
|     """Returns the current number of follow requests |     """Returns the current number of follow requests | ||||||
|     """ |     """ | ||||||
|  | @ -779,8 +774,8 @@ def followed_account_accepts(session, base_dir: str, http_prefix: str, | ||||||
| 
 | 
 | ||||||
|     return send_signed_json(accept_json, session, base_dir, |     return send_signed_json(accept_json, session, base_dir, | ||||||
|                             nickname_to_follow, domain_to_follow, port, |                             nickname_to_follow, domain_to_follow, port, | ||||||
|                             nickname, domain, from_port, '', |                             nickname, domain, from_port, | ||||||
|                             http_prefix, True, client_to_server, |                             http_prefix, client_to_server, | ||||||
|                             federation_list, |                             federation_list, | ||||||
|                             send_threads, post_log, cached_webfingers, |                             send_threads, post_log, cached_webfingers, | ||||||
|                             person_cache, debug, project_version, None, |                             person_cache, debug, project_version, None, | ||||||
|  | @ -846,11 +841,16 @@ def followed_account_rejects(session, session_onion, session_i2p, | ||||||
|     except OSError: |     except OSError: | ||||||
|         print('EX: followed_account_rejects unable to delete ' + |         print('EX: followed_account_rejects unable to delete ' + | ||||||
|               follow_activity_filename) |               follow_activity_filename) | ||||||
|  |     curr_session = session | ||||||
|  |     if domain.endswith('.onion') and session_onion: | ||||||
|  |         curr_session = session_onion | ||||||
|  |     elif domain.endswith('.i2p') and session_i2p: | ||||||
|  |         curr_session = session_i2p | ||||||
|     # send the reject activity |     # send the reject activity | ||||||
|     return send_signed_json(reject_json, session, base_dir, |     return send_signed_json(reject_json, curr_session, base_dir, | ||||||
|                             nickname_to_follow, domain_to_follow, port, |                             nickname_to_follow, domain_to_follow, port, | ||||||
|                             nickname, domain, from_port, '', |                             nickname, domain, from_port, | ||||||
|                             http_prefix, True, client_to_server, |                             http_prefix, client_to_server, | ||||||
|                             federation_list, |                             federation_list, | ||||||
|                             send_threads, post_log, cached_webfingers, |                             send_threads, post_log, cached_webfingers, | ||||||
|                             person_cache, debug, project_version, None, |                             person_cache, debug, project_version, None, | ||||||
|  | @ -947,8 +947,7 @@ def send_follow_request(session, base_dir: str, | ||||||
|     send_signed_json(new_follow_json, session, base_dir, |     send_signed_json(new_follow_json, session, base_dir, | ||||||
|                      nickname, sender_domain, sender_port, |                      nickname, sender_domain, sender_port, | ||||||
|                      follow_nickname, follow_domain, follow_port, |                      follow_nickname, follow_domain, follow_port, | ||||||
|                      'https://www.w3.org/ns/activitystreams#Public', |                      http_prefix, client_to_server, | ||||||
|                      http_prefix, True, client_to_server, |  | ||||||
|                      federation_list, |                      federation_list, | ||||||
|                      send_threads, post_log, cached_webfingers, person_cache, |                      send_threads, post_log, cached_webfingers, person_cache, | ||||||
|                      debug, project_version, None, group_account, |                      debug, project_version, None, group_account, | ||||||
|  | @ -982,7 +981,7 @@ def send_follow_request_via_server(base_dir: str, session, | ||||||
|     followed_id = \ |     followed_id = \ | ||||||
|         http_prefix + '://' + follow_domain_full + '/@' + follow_nickname |         http_prefix + '://' + follow_domain_full + '/@' + follow_nickname | ||||||
| 
 | 
 | ||||||
|     status_number, published = get_status_number() |     status_number, _ = get_status_number() | ||||||
|     new_follow_json = { |     new_follow_json = { | ||||||
|         '@context': 'https://www.w3.org/ns/activitystreams', |         '@context': 'https://www.w3.org/ns/activitystreams', | ||||||
|         'id': follow_actor + '/statuses/' + str(status_number), |         'id': follow_actor + '/statuses/' + str(status_number), | ||||||
|  | @ -1148,11 +1147,9 @@ def send_unfollow_request_via_server(base_dir: str, session, | ||||||
|     return unfollow_json |     return unfollow_json | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_following_via_server(base_dir: str, session, | def get_following_via_server(session, nickname: str, password: str, | ||||||
|                              nickname: str, password: str, |  | ||||||
|                              domain: str, port: int, |                              domain: str, port: int, | ||||||
|                              http_prefix: str, page_number: int, |                              http_prefix: str, page_number: int, | ||||||
|                              cached_webfingers: {}, person_cache: {}, |  | ||||||
|                              debug: bool, project_version: str, |                              debug: bool, project_version: str, | ||||||
|                              signing_priv_key_pem: str) -> {}: |                              signing_priv_key_pem: str) -> {}: | ||||||
|     """Gets a page from the following collection as json |     """Gets a page from the following collection as json | ||||||
|  | @ -1176,7 +1173,7 @@ def get_following_via_server(base_dir: str, session, | ||||||
|     url = follow_actor + '/following?page=' + str(page_number) |     url = follow_actor + '/following?page=' + str(page_number) | ||||||
|     following_json = \ |     following_json = \ | ||||||
|         get_json(signing_priv_key_pem, session, url, headers, {}, debug, |         get_json(signing_priv_key_pem, session, url, headers, {}, debug, | ||||||
|                  __version__, http_prefix, domain, 10, True) |                  project_version, http_prefix, domain, 10, True) | ||||||
|     if not following_json: |     if not following_json: | ||||||
|         if debug: |         if debug: | ||||||
|             print('DEBUG: GET following list failed for c2s to ' + url) |             print('DEBUG: GET following list failed for c2s to ' + url) | ||||||
|  | @ -1188,11 +1185,9 @@ def get_following_via_server(base_dir: str, session, | ||||||
|     return following_json |     return following_json | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_followers_via_server(base_dir: str, session, | def get_followers_via_server(session, nickname: str, password: str, | ||||||
|                              nickname: str, password: str, |  | ||||||
|                              domain: str, port: int, |                              domain: str, port: int, | ||||||
|                              http_prefix: str, page_number: int, |                              http_prefix: str, page_number: int, | ||||||
|                              cached_webfingers: {}, person_cache: {}, |  | ||||||
|                              debug: bool, project_version: str, |                              debug: bool, project_version: str, | ||||||
|                              signing_priv_key_pem: str) -> {}: |                              signing_priv_key_pem: str) -> {}: | ||||||
|     """Gets a page from the followers collection as json |     """Gets a page from the followers collection as json | ||||||
|  | @ -1212,12 +1207,11 @@ def get_followers_via_server(base_dir: str, session, | ||||||
|         'Authorization': auth_header |         'Authorization': auth_header | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if page_number < 1: |     page_number = max(page_number, 1) | ||||||
|         page_number = 1 |  | ||||||
|     url = follow_actor + '/followers?page=' + str(page_number) |     url = follow_actor + '/followers?page=' + str(page_number) | ||||||
|     followers_json = \ |     followers_json = \ | ||||||
|         get_json(signing_priv_key_pem, session, url, headers, {}, debug, |         get_json(signing_priv_key_pem, session, url, headers, {}, debug, | ||||||
|                  __version__, http_prefix, domain, 10, True) |                  project_version, http_prefix, domain, 10, True) | ||||||
|     if not followers_json: |     if not followers_json: | ||||||
|         if debug: |         if debug: | ||||||
|             print('DEBUG: GET followers list failed for c2s to ' + url) |             print('DEBUG: GET followers list failed for c2s to ' + url) | ||||||
|  | @ -1229,11 +1223,10 @@ def get_followers_via_server(base_dir: str, session, | ||||||
|     return followers_json |     return followers_json | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_follow_requests_via_server(base_dir: str, session, | def get_follow_requests_via_server(session, | ||||||
|                                    nickname: str, password: str, |                                    nickname: str, password: str, | ||||||
|                                    domain: str, port: int, |                                    domain: str, port: int, | ||||||
|                                    http_prefix: str, page_number: int, |                                    http_prefix: str, page_number: int, | ||||||
|                                    cached_webfingers: {}, person_cache: {}, |  | ||||||
|                                    debug: bool, project_version: str, |                                    debug: bool, project_version: str, | ||||||
|                                    signing_priv_key_pem: str) -> {}: |                                    signing_priv_key_pem: str) -> {}: | ||||||
|     """Gets a page from the follow requests collection as json |     """Gets a page from the follow requests collection as json | ||||||
|  | @ -1257,7 +1250,7 @@ def get_follow_requests_via_server(base_dir: str, session, | ||||||
|     url = follow_actor + '/followrequests?page=' + str(page_number) |     url = follow_actor + '/followrequests?page=' + str(page_number) | ||||||
|     followers_json = \ |     followers_json = \ | ||||||
|         get_json(signing_priv_key_pem, session, url, headers, {}, debug, |         get_json(signing_priv_key_pem, session, url, headers, {}, debug, | ||||||
|                  __version__, http_prefix, domain, 10, True) |                  project_version, http_prefix, domain, 10, True) | ||||||
|     if not followers_json: |     if not followers_json: | ||||||
|         if debug: |         if debug: | ||||||
|             print('DEBUG: GET follow requests list failed for c2s to ' + url) |             print('DEBUG: GET follow requests list failed for c2s to ' + url) | ||||||
|  | @ -1269,11 +1262,10 @@ def get_follow_requests_via_server(base_dir: str, session, | ||||||
|     return followers_json |     return followers_json | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def approve_follow_request_via_server(base_dir: str, session, | def approve_follow_request_via_server(session, | ||||||
|                                       nickname: str, password: str, |                                       nickname: str, password: str, | ||||||
|                                       domain: str, port: int, |                                       domain: str, port: int, | ||||||
|                                       http_prefix: str, approve_handle: int, |                                       http_prefix: str, approve_handle: int, | ||||||
|                                       cached_webfingers: {}, person_cache: {}, |  | ||||||
|                                       debug: bool, project_version: str, |                                       debug: bool, project_version: str, | ||||||
|                                       signing_priv_key_pem: str) -> str: |                                       signing_priv_key_pem: str) -> str: | ||||||
|     """Approves a follow request |     """Approves a follow request | ||||||
|  | @ -1298,7 +1290,7 @@ def approve_follow_request_via_server(base_dir: str, session, | ||||||
|     url = actor + '/followapprove=' + approve_handle |     url = actor + '/followapprove=' + approve_handle | ||||||
|     approve_html = \ |     approve_html = \ | ||||||
|         get_json(signing_priv_key_pem, session, url, headers, {}, debug, |         get_json(signing_priv_key_pem, session, url, headers, {}, debug, | ||||||
|                  __version__, http_prefix, domain, 10, True) |                  project_version, http_prefix, domain, 10, True) | ||||||
|     if not approve_html: |     if not approve_html: | ||||||
|         if debug: |         if debug: | ||||||
|             print('DEBUG: GET approve follow request failed for c2s to ' + url) |             print('DEBUG: GET approve follow request failed for c2s to ' + url) | ||||||
|  | @ -1310,11 +1302,10 @@ def approve_follow_request_via_server(base_dir: str, session, | ||||||
|     return approve_html |     return approve_html | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def deny_follow_request_via_server(base_dir: str, session, | def deny_follow_request_via_server(session, | ||||||
|                                    nickname: str, password: str, |                                    nickname: str, password: str, | ||||||
|                                    domain: str, port: int, |                                    domain: str, port: int, | ||||||
|                                    http_prefix: str, deny_handle: int, |                                    http_prefix: str, deny_handle: int, | ||||||
|                                    cached_webfingers: {}, person_cache: {}, |  | ||||||
|                                    debug: bool, project_version: str, |                                    debug: bool, project_version: str, | ||||||
|                                    signing_priv_key_pem: str) -> str: |                                    signing_priv_key_pem: str) -> str: | ||||||
|     """Denies a follow request |     """Denies a follow request | ||||||
|  | @ -1339,7 +1330,7 @@ def deny_follow_request_via_server(base_dir: str, session, | ||||||
|     url = actor + '/followdeny=' + deny_handle |     url = actor + '/followdeny=' + deny_handle | ||||||
|     deny_html = \ |     deny_html = \ | ||||||
|         get_json(signing_priv_key_pem, session, url, headers, {}, debug, |         get_json(signing_priv_key_pem, session, url, headers, {}, debug, | ||||||
|                  __version__, http_prefix, domain, 10, True) |                  project_version, http_prefix, domain, 10, True) | ||||||
|     if not deny_html: |     if not deny_html: | ||||||
|         if debug: |         if debug: | ||||||
|             print('DEBUG: GET deny follow request failed for c2s to ' + url) |             print('DEBUG: GET deny follow request failed for c2s to ' + url) | ||||||
|  | @ -1377,24 +1368,27 @@ def get_followers_of_actor(base_dir: str, actor: str, debug: bool) -> {}: | ||||||
|     # for each of the accounts |     # for each of the accounts | ||||||
|     for subdir, dirs, _ in os.walk(base_dir + '/accounts'): |     for subdir, dirs, _ in os.walk(base_dir + '/accounts'): | ||||||
|         for account in dirs: |         for account in dirs: | ||||||
|             if '@' in account and \ |             if '@' not in account: | ||||||
|                not account.startswith('inbox@') and \ |                 continue | ||||||
|                not account.startswith('Actor@'): |             if account.startswith('inbox@'): | ||||||
|                 following_filename = \ |                 continue | ||||||
|                     os.path.join(subdir, account) + '/following.txt' |             if account.startswith('Actor@'): | ||||||
|  |                 continue | ||||||
|  |             following_filename = \ | ||||||
|  |                 os.path.join(subdir, account) + '/following.txt' | ||||||
|  |             if debug: | ||||||
|  |                 print('DEBUG: examining follows of ' + account) | ||||||
|  |                 print(following_filename) | ||||||
|  |             if os.path.isfile(following_filename): | ||||||
|  |                 # does this account follow the given actor? | ||||||
|                 if debug: |                 if debug: | ||||||
|                     print('DEBUG: examining follows of ' + account) |                     print('DEBUG: checking if ' + actor_handle + | ||||||
|                     print(following_filename) |                           ' in ' + following_filename) | ||||||
|                 if os.path.isfile(following_filename): |                 if actor_handle in open(following_filename).read(): | ||||||
|                     # does this account follow the given actor? |  | ||||||
|                     if debug: |                     if debug: | ||||||
|                         print('DEBUG: checking if ' + actor_handle + |                         print('DEBUG: ' + account + | ||||||
|                               ' in ' + following_filename) |                               ' follows ' + actor_handle) | ||||||
|                     if actor_handle in open(following_filename).read(): |                     recipients_dict[account] = None | ||||||
|                         if debug: |  | ||||||
|                             print('DEBUG: ' + account + |  | ||||||
|                                   ' follows ' + actor_handle) |  | ||||||
|                         recipients_dict[account] = None |  | ||||||
|         break |         break | ||||||
|     return recipients_dict |     return recipients_dict | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								inbox.py
								
								
								
								
							
							
						
						
									
										19
									
								
								inbox.py
								
								
								
								
							|  | @ -2318,7 +2318,7 @@ def _receive_announce(recent_posts_cache: {}, | ||||||
|                                          http_prefix, |                                          http_prefix, | ||||||
|                                          nickname, domain, |                                          nickname, domain, | ||||||
|                                          message_json, |                                          message_json, | ||||||
|                                          __version__, translate, |                                          __version__, | ||||||
|                                          yt_replace_domain, |                                          yt_replace_domain, | ||||||
|                                          twitter_replacement_domain, |                                          twitter_replacement_domain, | ||||||
|                                          allow_local_network_access, |                                          allow_local_network_access, | ||||||
|  | @ -3256,12 +3256,10 @@ def _bounce_dm(senderPostId: str, session, http_prefix: str, | ||||||
|     if ':' in sender_domain: |     if ':' in sender_domain: | ||||||
|         sender_port = get_port_from_domain(sender_domain) |         sender_port = get_port_from_domain(sender_domain) | ||||||
|         sender_domain = remove_domain_port(sender_domain) |         sender_domain = remove_domain_port(sender_domain) | ||||||
|     cc_list = [] |  | ||||||
| 
 | 
 | ||||||
|     # create the bounce DM |     # create the bounce DM | ||||||
|     subject = None |     subject = None | ||||||
|     content = translate['DM bounce'] |     content = translate['DM bounce'] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = False |     save_to_file = False | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     comments_enabled = False |     comments_enabled = False | ||||||
|  | @ -3280,7 +3278,7 @@ def _bounce_dm(senderPostId: str, session, http_prefix: str, | ||||||
|     low_bandwidth = False |     low_bandwidth = False | ||||||
|     post_json_object = \ |     post_json_object = \ | ||||||
|         create_direct_message_post(base_dir, nickname, domain, port, |         create_direct_message_post(base_dir, nickname, domain, port, | ||||||
|                                    http_prefix, content, followers_only, |                                    http_prefix, content, | ||||||
|                                    save_to_file, client_to_server, |                                    save_to_file, client_to_server, | ||||||
|                                    comments_enabled, |                                    comments_enabled, | ||||||
|                                    attach_image_filename, media_type, |                                    attach_image_filename, media_type, | ||||||
|  | @ -3299,8 +3297,8 @@ def _bounce_dm(senderPostId: str, session, http_prefix: str, | ||||||
|     print('Sending bounce DM to ' + sending_handle) |     print('Sending bounce DM to ' + sending_handle) | ||||||
|     send_signed_json(post_json_object, session, base_dir, |     send_signed_json(post_json_object, session, base_dir, | ||||||
|                      nickname, domain, port, |                      nickname, domain, port, | ||||||
|                      sender_nickname, sender_domain, sender_port, cc_list, |                      sender_nickname, sender_domain, sender_port, | ||||||
|                      http_prefix, False, False, federation_list, |                      http_prefix, False, federation_list, | ||||||
|                      send_threads, post_log, cached_webfingers, |                      send_threads, post_log, cached_webfingers, | ||||||
|                      person_cache, debug, __version__, None, group_account, |                      person_cache, debug, __version__, None, group_account, | ||||||
|                      signing_priv_key_pem, 7238634, |                      signing_priv_key_pem, 7238634, | ||||||
|  | @ -4083,7 +4081,6 @@ def _inbox_after_initial(server, inbox_start_time, | ||||||
| 
 | 
 | ||||||
|             if is_image_media(session, base_dir, http_prefix, |             if is_image_media(session, base_dir, http_prefix, | ||||||
|                               nickname, domain, post_json_object, |                               nickname, domain, post_json_object, | ||||||
|                               translate, |  | ||||||
|                               yt_replace_domain, |                               yt_replace_domain, | ||||||
|                               twitter_replacement_domain, |                               twitter_replacement_domain, | ||||||
|                               allow_local_network_access, |                               allow_local_network_access, | ||||||
|  | @ -4652,9 +4649,8 @@ def _receive_follow_request(session, session_onion, session_i2p, | ||||||
|                   nickname_to_follow) |                   nickname_to_follow) | ||||||
|         return True |         return True | ||||||
|     if max_followers > 0: |     if max_followers > 0: | ||||||
|         if get_no_of_followers(base_dir, |         if get_no_of_followers(base_dir, nickname_to_follow, | ||||||
|                                nickname_to_follow, domain_to_follow, |                                domain_to_follow) > max_followers: | ||||||
|                                True) > max_followers: |  | ||||||
|             print('WARN: ' + nickname_to_follow + |             print('WARN: ' + nickname_to_follow + | ||||||
|                   ' has reached their maximum number of followers') |                   ' has reached their maximum number of followers') | ||||||
|             return True |             return True | ||||||
|  | @ -4719,21 +4715,18 @@ def _receive_follow_request(session, session_onion, session_i2p, | ||||||
|         if domain.endswith('.onion'): |         if domain.endswith('.onion'): | ||||||
|             if no_of_follow_requests(base_dir, |             if no_of_follow_requests(base_dir, | ||||||
|                                      nickname_to_follow, domain_to_follow, |                                      nickname_to_follow, domain_to_follow, | ||||||
|                                      nickname, domain, from_port, |  | ||||||
|                                      'onion') > 5: |                                      'onion') > 5: | ||||||
|                 print('Too many follow requests from onion addresses') |                 print('Too many follow requests from onion addresses') | ||||||
|                 return False |                 return False | ||||||
|         elif domain.endswith('.i2p'): |         elif domain.endswith('.i2p'): | ||||||
|             if no_of_follow_requests(base_dir, |             if no_of_follow_requests(base_dir, | ||||||
|                                      nickname_to_follow, domain_to_follow, |                                      nickname_to_follow, domain_to_follow, | ||||||
|                                      nickname, domain, from_port, |  | ||||||
|                                      'i2p') > 5: |                                      'i2p') > 5: | ||||||
|                 print('Too many follow requests from i2p addresses') |                 print('Too many follow requests from i2p addresses') | ||||||
|                 return False |                 return False | ||||||
|         else: |         else: | ||||||
|             if no_of_follow_requests(base_dir, |             if no_of_follow_requests(base_dir, | ||||||
|                                      nickname_to_follow, domain_to_follow, |                                      nickname_to_follow, domain_to_follow, | ||||||
|                                      nickname, domain, from_port, |  | ||||||
|                                      '') > 10: |                                      '') > 10: | ||||||
|                 print('Too many follow requests') |                 print('Too many follow requests') | ||||||
|                 return False |                 return False | ||||||
|  |  | ||||||
|  | @ -46,8 +46,7 @@ def get_understood_languages(base_dir: str, http_prefix: str, | ||||||
|     return get_actor_languages_list(actor_json) |     return get_actor_languages_list(actor_json) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def set_actor_languages(base_dir: str, actor_json: {}, | def set_actor_languages(actor_json: {}, languages_str: str) -> None: | ||||||
|                         languages_str: str) -> None: |  | ||||||
|     """Sets the languages understood by the given actor |     """Sets the languages understood by the given actor | ||||||
|     """ |     """ | ||||||
|     languages_str = languages_str.strip() |     languages_str = languages_str.strip() | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								like.py
								
								
								
								
							
							
						
						
									
										6
									
								
								like.py
								
								
								
								
							|  | @ -139,8 +139,7 @@ def _create_like(recent_posts_cache: {}, | ||||||
|                          nickname, domain, port, |                          nickname, domain, port, | ||||||
|                          liked_post_nickname, liked_post_domain, |                          liked_post_nickname, liked_post_domain, | ||||||
|                          liked_post_port, |                          liked_post_port, | ||||||
|                          'https://www.w3.org/ns/activitystreams#Public', |                          http_prefix, client_to_server, federation_list, | ||||||
|                          http_prefix, True, client_to_server, federation_list, |  | ||||||
|                          send_threads, post_log, cached_webfingers, |                          send_threads, post_log, cached_webfingers, | ||||||
|                          person_cache, |                          person_cache, | ||||||
|                          debug, project_version, None, group_account, |                          debug, project_version, None, group_account, | ||||||
|  | @ -352,8 +351,7 @@ def send_undo_like_via_server(base_dir: str, session, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def outbox_like(recent_posts_cache: {}, | def outbox_like(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 like request is received by the outbox from c2s |     """ When a like request is received by the outbox from c2s | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|  | @ -631,7 +631,6 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str, | ||||||
| #        if len(item) > 8: | #        if len(item) > 8: | ||||||
| #            podcast_properties = item[8] | #            podcast_properties = item[8] | ||||||
| 
 | 
 | ||||||
|         followers_only = False |  | ||||||
|         # NOTE: the id when the post is created will not be |         # NOTE: the id when the post is created will not be | ||||||
|         # consistent (it's based on the current time, not the |         # consistent (it's based on the current time, not the | ||||||
|         # published time), so we change that later |         # published time), so we change that later | ||||||
|  | @ -645,7 +644,7 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str, | ||||||
|         blog = create_news_post(base_dir, |         blog = create_news_post(base_dir, | ||||||
|                                 domain, port, http_prefix, |                                 domain, port, http_prefix, | ||||||
|                                 rss_description, |                                 rss_description, | ||||||
|                                 followers_only, save_to_file, |                                 save_to_file, | ||||||
|                                 attach_image_filename, media_type, |                                 attach_image_filename, media_type, | ||||||
|                                 image_description, city, |                                 image_description, city, | ||||||
|                                 rss_title, system_language, |                                 rss_title, system_language, | ||||||
|  |  | ||||||
|  | @ -451,7 +451,6 @@ def post_message_to_outbox(session, translate: {}, | ||||||
|                     if is_image_media(session, base_dir, http_prefix, |                     if is_image_media(session, base_dir, http_prefix, | ||||||
|                                       post_to_nickname, domain, |                                       post_to_nickname, domain, | ||||||
|                                       message_json, |                                       message_json, | ||||||
|                                       translate, |  | ||||||
|                                       yt_replace_domain, |                                       yt_replace_domain, | ||||||
|                                       twitter_replacement_domain, |                                       twitter_replacement_domain, | ||||||
|                                       allow_local_network_access, |                                       allow_local_network_access, | ||||||
|  | @ -577,8 +576,7 @@ def post_message_to_outbox(session, translate: {}, | ||||||
|     if debug: |     if debug: | ||||||
|         print('DEBUG: handle any like requests') |         print('DEBUG: handle any like requests') | ||||||
|     outbox_like(recent_posts_cache, |     outbox_like(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 like requests') |         print('DEBUG: handle any undo like requests') | ||||||
|  | @ -637,9 +635,7 @@ def post_message_to_outbox(session, translate: {}, | ||||||
| 
 | 
 | ||||||
|     if debug: |     if debug: | ||||||
|         print('DEBUG: handle undo block requests') |         print('DEBUG: handle undo block requests') | ||||||
|     outbox_undo_block(base_dir, http_prefix, |     outbox_undo_block(base_dir, post_to_nickname, domain, message_json, debug) | ||||||
|                       post_to_nickname, domain, |  | ||||||
|                       port, message_json, debug) |  | ||||||
| 
 | 
 | ||||||
|     if debug: |     if debug: | ||||||
|         print('DEBUG: handle mute requests') |         print('DEBUG: handle mute requests') | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								person.py
								
								
								
								
							
							
						
						
									
										19
									
								
								person.py
								
								
								
								
							|  | @ -1000,45 +1000,44 @@ def person_box_json(recent_posts_cache: {}, | ||||||
|         return None |         return None | ||||||
|     if boxname == 'inbox': |     if boxname == 'inbox': | ||||||
|         return create_inbox(recent_posts_cache, |         return create_inbox(recent_posts_cache, | ||||||
|                             session, base_dir, nickname, domain, port, |                             base_dir, nickname, domain, port, | ||||||
|                             http_prefix, |                             http_prefix, | ||||||
|                             no_of_items, header_only, page_number) |                             no_of_items, header_only, page_number) | ||||||
|     if boxname == 'dm': |     if boxname == 'dm': | ||||||
|         return create_dm_timeline(recent_posts_cache, |         return create_dm_timeline(recent_posts_cache, | ||||||
|                                   session, base_dir, nickname, domain, port, |                                   base_dir, nickname, domain, port, | ||||||
|                                   http_prefix, |                                   http_prefix, | ||||||
|                                   no_of_items, header_only, page_number) |                                   no_of_items, header_only, page_number) | ||||||
|     if boxname in ('tlbookmarks', 'bookmarks'): |     if boxname in ('tlbookmarks', 'bookmarks'): | ||||||
|         return create_bookmarks_timeline(session, base_dir, nickname, domain, |         return create_bookmarks_timeline(base_dir, nickname, domain, | ||||||
|                                          port, http_prefix, |                                          port, http_prefix, | ||||||
|                                          no_of_items, header_only, |                                          no_of_items, header_only, | ||||||
|                                          page_number) |                                          page_number) | ||||||
|     if boxname == 'tlreplies': |     if boxname == 'tlreplies': | ||||||
|         return create_replies_timeline(recent_posts_cache, |         return create_replies_timeline(recent_posts_cache, | ||||||
|                                        session, base_dir, nickname, domain, |                                        base_dir, nickname, domain, | ||||||
|                                        port, http_prefix, |                                        port, http_prefix, | ||||||
|                                        no_of_items, header_only, |                                        no_of_items, header_only, | ||||||
|                                        page_number) |                                        page_number) | ||||||
|     if boxname == 'tlmedia': |     if boxname == 'tlmedia': | ||||||
|         return create_media_timeline(session, base_dir, nickname, domain, port, |         return create_media_timeline(base_dir, nickname, domain, port, | ||||||
|                                      http_prefix, no_of_items, header_only, |                                      http_prefix, no_of_items, header_only, | ||||||
|                                      page_number) |                                      page_number) | ||||||
|     if boxname == 'tlnews': |     if boxname == 'tlnews': | ||||||
|         return create_news_timeline(session, base_dir, nickname, domain, port, |         return create_news_timeline(base_dir, domain, port, | ||||||
|                                     http_prefix, no_of_items, header_only, |                                     http_prefix, no_of_items, header_only, | ||||||
|                                     newswire_votes_threshold, positive_voting, |                                     newswire_votes_threshold, positive_voting, | ||||||
|                                     voting_time_mins, page_number) |                                     voting_time_mins, page_number) | ||||||
|     if boxname == 'tlfeatures': |     if boxname == 'tlfeatures': | ||||||
|         return create_features_timeline(session, base_dir, |         return create_features_timeline(base_dir, nickname, domain, port, | ||||||
|                                         nickname, domain, port, |  | ||||||
|                                         http_prefix, no_of_items, header_only, |                                         http_prefix, no_of_items, header_only, | ||||||
|                                         page_number) |                                         page_number) | ||||||
|     if boxname == 'tlblogs': |     if boxname == 'tlblogs': | ||||||
|         return create_blogs_timeline(session, base_dir, nickname, domain, port, |         return create_blogs_timeline(base_dir, nickname, domain, port, | ||||||
|                                      http_prefix, no_of_items, header_only, |                                      http_prefix, no_of_items, header_only, | ||||||
|                                      page_number) |                                      page_number) | ||||||
|     if boxname == 'outbox': |     if boxname == 'outbox': | ||||||
|         return create_outbox(session, base_dir, nickname, domain, port, |         return create_outbox(base_dir, nickname, domain, port, | ||||||
|                              http_prefix, |                              http_prefix, | ||||||
|                              no_of_items, header_only, authorized, |                              no_of_items, header_only, authorized, | ||||||
|                              page_number) |                              page_number) | ||||||
|  |  | ||||||
							
								
								
									
										191
									
								
								posts.py
								
								
								
								
							
							
						
						
									
										191
									
								
								posts.py
								
								
								
								
							|  | @ -536,8 +536,7 @@ def is_create_inside_announce(item: {}) -> bool: | ||||||
| def _get_posts(session, outbox_url: str, max_posts: int, | def _get_posts(session, outbox_url: str, max_posts: int, | ||||||
|                max_mentions: int, |                max_mentions: int, | ||||||
|                max_emoji: int, max_attachments: int, |                max_emoji: int, max_attachments: int, | ||||||
|                federation_list: [], |                federation_list: [], raw: bool, | ||||||
|                person_cache: {}, raw: bool, |  | ||||||
|                simple: bool, debug: bool, |                simple: bool, debug: bool, | ||||||
|                project_version: str, http_prefix: str, |                project_version: str, http_prefix: str, | ||||||
|                origin_domain: str, system_language: str, |                origin_domain: str, system_language: str, | ||||||
|  | @ -663,6 +662,10 @@ def _get_posts(session, outbox_url: str, max_posts: int, | ||||||
|                         in_reply_to = this_item['inReplyTo'] |                         in_reply_to = this_item['inReplyTo'] | ||||||
| 
 | 
 | ||||||
|             if this_item.get('attachment'): |             if this_item.get('attachment'): | ||||||
|  |                 if len(this_item['attachment']) > max_attachments: | ||||||
|  |                     if debug: | ||||||
|  |                         print('max attachments reached') | ||||||
|  |                     continue | ||||||
|                 if this_item['attachment']: |                 if this_item['attachment']: | ||||||
|                     for attach in this_item['attachment']: |                     for attach in this_item['attachment']: | ||||||
|                         if attach.get('name') and attach.get('url'): |                         if attach.get('name') and attach.get('url'): | ||||||
|  | @ -735,10 +738,10 @@ def _update_word_frequency(content: str, word_frequency: {}) -> None: | ||||||
|     words_list = plain_text.split(' ') |     words_list = plain_text.split(' ') | ||||||
|     common_words = _get_common_words() |     common_words = _get_common_words() | ||||||
|     for word in words_list: |     for word in words_list: | ||||||
|         wordLen = len(word) |         word_len = len(word) | ||||||
|         if wordLen < 3: |         if word_len < 3: | ||||||
|             continue |             continue | ||||||
|         if wordLen < 4: |         if word_len < 4: | ||||||
|             if word.upper() != word: |             if word.upper() != word: | ||||||
|                 continue |                 continue | ||||||
|         if '&' in word or \ |         if '&' in word or \ | ||||||
|  | @ -756,17 +759,10 @@ def _update_word_frequency(content: str, word_frequency: {}) -> None: | ||||||
|             word_frequency[word] = 1 |             word_frequency[word] = 1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_post_domains(session, outbox_url: str, max_posts: int, | def get_post_domains(session, outbox_url: str, max_posts: int, debug: bool, | ||||||
|                      max_mentions: int, |                      project_version: str, http_prefix: str, domain: str, | ||||||
|                      max_emoji: int, max_attachments: int, |                      word_frequency: {}, domain_list: [], | ||||||
|                      federation_list: [], |                      system_language: str, signing_priv_key_pem: str) -> []: | ||||||
|                      person_cache: {}, |  | ||||||
|                      debug: bool, |  | ||||||
|                      project_version: str, http_prefix: str, |  | ||||||
|                      domain: str, |  | ||||||
|                      word_frequency: {}, |  | ||||||
|                      domain_list: [], system_language: str, |  | ||||||
|                      signing_priv_key_pem: str) -> []: |  | ||||||
|     """Returns a list of domains referenced within public posts |     """Returns a list of domains referenced within public posts | ||||||
|     """ |     """ | ||||||
|     if not outbox_url: |     if not outbox_url: | ||||||
|  | @ -803,7 +799,7 @@ def get_post_domains(session, outbox_url: str, max_posts: int, | ||||||
|             _update_word_frequency(content_str, word_frequency) |             _update_word_frequency(content_str, word_frequency) | ||||||
|         if item['object'].get('inReplyTo'): |         if item['object'].get('inReplyTo'): | ||||||
|             if isinstance(item['object']['inReplyTo'], str): |             if isinstance(item['object']['inReplyTo'], str): | ||||||
|                 post_domain, post_port = \ |                 post_domain, _ = \ | ||||||
|                     get_domain_from_actor(item['object']['inReplyTo']) |                     get_domain_from_actor(item['object']['inReplyTo']) | ||||||
|                 if post_domain not in post_domains: |                 if post_domain not in post_domains: | ||||||
|                     post_domains.append(post_domain) |                     post_domains.append(post_domain) | ||||||
|  | @ -1069,6 +1065,7 @@ def _create_post_cw_from_reply(base_dir: str, nickname: str, domain: str, | ||||||
|     """If this is a reply and the original post has a CW |     """If this is a reply and the original post has a CW | ||||||
|     then use the same CW |     then use the same CW | ||||||
|     """ |     """ | ||||||
|  |     reply_to_json = None | ||||||
|     if in_reply_to and not sensitive: |     if in_reply_to and not sensitive: | ||||||
|         # locate the post which this is a reply to and check if |         # locate the post which this is a reply to and check if | ||||||
|         # it has a content warning. If it does then reproduce |         # it has a content warning. If it does then reproduce | ||||||
|  | @ -1077,16 +1074,16 @@ def _create_post_cw_from_reply(base_dir: str, nickname: str, domain: str, | ||||||
|             locate_post(base_dir, nickname, domain, in_reply_to) |             locate_post(base_dir, nickname, domain, in_reply_to) | ||||||
|         if reply_post_filename: |         if reply_post_filename: | ||||||
|             reply_to_json = load_json(reply_post_filename) |             reply_to_json = load_json(reply_post_filename) | ||||||
|             if reply_to_json: |     if reply_to_json: | ||||||
|                 if reply_to_json.get('object'): |         if reply_to_json.get('object'): | ||||||
|                     if reply_to_json['object'].get('sensitive'): |             if reply_to_json['object'].get('sensitive'): | ||||||
|                         if reply_to_json['object']['sensitive']: |                 if reply_to_json['object']['sensitive']: | ||||||
|                             sensitive = True |                     sensitive = True | ||||||
|                             if reply_to_json['object'].get('summary'): |                     if reply_to_json['object'].get('summary'): | ||||||
|                                 summary = \ |                         summary = \ | ||||||
|                                     get_summary_from_post(reply_to_json, |                             get_summary_from_post(reply_to_json, | ||||||
|                                                           system_language, |                                                   system_language, | ||||||
|                                                           languages_understood) |                                                   languages_understood) | ||||||
| 
 | 
 | ||||||
|     return sensitive, summary |     return sensitive, summary | ||||||
| 
 | 
 | ||||||
|  | @ -1407,7 +1404,7 @@ def get_actor_from_in_reply_to(in_reply_to: str) -> str: | ||||||
| def _create_post_base(base_dir: str, | def _create_post_base(base_dir: str, | ||||||
|                       nickname: str, domain: str, port: int, |                       nickname: str, domain: str, port: int, | ||||||
|                       to_url: str, cc_url: str, http_prefix: str, content: str, |                       to_url: str, cc_url: str, http_prefix: str, content: str, | ||||||
|                       followers_only: bool, save_to_file: bool, |                       save_to_file: bool, | ||||||
|                       client_to_server: bool, comments_enabled: bool, |                       client_to_server: bool, comments_enabled: bool, | ||||||
|                       attach_image_filename: str, |                       attach_image_filename: str, | ||||||
|                       media_type: str, image_description: str, city: str, |                       media_type: str, image_description: str, city: str, | ||||||
|  | @ -1667,8 +1664,7 @@ def outbox_message_create_wrap(http_prefix: str, | ||||||
|     return new_post |     return new_post | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _post_is_addressed_to_followers(base_dir: str, | def _post_is_addressed_to_followers(nickname: str, domain: str, port: int, | ||||||
|                                     nickname: str, domain: str, port: int, |  | ||||||
|                                     http_prefix: str, |                                     http_prefix: str, | ||||||
|                                     post_json_object: {}) -> bool: |                                     post_json_object: {}) -> bool: | ||||||
|     """Returns true if the given post is addressed to followers of the nickname |     """Returns true if the given post is addressed to followers of the nickname | ||||||
|  | @ -1704,7 +1700,7 @@ def _post_is_addressed_to_followers(base_dir: str, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def pin_post(base_dir: str, nickname: str, domain: str, | def pin_post(base_dir: str, nickname: str, domain: str, | ||||||
|              pinned_content: str, followers_only: bool) -> None: |              pinned_content: str) -> None: | ||||||
|     """Pins the given post Id to the profile of then given account |     """Pins the given post Id to the profile of then given account | ||||||
|     """ |     """ | ||||||
|     account_dir = acct_dir(base_dir, nickname, domain) |     account_dir = acct_dir(base_dir, nickname, domain) | ||||||
|  | @ -1830,7 +1826,7 @@ def regenerate_index_for_box(base_dir: str, | ||||||
| 
 | 
 | ||||||
| def create_public_post(base_dir: str, | def create_public_post(base_dir: str, | ||||||
|                        nickname: str, domain: str, port: int, http_prefix: str, |                        nickname: str, domain: str, port: int, http_prefix: str, | ||||||
|                        content: str, followers_only: bool, save_to_file: bool, |                        content: str, save_to_file: bool, | ||||||
|                        client_to_server: bool, comments_enabled: bool, |                        client_to_server: bool, comments_enabled: bool, | ||||||
|                        attach_image_filename: str, media_type: str, |                        attach_image_filename: str, media_type: str, | ||||||
|                        image_description: str, city: str, |                        image_description: str, city: str, | ||||||
|  | @ -1860,8 +1856,7 @@ def create_public_post(base_dir: str, | ||||||
|     return _create_post_base(base_dir, nickname, domain, port, |     return _create_post_base(base_dir, nickname, domain, port, | ||||||
|                              'https://www.w3.org/ns/activitystreams#Public', |                              'https://www.w3.org/ns/activitystreams#Public', | ||||||
|                              local_actor + '/followers', |                              local_actor + '/followers', | ||||||
|                              http_prefix, content, followers_only, |                              http_prefix, content, save_to_file, | ||||||
|                              save_to_file, |  | ||||||
|                              client_to_server, comments_enabled, |                              client_to_server, comments_enabled, | ||||||
|                              attach_image_filename, media_type, |                              attach_image_filename, media_type, | ||||||
|                              image_description, city, |                              image_description, city, | ||||||
|  | @ -1925,7 +1920,7 @@ def create_blog_post(base_dir: str, | ||||||
|     blog_json = \ |     blog_json = \ | ||||||
|         create_public_post(base_dir, |         create_public_post(base_dir, | ||||||
|                            nickname, domain, port, http_prefix, |                            nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, comments_enabled, |                            client_to_server, comments_enabled, | ||||||
|                            attach_image_filename, media_type, |                            attach_image_filename, media_type, | ||||||
|                            image_description, city, |                            image_description, city, | ||||||
|  | @ -1944,7 +1939,7 @@ def create_blog_post(base_dir: str, | ||||||
| 
 | 
 | ||||||
| def create_news_post(base_dir: str, | def create_news_post(base_dir: str, | ||||||
|                      domain: str, port: int, http_prefix: str, |                      domain: str, port: int, http_prefix: str, | ||||||
|                      content: str, followers_only: bool, save_to_file: bool, |                      content: str, save_to_file: bool, | ||||||
|                      attach_image_filename: str, media_type: str, |                      attach_image_filename: str, media_type: str, | ||||||
|                      image_description: str, city: str, |                      image_description: str, city: str, | ||||||
|                      subject: str, system_language: str, |                      subject: str, system_language: str, | ||||||
|  | @ -1962,7 +1957,7 @@ def create_news_post(base_dir: str, | ||||||
|     blog = \ |     blog = \ | ||||||
|         create_public_post(base_dir, |         create_public_post(base_dir, | ||||||
|                            'news', domain, port, http_prefix, |                            'news', domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, False, |                            client_to_server, False, | ||||||
|                            attach_image_filename, media_type, |                            attach_image_filename, media_type, | ||||||
|                            image_description, city, |                            image_description, city, | ||||||
|  | @ -1980,7 +1975,7 @@ def create_question_post(base_dir: str, | ||||||
|                          nickname: str, domain: str, port: int, |                          nickname: str, domain: str, port: int, | ||||||
|                          http_prefix: str, |                          http_prefix: str, | ||||||
|                          content: str, q_options: [], |                          content: str, q_options: [], | ||||||
|                          followers_only: bool, save_to_file: bool, |                          save_to_file: bool, | ||||||
|                          client_to_server: bool, comments_enabled: bool, |                          client_to_server: bool, comments_enabled: bool, | ||||||
|                          attach_image_filename: str, media_type: str, |                          attach_image_filename: str, media_type: str, | ||||||
|                          image_description: str, city: str, |                          image_description: str, city: str, | ||||||
|  | @ -1996,7 +1991,7 @@ def create_question_post(base_dir: str, | ||||||
|         _create_post_base(base_dir, nickname, domain, port, |         _create_post_base(base_dir, nickname, domain, port, | ||||||
|                           'https://www.w3.org/ns/activitystreams#Public', |                           'https://www.w3.org/ns/activitystreams#Public', | ||||||
|                           local_actor + '/followers', |                           local_actor + '/followers', | ||||||
|                           http_prefix, content, followers_only, save_to_file, |                           http_prefix, content, save_to_file, | ||||||
|                           client_to_server, comments_enabled, |                           client_to_server, comments_enabled, | ||||||
|                           attach_image_filename, media_type, |                           attach_image_filename, media_type, | ||||||
|                           image_description, city, |                           image_description, city, | ||||||
|  | @ -2030,8 +2025,7 @@ def create_question_post(base_dir: str, | ||||||
| def create_unlisted_post(base_dir: str, | def create_unlisted_post(base_dir: str, | ||||||
|                          nickname: str, domain: str, port: int, |                          nickname: str, domain: str, port: int, | ||||||
|                          http_prefix: str, |                          http_prefix: str, | ||||||
|                          content: str, followers_only: bool, |                          content: str, save_to_file: bool, | ||||||
|                          save_to_file: bool, |  | ||||||
|                          client_to_server: bool, comments_enabled: bool, |                          client_to_server: bool, comments_enabled: bool, | ||||||
|                          attach_image_filename: str, media_type: str, |                          attach_image_filename: str, media_type: str, | ||||||
|                          image_description: str, city: str, |                          image_description: str, city: str, | ||||||
|  | @ -2049,8 +2043,7 @@ def create_unlisted_post(base_dir: str, | ||||||
|     return _create_post_base(base_dir, nickname, domain, port, |     return _create_post_base(base_dir, nickname, domain, port, | ||||||
|                              local_actor + '/followers', |                              local_actor + '/followers', | ||||||
|                              'https://www.w3.org/ns/activitystreams#Public', |                              'https://www.w3.org/ns/activitystreams#Public', | ||||||
|                              http_prefix, content, followers_only, |                              http_prefix, content, save_to_file, | ||||||
|                              save_to_file, |  | ||||||
|                              client_to_server, comments_enabled, |                              client_to_server, comments_enabled, | ||||||
|                              attach_image_filename, media_type, |                              attach_image_filename, media_type, | ||||||
|                              image_description, city, |                              image_description, city, | ||||||
|  | @ -2066,8 +2059,7 @@ def create_unlisted_post(base_dir: str, | ||||||
| 
 | 
 | ||||||
| def create_followers_only_post(base_dir: str, | def create_followers_only_post(base_dir: str, | ||||||
|                                nickname: str, domain: str, port: int, |                                nickname: str, domain: str, port: int, | ||||||
|                                http_prefix: str, |                                http_prefix: str, content: str, | ||||||
|                                content: str, followers_only: bool, |  | ||||||
|                                save_to_file: bool, |                                save_to_file: bool, | ||||||
|                                client_to_server: bool, comments_enabled: bool, |                                client_to_server: bool, comments_enabled: bool, | ||||||
|                                attach_image_filename: str, media_type: str, |                                attach_image_filename: str, media_type: str, | ||||||
|  | @ -2087,8 +2079,7 @@ def create_followers_only_post(base_dir: str, | ||||||
|     local_actor = local_actor_url(http_prefix, nickname, domain_full) |     local_actor = local_actor_url(http_prefix, nickname, domain_full) | ||||||
|     return _create_post_base(base_dir, nickname, domain, port, |     return _create_post_base(base_dir, nickname, domain, port, | ||||||
|                              local_actor + '/followers', None, |                              local_actor + '/followers', None, | ||||||
|                              http_prefix, content, followers_only, |                              http_prefix, content, save_to_file, | ||||||
|                              save_to_file, |  | ||||||
|                              client_to_server, comments_enabled, |                              client_to_server, comments_enabled, | ||||||
|                              attach_image_filename, media_type, |                              attach_image_filename, media_type, | ||||||
|                              image_description, city, |                              image_description, city, | ||||||
|  | @ -2139,8 +2130,7 @@ def get_mentioned_people(base_dir: str, http_prefix: str, | ||||||
| 
 | 
 | ||||||
| def create_direct_message_post(base_dir: str, | def create_direct_message_post(base_dir: str, | ||||||
|                                nickname: str, domain: str, port: int, |                                nickname: str, domain: str, port: int, | ||||||
|                                http_prefix: str, |                                http_prefix: str, content: str, | ||||||
|                                content: str, followers_only: bool, |  | ||||||
|                                save_to_file: bool, client_to_server: bool, |                                save_to_file: bool, client_to_server: bool, | ||||||
|                                comments_enabled: bool, |                                comments_enabled: bool, | ||||||
|                                attach_image_filename: str, media_type: str, |                                attach_image_filename: str, media_type: str, | ||||||
|  | @ -2170,7 +2160,7 @@ def create_direct_message_post(base_dir: str, | ||||||
|     message_json = \ |     message_json = \ | ||||||
|         _create_post_base(base_dir, nickname, domain, port, |         _create_post_base(base_dir, nickname, domain, port, | ||||||
|                           post_to, post_cc, |                           post_to, post_cc, | ||||||
|                           http_prefix, content, followers_only, save_to_file, |                           http_prefix, content, save_to_file, | ||||||
|                           client_to_server, comments_enabled, |                           client_to_server, comments_enabled, | ||||||
|                           attach_image_filename, media_type, |                           attach_image_filename, media_type, | ||||||
|                           image_description, city, |                           image_description, city, | ||||||
|  | @ -2197,7 +2187,7 @@ def create_direct_message_post(base_dir: str, | ||||||
| 
 | 
 | ||||||
| def create_report_post(base_dir: str, | def create_report_post(base_dir: str, | ||||||
|                        nickname: str, domain: str, port: int, http_prefix: str, |                        nickname: str, domain: str, port: int, http_prefix: str, | ||||||
|                        content: str, followers_only: bool, save_to_file: bool, |                        content: str, save_to_file: bool, | ||||||
|                        client_to_server: bool, comments_enabled: bool, |                        client_to_server: bool, comments_enabled: bool, | ||||||
|                        attach_image_filename: str, media_type: str, |                        attach_image_filename: str, media_type: str, | ||||||
|                        image_description: str, city: str, |                        image_description: str, city: str, | ||||||
|  | @ -2274,8 +2264,7 @@ def create_report_post(base_dir: str, | ||||||
|         post_json_object = \ |         post_json_object = \ | ||||||
|             _create_post_base(base_dir, nickname, domain, port, |             _create_post_base(base_dir, nickname, domain, port, | ||||||
|                               to_url, post_cc, |                               to_url, post_cc, | ||||||
|                               http_prefix, content, followers_only, |                               http_prefix, content, save_to_file, | ||||||
|                               save_to_file, |  | ||||||
|                               client_to_server, comments_enabled, |                               client_to_server, comments_enabled, | ||||||
|                               attach_image_filename, media_type, |                               attach_image_filename, media_type, | ||||||
|                               image_description, city, |                               image_description, city, | ||||||
|  | @ -2395,7 +2384,7 @@ def thread_send_post(session, post_json_str: str, federation_list: [], | ||||||
| def send_post(signing_priv_key_pem: str, project_version: str, | def send_post(signing_priv_key_pem: str, project_version: str, | ||||||
|               session, base_dir: str, nickname: str, domain: str, port: int, |               session, base_dir: str, nickname: str, domain: str, port: int, | ||||||
|               to_nickname: str, to_domain: str, to_port: int, cc_str: str, |               to_nickname: str, to_domain: str, to_port: int, cc_str: str, | ||||||
|               http_prefix: str, content: str, followers_only: bool, |               http_prefix: str, content: str, | ||||||
|               save_to_file: bool, client_to_server: bool, |               save_to_file: bool, client_to_server: bool, | ||||||
|               comments_enabled: bool, |               comments_enabled: bool, | ||||||
|               attach_image_filename: str, media_type: str, |               attach_image_filename: str, media_type: str, | ||||||
|  | @ -2463,7 +2452,7 @@ def send_post(signing_priv_key_pem: str, project_version: str, | ||||||
|     post_json_object = \ |     post_json_object = \ | ||||||
|         _create_post_base(base_dir, nickname, domain, port, |         _create_post_base(base_dir, nickname, domain, port, | ||||||
|                           to_person_id, cc_str, http_prefix, content, |                           to_person_id, cc_str, http_prefix, content, | ||||||
|                           followers_only, save_to_file, client_to_server, |                           save_to_file, client_to_server, | ||||||
|                           comments_enabled, |                           comments_enabled, | ||||||
|                           attach_image_filename, media_type, |                           attach_image_filename, media_type, | ||||||
|                           image_description, city, |                           image_description, city, | ||||||
|  | @ -2560,7 +2549,7 @@ def send_post_via_server(signing_priv_key_pem: str, project_version: str, | ||||||
|                          from_domain: str, from_port: int, |                          from_domain: str, from_port: int, | ||||||
|                          to_nickname: str, to_domain: str, to_port: int, |                          to_nickname: str, to_domain: str, to_port: int, | ||||||
|                          cc_str: str, |                          cc_str: str, | ||||||
|                          http_prefix: str, content: str, followers_only: bool, |                          http_prefix: str, content: str, | ||||||
|                          comments_enabled: bool, |                          comments_enabled: bool, | ||||||
|                          attach_image_filename: str, media_type: str, |                          attach_image_filename: str, media_type: str, | ||||||
|                          image_description: str, city: str, |                          image_description: str, city: str, | ||||||
|  | @ -2650,7 +2639,7 @@ def send_post_via_server(signing_priv_key_pem: str, project_version: str, | ||||||
|         _create_post_base(base_dir, |         _create_post_base(base_dir, | ||||||
|                           from_nickname, from_domain, from_port, |                           from_nickname, from_domain, from_port, | ||||||
|                           to_person_id, cc_str, http_prefix, content, |                           to_person_id, cc_str, http_prefix, content, | ||||||
|                           followers_only, save_to_file, client_to_server, |                           save_to_file, client_to_server, | ||||||
|                           comments_enabled, |                           comments_enabled, | ||||||
|                           attach_image_filename, media_type, |                           attach_image_filename, media_type, | ||||||
|                           image_description, city, |                           image_description, city, | ||||||
|  | @ -2762,8 +2751,7 @@ def _add_followers_to_public_post(post_json_object: {}) -> None: | ||||||
| def send_signed_json(post_json_object: {}, session, base_dir: str, | def send_signed_json(post_json_object: {}, session, base_dir: str, | ||||||
|                      nickname: str, domain: str, port: int, |                      nickname: str, domain: str, port: int, | ||||||
|                      to_nickname: str, to_domain: str, |                      to_nickname: str, to_domain: str, | ||||||
|                      to_port: int, cc_str: str, |                      to_port: int, http_prefix: str, | ||||||
|                      http_prefix: str, save_to_file: bool, |  | ||||||
|                      client_to_server: bool, federation_list: [], |                      client_to_server: bool, federation_list: [], | ||||||
|                      send_threads: [], post_log: [], cached_webfingers: {}, |                      send_threads: [], post_log: [], cached_webfingers: {}, | ||||||
|                      person_cache: {}, debug: bool, project_version: str, |                      person_cache: {}, debug: bool, project_version: str, | ||||||
|  | @ -3204,7 +3192,6 @@ def _send_to_named_addresses(server, session, session_onion, session_i2p, | ||||||
|                 to_port = 80 |                 to_port = 80 | ||||||
|                 curr_proxy_type = 'i2p' |                 curr_proxy_type = 'i2p' | ||||||
|                 session_type = 'i2p' |                 session_type = 'i2p' | ||||||
|         cc_list = [] |  | ||||||
| 
 | 
 | ||||||
|         if debug: |         if debug: | ||||||
|             to_domain_full = get_full_domain(to_domain, to_port) |             to_domain_full = get_full_domain(to_domain, to_port) | ||||||
|  | @ -3236,7 +3223,7 @@ def _send_to_named_addresses(server, session, session_onion, session_i2p, | ||||||
|         send_signed_json(post_json_object, curr_session, base_dir, |         send_signed_json(post_json_object, curr_session, base_dir, | ||||||
|                          nickname, from_domain, port, |                          nickname, from_domain, port, | ||||||
|                          to_nickname, to_domain, to_port, |                          to_nickname, to_domain, to_port, | ||||||
|                          cc_list, from_http_prefix, True, client_to_server, |                          from_http_prefix, client_to_server, | ||||||
|                          federation_list, |                          federation_list, | ||||||
|                          send_threads, post_log, cached_webfingers, |                          send_threads, post_log, cached_webfingers, | ||||||
|                          person_cache, debug, project_version, |                          person_cache, debug, project_version, | ||||||
|  | @ -3336,7 +3323,7 @@ def send_to_followers(server, session, session_onion, session_i2p, | ||||||
|     """sends a post to the followers of the given nickname |     """sends a post to the followers of the given nickname | ||||||
|     """ |     """ | ||||||
|     print('send_to_followers') |     print('send_to_followers') | ||||||
|     if not _post_is_addressed_to_followers(base_dir, nickname, domain, |     if not _post_is_addressed_to_followers(nickname, domain, | ||||||
|                                            port, http_prefix, |                                            port, http_prefix, | ||||||
|                                            post_json_object): |                                            post_json_object): | ||||||
|         if debug: |         if debug: | ||||||
|  | @ -3438,8 +3425,6 @@ def send_to_followers(server, session, session_onion, session_i2p, | ||||||
|             to_port = get_port_from_domain(to_domain) |             to_port = get_port_from_domain(to_domain) | ||||||
|             to_domain = remove_domain_port(to_domain) |             to_domain = remove_domain_port(to_domain) | ||||||
| 
 | 
 | ||||||
|         cc_list = '' |  | ||||||
| 
 |  | ||||||
|         # if we are sending to an onion domain and we |         # if we are sending to an onion domain and we | ||||||
|         # have an alt onion domain then use the alt |         # have an alt onion domain then use the alt | ||||||
|         from_domain = domain |         from_domain = domain | ||||||
|  | @ -3498,7 +3483,7 @@ def send_to_followers(server, session, session_onion, session_i2p, | ||||||
|             send_signed_json(post_json_object, curr_session, base_dir, |             send_signed_json(post_json_object, curr_session, base_dir, | ||||||
|                              nickname, from_domain, port, |                              nickname, from_domain, port, | ||||||
|                              to_nickname, to_domain, to_port, |                              to_nickname, to_domain, to_port, | ||||||
|                              cc_list, from_http_prefix, True, |                              from_http_prefix, | ||||||
|                              client_to_server, federation_list, |                              client_to_server, federation_list, | ||||||
|                              send_threads, post_log, cached_webfingers, |                              send_threads, post_log, cached_webfingers, | ||||||
|                              person_cache, debug, project_version, |                              person_cache, debug, project_version, | ||||||
|  | @ -3531,7 +3516,7 @@ def send_to_followers(server, session, session_onion, session_i2p, | ||||||
|                 send_signed_json(post_json_object, curr_session, base_dir, |                 send_signed_json(post_json_object, curr_session, base_dir, | ||||||
|                                  nickname, from_domain, port, |                                  nickname, from_domain, port, | ||||||
|                                  to_nickname, to_domain, to_port, |                                  to_nickname, to_domain, to_port, | ||||||
|                                  cc_list, from_http_prefix, True, |                                  from_http_prefix, | ||||||
|                                  client_to_server, federation_list, |                                  client_to_server, federation_list, | ||||||
|                                  send_threads, post_log, cached_webfingers, |                                  send_threads, post_log, cached_webfingers, | ||||||
|                                  person_cache, debug, project_version, |                                  person_cache, debug, project_version, | ||||||
|  | @ -3591,92 +3576,92 @@ def send_to_followers_thread(server, session, session_onion, session_i2p, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_inbox(recent_posts_cache: {}, | def create_inbox(recent_posts_cache: {}, | ||||||
|                  session, base_dir: str, nickname: str, domain: str, port: int, |                  base_dir: str, nickname: str, domain: str, port: int, | ||||||
|                  http_prefix: str, items_per_page: int, header_only: bool, |                  http_prefix: str, items_per_page: int, header_only: bool, | ||||||
|                  page_number: int) -> {}: |                  page_number: int) -> {}: | ||||||
|     return _create_box_indexed(recent_posts_cache, |     return _create_box_indexed(recent_posts_cache, | ||||||
|                                session, base_dir, 'inbox', |                                base_dir, 'inbox', | ||||||
|                                nickname, domain, port, http_prefix, |                                nickname, domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_bookmarks_timeline(session, base_dir: str, | def create_bookmarks_timeline(base_dir: str, | ||||||
|                               nickname: str, domain: str, |                               nickname: str, domain: str, | ||||||
|                               port: int, http_prefix: str, items_per_page: int, |                               port: int, http_prefix: str, items_per_page: int, | ||||||
|                               header_only: bool, page_number: int) -> {}: |                               header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'tlbookmarks', |     return _create_box_indexed({}, base_dir, 'tlbookmarks', | ||||||
|                                nickname, domain, |                                nickname, domain, | ||||||
|                                port, http_prefix, items_per_page, header_only, |                                port, http_prefix, items_per_page, header_only, | ||||||
|                                True, 0, False, 0, page_number) |                                True, 0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_dm_timeline(recent_posts_cache: {}, | def create_dm_timeline(recent_posts_cache: {}, | ||||||
|                        session, base_dir: str, nickname: str, domain: str, |                        base_dir: str, nickname: str, domain: str, | ||||||
|                        port: int, http_prefix: str, items_per_page: int, |                        port: int, http_prefix: str, items_per_page: int, | ||||||
|                        header_only: bool, page_number: int) -> {}: |                        header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed(recent_posts_cache, |     return _create_box_indexed(recent_posts_cache, | ||||||
|                                session, base_dir, 'dm', nickname, |                                base_dir, 'dm', nickname, | ||||||
|                                domain, port, http_prefix, items_per_page, |                                domain, port, http_prefix, items_per_page, | ||||||
|                                header_only, True, 0, False, 0, page_number) |                                header_only, True, 0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_replies_timeline(recent_posts_cache: {}, | def create_replies_timeline(recent_posts_cache: {}, | ||||||
|                             session, base_dir: str, nickname: str, domain: str, |                             base_dir: str, nickname: str, domain: str, | ||||||
|                             port: int, http_prefix: str, items_per_page: int, |                             port: int, http_prefix: str, items_per_page: int, | ||||||
|                             header_only: bool, page_number: int) -> {}: |                             header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed(recent_posts_cache, session, |     return _create_box_indexed(recent_posts_cache, | ||||||
|                                base_dir, 'tlreplies', |                                base_dir, 'tlreplies', | ||||||
|                                nickname, domain, port, http_prefix, |                                nickname, domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_blogs_timeline(session, base_dir: str, nickname: str, domain: str, | def create_blogs_timeline(base_dir: str, nickname: str, domain: str, | ||||||
|                           port: int, http_prefix: str, items_per_page: int, |                           port: int, http_prefix: str, items_per_page: int, | ||||||
|                           header_only: bool, page_number: int) -> {}: |                           header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'tlblogs', nickname, |     return _create_box_indexed({}, base_dir, 'tlblogs', nickname, | ||||||
|                                domain, port, http_prefix, |                                domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_features_timeline(session, base_dir: str, | def create_features_timeline(base_dir: str, | ||||||
|                              nickname: str, domain: str, |                              nickname: str, domain: str, | ||||||
|                              port: int, http_prefix: str, items_per_page: int, |                              port: int, http_prefix: str, items_per_page: int, | ||||||
|                              header_only: bool, page_number: int) -> {}: |                              header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'tlfeatures', nickname, |     return _create_box_indexed({}, base_dir, 'tlfeatures', nickname, | ||||||
|                                domain, port, http_prefix, |                                domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_media_timeline(session, base_dir: str, nickname: str, domain: str, | def create_media_timeline(base_dir: str, nickname: str, domain: str, | ||||||
|                           port: int, http_prefix: str, items_per_page: int, |                           port: int, http_prefix: str, items_per_page: int, | ||||||
|                           header_only: bool, page_number: int) -> {}: |                           header_only: bool, page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'tlmedia', nickname, |     return _create_box_indexed({}, base_dir, 'tlmedia', nickname, | ||||||
|                                domain, port, http_prefix, |                                domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_news_timeline(session, base_dir: str, nickname: str, domain: str, | def create_news_timeline(base_dir: str, domain: str, | ||||||
|                          port: int, http_prefix: str, items_per_page: int, |                          port: int, http_prefix: str, items_per_page: int, | ||||||
|                          header_only: bool, newswire_votes_threshold: int, |                          header_only: bool, newswire_votes_threshold: int, | ||||||
|                          positive_voting: bool, voting_time_mins: int, |                          positive_voting: bool, voting_time_mins: int, | ||||||
|                          page_number: int) -> {}: |                          page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'outbox', 'news', |     return _create_box_indexed({}, base_dir, 'outbox', 'news', | ||||||
|                                domain, port, http_prefix, |                                domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, True, |                                items_per_page, header_only, True, | ||||||
|                                newswire_votes_threshold, positive_voting, |                                newswire_votes_threshold, positive_voting, | ||||||
|                                voting_time_mins, page_number) |                                voting_time_mins, page_number) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_outbox(session, base_dir: str, nickname: str, domain: str, | def create_outbox(base_dir: str, nickname: str, domain: str, | ||||||
|                   port: int, http_prefix: str, |                   port: int, http_prefix: str, | ||||||
|                   items_per_page: int, header_only: bool, authorized: bool, |                   items_per_page: int, header_only: bool, authorized: bool, | ||||||
|                   page_number: int) -> {}: |                   page_number: int) -> {}: | ||||||
|     return _create_box_indexed({}, session, base_dir, 'outbox', |     return _create_box_indexed({}, base_dir, 'outbox', | ||||||
|                                nickname, domain, port, http_prefix, |                                nickname, domain, port, http_prefix, | ||||||
|                                items_per_page, header_only, authorized, |                                items_per_page, header_only, authorized, | ||||||
|                                0, False, 0, page_number) |                                0, False, 0, page_number) | ||||||
|  | @ -3725,12 +3710,10 @@ def create_moderation(base_dir: str, nickname: str, domain: str, port: int, | ||||||
|             if len(lines) > 0: |             if len(lines) > 0: | ||||||
|                 end_line_number = \ |                 end_line_number = \ | ||||||
|                     len(lines) - 1 - int(items_per_page * page_number) |                     len(lines) - 1 - int(items_per_page * page_number) | ||||||
|                 if end_line_number < 0: |                 end_line_number = max(end_line_number, 0) | ||||||
|                     end_line_number = 0 |  | ||||||
|                 start_line_number = \ |                 start_line_number = \ | ||||||
|                     len(lines) - 1 - int(items_per_page * (page_number - 1)) |                     len(lines) - 1 - int(items_per_page * (page_number - 1)) | ||||||
|                 if start_line_number < 0: |                 start_line_number = max(start_line_number, 0) | ||||||
|                     start_line_number = 0 |  | ||||||
|                 line_number = start_line_number |                 line_number = start_line_number | ||||||
|                 while line_number >= end_line_number: |                 while line_number >= end_line_number: | ||||||
|                     line_no_str = lines[line_number].strip('\n').strip('\r') |                     line_no_str = lines[line_number].strip('\n').strip('\r') | ||||||
|  | @ -3752,7 +3735,7 @@ def create_moderation(base_dir: str, nickname: str, domain: str, port: int, | ||||||
| 
 | 
 | ||||||
| def is_image_media(session, base_dir: str, http_prefix: str, | def is_image_media(session, base_dir: str, http_prefix: str, | ||||||
|                    nickname: str, domain: str, |                    nickname: str, domain: str, | ||||||
|                    post_json_object: {}, translate: {}, |                    post_json_object: {}, | ||||||
|                    yt_replace_domain: str, |                    yt_replace_domain: str, | ||||||
|                    twitter_replacement_domain: str, |                    twitter_replacement_domain: str, | ||||||
|                    allow_local_network_access: bool, |                    allow_local_network_access: bool, | ||||||
|  | @ -3768,7 +3751,7 @@ def is_image_media(session, base_dir: str, http_prefix: str, | ||||||
|         post_json_announce = \ |         post_json_announce = \ | ||||||
|             download_announce(session, base_dir, http_prefix, |             download_announce(session, base_dir, http_prefix, | ||||||
|                               nickname, domain, post_json_object, |                               nickname, domain, post_json_object, | ||||||
|                               __version__, translate, |                               __version__, | ||||||
|                               yt_replace_domain, |                               yt_replace_domain, | ||||||
|                               twitter_replacement_domain, |                               twitter_replacement_domain, | ||||||
|                               allow_local_network_access, |                               allow_local_network_access, | ||||||
|  | @ -3957,7 +3940,7 @@ def _passed_newswire_voting(newswire_votes_threshold: int, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _create_box_indexed(recent_posts_cache: {}, | def _create_box_indexed(recent_posts_cache: {}, | ||||||
|                         session, base_dir: str, boxname: str, |                         base_dir: str, boxname: str, | ||||||
|                         nickname: str, domain: str, port: int, |                         nickname: str, domain: str, port: int, | ||||||
|                         http_prefix: str, |                         http_prefix: str, | ||||||
|                         items_per_page: int, header_only: bool, |                         items_per_page: int, header_only: bool, | ||||||
|  | @ -3994,8 +3977,7 @@ def _create_box_indexed(recent_posts_cache: {}, | ||||||
| 
 | 
 | ||||||
|     page_str = '?page=true' |     page_str = '?page=true' | ||||||
|     if page_number: |     if page_number: | ||||||
|         if page_number < 1: |         page_number = max(page_number, 1) | ||||||
|             page_number = 1 |  | ||||||
|         try: |         try: | ||||||
|             page_str = '?page=' + str(page_number) |             page_str = '?page=' + str(page_number) | ||||||
|         except BaseException: |         except BaseException: | ||||||
|  | @ -4131,8 +4113,7 @@ def _create_box_indexed(recent_posts_cache: {}, | ||||||
|     # Generate first and last entries within header |     # Generate first and last entries within header | ||||||
|     if total_posts_count > 0: |     if total_posts_count > 0: | ||||||
|         last_page = int(total_posts_count / items_per_page) |         last_page = int(total_posts_count / items_per_page) | ||||||
|         if last_page < 1: |         last_page = max(last_page, 1) | ||||||
|             last_page = 1 |  | ||||||
|         box_header['last'] = \ |         box_header['last'] = \ | ||||||
|             local_actor_url(http_prefix, nickname, domain) + \ |             local_actor_url(http_prefix, nickname, domain) + \ | ||||||
|             '/' + boxname + '?page=' + str(last_page) |             '/' + boxname + '?page=' + str(last_page) | ||||||
|  | @ -4442,8 +4423,7 @@ def get_public_posts_of_person(base_dir: str, nickname: str, domain: str, | ||||||
|     max_emoji = 10 |     max_emoji = 10 | ||||||
|     max_attachments = 5 |     max_attachments = 5 | ||||||
|     _get_posts(session, person_url, 30, max_mentions, max_emoji, |     _get_posts(session, person_url, 30, max_mentions, max_emoji, | ||||||
|                max_attachments, federation_list, |                max_attachments, federation_list, raw, simple, debug, | ||||||
|                person_cache, raw, simple, debug, |  | ||||||
|                project_version, http_prefix, origin_domain, system_language, |                project_version, http_prefix, origin_domain, system_language, | ||||||
|                signing_priv_key_pem) |                signing_priv_key_pem) | ||||||
| 
 | 
 | ||||||
|  | @ -4463,7 +4443,6 @@ def get_public_post_domains(session, base_dir: str, nickname: str, domain: str, | ||||||
|         return domain_list |         return domain_list | ||||||
|     person_cache = {} |     person_cache = {} | ||||||
|     cached_webfingers = {} |     cached_webfingers = {} | ||||||
|     federation_list = [] |  | ||||||
| 
 | 
 | ||||||
|     domain_full = get_full_domain(domain, port) |     domain_full = get_full_domain(domain, port) | ||||||
|     handle = http_prefix + "://" + domain_full + "/@" + nickname |     handle = http_prefix + "://" + domain_full + "/@" + nickname | ||||||
|  | @ -4486,13 +4465,8 @@ def get_public_post_domains(session, base_dir: str, nickname: str, domain: str, | ||||||
|                             project_version, http_prefix, |                             project_version, http_prefix, | ||||||
|                             nickname, domain, 'outbox', |                             nickname, domain, 'outbox', | ||||||
|                             92522) |                             92522) | ||||||
|     max_mentions = 99 |  | ||||||
|     max_emoji = 99 |  | ||||||
|     max_attachments = 5 |  | ||||||
|     post_domains = \ |     post_domains = \ | ||||||
|         get_post_domains(session, person_url, 64, max_mentions, max_emoji, |         get_post_domains(session, person_url, 64, debug, | ||||||
|                          max_attachments, federation_list, |  | ||||||
|                          person_cache, debug, |  | ||||||
|                          project_version, http_prefix, domain, |                          project_version, http_prefix, domain, | ||||||
|                          word_frequency, domain_list, system_language, |                          word_frequency, domain_list, system_language, | ||||||
|                          signing_priv_key_pem) |                          signing_priv_key_pem) | ||||||
|  | @ -4588,10 +4562,7 @@ def get_public_post_info(session, base_dir: str, nickname: str, domain: str, | ||||||
|     max_attachments = 5 |     max_attachments = 5 | ||||||
|     max_posts = 64 |     max_posts = 64 | ||||||
|     post_domains = \ |     post_domains = \ | ||||||
|         get_post_domains(session, person_url, max_posts, |         get_post_domains(session, person_url, max_posts, debug, | ||||||
|                          max_mentions, max_emoji, |  | ||||||
|                          max_attachments, federation_list, |  | ||||||
|                          person_cache, debug, |  | ||||||
|                          project_version, http_prefix, domain, |                          project_version, http_prefix, domain, | ||||||
|                          word_frequency, [], system_language, |                          word_frequency, [], system_language, | ||||||
|                          signing_priv_key_pem) |                          signing_priv_key_pem) | ||||||
|  | @ -4834,7 +4805,6 @@ def _reject_announce(announce_filename: str, | ||||||
| def download_announce(session, base_dir: str, http_prefix: str, | def download_announce(session, base_dir: str, http_prefix: str, | ||||||
|                       nickname: str, domain: str, |                       nickname: str, domain: str, | ||||||
|                       post_json_object: {}, project_version: str, |                       post_json_object: {}, project_version: str, | ||||||
|                       translate: {}, |  | ||||||
|                       yt_replace_domain: str, |                       yt_replace_domain: str, | ||||||
|                       twitter_replacement_domain: str, |                       twitter_replacement_domain: str, | ||||||
|                       allow_local_network_access: bool, |                       allow_local_network_access: bool, | ||||||
|  | @ -5501,8 +5471,7 @@ def post_is_muted(base_dir: str, nickname: str, domain: str, | ||||||
|     return is_muted |     return is_muted | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def c2s_box_json(base_dir: str, session, | def c2s_box_json(session, nickname: str, password: str, | ||||||
|                  nickname: str, password: str, |  | ||||||
|                  domain: str, port: int, |                  domain: str, port: int, | ||||||
|                  http_prefix: str, |                  http_prefix: str, | ||||||
|                  box_name: str, page_number: int, |                  box_name: str, page_number: int, | ||||||
|  |  | ||||||
|  | @ -138,8 +138,7 @@ def _reactionpost(recent_posts_cache: {}, | ||||||
|                          nickname, domain, port, |                          nickname, domain, port, | ||||||
|                          reaction_post_nickname, |                          reaction_post_nickname, | ||||||
|                          reaction_post_domain, reaction_post_port, |                          reaction_post_domain, reaction_post_port, | ||||||
|                          'https://www.w3.org/ns/activitystreams#Public', |                          http_prefix, client_to_server, federation_list, | ||||||
|                          http_prefix, True, client_to_server, federation_list, |  | ||||||
|                          send_threads, post_log, cached_webfingers, |                          send_threads, post_log, cached_webfingers, | ||||||
|                          person_cache, |                          person_cache, | ||||||
|                          debug, project_version, None, group_account, |                          debug, project_version, None, group_account, | ||||||
|  |  | ||||||
|  | @ -33,10 +33,6 @@ def instances_graph(base_dir: str, handles: str, | ||||||
| 
 | 
 | ||||||
|     person_cache = {} |     person_cache = {} | ||||||
|     cached_webfingers = {} |     cached_webfingers = {} | ||||||
|     federation_list = [] |  | ||||||
|     max_mentions = 99 |  | ||||||
|     max_emoji = 99 |  | ||||||
|     max_attachments = 5 |  | ||||||
| 
 | 
 | ||||||
|     person_handles = handles.split(',') |     person_handles = handles.split(',') | ||||||
|     for handle in person_handles: |     for handle in person_handles: | ||||||
|  | @ -74,9 +70,7 @@ def instances_graph(base_dir: str, handles: str, | ||||||
|                                 27261) |                                 27261) | ||||||
|         word_frequency = {} |         word_frequency = {} | ||||||
|         post_domains = \ |         post_domains = \ | ||||||
|             get_post_domains(session, person_url, 64, max_mentions, max_emoji, |             get_post_domains(session, person_url, 64, debug, | ||||||
|                              max_attachments, federation_list, |  | ||||||
|                              person_cache, debug, |  | ||||||
|                              project_version, http_prefix, domain, |                              project_version, http_prefix, domain, | ||||||
|                              word_frequency, [], system_language, |                              word_frequency, [], system_language, | ||||||
|                              signing_priv_key_pem) |                              signing_priv_key_pem) | ||||||
|  |  | ||||||
							
								
								
									
										42
									
								
								tests.py
								
								
								
								
							
							
						
						
									
										42
									
								
								tests.py
								
								
								
								
							|  | @ -741,7 +741,6 @@ def create_server_alice(path: str, domain: str, port: int, | ||||||
|         add_follower_of_person(path, nickname, domain, 'bob', bob_address, |         add_follower_of_person(path, nickname, domain, 'bob', bob_address, | ||||||
|                                federation_list, False, False) |                                federation_list, False, False) | ||||||
|     if hasPosts: |     if hasPosts: | ||||||
|         test_followers_only = False |  | ||||||
|         test_save_to_file = True |         test_save_to_file = True | ||||||
|         client_to_server = False |         client_to_server = False | ||||||
|         test_comments_enabled = True |         test_comments_enabled = True | ||||||
|  | @ -762,7 +761,6 @@ def create_server_alice(path: str, domain: str, port: int, | ||||||
|         content_license_url = 'https://creativecommons.org/licenses/by/4.0' |         content_license_url = 'https://creativecommons.org/licenses/by/4.0' | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "No wise fish would go anywhere without a porpoise", |                            "No wise fish would go anywhere without a porpoise", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -778,7 +776,6 @@ def create_server_alice(path: str, domain: str, port: int, | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "Curiouser and curiouser!", |                            "Curiouser and curiouser!", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -795,7 +792,6 @@ def create_server_alice(path: str, domain: str, port: int, | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "In the gardens of memory, in the palace " + |                            "In the gardens of memory, in the palace " + | ||||||
|                            "of dreams, that is where you and I shall meet", |                            "of dreams, that is where you and I shall meet", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -905,7 +901,6 @@ def create_server_bob(path: str, domain: str, port: int, | ||||||
|                                'alice', alice_address, federation_list, |                                'alice', alice_address, federation_list, | ||||||
|                                False, False) |                                False, False) | ||||||
|     if hasPosts: |     if hasPosts: | ||||||
|         test_followers_only = False |  | ||||||
|         test_save_to_file = True |         test_save_to_file = True | ||||||
|         test_comments_enabled = True |         test_comments_enabled = True | ||||||
|         test_attach_image_filename = None |         test_attach_image_filename = None | ||||||
|  | @ -925,7 +920,6 @@ def create_server_bob(path: str, domain: str, port: int, | ||||||
|         content_license_url = 'https://creativecommons.org/licenses/by/4.0' |         content_license_url = 'https://creativecommons.org/licenses/by/4.0' | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "It's your life, live it your way.", |                            "It's your life, live it your way.", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -942,7 +936,6 @@ def create_server_bob(path: str, domain: str, port: int, | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "One of the things I've realised is that " + |                            "One of the things I've realised is that " + | ||||||
|                            "I am very simple", |                            "I am very simple", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -958,7 +951,6 @@ def create_server_bob(path: str, domain: str, port: int, | ||||||
|                            languages_understood) |                            languages_understood) | ||||||
|         create_public_post(path, nickname, domain, port, http_prefix, |         create_public_post(path, nickname, domain, port, http_prefix, | ||||||
|                            "Quantum physics is a bit of a passion of mine", |                            "Quantum physics is a bit of a passion of mine", | ||||||
|                            test_followers_only, |  | ||||||
|                            test_save_to_file, |                            test_save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            test_comments_enabled, |                            test_comments_enabled, | ||||||
|  | @ -1275,7 +1267,6 @@ def test_post_message_between_servers(base_dir: str) -> None: | ||||||
|     in_reply_to_atom_uri = None |     in_reply_to_atom_uri = None | ||||||
|     subject = None |     subject = None | ||||||
|     alice_post_log = [] |     alice_post_log = [] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     cc_url = None |     cc_url = None | ||||||
|  | @ -1304,7 +1295,6 @@ def test_post_message_between_servers(base_dir: str) -> None: | ||||||
|                   'bob', bob_domain, bob_port, cc_url, http_prefix, |                   'bob', bob_domain, bob_port, cc_url, http_prefix, | ||||||
|                   'Why is a mouse when it spins? ' + |                   'Why is a mouse when it spins? ' + | ||||||
|                   'यह एक परीक्षण है #sillyquestion', |                   'यह एक परीक्षण है #sillyquestion', | ||||||
|                   followers_only, |  | ||||||
|                   save_to_file, client_to_server, True, |                   save_to_file, client_to_server, True, | ||||||
|                   attached_image_filename, media_type, |                   attached_image_filename, media_type, | ||||||
|                   attached_image_description, city, federation_list, |                   attached_image_description, city, federation_list, | ||||||
|  | @ -1613,7 +1603,6 @@ def test_follow_between_servers(base_dir: str) -> None: | ||||||
|     in_reply_to_atom_uri = None |     in_reply_to_atom_uri = None | ||||||
|     subject = None |     subject = None | ||||||
|     alice_post_log = [] |     alice_post_log = [] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     cc_url = None |     cc_url = None | ||||||
|  | @ -1675,7 +1664,7 @@ def test_follow_between_servers(base_dir: str) -> None: | ||||||
|         send_post(signing_priv_key_pem, __version__, |         send_post(signing_priv_key_pem, __version__, | ||||||
|                   session_alice, alice_dir, 'alice', alice_domain, alice_port, |                   session_alice, alice_dir, 'alice', alice_domain, alice_port, | ||||||
|                   'bob', bob_domain, bob_port, cc_url, |                   'bob', bob_domain, bob_port, cc_url, | ||||||
|                   http_prefix, 'Alice message', followers_only, save_to_file, |                   http_prefix, 'Alice message', save_to_file, | ||||||
|                   client_to_server, True, |                   client_to_server, True, | ||||||
|                   None, None, None, city, federation_list, |                   None, None, None, city, federation_list, | ||||||
|                   alice_send_threads, alice_post_log, alice_cached_webfingers, |                   alice_send_threads, alice_post_log, alice_cached_webfingers, | ||||||
|  | @ -1836,7 +1825,6 @@ def test_shared_items_federation(base_dir: str) -> None: | ||||||
|     in_reply_to_atom_uri = None |     in_reply_to_atom_uri = None | ||||||
|     subject = None |     subject = None | ||||||
|     alice_post_log = [] |     alice_post_log = [] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     cc_url = None |     cc_url = None | ||||||
|  | @ -2039,7 +2027,7 @@ def test_shared_items_federation(base_dir: str) -> None: | ||||||
|         send_post(signing_priv_key_pem, __version__, |         send_post(signing_priv_key_pem, __version__, | ||||||
|                   session_alice, alice_dir, 'alice', alice_domain, alice_port, |                   session_alice, alice_dir, 'alice', alice_domain, alice_port, | ||||||
|                   'bob', bob_domain, bob_port, cc_url, |                   'bob', bob_domain, bob_port, cc_url, | ||||||
|                   http_prefix, 'Alice message', followers_only, save_to_file, |                   http_prefix, 'Alice message', save_to_file, | ||||||
|                   client_to_server, True, |                   client_to_server, True, | ||||||
|                   None, None, None, city, federation_list, |                   None, None, None, city, federation_list, | ||||||
|                   alice_send_threads, alice_post_log, alice_cached_webfingers, |                   alice_send_threads, alice_post_log, alice_cached_webfingers, | ||||||
|  | @ -2286,7 +2274,6 @@ def test_group_follow(base_dir: str) -> None: | ||||||
|     in_reply_to_atom_uri = None |     in_reply_to_atom_uri = None | ||||||
|     subject = None |     subject = None | ||||||
|     alice_post_log = [] |     alice_post_log = [] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     cc_url = None |     cc_url = None | ||||||
|  | @ -2365,7 +2352,6 @@ def test_group_follow(base_dir: str) -> None: | ||||||
|     in_reply_to_atom_uri = None |     in_reply_to_atom_uri = None | ||||||
|     subject = None |     subject = None | ||||||
|     bob_post_log = [] |     bob_post_log = [] | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     cc_url = None |     cc_url = None | ||||||
|  | @ -2470,7 +2456,7 @@ def test_group_follow(base_dir: str) -> None: | ||||||
|         send_post(signing_priv_key_pem, __version__, |         send_post(signing_priv_key_pem, __version__, | ||||||
|                   session_alice, alice_dir, 'alice', alice_domain, alice_port, |                   session_alice, alice_dir, 'alice', alice_domain, alice_port, | ||||||
|                   'testgroup', testgroup_domain, testgroupPort, cc_url, |                   'testgroup', testgroup_domain, testgroupPort, cc_url, | ||||||
|                   http_prefix, "Alice group message", followers_only, |                   http_prefix, "Alice group message", | ||||||
|                   save_to_file, client_to_server, True, |                   save_to_file, client_to_server, True, | ||||||
|                   None, None, None, city, federation_list, |                   None, None, None, city, federation_list, | ||||||
|                   alice_send_threads, alice_post_log, alice_cached_webfingers, |                   alice_send_threads, alice_post_log, alice_cached_webfingers, | ||||||
|  | @ -2838,7 +2824,6 @@ def _test_create_person_account(base_dir: str): | ||||||
|     test_event_end_time = None |     test_event_end_time = None | ||||||
|     test_location = None |     test_location = None | ||||||
|     test_is_article = False |     test_is_article = False | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = True |     save_to_file = True | ||||||
|     comments_enabled = True |     comments_enabled = True | ||||||
|     attach_image_filename = None |     attach_image_filename = None | ||||||
|  | @ -2853,7 +2838,7 @@ def _test_create_person_account(base_dir: str): | ||||||
|         "anything which challenges middle class sensibilities or incomes." |         "anything which challenges middle class sensibilities or incomes." | ||||||
|     test_post_json = \ |     test_post_json = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            comments_enabled, attach_image_filename, media_type, |                            comments_enabled, attach_image_filename, media_type, | ||||||
|                            'Not suitable for Vogons', 'London, England', |                            'Not suitable for Vogons', 'London, England', | ||||||
|  | @ -2879,7 +2864,7 @@ def _test_create_person_account(base_dir: str): | ||||||
|         'then email would be somequitelongword.\nAnotherlongwordhere sentence.' |         'then email would be somequitelongword.\nAnotherlongwordhere sentence.' | ||||||
|     test_post_json = \ |     test_post_json = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, |                            client_to_server, | ||||||
|                            comments_enabled, attach_image_filename, media_type, |                            comments_enabled, attach_image_filename, media_type, | ||||||
|                            'Not suitable for Vogons', 'London, England', |                            'Not suitable for Vogons', 'London, England', | ||||||
|  | @ -3052,7 +3037,6 @@ def test_client_to_server(base_dir: str): | ||||||
|     print('EVENT: Alice sends to Bob via c2s') |     print('EVENT: Alice sends to Bob via c2s') | ||||||
| 
 | 
 | ||||||
|     session_alice = create_session(proxy_type) |     session_alice = create_session(proxy_type) | ||||||
|     followers_only = False |  | ||||||
|     attached_image_filename = base_dir + '/img/logo.png' |     attached_image_filename = base_dir + '/img/logo.png' | ||||||
|     media_type = get_attachment_media_type(attached_image_filename) |     media_type = get_attachment_media_type(attached_image_filename) | ||||||
|     attached_image_description = 'Logo' |     attached_image_description = 'Logo' | ||||||
|  | @ -3096,8 +3080,7 @@ def test_client_to_server(base_dir: str): | ||||||
|                              alice_domain, alice_port, |                              alice_domain, alice_port, | ||||||
|                              'bob', bob_domain, bob_port, None, |                              'bob', bob_domain, bob_port, None, | ||||||
|                              http_prefix, 'Sent from my ActivityPub client', |                              http_prefix, 'Sent from my ActivityPub client', | ||||||
|                              followers_only, True, |                              True, attached_image_filename, media_type, | ||||||
|                              attached_image_filename, media_type, |  | ||||||
|                              attached_image_description, city, |                              attached_image_description, city, | ||||||
|                              cached_webfingers, person_cache, is_article, |                              cached_webfingers, person_cache, is_article, | ||||||
|                              system_language, languages_understood, |                              system_language, languages_understood, | ||||||
|  | @ -4643,7 +4626,6 @@ def _test_reply_to_public_post(base_dir: str) -> None: | ||||||
|     post_id = \ |     post_id = \ | ||||||
|         http_prefix + '://rat.site/users/ninjarodent/statuses/63746173435' |         http_prefix + '://rat.site/users/ninjarodent/statuses/63746173435' | ||||||
|     content = "@ninjarodent@rat.site This is a test." |     content = "@ninjarodent@rat.site This is a test." | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = False |     save_to_file = False | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     comments_enabled = True |     comments_enabled = True | ||||||
|  | @ -4665,7 +4647,7 @@ def _test_reply_to_public_post(base_dir: str) -> None: | ||||||
|     content_license_url = 'https://creativecommons.org/licenses/by/4.0' |     content_license_url = 'https://creativecommons.org/licenses/by/4.0' | ||||||
|     reply = \ |     reply = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, comments_enabled, |                            client_to_server, comments_enabled, | ||||||
|                            attach_image_filename, media_type, |                            attach_image_filename, media_type, | ||||||
|                            image_description, city, test_in_reply_to, |                            image_description, city, test_in_reply_to, | ||||||
|  | @ -5574,7 +5556,6 @@ def _test_links_within_post(base_dir: str) -> None: | ||||||
|     http_prefix = 'https' |     http_prefix = 'https' | ||||||
|     content = 'This is a test post with links.\n\n' + \ |     content = 'This is a test post with links.\n\n' + \ | ||||||
|         'ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v4/\n\nhttps://libreserver.org' |         'ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v4/\n\nhttps://libreserver.org' | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = False |     save_to_file = False | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     comments_enabled = True |     comments_enabled = True | ||||||
|  | @ -5597,7 +5578,7 @@ def _test_links_within_post(base_dir: str) -> None: | ||||||
| 
 | 
 | ||||||
|     post_json_object = \ |     post_json_object = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, comments_enabled, |                            client_to_server, comments_enabled, | ||||||
|                            attach_image_filename, media_type, |                            attach_image_filename, media_type, | ||||||
|                            image_description, city, |                            image_description, city, | ||||||
|  | @ -5641,7 +5622,7 @@ def _test_links_within_post(base_dir: str) -> None: | ||||||
|     post_json_object = \ |     post_json_object = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, |                            content, | ||||||
|                            False, False, |                            False, | ||||||
|                            False, True, |                            False, True, | ||||||
|                            None, None, |                            None, None, | ||||||
|                            False, None, |                            False, None, | ||||||
|  | @ -6408,7 +6389,7 @@ def _test_set_actor_language(): | ||||||
|     actor_json = { |     actor_json = { | ||||||
|         "attachment": [] |         "attachment": [] | ||||||
|     } |     } | ||||||
|     set_actor_languages(None, actor_json, 'es, fr, en') |     set_actor_languages(actor_json, 'es, fr, en') | ||||||
|     assert len(actor_json['attachment']) == 1 |     assert len(actor_json['attachment']) == 1 | ||||||
|     assert actor_json['attachment'][0]['name'] == 'Languages' |     assert actor_json['attachment'][0]['name'] == 'Languages' | ||||||
|     assert actor_json['attachment'][0]['type'] == 'PropertyValue' |     assert actor_json['attachment'][0]['type'] == 'PropertyValue' | ||||||
|  | @ -6590,7 +6571,6 @@ def _test_can_replyto(base_dir: str) -> None: | ||||||
|     http_prefix = 'https' |     http_prefix = 'https' | ||||||
|     content = 'This is a test post with links.\n\n' + \ |     content = 'This is a test post with links.\n\n' + \ | ||||||
|         'ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v4/\n\nhttps://libreserver.org' |         'ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v4/\n\nhttps://libreserver.org' | ||||||
|     followers_only = False |  | ||||||
|     save_to_file = False |     save_to_file = False | ||||||
|     client_to_server = False |     client_to_server = False | ||||||
|     comments_enabled = True |     comments_enabled = True | ||||||
|  | @ -6613,7 +6593,7 @@ def _test_can_replyto(base_dir: str) -> None: | ||||||
| 
 | 
 | ||||||
|     post_json_object = \ |     post_json_object = \ | ||||||
|         create_public_post(base_dir, nickname, domain, port, http_prefix, |         create_public_post(base_dir, nickname, domain, port, http_prefix, | ||||||
|                            content, followers_only, save_to_file, |                            content, save_to_file, | ||||||
|                            client_to_server, comments_enabled, |                            client_to_server, comments_enabled, | ||||||
|                            attach_image_filename, media_type, |                            attach_image_filename, media_type, | ||||||
|                            image_description, city, |                            image_description, city, | ||||||
|  |  | ||||||
|  | @ -813,8 +813,7 @@ def _get_bookmark_icon_html(nickname: str, domain_full: str, | ||||||
|     return bookmark_str |     return bookmark_str | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_reaction_icon_html(nickname: str, domain_full: str, | def _get_reaction_icon_html(nickname: str, post_json_object: {}, | ||||||
|                             post_json_object: {}, |  | ||||||
|                             is_moderation_post: bool, |                             is_moderation_post: bool, | ||||||
|                             show_reaction_button: bool, |                             show_reaction_button: bool, | ||||||
|                             translate: {}, |                             translate: {}, | ||||||
|  | @ -1676,7 +1675,7 @@ def individual_post_as_html(signing_priv_key_pem: str, | ||||||
|         post_json_announce = \ |         post_json_announce = \ | ||||||
|             download_announce(session, base_dir, http_prefix, |             download_announce(session, base_dir, http_prefix, | ||||||
|                               nickname, domain, post_json_object, |                               nickname, domain, post_json_object, | ||||||
|                               project_version, translate, |                               project_version, | ||||||
|                               yt_replace_domain, |                               yt_replace_domain, | ||||||
|                               twitter_replacement_domain, |                               twitter_replacement_domain, | ||||||
|                               allow_local_network_access, |                               allow_local_network_access, | ||||||
|  | @ -1900,8 +1899,7 @@ def individual_post_as_html(signing_priv_key_pem: str, | ||||||
|     _log_post_timing(enable_timing_log, post_start_time, '12.9') |     _log_post_timing(enable_timing_log, post_start_time, '12.9') | ||||||
| 
 | 
 | ||||||
|     reaction_str = \ |     reaction_str = \ | ||||||
|         _get_reaction_icon_html(nickname, domain_full, |         _get_reaction_icon_html(nickname, post_json_object, | ||||||
|                                 post_json_object, |  | ||||||
|                                 is_moderation_post, |                                 is_moderation_post, | ||||||
|                                 show_reaction_button, |                                 show_reaction_button, | ||||||
|                                 translate, |                                 translate, | ||||||
|  | @ -2135,7 +2133,7 @@ def individual_post_as_html(signing_priv_key_pem: str, | ||||||
|         content_str = add_embedded_elements(translate, content_str, |         content_str = add_embedded_elements(translate, content_str, | ||||||
|                                             peertube_instances) |                                             peertube_instances) | ||||||
|         content_str = insert_question(base_dir, translate, |         content_str = insert_question(base_dir, translate, | ||||||
|                                       nickname, domain, port, |                                       nickname, domain, | ||||||
|                                       content_str, post_json_object, |                                       content_str, post_json_object, | ||||||
|                                       page_number) |                                       page_number) | ||||||
|     else: |     else: | ||||||
|  | @ -2157,7 +2155,7 @@ def individual_post_as_html(signing_priv_key_pem: str, | ||||||
|             cw_content_str = add_embedded_elements(translate, cw_content_str, |             cw_content_str = add_embedded_elements(translate, cw_content_str, | ||||||
|                                                    peertube_instances) |                                                    peertube_instances) | ||||||
|             cw_content_str = \ |             cw_content_str = \ | ||||||
|                 insert_question(base_dir, translate, nickname, domain, port, |                 insert_question(base_dir, translate, nickname, domain, | ||||||
|                                 cw_content_str, post_json_object, page_number) |                                 cw_content_str, post_json_object, page_number) | ||||||
|             cw_content_str = \ |             cw_content_str = \ | ||||||
|                 switch_words(base_dir, nickname, domain, cw_content_str) |                 switch_words(base_dir, nickname, domain, cw_content_str) | ||||||
|  | @ -2274,16 +2272,15 @@ def individual_post_as_html(signing_priv_key_pem: str, | ||||||
|     return post_html |     return post_html | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_individual_post(css_cache: {}, | def html_individual_post(recent_posts_cache: {}, max_recent_posts: int, | ||||||
|                          recent_posts_cache: {}, max_recent_posts: int, |  | ||||||
|                          translate: {}, |                          translate: {}, | ||||||
|                          base_dir: str, session, cached_webfingers: {}, |                          base_dir: str, session, cached_webfingers: {}, | ||||||
|                          person_cache: {}, |                          person_cache: {}, | ||||||
|                          nickname: str, domain: str, port: int, |                          nickname: str, domain: str, port: int, | ||||||
|                          authorized: bool, |                          authorized: bool, | ||||||
|                          post_json_object: {}, http_prefix: str, |                          post_json_object: {}, http_prefix: str, | ||||||
|                          project_version: str, likedBy: str, |                          project_version: str, liked_by: str, | ||||||
|                          reactBy: str, reactEmoji: str, |                          react_by: str, react_emoji: str, | ||||||
|                          yt_replace_domain: str, |                          yt_replace_domain: str, | ||||||
|                          twitter_replacement_domain: str, |                          twitter_replacement_domain: str, | ||||||
|                          show_published_date_only: bool, |                          show_published_date_only: bool, | ||||||
|  | @ -2301,13 +2298,13 @@ def html_individual_post(css_cache: {}, | ||||||
|     by_str = '' |     by_str = '' | ||||||
|     by_text = '' |     by_text = '' | ||||||
|     by_text_extra = '' |     by_text_extra = '' | ||||||
|     if likedBy: |     if liked_by: | ||||||
|         by_str = likedBy |         by_str = liked_by | ||||||
|         by_text = 'Liked by' |         by_text = 'Liked by' | ||||||
|     elif reactBy and reactEmoji: |     elif react_by and react_emoji: | ||||||
|         by_str = reactBy |         by_str = react_by | ||||||
|         by_text = 'Reaction by' |         by_text = 'Reaction by' | ||||||
|         by_text_extra = ' ' + reactEmoji |         by_text_extra = ' ' + react_emoji | ||||||
| 
 | 
 | ||||||
|     if by_str: |     if by_str: | ||||||
|         by_str_nickname = get_nickname_from_actor(by_str) |         by_str_nickname = get_nickname_from_actor(by_str) | ||||||
|  | @ -2456,8 +2453,7 @@ def html_individual_post(css_cache: {}, | ||||||
|     return header_str + post_str + html_footer() |     return header_str + post_str + html_footer() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_post_replies(css_cache: {}, | def html_post_replies(recent_posts_cache: {}, max_recent_posts: int, | ||||||
|                       recent_posts_cache: {}, max_recent_posts: int, |  | ||||||
|                       translate: {}, base_dir: str, |                       translate: {}, base_dir: str, | ||||||
|                       session, cached_webfingers: {}, person_cache: {}, |                       session, cached_webfingers: {}, person_cache: {}, | ||||||
|                       nickname: str, domain: str, port: int, replies_json: {}, |                       nickname: str, domain: str, port: int, replies_json: {}, | ||||||
|  | @ -2511,8 +2507,7 @@ def html_post_replies(css_cache: {}, | ||||||
|     return header_str + replies_str + html_footer() |     return header_str + replies_str + html_footer() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_emoji_reaction_picker(css_cache: {}, | def html_emoji_reaction_picker(recent_posts_cache: {}, max_recent_posts: int, | ||||||
|                                recent_posts_cache: {}, max_recent_posts: int, |  | ||||||
|                                translate: {}, |                                translate: {}, | ||||||
|                                base_dir: str, session, cached_webfingers: {}, |                                base_dir: str, session, cached_webfingers: {}, | ||||||
|                                person_cache: {}, |                                person_cache: {}, | ||||||
|  |  | ||||||
|  | @ -126,8 +126,7 @@ def _valid_profile_preview_post(post_json_object: {}, | ||||||
|     return True, post_json_object |     return True, post_json_object | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_profile_after_search(css_cache: {}, | def html_profile_after_search(recent_posts_cache: {}, max_recent_posts: int, | ||||||
|                               recent_posts_cache: {}, max_recent_posts: int, |  | ||||||
|                               translate: {}, |                               translate: {}, | ||||||
|                               base_dir: str, path: str, http_prefix: str, |                               base_dir: str, path: str, http_prefix: str, | ||||||
|                               nickname: str, domain: str, port: int, |                               nickname: str, domain: str, port: int, | ||||||
|  | @ -283,8 +282,7 @@ def html_profile_after_search(css_cache: {}, | ||||||
|             joined_date = profile_json['published'] |             joined_date = profile_json['published'] | ||||||
| 
 | 
 | ||||||
|     profile_str = \ |     profile_str = \ | ||||||
|         _get_profile_header_after_search(base_dir, |         _get_profile_header_after_search(nickname, default_timeline, | ||||||
|                                          nickname, default_timeline, |  | ||||||
|                                          search_nickname, |                                          search_nickname, | ||||||
|                                          search_domain_full, |                                          search_domain_full, | ||||||
|                                          translate, |                                          translate, | ||||||
|  | @ -401,12 +399,10 @@ def html_profile_after_search(css_cache: {}, | ||||||
|         profile_str + html_footer() |         profile_str + html_footer() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_profile_header(base_dir: str, http_prefix: str, | def _get_profile_header(http_prefix: str, nickname: str, | ||||||
|                         nickname: str, domain: str, |  | ||||||
|                         domain_full: str, translate: {}, |                         domain_full: str, translate: {}, | ||||||
|                         default_timeline: str, |                         default_timeline: str, | ||||||
|                         display_name: str, |                         display_name: str, | ||||||
|                         avatar_description: str, |  | ||||||
|                         profile_description_short: str, |                         profile_description_short: str, | ||||||
|                         login_button: str, avatar_url: str, |                         login_button: str, avatar_url: str, | ||||||
|                         theme: str, moved_to: str, |                         theme: str, moved_to: str, | ||||||
|  | @ -506,8 +502,7 @@ def _get_profile_header(base_dir: str, http_prefix: str, | ||||||
|     return html_str |     return html_str | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_profile_header_after_search(base_dir: str, | def _get_profile_header_after_search(nickname: str, default_timeline: str, | ||||||
|                                      nickname: str, default_timeline: str, |  | ||||||
|                                      search_nickname: str, |                                      search_nickname: str, | ||||||
|                                      search_domain_full: str, |                                      search_domain_full: str, | ||||||
|                                      translate: {}, |                                      translate: {}, | ||||||
|  | @ -899,11 +894,10 @@ def html_profile(signing_priv_key_pem: str, | ||||||
|             pinned_content = pin_file.read() |             pinned_content = pin_file.read() | ||||||
| 
 | 
 | ||||||
|     profile_header_str = \ |     profile_header_str = \ | ||||||
|         _get_profile_header(base_dir, http_prefix, |         _get_profile_header(http_prefix, | ||||||
|                             nickname, domain, |                             nickname, | ||||||
|                             domain_full, translate, |                             domain_full, translate, | ||||||
|                             default_timeline, display_name, |                             default_timeline, display_name, | ||||||
|                             avatar_description, |  | ||||||
|                             profile_description_short, |                             profile_description_short, | ||||||
|                             login_button, avatar_url, theme, |                             login_button, avatar_url, theme, | ||||||
|                             moved_to, also_known_as, |                             moved_to, also_known_as, | ||||||
|  | @ -1040,7 +1034,7 @@ def html_profile(signing_priv_key_pem: str, | ||||||
|             profile_str += \ |             profile_str += \ | ||||||
|                 _html_profile_following(translate, base_dir, http_prefix, |                 _html_profile_following(translate, base_dir, http_prefix, | ||||||
|                                         authorized, nickname, |                                         authorized, nickname, | ||||||
|                                         domain, port, session, |                                         domain, session, | ||||||
|                                         cached_webfingers, |                                         cached_webfingers, | ||||||
|                                         person_cache, extra_json, |                                         person_cache, extra_json, | ||||||
|                                         project_version, ["unfollow"], |                                         project_version, ["unfollow"], | ||||||
|  | @ -1053,7 +1047,7 @@ def html_profile(signing_priv_key_pem: str, | ||||||
|         profile_str += \ |         profile_str += \ | ||||||
|             _html_profile_following(translate, base_dir, http_prefix, |             _html_profile_following(translate, base_dir, http_prefix, | ||||||
|                                     authorized, nickname, |                                     authorized, nickname, | ||||||
|                                     domain, port, session, |                                     domain, session, | ||||||
|                                     cached_webfingers, |                                     cached_webfingers, | ||||||
|                                     person_cache, extra_json, |                                     person_cache, extra_json, | ||||||
|                                     project_version, ["block"], |                                     project_version, ["block"], | ||||||
|  | @ -1067,18 +1061,17 @@ def html_profile(signing_priv_key_pem: str, | ||||||
|                                     extra_json) |                                     extra_json) | ||||||
|         elif selected == 'skills': |         elif selected == 'skills': | ||||||
|             profile_str += \ |             profile_str += \ | ||||||
|                 _html_profile_skills(translate, nickname, domain_full, |                 _html_profile_skills(extra_json) | ||||||
|                                      extra_json) |  | ||||||
| #       elif selected == 'shares': | #       elif selected == 'shares': | ||||||
| #           profile_str += \ | #           profile_str += \ | ||||||
| #                _html_profile_shares(actor, translate, | #                _html_profile_shares(actor, translate, | ||||||
| #                                   nickname, domain_full, | #                                     domain_full, | ||||||
| #                                   extra_json, 'shares') + license_str | #                                     extra_json, 'shares') + license_str | ||||||
| #        elif selected == 'wanted': | #        elif selected == 'wanted': | ||||||
| #            profile_str += \ | #            profile_str += \ | ||||||
| #                _html_profile_shares(actor, translate, | #                _html_profile_shares(actor, translate, | ||||||
| #                                   nickname, domain_full, | #                                     domain_full, | ||||||
| #                                   extra_json, 'wanted') + license_str | #                                     extra_json, 'wanted') + license_str | ||||||
|     # end of #timeline |     # end of #timeline | ||||||
|     profile_str += '</div>' |     profile_str += '</div>' | ||||||
| 
 | 
 | ||||||
|  | @ -1169,8 +1162,7 @@ def _html_profile_posts(recent_posts_cache: {}, max_recent_posts: int, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _html_profile_following(translate: {}, base_dir: str, http_prefix: str, | def _html_profile_following(translate: {}, base_dir: str, http_prefix: str, | ||||||
|                             authorized: bool, |                             authorized: bool, nickname: str, domain: str, | ||||||
|                             nickname: str, domain: str, port: int, |  | ||||||
|                             session, cached_webfingers: {}, person_cache: {}, |                             session, cached_webfingers: {}, person_cache: {}, | ||||||
|                             following_json: {}, project_version: str, |                             following_json: {}, project_version: str, | ||||||
|                             buttons: [], |                             buttons: [], | ||||||
|  | @ -1252,12 +1244,11 @@ def _html_profile_roles(translate: {}, nickname: str, domain: str, | ||||||
|     return profile_str |     return profile_str | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _html_profile_skills(translate: {}, nickname: str, domain: str, | def _html_profile_skills(skills_json: {}) -> str: | ||||||
|                          skillsJson: {}) -> str: |  | ||||||
|     """Shows skills on the profile screen |     """Shows skills on the profile screen | ||||||
|     """ |     """ | ||||||
|     profile_str = '' |     profile_str = '' | ||||||
|     for skill, level in skillsJson.items(): |     for skill, level in skills_json.items(): | ||||||
|         profile_str += \ |         profile_str += \ | ||||||
|             '<div>' + skill + \ |             '<div>' + skill + \ | ||||||
|             '<br><div id="myProgress"><div id="myBar" style="width:' + \ |             '<br><div id="myProgress"><div id="myBar" style="width:' + \ | ||||||
|  | @ -1269,7 +1260,7 @@ def _html_profile_skills(translate: {}, nickname: str, domain: str, | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _html_profile_shares(actor: str, translate: {}, | def _html_profile_shares(actor: str, translate: {}, | ||||||
|                          nickname: str, domain: str, shares_json: {}, |                          domain: str, shares_json: {}, | ||||||
|                          shares_file_type: str) -> str: |                          shares_file_type: str) -> str: | ||||||
|     """Shows shares on the profile screen |     """Shows shares on the profile screen | ||||||
|     """ |     """ | ||||||
|  | @ -1556,8 +1547,7 @@ def _html_edit_profile_instance(base_dir: str, translate: {}, | ||||||
|     libretranslate_url = get_config_param(base_dir, 'libretranslateUrl') |     libretranslate_url = get_config_param(base_dir, 'libretranslateUrl') | ||||||
|     libretranslate_api_key = get_config_param(base_dir, 'libretranslateApiKey') |     libretranslate_api_key = get_config_param(base_dir, 'libretranslateApiKey') | ||||||
|     libretranslate_str = \ |     libretranslate_str = \ | ||||||
|         _html_edit_profile_libre_translate(translate, |         _html_edit_profile_libre_translate(libretranslate_url, | ||||||
|                                            libretranslate_url, |  | ||||||
|                                            libretranslate_api_key) |                                            libretranslate_api_key) | ||||||
| 
 | 
 | ||||||
|     return instance_str, role_assign_str, peertube_str, libretranslate_str |     return instance_str, role_assign_str, peertube_str, libretranslate_str | ||||||
|  | @ -1907,8 +1897,7 @@ def _html_edit_profile_change_password(translate: {}) -> str: | ||||||
|     return edit_profile_form |     return edit_profile_form | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _html_edit_profile_libre_translate(translate: {}, | def _html_edit_profile_libre_translate(libretranslate_url: str, | ||||||
|                                        libretranslate_url: str, |  | ||||||
|                                        libretranslate_api_key: str) -> str: |                                        libretranslate_api_key: str) -> str: | ||||||
|     """Change automatic translation settings |     """Change automatic translation settings | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|  | @ -14,8 +14,7 @@ from utils import acct_dir | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def insert_question(base_dir: str, translate: {}, | def insert_question(base_dir: str, translate: {}, | ||||||
|                     nickname: str, domain: str, port: int, |                     nickname: str, domain: str, content: str, | ||||||
|                     content: str, |  | ||||||
|                     post_json_object: {}, page_number: int) -> str: |                     post_json_object: {}, page_number: int) -> str: | ||||||
|     """ Inserts question selection into a post |     """ Inserts question selection into a post | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|  | @ -42,9 +42,7 @@ from webapp_post import individual_post_as_html | ||||||
| from webapp_hashtagswarm import html_hash_tag_swarm | from webapp_hashtagswarm import html_hash_tag_swarm | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_search_emoji(css_cache: {}, translate: {}, | def html_search_emoji(translate: {}, base_dir: str, search_str: str) -> str: | ||||||
|                       base_dir: str, http_prefix: str, |  | ||||||
|                       search_str: str) -> str: |  | ||||||
|     """Search results for emoji |     """Search results for emoji | ||||||
|     """ |     """ | ||||||
|     # emoji.json is generated so that it can be customized and the changes |     # emoji.json is generated so that it can be customized and the changes | ||||||
|  | @ -221,7 +219,7 @@ def _html_shares_result(base_dir: str, shares_json: {}, page_number: int, | ||||||
|     return results_exist, curr_page, ctr, shared_items_form |     return results_exist, curr_page, ctr, shared_items_form | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_search_shared_items(css_cache: {}, translate: {}, | def html_search_shared_items(translate: {}, | ||||||
|                              base_dir: str, search_str: str, |                              base_dir: str, search_str: str, | ||||||
|                              page_number: int, |                              page_number: int, | ||||||
|                              results_per_page: int, |                              results_per_page: int, | ||||||
|  | @ -331,7 +329,7 @@ def html_search_shared_items(css_cache: {}, translate: {}, | ||||||
|     return shared_items_form |     return shared_items_form | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_search_emoji_text_entry(css_cache: {}, translate: {}, | def html_search_emoji_text_entry(translate: {}, | ||||||
|                                  base_dir: str, path: str) -> str: |                                  base_dir: str, path: str) -> str: | ||||||
|     """Search for an emoji by name |     """Search for an emoji by name | ||||||
|     """ |     """ | ||||||
|  | @ -380,8 +378,7 @@ def html_search_emoji_text_entry(css_cache: {}, translate: {}, | ||||||
|     return emoji_str |     return emoji_str | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_search(css_cache: {}, translate: {}, | def html_search(translate: {}, base_dir: str, path: str, domain: str, | ||||||
|                 base_dir: str, path: str, domain: str, |  | ||||||
|                 default_timeline: str, theme: str, |                 default_timeline: str, theme: str, | ||||||
|                 text_mode_banner: str, access_keys: {}) -> str: |                 text_mode_banner: str, access_keys: {}) -> str: | ||||||
|     """Search called from the timeline icon |     """Search called from the timeline icon | ||||||
|  | @ -468,9 +465,7 @@ def html_search(css_cache: {}, translate: {}, | ||||||
|     return follow_str |     return follow_str | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_skills_search(actor: str, | def html_skills_search(actor: str, translate: {}, base_dir: str, | ||||||
|                        css_cache: {}, translate: {}, base_dir: str, |  | ||||||
|                        http_prefix: str, |  | ||||||
|                        skillsearch: str, instance_only: bool, |                        skillsearch: str, instance_only: bool, | ||||||
|                        posts_per_page: int) -> str: |                        posts_per_page: int) -> str: | ||||||
|     """Show a page containing search results for a skill |     """Show a page containing search results for a skill | ||||||
|  | @ -601,7 +596,7 @@ def html_skills_search(actor: str, | ||||||
|     return skill_search_form |     return skill_search_form | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_history_search(css_cache: {}, translate: {}, base_dir: str, | def html_history_search(translate: {}, base_dir: str, | ||||||
|                         http_prefix: str, |                         http_prefix: str, | ||||||
|                         nickname: str, domain: str, |                         nickname: str, domain: str, | ||||||
|                         historysearch: str, |                         historysearch: str, | ||||||
|  | @ -721,8 +716,7 @@ def html_history_search(css_cache: {}, translate: {}, base_dir: str, | ||||||
|     return history_search_form |     return history_search_form | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_hashtag_search(css_cache: {}, | def html_hashtag_search(nickname: str, domain: str, port: int, | ||||||
|                         nickname: str, domain: str, port: int, |  | ||||||
|                         recent_posts_cache: {}, max_recent_posts: int, |                         recent_posts_cache: {}, max_recent_posts: int, | ||||||
|                         translate: {}, |                         translate: {}, | ||||||
|                         base_dir: str, hashtag: str, page_number: int, |                         base_dir: str, hashtag: str, page_number: int, | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ from webapp_utils import html_footer | ||||||
| from markdown import markdown_to_html | from markdown import markdown_to_html | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_terms_of_service(css_cache: {}, base_dir: str, | def html_terms_of_service(base_dir: str, | ||||||
|                           http_prefix: str, domain_full: str) -> str: |                           http_prefix: str, domain_full: str) -> str: | ||||||
|     """Show the terms of service screen |     """Show the terms of service screen | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|  | @ -42,8 +42,7 @@ def get_broken_link_substitute() -> str: | ||||||
|         "/icons/avatar_default.png'\"" |         "/icons/avatar_default.png'\"" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_following_list(css_cache: {}, base_dir: str, | def html_following_list(base_dir: str, following_filename: str) -> str: | ||||||
|                         following_filename: str) -> str: |  | ||||||
|     """Returns a list of handles being followed |     """Returns a list of handles being followed | ||||||
|     """ |     """ | ||||||
|     with open(following_filename, 'r') as following_file: |     with open(following_filename, 'r') as following_file: | ||||||
|  | @ -70,7 +69,7 @@ def html_following_list(css_cache: {}, base_dir: str, | ||||||
|     return '' |     return '' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_hashtag_blocked(css_cache: {}, base_dir: str, translate: {}) -> str: | def html_hashtag_blocked(base_dir: str, translate: {}) -> str: | ||||||
|     """Show the screen for a blocked hashtag |     """Show the screen for a blocked hashtag | ||||||
|     """ |     """ | ||||||
|     blocked_hashtag_form = '' |     blocked_hashtag_form = '' | ||||||
|  | @ -492,7 +491,7 @@ def post_contains_public(post_json_object: {}) -> bool: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_image_file(base_dir: str, name: str, directory: str, | def _get_image_file(base_dir: str, name: str, directory: str, | ||||||
|                     nickname: str, domain: str, theme: str) -> (str, str): |                     theme: str) -> (str, str): | ||||||
|     """ |     """ | ||||||
|     returns the filenames for an image with the given name |     returns the filenames for an image with the given name | ||||||
|     """ |     """ | ||||||
|  | @ -524,8 +523,7 @@ def get_banner_file(base_dir: str, | ||||||
|     """Gets the image for the timeline banner |     """Gets the image for the timeline banner | ||||||
|     """ |     """ | ||||||
|     account_dir = acct_dir(base_dir, nickname, domain) |     account_dir = acct_dir(base_dir, nickname, domain) | ||||||
|     return _get_image_file(base_dir, 'banner', account_dir, |     return _get_image_file(base_dir, 'banner', account_dir, theme) | ||||||
|                            nickname, domain, theme) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_search_banner_file(base_dir: str, | def get_search_banner_file(base_dir: str, | ||||||
|  | @ -534,8 +532,7 @@ def get_search_banner_file(base_dir: str, | ||||||
|     """Gets the image for the search banner |     """Gets the image for the search banner | ||||||
|     """ |     """ | ||||||
|     account_dir = acct_dir(base_dir, nickname, domain) |     account_dir = acct_dir(base_dir, nickname, domain) | ||||||
|     return _get_image_file(base_dir, 'search_banner', account_dir, |     return _get_image_file(base_dir, 'search_banner', account_dir, theme) | ||||||
|                            nickname, domain, theme) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_left_image_file(base_dir: str, | def get_left_image_file(base_dir: str, | ||||||
|  | @ -543,8 +540,7 @@ def get_left_image_file(base_dir: str, | ||||||
|     """Gets the image for the left column |     """Gets the image for the left column | ||||||
|     """ |     """ | ||||||
|     account_dir = acct_dir(base_dir, nickname, domain) |     account_dir = acct_dir(base_dir, nickname, domain) | ||||||
|     return _get_image_file(base_dir, 'left_col_image', account_dir, |     return _get_image_file(base_dir, 'left_col_image', account_dir, theme) | ||||||
|                            nickname, domain, theme) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_right_image_file(base_dir: str, | def get_right_image_file(base_dir: str, | ||||||
|  | @ -552,8 +548,7 @@ def get_right_image_file(base_dir: str, | ||||||
|     """Gets the image for the right column |     """Gets the image for the right column | ||||||
|     """ |     """ | ||||||
|     account_dir = acct_dir(base_dir, nickname, domain) |     account_dir = acct_dir(base_dir, nickname, domain) | ||||||
|     return _get_image_file(base_dir, 'right_col_image', |     return _get_image_file(base_dir, 'right_col_image', account_dir, theme) | ||||||
|                            account_dir, nickname, domain, theme) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_variable_from_css(css_str: str, variable: str) -> str: | def _get_variable_from_css(css_str: str, variable: str) -> str: | ||||||
|  | @ -1357,8 +1352,7 @@ def html_highlight_label(label: str, highlight: bool) -> str: | ||||||
|     return '*' + str(label) + '*' |     return '*' + str(label) + '*' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_avatar_image_url(session, | def get_avatar_image_url(session, base_dir: str, http_prefix: str, | ||||||
|                          base_dir: str, http_prefix: str, |  | ||||||
|                          post_actor: str, person_cache: {}, |                          post_actor: str, person_cache: {}, | ||||||
|                          avatar_url: str, allow_downloads: bool, |                          avatar_url: str, allow_downloads: bool, | ||||||
|                          signing_priv_key_pem: str) -> str: |                          signing_priv_key_pem: str) -> str: | ||||||
|  |  | ||||||
|  | @ -16,8 +16,7 @@ from webapp_utils import html_footer | ||||||
| from markdown import markdown_to_html | from markdown import markdown_to_html | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def html_welcome_final(base_dir: str, nickname: str, domain: str, | def html_welcome_final(base_dir: str, nickname: str, | ||||||
|                        http_prefix: str, domain_full: str, |  | ||||||
|                        language: str, translate: {}, |                        language: str, translate: {}, | ||||||
|                        theme_name: str) -> str: |                        theme_name: str) -> str: | ||||||
|     """Returns the final welcome screen after first login |     """Returns the final welcome screen after first login | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue