diff --git a/daemon.py b/daemon.py index 70ded593f..2e2e3347c 100644 --- a/daemon.py +++ b/daemon.py @@ -862,7 +862,7 @@ class PubServer(BaseHTTPRequestHandler): self.send_header('Access-Control-Allow-Origin', '*') return self.send_header('X-AP-Instance-ID', self.server.instance_id) - self.send_header('X-Clacks-Overhead', 'GNU Natalie Nguyen') + self.send_header('X-Clacks-Overhead', self.server.clacks) self.send_header('User-Agent', 'Epicyon/' + __version__ + '; +' + self.server.http_prefix + '://' + @@ -21016,7 +21016,8 @@ def load_tokens(base_dir: str, tokens_dict: {}, tokens_lookup: {}) -> None: break -def run_daemon(preferred_podcast_formats: [], +def run_daemon(clacks: str, + preferred_podcast_formats: [], check_actor_timeout: int, crawlers_allowed: [], dyslexic_font: bool, @@ -21112,6 +21113,13 @@ def run_daemon(preferred_podcast_formats: [], # caches css files httpd.css_cache = {} + httpd.clacks = get_config_param(base_dir, 'clacks') + if not httpd.clacks: + if clacks: + httpd.clacks = clacks + else: + httpd.clacks = 'GNU Natalie Nguyen' + # load a list of dogwhistle words dogwhistles_filename = base_dir + '/accounts/dogwhistles.txt' if not os.path.isfile(dogwhistles_filename): diff --git a/epicyon.py b/epicyon.py index ba26f9ef3..e530ded7e 100644 --- a/epicyon.py +++ b/epicyon.py @@ -183,6 +183,9 @@ def _command_options() -> None: default=None, help='Name of the screen reader: ' + 'espeak/picospeaker/mimic3') + parser.add_argument('--clacks', dest='clacks', type=str, + default=None, + help='http header clacks overhead') parser.add_argument('--fol', '--follow', dest='follow', type=str, default=None, help='Handle of account to follow. eg. ' + @@ -3603,7 +3606,8 @@ def _command_options() -> None: if __name__ == "__main__": argb2, opt2 = _command_options() print('allowdeletion: ' + str(argb2.allowdeletion)) - run_daemon(opt2['preferred_podcast_formats'], + run_daemon(argb2.clacks, + opt2['preferred_podcast_formats'], argb2.check_actor_timeout, opt2['crawlers_allowed'], argb2.dyslexic_font, diff --git a/gemini/EN/install.gmi b/gemini/EN/install.gmi index 46c91c699..4e7a6dd76 100644 --- a/gemini/EN/install.gmi +++ b/gemini/EN/install.gmi @@ -91,9 +91,6 @@ And paste the following: client_max_body_size 31m; client_body_buffer_size 128k; - limit_conn conn_limit_per_ip 10; - limit_req zone=req_limit_per_ip burst=10 nodelay; - index index.html; rewrite ^ https://$server_name$request_uri? permanent; } diff --git a/inbox.py b/inbox.py index 571394713..db56a03e9 100644 --- a/inbox.py +++ b/inbox.py @@ -567,6 +567,22 @@ def inbox_permitted_message(domain: str, message_json: {}, return True +def _reject_twitter_summary(base_dir: str, nickname: str, domain: str, + summary: str) -> bool: + """Returns true if the post should be rejected due to twitter + existing within the summary + """ + remove_twitter = \ + acct_dir(base_dir, nickname, domain) + '/.removeTwitter' + if not os.path.isfile(remove_twitter): + return False + summary_lower = summary.lower() + if 'twitter' in summary_lower or \ + 'birdsite' in summary_lower: + return True + return False + + def save_post_to_inbox_queue(base_dir: str, http_prefix: str, nickname: str, domain: str, post_json_object: {}, @@ -655,6 +671,13 @@ def save_post_to_inbox_queue(base_dir: str, http_prefix: str, if debug: print('WARN: post was filtered out due to content') return None + if summary_str: + if _reject_twitter_summary(base_dir, nickname, domain, + summary_str): + if debug: + print('WARN: post was filtered out due to ' + + 'twitter content') + return None original_post_id = None if post_json_object.get('id'): diff --git a/tests.py b/tests.py index 4e7512150..ab107561d 100644 --- a/tests.py +++ b/tests.py @@ -838,8 +838,9 @@ def create_server_alice(path: str, domain: str, port: int, crawlers_allowed = [] check_actor_timeout = 2 preferred_podcast_formats = None + clacks = None print('Server running: Alice') - run_daemon(preferred_podcast_formats, + run_daemon(clacks, preferred_podcast_formats, check_actor_timeout, crawlers_allowed, dyslexic_font, @@ -998,8 +999,9 @@ def create_server_bob(path: str, domain: str, port: int, crawlers_allowed = [] check_actor_timeout = 2 preferred_podcast_formats = None + clacks = None print('Server running: Bob') - run_daemon(preferred_podcast_formats, + run_daemon(clacks, preferred_podcast_formats, check_actor_timeout, crawlers_allowed, dyslexic_font, @@ -1080,8 +1082,9 @@ def create_server_eve(path: str, domain: str, port: int, federation_list: [], crawlers_allowed = [] check_actor_timeout = 2 preferred_podcast_formats = None + clacks = None print('Server running: Eve') - run_daemon(preferred_podcast_formats, + run_daemon(clacks, preferred_podcast_formats, check_actor_timeout, crawlers_allowed, dyslexic_font, @@ -1164,8 +1167,9 @@ def create_server_group(path: str, domain: str, port: int, crawlers_allowed = [] check_actor_timeout = 2 preferred_podcast_formats = None + clacks = None print('Server running: Group') - run_daemon(preferred_podcast_formats, + run_daemon(clacks, preferred_podcast_formats, check_actor_timeout, crawlers_allowed, dyslexic_font,