Remove follower when blocking

merge-requests/30/head
Bob Mottram 2022-12-01 23:00:30 +00:00
parent 36ec6ae397
commit 7ad89d79f3
2 changed files with 34 additions and 0 deletions

View File

@ -122,6 +122,7 @@ from follow import is_following_actor
from follow import get_following_feed
from follow import send_follow_request
from follow import unfollow_account
from follow import remove_follower
from follow import create_initial_last_seen
from skills import get_skills_from_list
from skills import no_of_actor_skills
@ -4057,6 +4058,10 @@ class PubServer(BaseHTTPRequestHandler):
blocker_nickname, domain_full,
blocking_nickname, blocking_domain_full,
curr_session, proxy_type)
remove_follower(base_dir, blocker_nickname,
domain,
blocking_nickname,
blocking_domain_full)
if calling_domain.endswith('.onion') and onion_domain:
origin_path_str = 'http://' + onion_domain + users_path
elif (calling_domain.endswith('.i2p') and i2p_domain):

View File

@ -1474,3 +1474,32 @@ def follower_approval_active(base_dir: str,
manually_approves_followers = \
actor_json['manuallyApprovesFollowers']
return manually_approves_followers
def remove_follower(base_dir: str,
nickname: str, domain: str,
remove_nickname: str, remove_domain: str) -> bool:
"""Removes a follower
"""
followers_filename = \
acct_dir(base_dir, nickname, domain) + '/followers.txt'
if not os.path.isfile(followers_filename):
return False
followers_str = ''
try:
with open(followers_filename, 'r', encoding='utf-8') as fp_foll:
followers_str = fp_foll.read()
except OSError:
print('EX: remove_follower unable to read followers ' +
followers_filename)
handle = remove_nickname + '@' + remove_domain + '\n'
if handle not in followers_str:
return False
followers_str = followers_str.replace(handle, '')
try:
with open(followers_filename, 'w+', encoding='utf-8') as fp_foll:
fp_foll.write(followers_str)
except OSError:
print('EX: remove_follower unable to write followers ' +
followers_filename)
return True