Move conversation function to daemon post module

merge-requests/30/head
Bob Mottram 2024-03-03 12:50:40 +00:00
parent 7c677cf4d4
commit e669d7fa44
2 changed files with 109 additions and 105 deletions

View File

@ -28,7 +28,6 @@ from blocking import update_blocked_cache
from blocking import add_global_block
from blocking import blocked_timeline_json
from cache import get_person_from_cache
from webapp_conversation import html_conversation_view
from webapp_moderation import html_account_info
from webapp_calendar import html_calendar_delete_confirm
from webapp_calendar import html_calendar
@ -200,6 +199,7 @@ from daemon_get_post import show_announcers_of_post
from daemon_get_post import show_likers_of_post
from daemon_get_post import show_individual_at_post
from daemon_get_post import show_new_post
from daemon_get_post import show_conversation_thread
from daemon_get_collections import get_featured_collection
from daemon_get_collections import get_featured_tags_collection
from daemon_get_collections import get_following_json
@ -560,7 +560,7 @@ def daemon_http_get(self) -> None:
self.server.debug)
return
if _show_conversation_thread(self, authorized,
if show_conversation_thread(self, authorized,
calling_domain, self.path,
self.server.base_dir,
self.server.http_prefix,
@ -4598,89 +4598,6 @@ def _browser_config(self, calling_domain: str, referer_domain: str,
self.server.debug)
def _show_conversation_thread(self, authorized: bool,
calling_domain: str, path: str,
base_dir: str, http_prefix: str,
domain: str, port: int,
debug: str, curr_session,
cookie: str) -> bool:
"""get conversation thread from the date link on a post
"""
if not path.startswith('/users/'):
return False
if '?convthread=' not in path:
return False
post_id = path.split('?convthread=')[1].strip()
post_id = post_id.replace('--', '/')
if post_id.startswith('/users/'):
instance_url = get_instance_url(calling_domain,
self.server.http_prefix,
self.server.domain_full,
self.server.onion_domain,
self.server.i2p_domain)
post_id = instance_url + post_id
nickname = path.split('/users/')[1]
if '?convthread=' in nickname:
nickname = nickname.split('?convthread=')[0]
if '/' in nickname:
nickname = nickname.split('/')[0]
timezone = None
if self.server.account_timezone.get(nickname):
timezone = \
self.server.account_timezone.get(nickname)
bold_reading = False
if self.server.bold_reading.get(nickname):
bold_reading = True
conv_str = \
html_conversation_view(authorized,
post_id, self.server.translate,
base_dir,
http_prefix,
nickname,
domain,
self.server.project_version,
self.server.recent_posts_cache,
self.server.max_recent_posts,
curr_session,
self.server.cached_webfingers,
self.server.person_cache,
port,
self.server.yt_replace_domain,
self.server.twitter_replacement_domain,
self.server.show_published_date_only,
self.server.peertube_instances,
self.server.allow_local_network_access,
self.server.theme_name,
self.server.system_language,
self.server.max_like_count,
self.server.signing_priv_key_pem,
self.server.cw_lists,
self.server.lists_enabled,
timezone, bold_reading,
self.server.dogwhistles,
self.server.access_keys,
self.server.min_images_for_accounts,
debug,
self.server.buy_sites,
self.server.blocked_cache,
self.server.block_federated,
self.server.auto_cw_cache)
if conv_str:
msg = conv_str.encode('utf-8')
msglen = len(msg)
login_headers(self, 'text/html', msglen, calling_domain)
write2(self, msg)
self.server.getreq_busy = False
return True
# redirect to the original site if there are no results
if '://' + self.server.domain_full + '/' in post_id:
redirect_headers(self, post_id, cookie, calling_domain)
else:
redirect_headers(self, post_id, None, calling_domain)
self.server.getreq_busy = False
return True
def _get_speaker(self, calling_domain: str, referer_domain: str,
path: str, base_dir: str, domain: str) -> None:
"""Returns the speaker file used for TTS and

View File

@ -9,6 +9,8 @@ __module_group__ = "Core"
import os
import json
from webapp_conversation import html_conversation_view
from utils import get_instance_url
from utils import is_public_post_from_url
from utils import local_actor_url
from utils import locate_post
@ -30,6 +32,8 @@ from httpcodes import http_401
from httpcodes import http_403
from httpcodes import http_404
from httpheaders import set_headers
from httpheaders import login_headers
from httpheaders import redirect_headers
from httprequests import request_http
from posts import populate_replies_json
from posts import remove_post_interactions
@ -128,7 +132,7 @@ def _show_post_from_file(self, post_filename: str, liked_by: str,
cookie, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_post_from_file',
'_GET', 'show_post_from_file',
debug)
else:
if secure_mode(curr_session, proxy_type, False,
@ -158,7 +162,7 @@ def _show_post_from_file(self, post_filename: str, liked_by: str,
None, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_post_from_file json',
'_GET', 'show_post_from_file json',
debug)
else:
http_404(self, 73)
@ -256,7 +260,7 @@ def show_individual_post(self, ssml_getreq: bool, authorized: bool,
include_create_wrapper,
curr_session)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_individual_post',
'_GET', 'show_individual_post',
self.server.debug)
return result
@ -408,7 +412,7 @@ def show_new_post(self, edit_post_params: {},
write2(self, msg)
fitness_performance(getreq_start_time,
self.server.fitness,
'_GET', '_show_new_post',
'_GET', 'show_new_post',
self.server.debug)
return True
return False
@ -510,7 +514,7 @@ def show_individual_at_post(self, ssml_getreq: bool, authorized: bool,
include_create_wrapper,
curr_session)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_individual_at_post',
'_GET', 'show_individual_at_post',
self.server.debug)
return result
@ -578,7 +582,7 @@ def show_likers_of_post(self, authorized: bool,
cookie, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_likers_of_post',
'_GET', 'show_likers_of_post',
debug)
return True
@ -647,7 +651,7 @@ def show_announcers_of_post(self, authorized: bool,
cookie, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_announcers_of_post',
'_GET', 'show_announcers_of_post',
debug)
return True
@ -775,7 +779,7 @@ def show_replies_to_post(self, authorized: bool,
cookie, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_replies_to_post',
'_GET', 'show_replies_to_post',
debug)
else:
if secure_mode(curr_session, proxy_type, False,
@ -795,7 +799,7 @@ def show_replies_to_post(self, authorized: bool,
calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_replies_to_post json',
'_GET', 'show_replies_to_post json',
debug)
else:
http_404(self, 62)
@ -896,7 +900,7 @@ def show_replies_to_post(self, authorized: bool,
cookie, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_replies_to_post',
'_GET', 'show_replies_to_post',
debug)
else:
if secure_mode(curr_session, proxy_type, False,
@ -916,7 +920,7 @@ def show_replies_to_post(self, authorized: bool,
None, calling_domain, False)
write2(self, msg)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_replies_to_post json',
'_GET', 'show_replies_to_post json',
debug)
else:
http_404(self, 64)
@ -967,6 +971,89 @@ def show_notify_post(self, authorized: bool,
include_create_wrapper,
curr_session)
fitness_performance(getreq_start_time, self.server.fitness,
'_GET', '_show_notify_post',
'_GET', 'show_notify_post',
self.server.debug)
return result
def show_conversation_thread(self, authorized: bool,
calling_domain: str, path: str,
base_dir: str, http_prefix: str,
domain: str, port: int,
debug: str, curr_session,
cookie: str) -> bool:
"""get conversation thread from the date link on a post
"""
if not path.startswith('/users/'):
return False
if '?convthread=' not in path:
return False
post_id = path.split('?convthread=')[1].strip()
post_id = post_id.replace('--', '/')
if post_id.startswith('/users/'):
instance_url = get_instance_url(calling_domain,
self.server.http_prefix,
self.server.domain_full,
self.server.onion_domain,
self.server.i2p_domain)
post_id = instance_url + post_id
nickname = path.split('/users/')[1]
if '?convthread=' in nickname:
nickname = nickname.split('?convthread=')[0]
if '/' in nickname:
nickname = nickname.split('/')[0]
timezone = None
if self.server.account_timezone.get(nickname):
timezone = \
self.server.account_timezone.get(nickname)
bold_reading = False
if self.server.bold_reading.get(nickname):
bold_reading = True
conv_str = \
html_conversation_view(authorized,
post_id, self.server.translate,
base_dir,
http_prefix,
nickname,
domain,
self.server.project_version,
self.server.recent_posts_cache,
self.server.max_recent_posts,
curr_session,
self.server.cached_webfingers,
self.server.person_cache,
port,
self.server.yt_replace_domain,
self.server.twitter_replacement_domain,
self.server.show_published_date_only,
self.server.peertube_instances,
self.server.allow_local_network_access,
self.server.theme_name,
self.server.system_language,
self.server.max_like_count,
self.server.signing_priv_key_pem,
self.server.cw_lists,
self.server.lists_enabled,
timezone, bold_reading,
self.server.dogwhistles,
self.server.access_keys,
self.server.min_images_for_accounts,
debug,
self.server.buy_sites,
self.server.blocked_cache,
self.server.block_federated,
self.server.auto_cw_cache)
if conv_str:
msg = conv_str.encode('utf-8')
msglen = len(msg)
login_headers(self, 'text/html', msglen, calling_domain)
write2(self, msg)
self.server.getreq_busy = False
return True
# redirect to the original site if there are no results
if '://' + self.server.domain_full + '/' in post_id:
redirect_headers(self, post_id, cookie, calling_domain)
else:
redirect_headers(self, post_id, None, calling_domain)
self.server.getreq_busy = False
return True