diff --git a/daemon_get.py b/daemon_get.py index 2ff03073e..bc4aea16e 100644 --- a/daemon_get.py +++ b/daemon_get.py @@ -13,7 +13,6 @@ import json import urllib.parse from siteactive import referer_is_active from maps import map_format_from_tagmaps_path -from blog import html_blog_page from blog import html_edit_blog from blog import html_blog_post from blog import path_contains_blog_link @@ -202,6 +201,7 @@ from daemon_get_webfinger import get_webfinger from daemon_get_reactions import reaction_picker2 from daemon_get_instance_actor import show_instance_actor from daemon_get_vcard import show_vcard +from daemon_get_blog import show_blog_page # Blogs can be longer, so don't show many per page MAX_POSTS_IN_BLOGS_FEED = 4 @@ -1649,21 +1649,21 @@ def daemon_http_get(self) -> None: # for a particular account if html_getreq and self.path.startswith('/blog/'): if '/rss.xml' not in self.path: - if _show_blog_page(self, authorized, - calling_domain, self.path, - self.server.base_dir, - self.server.http_prefix, - self.server.domain, - self.server.port, - getreq_start_time, - proxy_type, - cookie, self.server.translate, - self.server.debug, - curr_session): + if show_blog_page(self, authorized, + calling_domain, self.path, + self.server.base_dir, + self.server.http_prefix, + self.server.domain, + self.server.port, + getreq_start_time, + proxy_type, + cookie, self.server.translate, + self.server.debug, + curr_session, MAX_POSTS_IN_BLOGS_FEED): return fitness_performance(getreq_start_time, self.server.fitness, - '_GET', '_show_blog_page', + '_GET', 'show_blog_page', self.server.debug) if html_getreq and users_in_path: @@ -4491,73 +4491,6 @@ def _get_speaker(self, calling_domain: str, referer_domain: str, write2(self, msg) -def _show_blog_page(self, authorized: bool, - calling_domain: str, path: str, - base_dir: str, http_prefix: str, - domain: str, port: int, - getreq_start_time, - proxy_type: str, cookie: str, - translate: {}, debug: str, - curr_session) -> bool: - """Shows a blog page - """ - page_number = 1 - nickname = path.split('/blog/')[1] - if '/' in nickname: - nickname = nickname.split('/')[0] - if '?' in nickname: - nickname = nickname.split('?')[0] - if '?page=' in path: - page_number_str = path.split('?page=')[1] - if ';' in page_number_str: - page_number_str = page_number_str.split(';')[0] - if '?' in page_number_str: - page_number_str = page_number_str.split('?')[0] - if '#' in page_number_str: - page_number_str = page_number_str.split('#')[0] - if len(page_number_str) > 5: - page_number_str = "1" - if page_number_str.isdigit(): - page_number = int(page_number_str) - if page_number < 1: - page_number = 1 - elif page_number > 10: - page_number = 10 - curr_session = \ - establish_session("showBlogPage", - curr_session, proxy_type, - self.server) - if not curr_session: - http_404(self, 90) - self.server.getreq_busy = False - return True - msg = html_blog_page(authorized, - curr_session, - base_dir, - http_prefix, - translate, - nickname, - domain, port, - MAX_POSTS_IN_BLOGS_FEED, page_number, - self.server.peertube_instances, - self.server.system_language, - self.server.person_cache, - debug) - if msg is not None: - msg = msg.encode('utf-8') - msglen = len(msg) - set_headers(self, 'text/html', msglen, - cookie, calling_domain, False) - write2(self, msg) - fitness_performance(getreq_start_time, - self.server.fitness, - '_GET', '_show_blog_page', - debug) - return True - http_404(self, 91) - return True - - def _redirect_to_login_screen(self, calling_domain: str, path: str, http_prefix: str, domain_full: str, onion_domain: str, i2p_domain: str, diff --git a/daemon_get_blog.py b/daemon_get_blog.py new file mode 100644 index 000000000..85d943383 --- /dev/null +++ b/daemon_get_blog.py @@ -0,0 +1,83 @@ +__filename__ = "daemon_get_blog.py" +__author__ = "Bob Mottram" +__license__ = "AGPL3+" +__version__ = "1.5.0" +__maintainer__ = "Bob Mottram" +__email__ = "bob@libreserver.org" +__status__ = "Production" +__module_group__ = "Core" + +from httpcodes import write2 +from session import establish_session +from httpcodes import http_404 +from httpheaders import set_headers +from blog import html_blog_page +from fitnessFunctions import fitness_performance + + +def show_blog_page(self, authorized: bool, + calling_domain: str, path: str, + base_dir: str, http_prefix: str, + domain: str, port: int, + getreq_start_time, + proxy_type: str, cookie: str, + translate: {}, debug: str, + curr_session, + max_posts_in_blogs_feed: int) -> bool: + """Shows a blog page + """ + page_number = 1 + nickname = path.split('/blog/')[1] + if '/' in nickname: + nickname = nickname.split('/')[0] + if '?' in nickname: + nickname = nickname.split('?')[0] + if '?page=' in path: + page_number_str = path.split('?page=')[1] + if ';' in page_number_str: + page_number_str = page_number_str.split(';')[0] + if '?' in page_number_str: + page_number_str = page_number_str.split('?')[0] + if '#' in page_number_str: + page_number_str = page_number_str.split('#')[0] + if len(page_number_str) > 5: + page_number_str = "1" + if page_number_str.isdigit(): + page_number = int(page_number_str) + if page_number < 1: + page_number = 1 + elif page_number > 10: + page_number = 10 + curr_session = \ + establish_session("showBlogPage", + curr_session, proxy_type, + self.server) + if not curr_session: + http_404(self, 90) + self.server.getreq_busy = False + return True + msg = html_blog_page(authorized, + curr_session, + base_dir, + http_prefix, + translate, + nickname, + domain, port, + max_posts_in_blogs_feed, page_number, + self.server.peertube_instances, + self.server.system_language, + self.server.person_cache, + debug) + if msg is not None: + msg = msg.encode('utf-8') + msglen = len(msg) + set_headers(self, 'text/html', msglen, + cookie, calling_domain, False) + write2(self, msg) + fitness_performance(getreq_start_time, + self.server.fitness, + '_GET', 'show_blog_page', + debug) + return True + http_404(self, 91) + return True