From 897c633b37f6c760c1bc6e15db191b5065859917 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 31 May 2025 15:21:47 +0100 Subject: [PATCH] Move function --- daemon_get.py | 2 +- daemon_get_newswire.py | 2 +- daemon_get_timeline.py | 2 +- daemon_post_confirm.py | 2 +- daemon_post_moderator.py | 2 +- daemon_post_newswire.py | 2 +- daemon_post_person_options.py | 2 +- daemon_post_profile.py | 2 +- daemon_post_remove.py | 2 +- flags.py | 33 +++++++++++++++++++++++++++++++++ posts.py | 34 +--------------------------------- webapp_column_right.py | 2 +- webapp_moderation.py | 2 +- webapp_person_options.py | 2 +- webapp_profile.py | 2 +- webapp_timeline.py | 2 +- webapp_utils.py | 2 +- 17 files changed, 49 insertions(+), 48 deletions(-) diff --git a/daemon_get.py b/daemon_get.py index de0912932..d16982ea5 100644 --- a/daemon_get.py +++ b/daemon_get.py @@ -89,6 +89,7 @@ from httpcodes import http_304 from httpcodes import http_400 from httpcodes import http_503 from httpcodes import write2 +from flags import is_moderator from flags import is_corporate from flags import is_image_file from flags import is_artist @@ -125,7 +126,6 @@ from shares import authorize_shared_items from shares import shares_catalog_endpoint from shares import shares_catalog_account_endpoint from shares import shares_catalog_csv_endpoint -from posts import is_moderator from posts import get_pinned_post_as_json from posts import outbox_message_create_wrap from daemon_get_masto_api import masto_api diff --git a/daemon_get_newswire.py b/daemon_get_newswire.py index fca0d2558..8b6c2217b 100644 --- a/daemon_get_newswire.py +++ b/daemon_get_newswire.py @@ -15,7 +15,7 @@ from httpheaders import redirect_headers from httpheaders import set_headers from newswire import get_rss_from_dict from fitnessFunctions import fitness_performance -from posts import is_moderator +from flags import is_moderator from utils import data_dir from utils import local_actor_url from utils import save_json diff --git a/daemon_get_timeline.py b/daemon_get_timeline.py index 0783de3cf..3ae5dcd22 100644 --- a/daemon_get_timeline.py +++ b/daemon_get_timeline.py @@ -9,7 +9,7 @@ __module_group__ = "Daemon Timeline" import json from securemode import secure_mode -from posts import is_moderator +from flags import is_moderator from flags import is_artist from flags import is_editor from utils import convert_domains diff --git a/daemon_post_confirm.py b/daemon_post_confirm.py index 0a8172269..3921702d7 100644 --- a/daemon_post_confirm.py +++ b/daemon_post_confirm.py @@ -11,6 +11,7 @@ import errno import urllib.parse from socket import error as SocketError from flags import has_group_type +from flags import is_moderator from utils import get_nickname_from_actor from utils import get_domain_from_actor from utils import get_full_domain @@ -23,7 +24,6 @@ from daemon_utils import post_to_outbox_thread from httpcodes import write2 from httpheaders import redirect_headers from httpheaders import login_headers -from posts import is_moderator from webapp_moderation import html_account_info from session import establish_session from blocking import remove_block diff --git a/daemon_post_moderator.py b/daemon_post_moderator.py index 235a53f77..7aa89d454 100644 --- a/daemon_post_moderator.py +++ b/daemon_post_moderator.py @@ -18,7 +18,7 @@ from utils import get_full_domain from utils import get_domain_from_actor from utils import get_nickname_from_actor from utils import get_instance_url -from posts import is_moderator +from flags import is_moderator from httpcodes import write2 from httpheaders import redirect_headers from httpheaders import login_headers diff --git a/daemon_post_newswire.py b/daemon_post_newswire.py index efb243ad8..e180902cb 100644 --- a/daemon_post_newswire.py +++ b/daemon_post_newswire.py @@ -11,6 +11,7 @@ import os import errno from socket import error as SocketError from flags import is_editor +from flags import is_moderator from cache import clear_from_post_caches from utils import data_dir from utils import remove_id_ending @@ -23,7 +24,6 @@ from utils import get_instance_url from utils import get_nickname_from_actor from timeFunctions import date_from_string_format from httpheaders import redirect_headers -from posts import is_moderator from content import extract_text_fields_in_post from content import load_dogwhistles diff --git a/daemon_post_person_options.py b/daemon_post_person_options.py index b5be04c12..c884c3a75 100644 --- a/daemon_post_person_options.py +++ b/daemon_post_person_options.py @@ -46,7 +46,7 @@ from blocking import blocked_quote_toots_add from blocking import blocked_quote_toots_remove from notifyOnPost import add_notify_on_post from notifyOnPost import remove_notify_on_post -from posts import is_moderator +from flags import is_moderator def _person_options_page_number(options_confirm_params: str) -> int: diff --git a/daemon_post_profile.py b/daemon_post_profile.py index 707f078c0..327e56d6c 100644 --- a/daemon_post_profile.py +++ b/daemon_post_profile.py @@ -20,6 +20,7 @@ from httpheaders import clear_login_details from flags import is_artist from flags import is_memorial_account from flags import is_premium_account +from flags import is_moderator from timeFunctions import get_account_timezone from timeFunctions import set_account_timezone from utils import data_dir @@ -109,7 +110,6 @@ from webapp_utils import set_blog_address from session import site_is_verified from languages import set_actor_languages from languages import get_actor_languages -from posts import is_moderator from posts import set_post_expiry_keep_dms from posts import get_post_expiry_keep_dms from posts import set_post_expiry_days diff --git a/daemon_post_remove.py b/daemon_post_remove.py index af34393ef..8d8937d0a 100644 --- a/daemon_post_remove.py +++ b/daemon_post_remove.py @@ -21,7 +21,7 @@ from utils import get_config_param from utils import get_nickname_from_actor from reading import remove_reading_event from httpheaders import redirect_headers -from posts import is_moderator +from flags import is_moderator from shares import remove_shared_item2 from shares import add_shares_to_actor from cache import store_person_in_cache diff --git a/flags.py b/flags.py index 4d40ad0c9..7ad1b26ed 100644 --- a/flags.py +++ b/flags.py @@ -719,3 +719,36 @@ def local_only_is_local(message_json: {}, domain_full: str) -> bool: str(message_json)) return False return True + + +def is_moderator(base_dir: str, nickname: str) -> bool: + """Returns true if the given nickname is a moderator + """ + moderators_file = data_dir(base_dir) + '/moderators.txt' + + if not os.path.isfile(moderators_file): + admin_name = get_config_param(base_dir, 'admin') + if not admin_name: + return False + if admin_name == nickname: + return True + return False + + lines: list[str] = [] + try: + with open(moderators_file, 'r', encoding='utf-8') as fp_mod: + lines = fp_mod.readlines() + except OSError: + print('EX: is_moderator unable to read ' + moderators_file) + + if not lines: + admin_name = get_config_param(base_dir, 'admin') + if not admin_name: + return False + if admin_name == nickname: + return True + for moderator in lines: + moderator = moderator.strip('\n').strip('\r') + if moderator == nickname: + return True + return False diff --git a/posts.py b/posts.py index 4e201207e..242bec5ca 100644 --- a/posts.py +++ b/posts.py @@ -32,6 +32,7 @@ from webfinger import webfinger_handle from httpsig import create_signed_header from siteactive import site_is_active from languages import understood_post_language +from flags import is_moderator from flags import is_evil from flags import is_public_post from flags import invalid_ciphertext @@ -163,39 +164,6 @@ def convert_post_content_to_html(message_json: {}) -> None: markdown_to_html(content_str) -def is_moderator(base_dir: str, nickname: str) -> bool: - """Returns true if the given nickname is a moderator - """ - moderators_file = data_dir(base_dir) + '/moderators.txt' - - if not os.path.isfile(moderators_file): - admin_name = get_config_param(base_dir, 'admin') - if not admin_name: - return False - if admin_name == nickname: - return True - return False - - lines: list[str] = [] - try: - with open(moderators_file, 'r', encoding='utf-8') as fp_mod: - lines = fp_mod.readlines() - except OSError: - print('EX: is_moderator unable to read ' + moderators_file) - - if not lines: - admin_name = get_config_param(base_dir, 'admin') - if not admin_name: - return False - if admin_name == nickname: - return True - for moderator in lines: - moderator = moderator.strip('\n').strip('\r') - if moderator == nickname: - return True - return False - - def no_of_followers_on_domain(base_dir: str, handle: str, domain: str, follow_file: str = 'followers.txt') -> int: diff --git a/webapp_column_right.py b/webapp_column_right.py index 1423c361c..3cc5e7e4c 100644 --- a/webapp_column_right.py +++ b/webapp_column_right.py @@ -11,6 +11,7 @@ import os from content import remove_long_words from content import limit_repeated_words from flags import is_editor +from flags import is_moderator from utils import replace_strings from utils import data_dir from utils import get_fav_filename_from_url @@ -25,7 +26,6 @@ from utils import remove_domain_port from utils import acct_dir from formats import get_image_extensions from timeFunctions import date_from_string_format -from posts import is_moderator from newswire import get_newswire_favicon_url from webapp_utils import get_right_image_file from webapp_utils import html_header_with_external_style diff --git a/webapp_moderation.py b/webapp_moderation.py index 6412da22d..059a2f86b 100644 --- a/webapp_moderation.py +++ b/webapp_moderation.py @@ -10,6 +10,7 @@ __module_group__ = "Moderation" import os from flags import is_editor from flags import is_artist +from flags import is_moderator from utils import get_person_icon from utils import data_dir from utils import remove_html @@ -23,7 +24,6 @@ from utils import local_actor_url from utils import remove_eol from posts import download_follow_collection from posts import get_public_post_info -from posts import is_moderator from webapp_timeline import html_timeline # from webapp_utils import get_person_avatar_url from webapp_utils import get_banner_file diff --git a/webapp_person_options.py b/webapp_person_options.py index ef7b5e2a1..00297bc97 100644 --- a/webapp_person_options.py +++ b/webapp_person_options.py @@ -11,7 +11,7 @@ import os from shutil import copyfile from petnames import get_pet_name from person import is_person_snoozed -from posts import is_moderator +from flags import is_moderator from flags import is_featured_writer from flags import is_dormant from quote import quote_toots_allowed diff --git a/webapp_profile.py b/webapp_profile.py index 72ab08d41..3cc0d242d 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -16,6 +16,7 @@ from flags import is_system_account from flags import is_group_account from flags import is_valid_date from flags import is_premium_account +from flags import is_moderator from status import actor_status_expired from status import get_actor_status from textmode import text_mode_removals @@ -63,7 +64,6 @@ from person import get_person_notes from posts import get_post_expiry_keep_dms from posts import get_post_expiry_days from posts import get_person_box -from posts import is_moderator from posts import parse_user_feed from posts import is_create_inside_announce from posts import get_max_profile_posts diff --git a/webapp_timeline.py b/webapp_timeline.py index 9fa947df3..6d96bfc14 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -13,6 +13,7 @@ from shutil import copyfile from flags import is_editor from flags import is_artist from flags import is_float +from flags import is_moderator from utils import data_dir from utils import dangerous_markup from utils import get_config_param @@ -40,7 +41,6 @@ from webapp_post import individual_post_as_html from webapp_column_left import get_left_column_content from webapp_column_right import get_right_column_content from webapp_headerbuttons import header_buttons_timeline -from posts import is_moderator from announce import mark_announce_as_seen from announce import announce_seen from announce import is_announce diff --git a/webapp_utils.py b/webapp_utils.py index a462241b9..744a5e778 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -13,6 +13,7 @@ from collections import OrderedDict from session import get_json from session import get_json_valid from flags import is_float +from flags import is_moderator from formats import media_file_mime_type from utils import replace_strings from utils import get_image_file @@ -52,7 +53,6 @@ from content import add_html_tags from content import replace_emoji_from_tags from person import get_person_avatar_url from person import get_person_notes -from posts import is_moderator from blocking import is_blocked from blocking import allowed_announce from shares import vf_proposal_from_share