Snake case

merge-requests/30/head
Bob Mottram 2021-12-28 20:32:11 +00:00
parent 133566c821
commit 1872d25cd1
15 changed files with 381 additions and 379 deletions

View File

@ -240,7 +240,7 @@ def createPassword(length: int):
return ''.join((secrets.choice(validChars) for i in range(length))) return ''.join((secrets.choice(validChars) for i in range(length)))
def recordLoginFailure(base_dir: str, ipAddress: str, def record_login_failure(base_dir: str, ipAddress: str,
countDict: {}, failTime: int, countDict: {}, failTime: int,
logToFile: bool) -> None: logToFile: bool) -> None:
"""Keeps ip addresses and the number of times login failures """Keeps ip addresses and the number of times login failures
@ -287,4 +287,4 @@ def recordLoginFailure(base_dir: str, ipAddress: str,
ipAddress + ' port 443: ' + ipAddress + ' port 443: ' +
'Too many authentication failures [preauth]\n') 'Too many authentication failures [preauth]\n')
except OSError: except OSError:
print('EX: recordLoginFailure failed ' + str(failureLog)) print('EX: record_login_failure failed ' + str(failureLog))

116
daemon.py
View File

@ -96,24 +96,24 @@ from posts import populate_replies_json
from posts import add_to_field from posts import add_to_field
from posts import expire_cache from posts import expire_cache
from inbox import clear_queue_items from inbox import clear_queue_items
from inbox import inboxPermittedMessage from inbox import inbox_permitted_message
from inbox import inboxMessageHasParams from inbox import inbox_message_has_params
from inbox import runInboxQueue from inbox import run_inbox_queue
from inbox import runInboxQueueWatchdog from inbox import run_inbox_queue_watchdog
from inbox import savePostToInboxQueue from inbox import save_post_to_inbox_queue
from inbox import populateReplies from inbox import populate_replies
from follow import followerApprovalActive from follow import follower_approval_active
from follow import isFollowingActor from follow import is_following_actor
from follow import getFollowingFeed from follow import get_following_feed
from follow import sendFollowRequest from follow import send_follow_request
from follow import unfollowAccount from follow import unfollow_account
from follow import createInitialLastSeen from follow import create_initial_last_seen
from skills import getSkillsFromList from skills import get_skills_from_list
from skills import noOfActorSkills from skills import no_of_actor_skills
from skills import actorHasSkill from skills import actor_has_skill
from skills import actorSkillValue from skills import actor_skill_value
from skills import setActorSkillLevel from skills import set_actor_skill_level
from auth import recordLoginFailure from auth import record_login_failure
from auth import authorize from auth import authorize
from auth import createPassword from auth import createPassword
from auth import createBasicAuthHeader from auth import createBasicAuthHeader
@ -530,7 +530,7 @@ class PubServer(BaseHTTPRequestHandler):
if post_filename: if post_filename:
post_json_object = load_json(post_filename) post_json_object = load_json(post_filename)
if post_json_object: if post_json_object:
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain_full, self.server.domain_full,
post_json_object, post_json_object,
@ -1533,7 +1533,7 @@ class PubServer(BaseHTTPRequestHandler):
self.server.blockedCacheUpdateSecs) self.server.blockedCacheUpdateSecs)
queueFilename = \ queueFilename = \
savePostToInboxQueue(self.server.base_dir, save_post_to_inbox_queue(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
nickname, nickname,
self.server.domain_full, self.server.domain_full,
@ -1741,7 +1741,7 @@ class PubServer(BaseHTTPRequestHandler):
self.server.last_login_failure = failTime self.server.last_login_failure = failTime
if not domain.endswith('.onion'): if not domain.endswith('.onion'):
if not is_local_network_address(ipAddress): if not is_local_network_address(ipAddress):
recordLoginFailure(base_dir, ipAddress, record_login_failure(base_dir, ipAddress,
self.server.login_failure_count, self.server.login_failure_count,
failTime, failTime,
self.server.log_login_failures) self.server.log_login_failures)
@ -2961,7 +2961,7 @@ class PubServer(BaseHTTPRequestHandler):
group_account = has_group_type(self.server.base_dir, group_account = has_group_type(self.server.base_dir,
followingActor, followingActor,
self.server.person_cache) self.server.person_cache)
unfollowAccount(self.server.base_dir, self.postToNickname, unfollow_account(self.server.base_dir, self.postToNickname,
self.server.domain, self.server.domain,
followingNickname, followingDomainFull, followingNickname, followingDomainFull,
self.server.debug, group_account) self.server.debug, group_account)
@ -3042,7 +3042,7 @@ class PubServer(BaseHTTPRequestHandler):
followerNickname + ' to ' + followingActor) followerNickname + ' to ' + followingActor)
if not self.server.signing_priv_key_pem: if not self.server.signing_priv_key_pem:
print('Sending follow request with no signing key') print('Sending follow request with no signing key')
sendFollowRequest(self.server.session, send_follow_request(self.server.session,
base_dir, followerNickname, base_dir, followerNickname,
domain, port, domain, port,
http_prefix, http_prefix,
@ -3511,7 +3511,7 @@ class PubServer(BaseHTTPRequestHandler):
profilePathStr = path.replace('/searchhandle', '') profilePathStr = path.replace('/searchhandle', '')
# are we already following the searched for handle? # are we already following the searched for handle?
if isFollowingActor(base_dir, nickname, domain, searchStr): if is_following_actor(base_dir, nickname, domain, searchStr):
if not has_users_path(searchStr): if not has_users_path(searchStr):
searchNickname = get_nickname_from_actor(searchStr) searchNickname = get_nickname_from_actor(searchStr)
searchDomain, searchPort = \ searchDomain, searchPort = \
@ -4934,7 +4934,7 @@ class PubServer(BaseHTTPRequestHandler):
# set skill levels # set skill levels
skillCtr = 1 skillCtr = 1
actorSkillsCtr = noOfActorSkills(actor_json) actorSkillsCtr = no_of_actor_skills(actor_json)
while skillCtr < 10: while skillCtr < 10:
skillName = \ skillName = \
fields.get('skillName' + str(skillCtr)) fields.get('skillName' + str(skillCtr))
@ -4949,20 +4949,20 @@ class PubServer(BaseHTTPRequestHandler):
if not skillValue: if not skillValue:
skillCtr += 1 skillCtr += 1
continue continue
if not actorHasSkill(actor_json, skillName): if not actor_has_skill(actor_json, skillName):
actorChanged = True actorChanged = True
else: else:
if actorSkillValue(actor_json, skillName) != \ if actor_skill_value(actor_json, skillName) != \
int(skillValue): int(skillValue):
actorChanged = True actorChanged = True
setActorSkillLevel(actor_json, set_actor_skill_level(actor_json,
skillName, int(skillValue)) skillName, int(skillValue))
skillsStr = self.server.translate['Skills'] skillsStr = self.server.translate['Skills']
skillsStr = skillsStr.lower() skillsStr = skillsStr.lower()
setHashtagCategory(base_dir, skillName, setHashtagCategory(base_dir, skillName,
skillsStr, False) skillsStr, False)
skillCtr += 1 skillCtr += 1
if noOfActorSkills(actor_json) != \ if no_of_actor_skills(actor_json) != \
actorSkillsCtr: actorSkillsCtr:
actorChanged = True actorChanged = True
@ -7738,7 +7738,7 @@ class PubServer(BaseHTTPRequestHandler):
print('Announced post cache: ' + str(cachedPostFilename)) print('Announced post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(announceJson) showRepeats = not is_dm(announceJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -8199,7 +8199,7 @@ class PubServer(BaseHTTPRequestHandler):
print('Liked post cache: ' + str(cachedPostFilename)) print('Liked post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(likedPostJson) showRepeats = not is_dm(likedPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -8355,7 +8355,7 @@ class PubServer(BaseHTTPRequestHandler):
if likedPostJson: if likedPostJson:
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(likedPostJson) showRepeats = not is_dm(likedPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -8538,7 +8538,7 @@ class PubServer(BaseHTTPRequestHandler):
print('Reaction post cache: ' + str(cachedPostFilename)) print('Reaction post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(reactionPostJson) showRepeats = not is_dm(reactionPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -8712,7 +8712,7 @@ class PubServer(BaseHTTPRequestHandler):
if reactionPostJson: if reactionPostJson:
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(reactionPostJson) showRepeats = not is_dm(reactionPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -8932,7 +8932,7 @@ class PubServer(BaseHTTPRequestHandler):
print('Bookmarked post cache: ' + str(cachedPostFilename)) print('Bookmarked post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(bookmarkPostJson) showRepeats = not is_dm(bookmarkPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -9060,7 +9060,7 @@ class PubServer(BaseHTTPRequestHandler):
print('Unbookmarked post cache: ' + str(cachedPostFilename)) print('Unbookmarked post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
self.postToNickname, domain) self.postToNickname, domain)
showRepeats = not is_dm(bookmarkPostJson) showRepeats = not is_dm(bookmarkPostJson)
individualPostAsHtml(self.server.signing_priv_key_pem, False, individualPostAsHtml(self.server.signing_priv_key_pem, False,
@ -9255,7 +9255,7 @@ class PubServer(BaseHTTPRequestHandler):
print('mutePost: Muted post cache: ' + str(cachedPostFilename)) print('mutePost: Muted post cache: ' + str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
nickname, domain) nickname, domain)
showRepeats = not is_dm(mutePostJson) showRepeats = not is_dm(mutePostJson)
showPublicOnly = False showPublicOnly = False
@ -9366,7 +9366,7 @@ class PubServer(BaseHTTPRequestHandler):
str(cachedPostFilename)) str(cachedPostFilename))
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
showRepeats = not is_dm(mutePostJson) showRepeats = not is_dm(mutePostJson)
showPublicOnly = False showPublicOnly = False
storeToCache = True storeToCache = True
@ -9768,7 +9768,7 @@ class PubServer(BaseHTTPRequestHandler):
if os.path.isfile(actorFilename): if os.path.isfile(actorFilename):
actor_json = load_json(actorFilename) actor_json = load_json(actorFilename)
if actor_json: if actor_json:
if noOfActorSkills(actor_json) > 0: if no_of_actor_skills(actor_json) > 0:
if self._requestHTTP(): if self._requestHTTP():
getPerson = \ getPerson = \
person_lookup(domain, person_lookup(domain,
@ -9797,7 +9797,7 @@ class PubServer(BaseHTTPRequestHandler):
self.server.keyShortcuts[nickname] self.server.keyShortcuts[nickname]
actorSkillsList = \ actorSkillsList = \
get_occupation_skills(actor_json) get_occupation_skills(actor_json)
skills = getSkillsFromList(actorSkillsList) skills = get_skills_from_list(actorSkillsList)
city = getSpoofedCity(self.server.city, city = getSpoofedCity(self.server.city,
base_dir, base_dir,
nickname, domain) nickname, domain)
@ -9855,7 +9855,7 @@ class PubServer(BaseHTTPRequestHandler):
if self._secure_mode(): if self._secure_mode():
actorSkillsList = \ actorSkillsList = \
get_occupation_skills(actor_json) get_occupation_skills(actor_json)
skills = getSkillsFromList(actorSkillsList) skills = get_skills_from_list(actorSkillsList)
msg = json.dumps(skills, msg = json.dumps(skills,
ensure_ascii=False) ensure_ascii=False)
msg = msg.encode('utf-8') msg = msg.encode('utf-8')
@ -11915,7 +11915,7 @@ class PubServer(BaseHTTPRequestHandler):
"""Shows the following feed """Shows the following feed
""" """
following = \ following = \
getFollowingFeed(base_dir, domain, port, path, get_following_feed(base_dir, domain, port, path,
http_prefix, authorized, follows_per_page, http_prefix, authorized, follows_per_page,
'following') 'following')
if following: if following:
@ -11925,7 +11925,7 @@ class PubServer(BaseHTTPRequestHandler):
searchPath = path searchPath = path
# get a page of following, not the summary # get a page of following, not the summary
following = \ following = \
getFollowingFeed(base_dir, get_following_feed(base_dir,
domain, domain,
port, port,
path + '?page=true', path + '?page=true',
@ -12034,7 +12034,7 @@ class PubServer(BaseHTTPRequestHandler):
"""Shows the followers feed """Shows the followers feed
""" """
followers = \ followers = \
getFollowingFeed(base_dir, domain, port, path, http_prefix, get_following_feed(base_dir, domain, port, path, http_prefix,
authorized, follows_per_page, 'followers') authorized, follows_per_page, 'followers')
if followers: if followers:
if self._requestHTTP(): if self._requestHTTP():
@ -12043,7 +12043,7 @@ class PubServer(BaseHTTPRequestHandler):
searchPath = path searchPath = path
# get a page of followers, not the summary # get a page of followers, not the summary
followers = \ followers = \
getFollowingFeed(base_dir, get_following_feed(base_dir,
domain, domain,
port, port,
path + '?page=1', path + '?page=1',
@ -13216,7 +13216,7 @@ class PubServer(BaseHTTPRequestHandler):
"""Returns json collection for following.txt """Returns json collection for following.txt
""" """
followingJson = \ followingJson = \
getFollowingFeed(base_dir, domain, port, path, http_prefix, get_following_feed(base_dir, domain, port, path, http_prefix,
True, followingItemsPerPage, listName) True, followingItemsPerPage, listName)
if not followingJson: if not followingJson:
if debug: if debug:
@ -16662,7 +16662,7 @@ class PubServer(BaseHTTPRequestHandler):
if self._postToOutbox(message_json, if self._postToOutbox(message_json,
self.server.project_version, self.server.project_version,
nickname): nickname):
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain_full, self.server.domain_full,
message_json, message_json,
@ -16739,7 +16739,7 @@ class PubServer(BaseHTTPRequestHandler):
self.server.project_version, self.server.project_version,
nickname): nickname):
refresh_newswire(self.server.base_dir) refresh_newswire(self.server.base_dir)
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain_full, self.server.domain_full,
message_json, message_json,
@ -16891,7 +16891,7 @@ class PubServer(BaseHTTPRequestHandler):
if self._postToOutbox(message_json, if self._postToOutbox(message_json,
self.server.project_version, self.server.project_version,
nickname): nickname):
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain, self.server.domain,
message_json, message_json,
@ -16943,7 +16943,7 @@ class PubServer(BaseHTTPRequestHandler):
if self._postToOutbox(message_json, if self._postToOutbox(message_json,
self.server.project_version, self.server.project_version,
nickname): nickname):
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain, self.server.domain,
message_json, message_json,
@ -17004,7 +17004,7 @@ class PubServer(BaseHTTPRequestHandler):
if self._postToOutbox(message_json, if self._postToOutbox(message_json,
self.server.project_version, self.server.project_version,
nickname): nickname):
populateReplies(self.server.base_dir, populate_replies(self.server.base_dir,
self.server.http_prefix, self.server.http_prefix,
self.server.domain, self.server.domain,
message_json, message_json,
@ -18275,7 +18275,7 @@ class PubServer(BaseHTTPRequestHandler):
if self.path.endswith('/inbox') or \ if self.path.endswith('/inbox') or \
self.path == '/sharedInbox': self.path == '/sharedInbox':
if not inboxMessageHasParams(message_json): if not inbox_message_has_params(message_json):
if self.server.debug: if self.server.debug:
print("DEBUG: inbox message doesn't have the " + print("DEBUG: inbox message doesn't have the " +
"required parameters") "required parameters")
@ -18285,7 +18285,7 @@ class PubServer(BaseHTTPRequestHandler):
return return
fitnessPerformance(POSTstartTime, self.server.fitness, fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'inboxMessageHasParams', '_POST', 'inbox_message_has_params',
self.server.debug) self.server.debug)
headerSignature = self._getheaderSignatureInput() headerSignature = self._getheaderSignatureInput()
@ -18305,7 +18305,7 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug) self.server.debug)
if not self.server.unit_test: if not self.server.unit_test:
if not inboxPermittedMessage(self.server.domain, if not inbox_permitted_message(self.server.domain,
message_json, message_json,
self.server.federation_list): self.server.federation_list):
if self.server.debug: if self.server.debug:
@ -18317,7 +18317,7 @@ class PubServer(BaseHTTPRequestHandler):
return return
fitnessPerformance(POSTstartTime, self.server.fitness, fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'inboxPermittedMessage', '_POST', 'inbox_permitted_message',
self.server.debug) self.server.debug)
if self.server.debug: if self.server.debug:
@ -18934,11 +18934,11 @@ def runDaemon(content_license_url: str,
httpd.peertube_instances = [] httpd.peertube_instances = []
loadPeertubeInstances(base_dir, httpd.peertube_instances) loadPeertubeInstances(base_dir, httpd.peertube_instances)
createInitialLastSeen(base_dir, http_prefix) create_initial_last_seen(base_dir, http_prefix)
print('Creating inbox queue') print('Creating inbox queue')
httpd.thrInboxQueue = \ httpd.thrInboxQueue = \
threadWithTrace(target=runInboxQueue, threadWithTrace(target=run_inbox_queue,
args=(httpd.recent_posts_cache, args=(httpd.recent_posts_cache,
httpd.max_recent_posts, httpd.max_recent_posts,
project_version, project_version,
@ -19004,7 +19004,7 @@ def runDaemon(content_license_url: str,
if not unit_test: if not unit_test:
print('Creating inbox queue watchdog') print('Creating inbox queue watchdog')
httpd.thrWatchdog = \ httpd.thrWatchdog = \
threadWithTrace(target=runInboxQueueWatchdog, threadWithTrace(target=run_inbox_queue_watchdog,
args=(project_version, httpd), daemon=True) args=(project_version, httpd), daemon=True)
httpd.thrWatchdog.start() httpd.thrWatchdog.start()

View File

@ -38,7 +38,7 @@ from follow import denyFollowRequestViaServer
from follow import getFollowRequestsViaServer from follow import getFollowRequestsViaServer
from follow import getFollowingViaServer from follow import getFollowingViaServer
from follow import getFollowersViaServer from follow import getFollowersViaServer
from follow import sendFollowRequestViaServer from follow import send_follow_requestViaServer
from follow import sendUnfollowRequestViaServer from follow import sendUnfollowRequestViaServer
from posts import sendBlockViaServer from posts import sendBlockViaServer
from posts import sendUndoBlockViaServer from posts import sendUndoBlockViaServer
@ -2221,7 +2221,7 @@ def runDesktopClient(base_dir: str, proxy_type: str, http_prefix: str,
_sayCommand(sayStr, sayStr, _sayCommand(sayStr, sayStr,
screenreader, system_language, espeak) screenreader, system_language, espeak)
sessionFollow = create_session(proxy_type) sessionFollow = create_session(proxy_type)
sendFollowRequestViaServer(base_dir, send_follow_requestViaServer(base_dir,
sessionFollow, sessionFollow,
nickname, password, nickname, password,
domain, port, domain, port,

View File

@ -54,7 +54,7 @@ from follow import getFollowingViaServer
from follow import getFollowersViaServer from follow import getFollowersViaServer
from follow import clearFollows from follow import clearFollows
from follow import followerOfPerson from follow import followerOfPerson
from follow import sendFollowRequestViaServer from follow import send_follow_requestViaServer
from follow import sendUnfollowRequestViaServer from follow import sendUnfollowRequestViaServer
from tests import testSharedItemsFederation from tests import testSharedItemsFederation
from tests import testGroupFollow from tests import testGroupFollow
@ -1897,7 +1897,7 @@ if args.follow:
if args.secure_mode: if args.secure_mode:
signing_priv_key_pem = get_instance_actor_key(base_dir, domain) signing_priv_key_pem = get_instance_actor_key(base_dir, domain)
sendFollowRequestViaServer(base_dir, session, send_follow_requestViaServer(base_dir, session,
args.nickname, args.password, args.nickname, args.password,
domain, port, domain, port,
followNickname, followDomain, followPort, followNickname, followDomain, followPort,

View File

@ -38,7 +38,7 @@ from session import getJson
from session import postJson from session import postJson
def createInitialLastSeen(base_dir: str, http_prefix: str) -> None: def create_initial_last_seen(base_dir: str, http_prefix: str) -> None:
"""Creates initial lastseen files for all follows. """Creates initial lastseen files for all follows.
The lastseen files are used to generate the Zzz icons on The lastseen files are used to generate the Zzz icons on
follows/following lists on the profile screen. follows/following lists on the profile screen.
@ -59,7 +59,7 @@ def createInitialLastSeen(base_dir: str, http_prefix: str) -> None:
with open(followingFilename, 'r') as fp: with open(followingFilename, 'r') as fp:
followingHandles = fp.readlines() followingHandles = fp.readlines()
except OSError: except OSError:
print('EX: createInitialLastSeen ' + followingFilename) print('EX: create_initial_last_seen ' + followingFilename)
for handle in followingHandles: for handle in followingHandles:
if '#' in handle: if '#' in handle:
continue continue
@ -78,7 +78,7 @@ def createInitialLastSeen(base_dir: str, http_prefix: str) -> None:
with open(lastSeenFilename, 'w+') as fp: with open(lastSeenFilename, 'w+') as fp:
fp.write(str(100)) fp.write(str(100))
except OSError: except OSError:
print('EX: createInitialLastSeen 2 ' + print('EX: create_initial_last_seen 2 ' +
lastSeenFilename) lastSeenFilename)
break break
@ -164,7 +164,7 @@ def _removeFromFollowRejects(base_dir: str,
acceptHandle, 'followrejects', debug) acceptHandle, 'followrejects', debug)
def isFollowingActor(base_dir: str, def is_following_actor(base_dir: str,
nickname: str, domain: str, actor: str) -> bool: nickname: str, domain: str, actor: str) -> bool:
"""Is the given nickname following the given actor? """Is the given nickname following the given actor?
The actor can also be a handle: nickname@domain The actor can also be a handle: nickname@domain
@ -283,7 +283,7 @@ def isFollowerOfPerson(base_dir: str, nickname: str, domain: str,
return alreadyFollowing return alreadyFollowing
def unfollowAccount(base_dir: str, nickname: str, domain: str, def unfollow_account(base_dir: str, nickname: str, domain: str,
followNickname: str, followDomain: str, followNickname: str, followDomain: str,
debug: bool, group_account: bool, debug: bool, group_account: bool,
followFile: str = 'following.txt') -> bool: followFile: str = 'following.txt') -> bool:
@ -315,7 +315,7 @@ def unfollowAccount(base_dir: str, nickname: str, domain: str,
with open(filename, 'r') as f: with open(filename, 'r') as f:
lines = f.readlines() lines = f.readlines()
except OSError: except OSError:
print('EX: unfollowAccount ' + filename) print('EX: unfollow_account ' + filename)
if lines: if lines:
try: try:
with open(filename, 'w+') as f: with open(filename, 'w+') as f:
@ -353,7 +353,7 @@ def unfollowerOfAccount(base_dir: str, nickname: str, domain: str,
debug: bool, group_account: bool) -> bool: debug: bool, group_account: bool) -> bool:
"""Remove a follower of a person """Remove a follower of a person
""" """
return unfollowAccount(base_dir, nickname, domain, return unfollow_account(base_dir, nickname, domain,
followerNickname, followerDomain, followerNickname, followerDomain,
debug, group_account, 'followers.txt') debug, group_account, 'followers.txt')
@ -424,7 +424,7 @@ def getNoOfFollowers(base_dir: str,
authenticated, 'followers.txt') authenticated, 'followers.txt')
def getFollowingFeed(base_dir: str, domain: str, port: int, path: str, def get_following_feed(base_dir: str, domain: str, port: int, path: str,
http_prefix: str, authorized: bool, http_prefix: str, authorized: bool,
follows_per_page=12, follows_per_page=12,
followFile='following') -> {}: followFile='following') -> {}:
@ -448,7 +448,7 @@ def getFollowingFeed(base_dir: str, domain: str, port: int, path: str,
try: try:
pageNumber = int(pageNumber) pageNumber = int(pageNumber)
except BaseException: except BaseException:
print('EX: getFollowingFeed unable to convert to int ' + print('EX: get_following_feed unable to convert to int ' +
str(pageNumber)) str(pageNumber))
pass pass
path = path.split('?page=')[0] path = path.split('?page=')[0]
@ -517,7 +517,7 @@ def getFollowingFeed(base_dir: str, domain: str, port: int, path: str,
with open(filename, 'r') as f: with open(filename, 'r') as f:
lines = f.readlines() lines = f.readlines()
except OSError: except OSError:
print('EX: getFollowingFeed ' + filename) print('EX: get_following_feed ' + filename)
for line in lines: for line in lines:
if '#' not in line: if '#' not in line:
if '@' in line and not line.startswith('http'): if '@' in line and not line.startswith('http'):
@ -846,8 +846,9 @@ def followedAccountRejects(session, base_dir: str, http_prefix: str,
6393063) 6393063)
def sendFollowRequest(session, base_dir: str, def send_follow_request(session, base_dir: str,
nickname: str, domain: str, port: int, http_prefix: str, nickname: str, domain: str, port: int,
http_prefix: str,
followNickname: str, followDomain: str, followNickname: str, followDomain: str,
followedActor: str, followedActor: str,
followPort: int, followHttpPrefix: str, followPort: int, followHttpPrefix: str,
@ -881,7 +882,7 @@ def sendFollowRequest(session, base_dir: str,
print('Follow request being sent to group account') print('Follow request being sent to group account')
else: else:
if debug: if debug:
print('DEBUG: sendFollowRequest - assuming single user instance') print('DEBUG: send_follow_request - assuming single user instance')
followedId = followHttpPrefix + '://' + requestDomain followedId = followHttpPrefix + '://' + requestDomain
singleUserNickname = 'dev' singleUserNickname = 'dev'
followHandle = singleUserNickname + '@' + requestDomain followHandle = singleUserNickname + '@' + requestDomain
@ -896,7 +897,7 @@ def sendFollowRequest(session, base_dir: str,
with open(unfollowedFilename, 'r') as fp: with open(unfollowedFilename, 'r') as fp:
unfollowedFile = fp.read() unfollowedFile = fp.read()
except OSError: except OSError:
print('EX: sendFollowRequest ' + unfollowedFilename) print('EX: send_follow_request ' + unfollowedFilename)
if unfollowedFile: if unfollowedFile:
unfollowedFile = \ unfollowedFile = \
unfollowedFile.replace(followHandle + '\n', '') unfollowedFile.replace(followHandle + '\n', '')
@ -939,7 +940,7 @@ def sendFollowRequest(session, base_dir: str,
return newFollowJson return newFollowJson
def sendFollowRequestViaServer(base_dir: str, session, def send_follow_requestViaServer(base_dir: str, session,
fromNickname: str, password: str, fromNickname: str, password: str,
fromDomain: str, fromPort: int, fromDomain: str, fromPort: int,
followNickname: str, followDomain: str, followNickname: str, followDomain: str,
@ -951,7 +952,7 @@ def sendFollowRequestViaServer(base_dir: str, session,
"""Creates a follow request via c2s """Creates a follow request via c2s
""" """
if not session: if not session:
print('WARN: No session for sendFollowRequestViaServer') print('WARN: No session for send_follow_requestViaServer')
return 6 return 6
fromDomainFull = get_full_domain(fromDomain, fromPort) fromDomainFull = get_full_domain(fromDomain, fromPort)
@ -1419,7 +1420,7 @@ def outboxUndoFollow(base_dir: str, message_json: {}, debug: bool) -> None:
group_account = \ group_account = \
has_group_type(base_dir, message_json['object']['object'], None) has_group_type(base_dir, message_json['object']['object'], None)
if unfollowAccount(base_dir, nicknameFollower, domainFollowerFull, if unfollow_account(base_dir, nicknameFollower, domainFollowerFull,
nicknameFollowing, domainFollowingFull, nicknameFollowing, domainFollowingFull,
debug, group_account): debug, group_account):
if debug: if debug:
@ -1431,7 +1432,8 @@ def outboxUndoFollow(base_dir: str, message_json: {}, debug: bool) -> None:
nicknameFollowing + '@' + domainFollowingFull) nicknameFollowing + '@' + domainFollowingFull)
def followerApprovalActive(base_dir: str, nickname: str, domain: str) -> bool: def follower_approval_active(base_dir: str,
nickname: str, domain: str) -> bool:
"""Returns true if the given account requires follower approval """Returns true if the given account requires follower approval
""" """
manuallyApprovesFollowers = False manuallyApprovesFollowers = False

View File

@ -66,8 +66,8 @@ from categories import setHashtagCategory
from httpsig import getDigestAlgorithmFromHeaders from httpsig import getDigestAlgorithmFromHeaders
from httpsig import verifyPostHeaders from httpsig import verifyPostHeaders
from session import create_session from session import create_session
from follow import followerApprovalActive from follow import follower_approval_active
from follow import isFollowingActor from follow import is_following_actor
from follow import getFollowersOfActor from follow import getFollowersOfActor
from follow import unfollowerOfAccount from follow import unfollowerOfAccount
from follow import isFollowerOfPerson from follow import isFollowerOfPerson
@ -377,13 +377,13 @@ def validInboxFilenames(base_dir: str, nickname: str, domain: str,
return True return True
def inboxMessageHasParams(message_json: {}) -> bool: def inbox_message_has_params(message_json: {}) -> bool:
"""Checks whether an incoming message contains expected parameters """Checks whether an incoming message contains expected parameters
""" """
expectedParams = ['actor', 'type', 'object'] expectedParams = ['actor', 'type', 'object']
for param in expectedParams: for param in expectedParams:
if not message_json.get(param): if not message_json.get(param):
# print('inboxMessageHasParams: ' + # print('inbox_message_has_params: ' +
# param + ' ' + str(message_json)) # param + ' ' + str(message_json))
return False return False
@ -418,7 +418,7 @@ def inboxMessageHasParams(message_json: {}) -> bool:
return True return True
def inboxPermittedMessage(domain: str, message_json: {}, def inbox_permitted_message(domain: str, message_json: {},
federation_list: []) -> bool: federation_list: []) -> bool:
""" check that we are receiving from a permitted domain """ check that we are receiving from a permitted domain
""" """
@ -449,7 +449,7 @@ def inboxPermittedMessage(domain: str, message_json: {},
return True return True
def savePostToInboxQueue(base_dir: str, http_prefix: str, def save_post_to_inbox_queue(base_dir: str, http_prefix: str,
nickname: str, domain: str, nickname: str, domain: str,
post_json_object: {}, post_json_object: {},
originalPostJsonObject: {}, originalPostJsonObject: {},
@ -1092,7 +1092,7 @@ def _receiveLike(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain) follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(likedPostJson) notDM = not is_dm(likedPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1205,7 +1205,7 @@ def _receiveUndoLike(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain) follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(likedPostJson) notDM = not is_dm(likedPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1354,7 +1354,7 @@ def _receiveReaction(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain) follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(reactionPostJson) notDM = not is_dm(reactionPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1485,7 +1485,7 @@ def _receiveUndoReaction(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain) follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(reactionPostJson) notDM = not is_dm(reactionPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1595,7 +1595,7 @@ def _receiveBookmark(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(bookmarkedPostJson) notDM = not is_dm(bookmarkedPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1708,7 +1708,7 @@ def _receiveUndoBookmark(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(bookmarkedPostJson) notDM = not is_dm(bookmarkedPostJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -1912,7 +1912,7 @@ def _receiveAnnounce(recent_posts_cache: {},
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
notDM = True notDM = True
if debug: if debug:
print('Generating html for announce ' + message_json['id']) print('Generating html for announce ' + message_json['id'])
@ -2119,7 +2119,7 @@ def _postAllowsComments(post_filename: str) -> bool:
return jsonPostAllowsComments(post_json_object) return jsonPostAllowsComments(post_json_object)
def populateReplies(base_dir: str, http_prefix: str, domain: str, def populate_replies(base_dir: str, http_prefix: str, domain: str,
message_json: {}, max_replies: int, debug: bool) -> bool: message_json: {}, max_replies: int, debug: bool) -> bool:
"""Updates the list of replies for a post on this domain if """Updates the list of replies for a post on this domain if
a reply to it arrives a reply to it arrives
@ -2780,7 +2780,7 @@ def _updateLastSeen(base_dir: str, handle: str, actor: str) -> None:
accountPath = acct_dir(base_dir, nickname, domain) accountPath = acct_dir(base_dir, nickname, domain)
if not os.path.isdir(accountPath): if not os.path.isdir(accountPath):
return return
if not isFollowingActor(base_dir, nickname, domain, actor): if not is_following_actor(base_dir, nickname, domain, actor):
return return
lastSeenPath = accountPath + '/lastseen' lastSeenPath = accountPath + '/lastseen'
if not os.path.isdir(lastSeenPath): if not os.path.isdir(lastSeenPath):
@ -2950,7 +2950,7 @@ def _isValidDM(base_dir: str, nickname: str, domain: str, port: int,
# get the handle of the DM sender # get the handle of the DM sender
sendH = sendingActorNickname + '@' + sendingActorDomain sendH = sendingActorNickname + '@' + sendingActorDomain
# check the follow # check the follow
if not isFollowingActor(base_dir, nickname, domain, sendH): if not is_following_actor(base_dir, nickname, domain, sendH):
# DMs may always be allowed from some domains # DMs may always be allowed from some domains
if not dm_allowed_from_domain(base_dir, if not dm_allowed_from_domain(base_dir,
nickname, domain, nickname, domain,
@ -3032,7 +3032,7 @@ def _receiveQuestionVote(base_dir: str, nickname: str, domain: str,
show_published_date_only = False show_published_date_only = False
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(questionJson) notDM = not is_dm(questionJson)
individualPostAsHtml(signing_priv_key_pem, False, individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,
@ -3462,7 +3462,7 @@ def _inboxAfterInitial(recent_posts_cache: {}, max_recent_posts: int,
# list of indexes to be updated # list of indexes to be updated
updateIndexList = ['inbox'] updateIndexList = ['inbox']
populateReplies(base_dir, http_prefix, domain, post_json_object, populate_replies(base_dir, http_prefix, domain, post_json_object,
max_replies, debug) max_replies, debug)
_receiveQuestionVote(base_dir, nickname, domain, _receiveQuestionVote(base_dir, nickname, domain,
@ -3680,18 +3680,18 @@ def _restoreQueueItems(base_dir: str, queue: []) -> None:
print('Restored ' + str(len(queue)) + ' inbox queue items') print('Restored ' + str(len(queue)) + ' inbox queue items')
def runInboxQueueWatchdog(project_version: str, httpd) -> None: def run_inbox_queue_watchdog(project_version: str, httpd) -> None:
"""This tries to keep the inbox thread running even if it dies """This tries to keep the inbox thread running even if it dies
""" """
print('Starting inbox queue watchdog') print('Starting inbox queue watchdog')
inbox_queueOriginal = httpd.thrInboxQueue.clone(runInboxQueue) inbox_queueOriginal = httpd.thrInboxQueue.clone(run_inbox_queue)
httpd.thrInboxQueue.start() httpd.thrInboxQueue.start()
while True: while True:
time.sleep(20) time.sleep(20)
if not httpd.thrInboxQueue.is_alive() or httpd.restartInboxQueue: if not httpd.thrInboxQueue.is_alive() or httpd.restartInboxQueue:
httpd.restartInboxQueueInProgress = True httpd.restartInboxQueueInProgress = True
httpd.thrInboxQueue.kill() httpd.thrInboxQueue.kill()
httpd.thrInboxQueue = inbox_queueOriginal.clone(runInboxQueue) httpd.thrInboxQueue = inbox_queueOriginal.clone(run_inbox_queue)
httpd.inbox_queue.clear() httpd.inbox_queue.clear()
httpd.thrInboxQueue.start() httpd.thrInboxQueue.start()
print('Restarting inbox queue...') print('Restarting inbox queue...')
@ -4078,7 +4078,7 @@ def _receiveFollowRequest(session, base_dir: str, http_prefix: str,
signing_priv_key_pem) signing_priv_key_pem)
def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int, def run_inbox_queue(recent_posts_cache: {}, max_recent_posts: int,
project_version: str, project_version: str,
base_dir: str, http_prefix: str, base_dir: str, http_prefix: str,
send_threads: [], postLog: [], send_threads: [], postLog: [],
@ -4187,7 +4187,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
# Load the queue json # Load the queue json
queueJson = load_json(queueFilename, 1) queueJson = load_json(queueFilename, 1)
if not queueJson: if not queueJson:
print('Queue: runInboxQueue failed to load inbox queue item ' + print('Queue: run_inbox_queue failed to load inbox queue item ' +
queueFilename) queueFilename)
# Assume that the file is probably corrupt/unreadable # Assume that the file is probably corrupt/unreadable
if len(queue) > 0: if len(queue) > 0:
@ -4197,7 +4197,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 1 unable to delete ' + print('EX: run_inbox_queue 1 unable to delete ' +
str(queueFilename)) str(queueFilename))
continue continue
@ -4271,7 +4271,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 2 unable to delete ' + print('EX: run_inbox_queue 2 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4324,7 +4324,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 3 unable to delete ' + print('EX: run_inbox_queue 3 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4345,7 +4345,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 4 unable to delete ' + print('EX: run_inbox_queue 4 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4375,7 +4375,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 5 unable to delete ' + print('EX: run_inbox_queue 5 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4397,7 +4397,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 6 unable to delete ' + print('EX: run_inbox_queue 6 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4419,7 +4419,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 7 unable to delete ' + print('EX: run_inbox_queue 7 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4441,7 +4441,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 8 unable to delete ' + print('EX: run_inbox_queue 8 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4460,7 +4460,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 9 unable to delete ' + print('EX: run_inbox_queue 9 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)
@ -4541,7 +4541,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try: try:
os.remove(queueFilename) os.remove(queueFilename)
except OSError: except OSError:
print('EX: runInboxQueue 10 unable to delete ' + print('EX: run_inbox_queue 10 unable to delete ' +
str(queueFilename)) str(queueFilename))
if len(queue) > 0: if len(queue) > 0:
queue.pop(0) queue.pop(0)

View File

@ -16,7 +16,7 @@ from utils import has_group_type
from webfinger import webfingerHandle from webfinger import webfingerHandle
from blocking import isBlocked from blocking import isBlocked
from posts import getUserUrl from posts import getUserUrl
from follow import unfollowAccount from follow import unfollow_account
from person import getActorJson from person import getActorJson
@ -111,7 +111,7 @@ def _updateMovedHandle(base_dir: str, nickname: str, domain: str,
movedToNickname, movedToDomain): movedToNickname, movedToDomain):
# someone that you follow has moved to a blocked domain # someone that you follow has moved to a blocked domain
# so just unfollow them # so just unfollow them
unfollowAccount(base_dir, nickname, domain, unfollow_account(base_dir, nickname, domain,
movedToNickname, movedToDomainFull, movedToNickname, movedToDomainFull,
debug, group_account, 'following.txt') debug, group_account, 'following.txt')
return ctr return ctr
@ -136,7 +136,7 @@ def _updateMovedHandle(base_dir: str, nickname: str, domain: str,
else: else:
handleNickname = handle.split('@')[0] handleNickname = handle.split('@')[0]
handleDomain = handle.split('@')[1] handleDomain = handle.split('@')[1]
unfollowAccount(base_dir, nickname, domain, unfollow_account(base_dir, nickname, domain,
handleNickname, handleNickname,
handleDomain, handleDomain,
debug, group_account, 'following.txt') debug, group_account, 'following.txt')

View File

@ -43,7 +43,7 @@ from inbox import inboxUpdateIndex
from announce import outboxAnnounce from announce import outboxAnnounce
from announce import outboxUndoAnnounce from announce import outboxUndoAnnounce
from follow import outboxUndoFollow from follow import outboxUndoFollow
from follow import followerApprovalActive from follow import follower_approval_active
from skills import outboxSkills from skills import outboxSkills
from availability import outboxAvailability from availability import outboxAvailability
from like import outboxLike from like import outboxLike
@ -451,7 +451,7 @@ def postMessageToOutbox(session, translate: {},
pageNumber = 1 pageNumber = 1
showIndividualPostIcons = True showIndividualPostIcons = True
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, follower_approval_active(base_dir,
postToNickname, domain) postToNickname, domain)
individualPostAsHtml(signing_priv_key_pem, individualPostAsHtml(signing_priv_key_pem,
False, recent_posts_cache, False, recent_posts_cache,

View File

@ -67,7 +67,7 @@ from pprint import pprint
from cache import getPersonFromCache from cache import getPersonFromCache
from cache import storePersonInCache from cache import storePersonInCache
from filters import isFilteredBio from filters import isFilteredBio
from follow import isFollowingActor from follow import is_following_actor
def generateRSAKey() -> (str, str): def generateRSAKey() -> (str, str):
@ -1669,7 +1669,7 @@ def validSendingActor(session, base_dir: str,
sendingActor = post_json_object['actor'] sendingActor = post_json_object['actor']
# If you are following them then allow their posts # If you are following them then allow their posts
if isFollowingActor(base_dir, nickname, domain, sendingActor): if is_following_actor(base_dir, nickname, domain, sendingActor):
return True return True
# sending to yourself (reminder) # sending to yourself (reminder)

View File

@ -35,7 +35,7 @@ def setSkillsFromDict(actor_json: {}, skillsDict: {}) -> []:
return skillsList return skillsList
def getSkillsFromList(skillsList: []) -> {}: def get_skills_from_list(skillsList: []) -> {}:
"""Returns a dict of skills from a list """Returns a dict of skills from a list
""" """
if isinstance(skillsList, list): if isinstance(skillsList, list):
@ -54,11 +54,11 @@ def getSkillsFromList(skillsList: []) -> {}:
return skillsDict return skillsDict
def actorSkillValue(actor_json: {}, skillName: str) -> int: def actor_skill_value(actor_json: {}, skillName: str) -> int:
"""Returns The skill level from an actor """Returns The skill level from an actor
""" """
ocSkillsList = get_occupation_skills(actor_json) ocSkillsList = get_occupation_skills(actor_json)
skillsDict = getSkillsFromList(ocSkillsList) skillsDict = get_skills_from_list(ocSkillsList)
if not skillsDict: if not skillsDict:
return 0 return 0
skillName = skillName.lower() skillName = skillName.lower()
@ -67,7 +67,7 @@ def actorSkillValue(actor_json: {}, skillName: str) -> int:
return 0 return 0
def noOfActorSkills(actor_json: {}) -> int: def no_of_actor_skills(actor_json: {}) -> int:
"""Returns the number of skills that an actor has """Returns the number of skills that an actor has
""" """
if actor_json.get('hasOccupation'): if actor_json.get('hasOccupation'):
@ -76,7 +76,7 @@ def noOfActorSkills(actor_json: {}) -> int:
return 0 return 0
def setActorSkillLevel(actor_json: {}, def set_actor_skill_level(actor_json: {},
skill: str, skillLevelPercent: int) -> bool: skill: str, skillLevelPercent: int) -> bool:
"""Set a skill level for a person """Set a skill level for a person
Setting skill level to zero removes it Setting skill level to zero removes it
@ -97,7 +97,7 @@ def setActorSkillLevel(actor_json: {},
'skills': [] 'skills': []
}] }]
ocSkillsList = get_occupation_skills(actor_json) ocSkillsList = get_occupation_skills(actor_json)
skillsDict = getSkillsFromList(ocSkillsList) skillsDict = get_skills_from_list(ocSkillsList)
if not skillsDict.get(skill): if not skillsDict.get(skill):
if len(skillsDict.items()) >= 32: if len(skillsDict.items()) >= 32:
print('WARN: Maximum number of skills reached for ' + print('WARN: Maximum number of skills reached for ' +
@ -124,7 +124,7 @@ def setSkillLevel(base_dir: str, nickname: str, domain: str,
return False return False
actor_json = load_json(actorFilename) actor_json = load_json(actorFilename)
return setActorSkillLevel(actor_json, return set_actor_skill_level(actor_json,
skill, skillLevelPercent) skill, skillLevelPercent)
@ -140,7 +140,7 @@ def getSkills(base_dir: str, nickname: str, domain: str) -> []:
if not actor_json.get('hasOccupation'): if not actor_json.get('hasOccupation'):
return None return None
ocSkillsList = get_occupation_skills(actor_json) ocSkillsList = get_occupation_skills(actor_json)
return getSkillsFromList(ocSkillsList) return get_skills_from_list(ocSkillsList)
return None return None
@ -265,7 +265,7 @@ def sendSkillViaServer(base_dir: str, session, nickname: str, password: str,
return newSkillJson return newSkillJson
def actorHasSkill(actor_json: {}, skillName: str) -> bool: def actor_has_skill(actor_json: {}, skillName: str) -> bool:
"""Returns true if the given actor has the given skill """Returns true if the given actor has the given skill
""" """
ocSkillsList = get_occupation_skills(actor_json) ocSkillsList = get_occupation_skills(actor_json)

View File

@ -51,7 +51,7 @@ from posts import sendPostViaServer
from posts import secondsBetweenPublished from posts import secondsBetweenPublished
from follow import clearFollows from follow import clearFollows
from follow import clearFollowers from follow import clearFollowers
from follow import sendFollowRequestViaServer from follow import send_follow_requestViaServer
from follow import sendUnfollowRequestViaServer from follow import sendUnfollowRequestViaServer
from siteactive import siteIsActive from siteactive import siteIsActive
from utils import get_sha_256 from utils import get_sha_256
@ -89,18 +89,18 @@ from pgp import extractPGPPublicKey
from pgp import pgpPublicKeyUpload from pgp import pgpPublicKeyUpload
from utils import contains_pgp_public_key from utils import contains_pgp_public_key
from follow import followerOfPerson from follow import followerOfPerson
from follow import unfollowAccount from follow import unfollow_account
from follow import unfollowerOfAccount from follow import unfollowerOfAccount
from follow import sendFollowRequest from follow import send_follow_request
from person import createPerson from person import createPerson
from person import createGroup from person import createGroup
from person import setDisplayNickname from person import setDisplayNickname
from person import setBio from person import setBio
# from person import generateRSAKey # from person import generateRSAKey
from skills import setSkillLevel from skills import setSkillLevel
from skills import actorSkillValue from skills import actor_skill_value
from skills import setSkillsFromDict from skills import setSkillsFromDict
from skills import actorHasSkill from skills import actor_has_skill
from roles import setRolesFromList from roles import setRolesFromList
from roles import setRole from roles import setRole
from roles import actorHasRole from roles import actorHasRole
@ -1526,7 +1526,7 @@ def testFollowBetweenServers(base_dir: str) -> None:
bobActor = http_prefix + '://' + bobAddress + '/users/bob' bobActor = http_prefix + '://' + bobAddress + '/users/bob'
signing_priv_key_pem = None signing_priv_key_pem = None
sendResult = \ sendResult = \
sendFollowRequest(sessionAlice, aliceDir, send_follow_request(sessionAlice, aliceDir,
'alice', aliceDomain, alicePort, http_prefix, 'alice', aliceDomain, alicePort, http_prefix,
'bob', bobDomain, bobActor, 'bob', bobDomain, bobActor,
bobPort, http_prefix, bobPort, http_prefix,
@ -1743,7 +1743,7 @@ def testSharedItemsFederation(base_dir: str) -> None:
alicePostLog = [] alicePostLog = []
bobActor = http_prefix + '://' + bobAddress + '/users/bob' bobActor = http_prefix + '://' + bobAddress + '/users/bob'
sendResult = \ sendResult = \
sendFollowRequest(sessionAlice, aliceDir, send_follow_request(sessionAlice, aliceDir,
'alice', aliceDomain, alicePort, http_prefix, 'alice', aliceDomain, alicePort, http_prefix,
'bob', bobDomain, bobActor, 'bob', bobDomain, bobActor,
bobPort, http_prefix, bobPort, http_prefix,
@ -2182,7 +2182,7 @@ def testGroupFollow(base_dir: str) -> None:
http_prefix + '://' + testgroupAddress + '/users/testgroup' http_prefix + '://' + testgroupAddress + '/users/testgroup'
signing_priv_key_pem = None signing_priv_key_pem = None
sendResult = \ sendResult = \
sendFollowRequest(sessionAlice, aliceDir, send_follow_request(sessionAlice, aliceDir,
'alice', aliceDomain, alicePort, http_prefix, 'alice', aliceDomain, alicePort, http_prefix,
'testgroup', testgroupDomain, testgroupActor, 'testgroup', testgroupDomain, testgroupActor,
testgroupPort, http_prefix, testgroupPort, http_prefix,
@ -2259,7 +2259,7 @@ def testGroupFollow(base_dir: str) -> None:
http_prefix + '://' + testgroupAddress + '/users/testgroup' http_prefix + '://' + testgroupAddress + '/users/testgroup'
signing_priv_key_pem = None signing_priv_key_pem = None
sendResult = \ sendResult = \
sendFollowRequest(sessionBob, bobDir, send_follow_request(sessionBob, bobDir,
'bob', bobDomain, bobPort, http_prefix, 'bob', bobDomain, bobPort, http_prefix,
'testgroup', testgroupDomain, testgroupActor, 'testgroup', testgroupDomain, testgroupActor,
testgroupPort, http_prefix, testgroupPort, http_prefix,
@ -2631,7 +2631,7 @@ def _testFollows(base_dir: str) -> None:
assert(False) assert(False)
assert(domainFound) assert(domainFound)
unfollowAccount(base_dir, nickname, domain, 'batman', 'mesh.com', unfollow_account(base_dir, nickname, domain, 'batman', 'mesh.com',
True, False) True, False)
domainFound = False domainFound = False
@ -2955,7 +2955,7 @@ def testClientToServer(base_dir: str):
print('\n\nAlice follows Bob') print('\n\nAlice follows Bob')
signing_priv_key_pem = None signing_priv_key_pem = None
sendFollowRequestViaServer(aliceDir, sessionAlice, send_follow_requestViaServer(aliceDir, sessionAlice,
'alice', password, 'alice', password,
aliceDomain, alicePort, aliceDomain, alicePort,
'bob', bobDomain, bobPort, 'bob', bobDomain, bobPort,
@ -2997,7 +2997,7 @@ def testClientToServer(base_dir: str):
aliceDomain, alicePort) aliceDomain, alicePort)
print('\n\nEVENT: Bob follows Alice') print('\n\nEVENT: Bob follows Alice')
sendFollowRequestViaServer(aliceDir, sessionAlice, send_follow_requestViaServer(aliceDir, sessionAlice,
'bob', 'bobpass', 'bob', 'bobpass',
bobDomain, bobPort, bobDomain, bobPort,
'alice', aliceDomain, alicePort, 'alice', aliceDomain, alicePort,
@ -4612,8 +4612,8 @@ def _testFunctions():
'remove_value', 'remove_value',
'normalize', 'normalize',
'get_document_loader', 'get_document_loader',
'runInboxQueueWatchdog', 'run_inbox_queue_watchdog',
'runInboxQueue', 'run_inbox_queue',
'runPostSchedule', 'runPostSchedule',
'runPostScheduleWatchdog', 'runPostScheduleWatchdog',
'str2bool', 'str2bool',
@ -5474,10 +5474,10 @@ def _testSkills() -> None:
'gardening': 70 'gardening': 70
} }
setSkillsFromDict(actor_json, skillsDict) setSkillsFromDict(actor_json, skillsDict)
assert actorHasSkill(actor_json, 'bakery') assert actor_has_skill(actor_json, 'bakery')
assert actorHasSkill(actor_json, 'gardening') assert actor_has_skill(actor_json, 'gardening')
assert actorSkillValue(actor_json, 'bakery') == 40 assert actor_skill_value(actor_json, 'bakery') == 40
assert actorSkillValue(actor_json, 'gardening') == 70 assert actor_skill_value(actor_json, 'gardening') == 70
def _testRoles() -> None: def _testRoles() -> None:

View File

@ -22,7 +22,7 @@ from utils import is_featured_writer
from utils import acct_dir from utils import acct_dir
from blocking import isBlocked from blocking import isBlocked
from follow import isFollowerOfPerson from follow import isFollowerOfPerson
from follow import isFollowingActor from follow import is_following_actor
from followingCalendar import receivingCalendarEvents from followingCalendar import receivingCalendarEvents
from notifyOnPost import notifyWhenPersonPosts from notifyOnPost import notifyWhenPersonPosts
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
@ -88,7 +88,7 @@ def htmlPersonOptions(defaultTimeline: str,
if '?' in nickname: if '?' in nickname:
nickname = nickname.split('?')[0] nickname = nickname.split('?')[0]
followerDomain, followerPort = get_domain_from_actor(optionsActor) followerDomain, followerPort = get_domain_from_actor(optionsActor)
if isFollowingActor(base_dir, nickname, domain, optionsActor): if is_following_actor(base_dir, nickname, domain, optionsActor):
followStr = 'Unfollow' followStr = 'Unfollow'
if isGroup: if isGroup:
followStr = 'Leave' followStr = 'Leave'
@ -259,7 +259,7 @@ def htmlPersonOptions(defaultTimeline: str,
translate['Submit'] + '</button><br>\n' translate['Submit'] + '</button><br>\n'
# Notify when a post arrives from this person # Notify when a post arrives from this person
if isFollowingActor(base_dir, nickname, domain, optionsActor): if is_following_actor(base_dir, nickname, domain, optionsActor):
checkboxStr = \ checkboxStr = \
' <input type="checkbox" class="profilecheckbox" ' + \ ' <input type="checkbox" class="profilecheckbox" ' + \
'name="notifyOnPost" checked> 🔔' + \ 'name="notifyOnPost" checked> 🔔' + \

View File

@ -18,7 +18,7 @@ from cache import getPersonFromCache
from bookmarks import bookmarkedByPerson from bookmarks import bookmarkedByPerson
from like import likedByPerson from like import likedByPerson
from like import noOfLikes from like import noOfLikes
from follow import isFollowingActor from follow import is_following_actor
from posts import postIsMuted from posts import postIsMuted
from posts import getPersonBox from posts import getPersonBox
from posts import downloadAnnounce from posts import downloadAnnounce
@ -2044,7 +2044,7 @@ def htmlIndividualPost(css_cache: {},
followStr += \ followStr += \
' <input type="hidden" name="searchtext" value="' + \ ' <input type="hidden" name="searchtext" value="' + \
byStrHandle + '">\n' byStrHandle + '">\n'
if not isFollowingActor(base_dir, nickname, domain_full, byStr): if not is_following_actor(base_dir, nickname, domain_full, byStr):
translateFollowStr = 'Follow' translateFollowStr = 'Follow'
if translate.get(translateFollowStr): if translate.get(translateFollowStr):
translateFollowStr = translate[translateFollowStr] translateFollowStr = translate[translateFollowStr]

View File

@ -26,8 +26,8 @@ from utils import search_box_posts
from utils import get_alt_path from utils import get_alt_path
from utils import acct_dir from utils import acct_dir
from utils import local_actor_url from utils import local_actor_url
from skills import noOfActorSkills from skills import no_of_actor_skills
from skills import getSkillsFromList from skills import get_skills_from_list
from categories import getHashtagCategory from categories import getHashtagCategory
from feeds import rss2TagHeader from feeds import rss2TagHeader
from feeds import rss2TagFooter from feeds import rss2TagFooter
@ -478,12 +478,12 @@ def htmlSkillsSearch(actor: str,
actor_json = load_json(actorFilename) actor_json = load_json(actorFilename)
if actor_json: if actor_json:
if actor_json.get('id') and \ if actor_json.get('id') and \
noOfActorSkills(actor_json) > 0 and \ no_of_actor_skills(actor_json) > 0 and \
actor_json.get('name') and \ actor_json.get('name') and \
actor_json.get('icon'): actor_json.get('icon'):
actor = actor_json['id'] actor = actor_json['id']
actorSkillsList = actor_json['hasOccupation']['skills'] actorSkillsList = actor_json['hasOccupation']['skills']
skills = getSkillsFromList(actorSkillsList) skills = get_skills_from_list(actorSkillsList)
for skillName, skillLevel in skills.items(): for skillName, skillLevel in skills.items():
skillName = skillName.lower() skillName = skillName.lower()
if not (skillName in skillsearch or if not (skillName in skillsearch or
@ -515,13 +515,13 @@ def htmlSkillsSearch(actor: str,
if cachedActorJson.get('actor'): if cachedActorJson.get('actor'):
actor_json = cachedActorJson['actor'] actor_json = cachedActorJson['actor']
if actor_json.get('id') and \ if actor_json.get('id') and \
noOfActorSkills(actor_json) > 0 and \ no_of_actor_skills(actor_json) > 0 and \
actor_json.get('name') and \ actor_json.get('name') and \
actor_json.get('icon'): actor_json.get('icon'):
actor = actor_json['id'] actor = actor_json['id']
actorSkillsList = \ actorSkillsList = \
actor_json['hasOccupation']['skills'] actor_json['hasOccupation']['skills']
skills = getSkillsFromList(actorSkillsList) skills = get_skills_from_list(actorSkillsList)
for skillName, skillLevel in skills.items(): for skillName, skillLevel in skills.items():
skillName = skillName.lower() skillName = skillName.lower()
if not (skillName in skillsearch or if not (skillName in skillsearch or

View File

@ -19,7 +19,7 @@ from utils import remove_id_ending
from utils import acct_dir from utils import acct_dir
from utils import is_float from utils import is_float
from utils import local_actor_url from utils import local_actor_url
from follow import followerApprovalActive from follow import follower_approval_active
from person import isPersonSnoozed from person import isPersonSnoozed
from markdown import markdownToHtml from markdown import markdownToHtml
from webapp_utils import htmlKeyboardNavigation from webapp_utils import htmlKeyboardNavigation
@ -1148,7 +1148,7 @@ def htmlShares(css_cache: {}, defaultTimeline: str,
"""Show the shares timeline as html """Show the shares timeline as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname) artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline, return htmlTimeline(css_cache, defaultTimeline,
@ -1206,7 +1206,7 @@ def htmlWanted(css_cache: {}, defaultTimeline: str,
"""Show the wanted timeline as html """Show the wanted timeline as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname) artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline, return htmlTimeline(css_cache, defaultTimeline,
@ -1265,7 +1265,7 @@ def htmlInbox(css_cache: {}, defaultTimeline: str,
"""Show the inbox as html """Show the inbox as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname) artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline, return htmlTimeline(css_cache, defaultTimeline,
@ -1324,7 +1324,7 @@ def htmlBookmarks(css_cache: {}, defaultTimeline: str,
"""Show the bookmarks as html """Show the bookmarks as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname) artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline, return htmlTimeline(css_cache, defaultTimeline,
@ -1700,7 +1700,7 @@ def htmlOutbox(css_cache: {}, defaultTimeline: str,
"""Show the Outbox as html """Show the Outbox as html
""" """
manuallyApproveFollowers = \ manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain) follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname) artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline, return htmlTimeline(css_cache, defaultTimeline,
recent_posts_cache, max_recent_posts, recent_posts_cache, max_recent_posts,