mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Function for finding text in file
							parent
							
								
									6404f36b4a
								
							
						
					
					
						commit
						f86560e8da
					
				
							
								
								
									
										4
									
								
								blog.py
								
								
								
								
							
							
						
						
									
										4
									
								
								blog.py
								
								
								
								
							| 
						 | 
				
			
			@ -17,6 +17,7 @@ from webapp_utils import html_footer
 | 
			
		|||
from webapp_utils import get_post_attachments_as_html
 | 
			
		||||
from webapp_utils import edit_text_area
 | 
			
		||||
from webapp_media import add_embedded_elements
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from utils import local_actor_url
 | 
			
		||||
from utils import get_actor_languages_list
 | 
			
		||||
from utils import get_base_content_from_post
 | 
			
		||||
| 
						 | 
				
			
			@ -929,8 +930,7 @@ def path_contains_blog_link(base_dir: str,
 | 
			
		|||
        acct_dir(base_dir, nickname, domain) + '/tlblogs.index'
 | 
			
		||||
    if not os.path.isfile(blog_index_filename):
 | 
			
		||||
        return None, None
 | 
			
		||||
    if '#' + user_ending2[1] + '.' not in open(blog_index_filename,
 | 
			
		||||
                                               encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file('#' + user_ending2[1] + '.', blog_index_filename):
 | 
			
		||||
        return None, None
 | 
			
		||||
    message_id = local_actor_url(http_prefix, nickname, domain_full) + \
 | 
			
		||||
        '/statuses/' + user_ending2[1]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,7 @@ from utils import acct_dir
 | 
			
		|||
from utils import local_actor_url
 | 
			
		||||
from utils import has_actor
 | 
			
		||||
from utils import has_object_string_type
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from posts import get_person_box
 | 
			
		||||
from session import post_json
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -71,8 +72,7 @@ def undo_bookmarks_collection_entry(recent_posts_cache: {},
 | 
			
		|||
    else:
 | 
			
		||||
        bookmark_index = post_filename.strip()
 | 
			
		||||
    bookmark_index = bookmark_index.replace('\n', '').replace('\r', '')
 | 
			
		||||
    if bookmark_index not in open(bookmarks_index_filename,
 | 
			
		||||
                                  encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(bookmark_index, bookmarks_index_filename):
 | 
			
		||||
        return
 | 
			
		||||
    index_str = ''
 | 
			
		||||
    try:
 | 
			
		||||
| 
						 | 
				
			
			@ -238,8 +238,7 @@ def update_bookmarks_collection(recent_posts_cache: {},
 | 
			
		|||
        acct_dir(base_dir, nickname, domain) + '/bookmarks.index'
 | 
			
		||||
    bookmark_index = post_filename.split('/')[-1]
 | 
			
		||||
    if os.path.isfile(bookmarks_index_filename):
 | 
			
		||||
        if bookmark_index not in open(bookmarks_index_filename,
 | 
			
		||||
                                      encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(bookmark_index, bookmarks_index_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(bookmarks_index_filename, 'r+',
 | 
			
		||||
                          encoding='utf-8') as bmi_file:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ import os
 | 
			
		|||
from utils import has_object_dict
 | 
			
		||||
from utils import acct_dir
 | 
			
		||||
from utils import remove_id_ending
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _get_conversation_filename(base_dir: str, nickname: str, domain: str,
 | 
			
		||||
| 
						 | 
				
			
			@ -50,8 +51,7 @@ def update_conversation(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
        except OSError:
 | 
			
		||||
            print('EX: update_conversation ' +
 | 
			
		||||
                  'unable to write to ' + conversation_filename)
 | 
			
		||||
    elif post_id + '\n' not in open(conversation_filename,
 | 
			
		||||
                                    encoding='utf-8').read():
 | 
			
		||||
    elif not text_in_file(post_id + '\n', conversation_filename):
 | 
			
		||||
        try:
 | 
			
		||||
            with open(conversation_filename, 'a+',
 | 
			
		||||
                      encoding='utf-8') as conv_file:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@ __module_group__ = "Moderation"
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
from utils import acct_dir
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def add_filter(base_dir: str, nickname: str, domain: str, words: str) -> bool:
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +55,7 @@ def remove_filter(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
    filters_filename = acct_dir(base_dir, nickname, domain) + '/filters.txt'
 | 
			
		||||
    if not os.path.isfile(filters_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    if words not in open(filters_filename, encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(words, filters_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    new_filters_filename = filters_filename + '.new'
 | 
			
		||||
    try:
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +80,7 @@ def remove_global_filter(base_dir: str, words: str) -> bool:
 | 
			
		|||
    filters_filename = base_dir + '/accounts/filters.txt'
 | 
			
		||||
    if not os.path.isfile(filters_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    if words not in open(filters_filename, encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(words, filters_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    new_filters_filename = filters_filename + '.new'
 | 
			
		||||
    try:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								follow.py
								
								
								
								
							
							
						
						
									
										10
									
								
								follow.py
								
								
								
								
							| 
						 | 
				
			
			@ -30,6 +30,7 @@ from utils import get_user_paths
 | 
			
		|||
from utils import acct_dir
 | 
			
		||||
from utils import has_group_type
 | 
			
		||||
from utils import local_actor_url
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from acceptreject import create_accept
 | 
			
		||||
from acceptreject import create_reject
 | 
			
		||||
from webfinger import webfinger_handle
 | 
			
		||||
| 
						 | 
				
			
			@ -115,8 +116,7 @@ def _remove_from_follow_base(base_dir: str,
 | 
			
		|||
                  ' to remove ' + handle + ' from')
 | 
			
		||||
        return
 | 
			
		||||
    accept_deny_actor = None
 | 
			
		||||
    if accept_or_deny_handle not in open(approve_follows_filename,
 | 
			
		||||
                                         encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(accept_or_deny_handle, approve_follows_filename):
 | 
			
		||||
        # is this stored in the file as an actor rather than a handle?
 | 
			
		||||
        accept_deny_nickname = accept_or_deny_handle.split('@')[0]
 | 
			
		||||
        accept_deny_domain = accept_or_deny_handle.split('@')[1]
 | 
			
		||||
| 
						 | 
				
			
			@ -317,8 +317,7 @@ def unfollow_account(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
            print('DEBUG: follow file ' + filename + ' was not found')
 | 
			
		||||
        return False
 | 
			
		||||
    handle_to_unfollow_lower = handle_to_unfollow.lower()
 | 
			
		||||
    if handle_to_unfollow_lower not in open(filename,
 | 
			
		||||
                                            encoding='utf-8').read().lower():
 | 
			
		||||
    if not text_in_file(handle_to_unfollow_lower, filename, False):
 | 
			
		||||
        if debug:
 | 
			
		||||
            print('DEBUG: handle to unfollow ' + handle_to_unfollow +
 | 
			
		||||
                  ' is not in ' + filename)
 | 
			
		||||
| 
						 | 
				
			
			@ -708,8 +707,7 @@ def store_follow_request(base_dir: str,
 | 
			
		|||
            approve_handle = '!' + approve_handle
 | 
			
		||||
 | 
			
		||||
    if os.path.isfile(approve_follows_filename):
 | 
			
		||||
        if approve_handle not in open(approve_follows_filename,
 | 
			
		||||
                                      encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(approve_handle, approve_follows_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(approve_follows_filename, 'a+',
 | 
			
		||||
                          encoding='utf-8') as fp_approve:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ from utils import get_display_name
 | 
			
		|||
from utils import delete_post
 | 
			
		||||
from utils import get_status_number
 | 
			
		||||
from utils import get_full_domain
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from filters import is_filtered
 | 
			
		||||
from context import get_individual_post_context
 | 
			
		||||
from session import get_method
 | 
			
		||||
| 
						 | 
				
			
			@ -70,8 +71,7 @@ def _remove_event_from_timeline(event_id: str,
 | 
			
		|||
                                tl_events_filename: str) -> None:
 | 
			
		||||
    """Removes the given event Id from the timeline
 | 
			
		||||
    """
 | 
			
		||||
    if event_id + '\n' not in open(tl_events_filename,
 | 
			
		||||
                                   encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(event_id + '\n', tl_events_filename):
 | 
			
		||||
        return
 | 
			
		||||
    with open(tl_events_filename, 'r',
 | 
			
		||||
              encoding='utf-8') as fp_tl:
 | 
			
		||||
| 
						 | 
				
			
			@ -760,7 +760,7 @@ def remove_calendar_event(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
        return
 | 
			
		||||
    if '/' in message_id:
 | 
			
		||||
        message_id = message_id.replace('/', '#')
 | 
			
		||||
    if message_id not in open(calendar_filename, encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(message_id, calendar_filename):
 | 
			
		||||
        return
 | 
			
		||||
    lines = None
 | 
			
		||||
    with open(calendar_filename, 'r', encoding='utf-8') as fp_cal:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								inbox.py
								
								
								
								
							
							
						
						
									
										10
									
								
								inbox.py
								
								
								
								
							| 
						 | 
				
			
			@ -18,6 +18,7 @@ from languages import understood_post_language
 | 
			
		|||
from like import update_likes_collection
 | 
			
		||||
from reaction import update_reaction_collection
 | 
			
		||||
from reaction import valid_emoji_content
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from utils import get_media_descriptions_from_post
 | 
			
		||||
from utils import get_summary_from_post
 | 
			
		||||
from utils import delete_cached_html
 | 
			
		||||
| 
						 | 
				
			
			@ -2557,8 +2558,7 @@ def populate_replies(base_dir: str, http_prefix: str, domain: str,
 | 
			
		|||
                                           encoding='utf-8'))
 | 
			
		||||
        if num_lines > max_replies:
 | 
			
		||||
            return False
 | 
			
		||||
        if message_id not in open(post_replies_filename,
 | 
			
		||||
                                  encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(message_id, post_replies_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(post_replies_filename, 'a+',
 | 
			
		||||
                          encoding='utf-8') as replies_file:
 | 
			
		||||
| 
						 | 
				
			
			@ -2875,7 +2875,7 @@ def _like_notify(base_dir: str, domain: str, onion_domain: str,
 | 
			
		|||
 | 
			
		||||
    like_file = account_dir + '/.newLike'
 | 
			
		||||
    if os.path.isfile(like_file):
 | 
			
		||||
        if '##sent##' not in open(like_file).read():
 | 
			
		||||
        if not text_in_file('##sent##', like_file):
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
    liker_nickname = get_nickname_from_actor(actor)
 | 
			
		||||
| 
						 | 
				
			
			@ -2937,7 +2937,7 @@ def _reaction_notify(base_dir: str, domain: str, onion_domain: str,
 | 
			
		|||
 | 
			
		||||
    reaction_file = account_dir + '/.newReaction'
 | 
			
		||||
    if os.path.isfile(reaction_file):
 | 
			
		||||
        if '##sent##' not in open(reaction_file, encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file('##sent##', reaction_file):
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
    reaction_nickname = get_nickname_from_actor(actor)
 | 
			
		||||
| 
						 | 
				
			
			@ -4816,7 +4816,7 @@ def _receive_follow_request(session, session_onion, session_i2p,
 | 
			
		|||
            print('Updating followers file: ' +
 | 
			
		||||
                  followers_filename + ' adding ' + approve_handle)
 | 
			
		||||
            if os.path.isfile(followers_filename):
 | 
			
		||||
                if approve_handle not in open(followers_filename).read():
 | 
			
		||||
                if not text_in_file(approve_handle, followers_filename):
 | 
			
		||||
                    group_account = \
 | 
			
		||||
                        has_group_type(base_dir,
 | 
			
		||||
                                       message_json['actor'], person_cache)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@ from utils import remove_domain_port
 | 
			
		|||
from utils import get_port_from_domain
 | 
			
		||||
from utils import get_user_paths
 | 
			
		||||
from utils import acct_dir
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from threads import thread_with_trace
 | 
			
		||||
from session import create_session
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +116,7 @@ def _approve_follower_handle(account_dir: str, approve_handle: str) -> None:
 | 
			
		|||
    """
 | 
			
		||||
    approved_filename = account_dir + '/approved.txt'
 | 
			
		||||
    if os.path.isfile(approved_filename):
 | 
			
		||||
        if approve_handle not in open(approved_filename).read():
 | 
			
		||||
        if not text_in_file(approve_handle, approved_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(approved_filename, 'a+') as approved_file:
 | 
			
		||||
                    approved_file.write(approve_handle + '\n')
 | 
			
		||||
| 
						 | 
				
			
			@ -280,8 +281,7 @@ def manual_approve_follow_request(session, session_onion, session_i2p,
 | 
			
		|||
        # update the followers
 | 
			
		||||
        print('Manual follow accept: updating ' + followers_filename)
 | 
			
		||||
        if os.path.isfile(followers_filename):
 | 
			
		||||
            if approve_handle_full not in open(followers_filename,
 | 
			
		||||
                                               encoding='utf-8').read():
 | 
			
		||||
            if not text_in_file(approve_handle_full, followers_filename):
 | 
			
		||||
                try:
 | 
			
		||||
                    with open(followers_filename, 'r+',
 | 
			
		||||
                              encoding='utf-8') as followers_file:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ from utils import get_status_number
 | 
			
		|||
from utils import clear_from_post_caches
 | 
			
		||||
from utils import dangerous_markup
 | 
			
		||||
from utils import local_actor_url
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from inbox import store_hash_tags
 | 
			
		||||
from session import create_session
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +47,7 @@ def _update_feeds_outbox_index(base_dir: str, domain: str,
 | 
			
		|||
    index_filename = base_path + '/outbox.index'
 | 
			
		||||
 | 
			
		||||
    if os.path.isfile(index_filename):
 | 
			
		||||
        if post_id not in open(index_filename, encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(post_id, index_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(index_filename, 'r+') as feeds_file:
 | 
			
		||||
                    content = feeds_file.read()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ __module_group__ = "Calendar"
 | 
			
		|||
import os
 | 
			
		||||
from utils import remove_domain_port
 | 
			
		||||
from utils import acct_dir
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _notify_on_post_arrival(base_dir: str, nickname: str, domain: str,
 | 
			
		||||
| 
						 | 
				
			
			@ -30,8 +31,7 @@ def _notify_on_post_arrival(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
    handle = following_nickname + '@' + following_domain
 | 
			
		||||
 | 
			
		||||
    # check that you are following this handle
 | 
			
		||||
    if handle + '\n' not in open(following_filename,
 | 
			
		||||
                                 encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(handle + '\n', following_filename):
 | 
			
		||||
        print('WARN: ' + handle + ' is not in ' + following_filename)
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,7 @@ from utils import get_user_paths
 | 
			
		|||
from utils import get_group_paths
 | 
			
		||||
from utils import local_actor_url
 | 
			
		||||
from utils import dangerous_svg
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from session import create_session
 | 
			
		||||
from session import get_json
 | 
			
		||||
from webfinger import webfinger_handle
 | 
			
		||||
| 
						 | 
				
			
			@ -1207,7 +1208,7 @@ def _remove_tags_for_nickname(base_dir: str, nickname: str,
 | 
			
		|||
            continue
 | 
			
		||||
        if not os.path.isfile(tag_filename):
 | 
			
		||||
            continue
 | 
			
		||||
        if match_str not in open(tag_filename, encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(match_str, tag_filename):
 | 
			
		||||
            continue
 | 
			
		||||
        lines = []
 | 
			
		||||
        with open(tag_filename, 'r', encoding='utf-8') as fp_tag:
 | 
			
		||||
| 
						 | 
				
			
			@ -1358,8 +1359,7 @@ def is_person_snoozed(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
    snoozed_filename = acct_dir(base_dir, nickname, domain) + '/snoozed.txt'
 | 
			
		||||
    if not os.path.isfile(snoozed_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    if snooze_actor + ' ' not in open(snoozed_filename,
 | 
			
		||||
                                      encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(snooze_actor + ' ', snoozed_filename):
 | 
			
		||||
        return False
 | 
			
		||||
    # remove the snooze entry if it has timed out
 | 
			
		||||
    replace_str = None
 | 
			
		||||
| 
						 | 
				
			
			@ -1428,8 +1428,7 @@ def person_unsnooze(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
    snoozed_filename = account_dir + '/snoozed.txt'
 | 
			
		||||
    if not os.path.isfile(snoozed_filename):
 | 
			
		||||
        return
 | 
			
		||||
    if snooze_actor + ' ' not in open(snoozed_filename,
 | 
			
		||||
                                      encoding='utf-8').read():
 | 
			
		||||
    if not text_in_file(snooze_actor + ' ', snoozed_filename):
 | 
			
		||||
        return
 | 
			
		||||
    replace_str = None
 | 
			
		||||
    with open(snoozed_filename, 'r', encoding='utf-8') as snoozed_file:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								posts.py
								
								
								
								
							
							
						
						
									
										6
									
								
								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 utils import text_in_file
 | 
			
		||||
from utils import get_media_descriptions_from_post
 | 
			
		||||
from utils import valid_hash_tag
 | 
			
		||||
from utils import get_audio_extensions
 | 
			
		||||
| 
						 | 
				
			
			@ -968,7 +969,7 @@ def _update_hashtags_index(base_dir: str, tag: {}, new_post_id: str) -> None:
 | 
			
		|||
                  tags_filename)
 | 
			
		||||
    else:
 | 
			
		||||
        # prepend to tags index file
 | 
			
		||||
        if tagline not in open(tags_filename, encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(tagline, tags_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(tags_filename, 'r+', encoding='utf-8') as tags_file:
 | 
			
		||||
                    content = tags_file.read()
 | 
			
		||||
| 
						 | 
				
			
			@ -990,8 +991,7 @@ def _add_schedule_post(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
 | 
			
		||||
    index_str = event_date_str + ' ' + post_id.replace('/', '#')
 | 
			
		||||
    if os.path.isfile(schedule_index_filename):
 | 
			
		||||
        if index_str not in open(schedule_index_filename,
 | 
			
		||||
                                 encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(index_str, schedule_index_filename):
 | 
			
		||||
            try:
 | 
			
		||||
                with open(schedule_index_filename, 'r+',
 | 
			
		||||
                          encoding='utf-8') as schedule_file:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@ from utils import locate_post
 | 
			
		|||
from utils import load_json
 | 
			
		||||
from utils import save_json
 | 
			
		||||
from utils import has_object_dict
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def question_update_votes(base_dir: str, nickname: str, domain: str,
 | 
			
		||||
| 
						 | 
				
			
			@ -74,8 +75,7 @@ def question_update_votes(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
        except OSError:
 | 
			
		||||
            print('EX: unable to write voters file ' + voters_filename)
 | 
			
		||||
    else:
 | 
			
		||||
        if reply_json['actor'] not in open(voters_filename,
 | 
			
		||||
                                           encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file(reply_json['actor'], voters_filename):
 | 
			
		||||
            # append to the voters file
 | 
			
		||||
            try:
 | 
			
		||||
                with open(voters_filename, 'a+',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								roles.py
								
								
								
								
							
							
						
						
									
										4
									
								
								roles.py
								
								
								
								
							| 
						 | 
				
			
			@ -13,6 +13,7 @@ from utils import save_json
 | 
			
		|||
from utils import get_status_number
 | 
			
		||||
from utils import remove_domain_port
 | 
			
		||||
from utils import acct_dir
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _clear_role_status(base_dir: str, role: str) -> None:
 | 
			
		||||
| 
						 | 
				
			
			@ -28,8 +29,7 @@ def _clear_role_status(base_dir: str, role: str) -> None:
 | 
			
		|||
        if not filename.endswith(".json"):
 | 
			
		||||
            continue
 | 
			
		||||
        filename = os.path.join(base_dir + '/accounts/', filename)
 | 
			
		||||
        if '"' + role + '"' not in open(filename,
 | 
			
		||||
                                        encoding='utf-8').read():
 | 
			
		||||
        if not text_in_file('"' + role + '"', filename):
 | 
			
		||||
            continue
 | 
			
		||||
        actor_json = load_json(filename)
 | 
			
		||||
        if not actor_json:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								tests.py
								
								
								
								
							
							
						
						
									
										9
									
								
								tests.py
								
								
								
								
							| 
						 | 
				
			
			@ -54,6 +54,7 @@ from follow import clear_followers
 | 
			
		|||
from follow import send_follow_request_via_server
 | 
			
		||||
from follow import send_unfollow_request_via_server
 | 
			
		||||
from siteactive import site_is_active
 | 
			
		||||
from utils import text_in_file
 | 
			
		||||
from utils import convert_published_to_local_timezone
 | 
			
		||||
from utils import convert_to_snake_case
 | 
			
		||||
from utils import get_sha_256
 | 
			
		||||
| 
						 | 
				
			
			@ -3467,10 +3468,10 @@ def test_client_to_server(base_dir: str):
 | 
			
		|||
 | 
			
		||||
    assert os.path.isfile(bob_followers_filename)
 | 
			
		||||
    assert os.path.isfile(alice_following_filename)
 | 
			
		||||
    assert 'alice@' + alice_domain + ':' + str(alice_port) \
 | 
			
		||||
        not in open(bob_followers_filename, encoding='utf-8').read()
 | 
			
		||||
    assert 'bob@' + bob_domain + ':' + str(bob_port) \
 | 
			
		||||
        not in open(alice_following_filename, encoding='utf-8').read()
 | 
			
		||||
    test_str = 'alice@' + alice_domain + ':' + str(alice_port)
 | 
			
		||||
    assert not text_in_file(test_str, bob_followers_filename)
 | 
			
		||||
    test_str = 'bob@' + bob_domain + ':' + str(bob_port)
 | 
			
		||||
    assert not text_in_file(test_str, alice_following_filename)
 | 
			
		||||
    assert valid_inbox(bob_dir, 'bob', bob_domain)
 | 
			
		||||
    assert valid_inbox_filenames(bob_dir, 'bob', bob_domain,
 | 
			
		||||
                                 alice_domain, alice_port)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								utils.py
								
								
								
								
							
							
						
						
									
										6
									
								
								utils.py
								
								
								
								
							| 
						 | 
				
			
			@ -40,13 +40,17 @@ INVALID_CHARACTERS = (
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def text_in_file(text: str, filename: str) -> bool:
 | 
			
		||||
def text_in_file(text: str, filename: str, case_sensitive: bool = True) -> bool:
 | 
			
		||||
    """is the given text in the given file?
 | 
			
		||||
    """
 | 
			
		||||
    if not case_sensitive:
 | 
			
		||||
        text = text.lower()
 | 
			
		||||
    try:
 | 
			
		||||
        with open(filename, 'r', encoding='utf-8') as file:
 | 
			
		||||
            content = file.read()
 | 
			
		||||
            if content:
 | 
			
		||||
                if not case_sensitive:
 | 
			
		||||
                    content = content.lower()
 | 
			
		||||
                if text in content:
 | 
			
		||||
                    return True
 | 
			
		||||
    except OSError:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue