Snake case

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

288
daemon.py
View File

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

View File

@ -38,7 +38,7 @@ from follow import denyFollowRequestViaServer
from follow import getFollowRequestsViaServer
from follow import getFollowingViaServer
from follow import getFollowersViaServer
from follow import sendFollowRequestViaServer
from follow import send_follow_requestViaServer
from follow import sendUnfollowRequestViaServer
from posts import sendBlockViaServer
from posts import sendUndoBlockViaServer
@ -2221,18 +2221,18 @@ def runDesktopClient(base_dir: str, proxy_type: str, http_prefix: str,
_sayCommand(sayStr, sayStr,
screenreader, system_language, espeak)
sessionFollow = create_session(proxy_type)
sendFollowRequestViaServer(base_dir,
sessionFollow,
nickname, password,
domain, port,
followNickname,
followDomain,
followPort,
http_prefix,
cached_webfingers,
person_cache,
debug, __version__,
signing_priv_key_pem)
send_follow_requestViaServer(base_dir,
sessionFollow,
nickname, password,
domain, port,
followNickname,
followDomain,
followPort,
http_prefix,
cached_webfingers,
person_cache,
debug, __version__,
signing_priv_key_pem)
else:
if followHandle:
sayStr = followHandle + ' is not valid'

View File

@ -54,7 +54,7 @@ from follow import getFollowingViaServer
from follow import getFollowersViaServer
from follow import clearFollows
from follow import followerOfPerson
from follow import sendFollowRequestViaServer
from follow import send_follow_requestViaServer
from follow import sendUnfollowRequestViaServer
from tests import testSharedItemsFederation
from tests import testGroupFollow
@ -1897,13 +1897,13 @@ if args.follow:
if args.secure_mode:
signing_priv_key_pem = get_instance_actor_key(base_dir, domain)
sendFollowRequestViaServer(base_dir, session,
args.nickname, args.password,
domain, port,
followNickname, followDomain, followPort,
http_prefix,
cached_webfingers, person_cache,
debug, __version__, signing_priv_key_pem)
send_follow_requestViaServer(base_dir, session,
args.nickname, args.password,
domain, port,
followNickname, followDomain, followPort,
http_prefix,
cached_webfingers, person_cache,
debug, __version__, signing_priv_key_pem)
for t in range(20):
time.sleep(1)
# TODO some method to know if it worked

View File

@ -38,7 +38,7 @@ from session import getJson
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.
The lastseen files are used to generate the Zzz icons on
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:
followingHandles = fp.readlines()
except OSError:
print('EX: createInitialLastSeen ' + followingFilename)
print('EX: create_initial_last_seen ' + followingFilename)
for handle in followingHandles:
if '#' in handle:
continue
@ -78,7 +78,7 @@ def createInitialLastSeen(base_dir: str, http_prefix: str) -> None:
with open(lastSeenFilename, 'w+') as fp:
fp.write(str(100))
except OSError:
print('EX: createInitialLastSeen 2 ' +
print('EX: create_initial_last_seen 2 ' +
lastSeenFilename)
break
@ -164,8 +164,8 @@ def _removeFromFollowRejects(base_dir: str,
acceptHandle, 'followrejects', debug)
def isFollowingActor(base_dir: str,
nickname: str, domain: str, actor: str) -> bool:
def is_following_actor(base_dir: str,
nickname: str, domain: str, actor: str) -> bool:
"""Is the given nickname following the given actor?
The actor can also be a handle: nickname@domain
"""
@ -283,10 +283,10 @@ def isFollowerOfPerson(base_dir: str, nickname: str, domain: str,
return alreadyFollowing
def unfollowAccount(base_dir: str, nickname: str, domain: str,
followNickname: str, followDomain: str,
debug: bool, group_account: bool,
followFile: str = 'following.txt') -> bool:
def unfollow_account(base_dir: str, nickname: str, domain: str,
followNickname: str, followDomain: str,
debug: bool, group_account: bool,
followFile: str = 'following.txt') -> bool:
"""Removes a person to the follow list
"""
domain = remove_domain_port(domain)
@ -315,7 +315,7 @@ def unfollowAccount(base_dir: str, nickname: str, domain: str,
with open(filename, 'r') as f:
lines = f.readlines()
except OSError:
print('EX: unfollowAccount ' + filename)
print('EX: unfollow_account ' + filename)
if lines:
try:
with open(filename, 'w+') as f:
@ -353,9 +353,9 @@ def unfollowerOfAccount(base_dir: str, nickname: str, domain: str,
debug: bool, group_account: bool) -> bool:
"""Remove a follower of a person
"""
return unfollowAccount(base_dir, nickname, domain,
followerNickname, followerDomain,
debug, group_account, 'followers.txt')
return unfollow_account(base_dir, nickname, domain,
followerNickname, followerDomain,
debug, group_account, 'followers.txt')
def clearFollows(base_dir: str, nickname: str, domain: str,
@ -424,10 +424,10 @@ def getNoOfFollowers(base_dir: str,
authenticated, 'followers.txt')
def getFollowingFeed(base_dir: str, domain: str, port: int, path: str,
http_prefix: str, authorized: bool,
follows_per_page=12,
followFile='following') -> {}:
def get_following_feed(base_dir: str, domain: str, port: int, path: str,
http_prefix: str, authorized: bool,
follows_per_page=12,
followFile='following') -> {}:
"""Returns the following and followers feeds from GET requests.
This accesses the following.txt or followers.txt and builds a collection.
"""
@ -448,7 +448,7 @@ def getFollowingFeed(base_dir: str, domain: str, port: int, path: str,
try:
pageNumber = int(pageNumber)
except BaseException:
print('EX: getFollowingFeed unable to convert to int ' +
print('EX: get_following_feed unable to convert to int ' +
str(pageNumber))
pass
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:
lines = f.readlines()
except OSError:
print('EX: getFollowingFeed ' + filename)
print('EX: get_following_feed ' + filename)
for line in lines:
if '#' not in line:
if '@' in line and not line.startswith('http'):
@ -846,15 +846,16 @@ def followedAccountRejects(session, base_dir: str, http_prefix: str,
6393063)
def sendFollowRequest(session, base_dir: str,
nickname: str, domain: str, port: int, http_prefix: str,
followNickname: str, followDomain: str,
followedActor: str,
followPort: int, followHttpPrefix: str,
client_to_server: bool, federation_list: [],
send_threads: [], postLog: [], cached_webfingers: {},
person_cache: {}, debug: bool,
project_version: str, signing_priv_key_pem: str) -> {}:
def send_follow_request(session, base_dir: str,
nickname: str, domain: str, port: int,
http_prefix: str,
followNickname: str, followDomain: str,
followedActor: str,
followPort: int, followHttpPrefix: str,
client_to_server: bool, federation_list: [],
send_threads: [], postLog: [], cached_webfingers: {},
person_cache: {}, debug: bool,
project_version: str, signing_priv_key_pem: str) -> {}:
"""Gets the json object for sending a follow request
"""
if not signing_priv_key_pem:
@ -881,7 +882,7 @@ def sendFollowRequest(session, base_dir: str,
print('Follow request being sent to group account')
else:
if debug:
print('DEBUG: sendFollowRequest - assuming single user instance')
print('DEBUG: send_follow_request - assuming single user instance')
followedId = followHttpPrefix + '://' + requestDomain
singleUserNickname = 'dev'
followHandle = singleUserNickname + '@' + requestDomain
@ -896,7 +897,7 @@ def sendFollowRequest(session, base_dir: str,
with open(unfollowedFilename, 'r') as fp:
unfollowedFile = fp.read()
except OSError:
print('EX: sendFollowRequest ' + unfollowedFilename)
print('EX: send_follow_request ' + unfollowedFilename)
if unfollowedFile:
unfollowedFile = \
unfollowedFile.replace(followHandle + '\n', '')
@ -939,19 +940,19 @@ def sendFollowRequest(session, base_dir: str,
return newFollowJson
def sendFollowRequestViaServer(base_dir: str, session,
fromNickname: str, password: str,
fromDomain: str, fromPort: int,
followNickname: str, followDomain: str,
followPort: int,
http_prefix: str,
cached_webfingers: {}, person_cache: {},
debug: bool, project_version: str,
signing_priv_key_pem: str) -> {}:
def send_follow_requestViaServer(base_dir: str, session,
fromNickname: str, password: str,
fromDomain: str, fromPort: int,
followNickname: str, followDomain: str,
followPort: int,
http_prefix: str,
cached_webfingers: {}, person_cache: {},
debug: bool, project_version: str,
signing_priv_key_pem: str) -> {}:
"""Creates a follow request via c2s
"""
if not session:
print('WARN: No session for sendFollowRequestViaServer')
print('WARN: No session for send_follow_requestViaServer')
return 6
fromDomainFull = get_full_domain(fromDomain, fromPort)
@ -1419,9 +1420,9 @@ def outboxUndoFollow(base_dir: str, message_json: {}, debug: bool) -> None:
group_account = \
has_group_type(base_dir, message_json['object']['object'], None)
if unfollowAccount(base_dir, nicknameFollower, domainFollowerFull,
nicknameFollowing, domainFollowingFull,
debug, group_account):
if unfollow_account(base_dir, nicknameFollower, domainFollowerFull,
nicknameFollowing, domainFollowingFull,
debug, group_account):
if debug:
print('DEBUG: ' + nicknameFollower + ' unfollowed ' +
nicknameFollowing + '@' + domainFollowingFull)
@ -1431,7 +1432,8 @@ def outboxUndoFollow(base_dir: str, message_json: {}, debug: bool) -> None:
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
"""
manuallyApprovesFollowers = False

132
inbox.py
View File

@ -66,8 +66,8 @@ from categories import setHashtagCategory
from httpsig import getDigestAlgorithmFromHeaders
from httpsig import verifyPostHeaders
from session import create_session
from follow import followerApprovalActive
from follow import isFollowingActor
from follow import follower_approval_active
from follow import is_following_actor
from follow import getFollowersOfActor
from follow import unfollowerOfAccount
from follow import isFollowerOfPerson
@ -377,13 +377,13 @@ def validInboxFilenames(base_dir: str, nickname: str, domain: str,
return True
def inboxMessageHasParams(message_json: {}) -> bool:
def inbox_message_has_params(message_json: {}) -> bool:
"""Checks whether an incoming message contains expected parameters
"""
expectedParams = ['actor', 'type', 'object']
for param in expectedParams:
if not message_json.get(param):
# print('inboxMessageHasParams: ' +
# print('inbox_message_has_params: ' +
# param + ' ' + str(message_json))
return False
@ -418,8 +418,8 @@ def inboxMessageHasParams(message_json: {}) -> bool:
return True
def inboxPermittedMessage(domain: str, message_json: {},
federation_list: []) -> bool:
def inbox_permitted_message(domain: str, message_json: {},
federation_list: []) -> bool:
""" check that we are receiving from a permitted domain
"""
if not has_actor(message_json, False):
@ -449,14 +449,14 @@ def inboxPermittedMessage(domain: str, message_json: {},
return True
def savePostToInboxQueue(base_dir: str, http_prefix: str,
nickname: str, domain: str,
post_json_object: {},
originalPostJsonObject: {},
messageBytes: str,
httpHeaders: {},
postPath: str, debug: bool,
blockedCache: [], system_language: str) -> str:
def save_post_to_inbox_queue(base_dir: str, http_prefix: str,
nickname: str, domain: str,
post_json_object: {},
originalPostJsonObject: {},
messageBytes: str,
httpHeaders: {},
postPath: str, debug: bool,
blockedCache: [], system_language: str) -> str:
"""Saves the given json to the inbox queue for the person
keyId specifies the actor sending the post
"""
@ -1092,7 +1092,7 @@ def _receiveLike(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain)
follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(likedPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1205,7 +1205,7 @@ def _receiveUndoLike(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain)
follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(likedPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1354,7 +1354,7 @@ def _receiveReaction(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain)
follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(reactionPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1485,7 +1485,7 @@ def _receiveUndoReaction(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, handleName, domain)
follower_approval_active(base_dir, handleName, domain)
notDM = not is_dm(reactionPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1595,7 +1595,7 @@ def _receiveBookmark(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(bookmarkedPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1708,7 +1708,7 @@ def _receiveUndoBookmark(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(bookmarkedPostJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -1912,7 +1912,7 @@ def _receiveAnnounce(recent_posts_cache: {},
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
notDM = True
if debug:
print('Generating html for announce ' + message_json['id'])
@ -2119,8 +2119,8 @@ def _postAllowsComments(post_filename: str) -> bool:
return jsonPostAllowsComments(post_json_object)
def populateReplies(base_dir: str, http_prefix: str, domain: str,
message_json: {}, max_replies: int, debug: bool) -> bool:
def populate_replies(base_dir: str, http_prefix: str, domain: str,
message_json: {}, max_replies: int, debug: bool) -> bool:
"""Updates the list of replies for a post on this domain if
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)
if not os.path.isdir(accountPath):
return
if not isFollowingActor(base_dir, nickname, domain, actor):
if not is_following_actor(base_dir, nickname, domain, actor):
return
lastSeenPath = accountPath + '/lastseen'
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
sendH = sendingActorNickname + '@' + sendingActorDomain
# 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
if not dm_allowed_from_domain(base_dir,
nickname, domain,
@ -3032,7 +3032,7 @@ def _receiveQuestionVote(base_dir: str, nickname: str, domain: str,
show_published_date_only = False
showIndividualPostIcons = True
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
notDM = not is_dm(questionJson)
individualPostAsHtml(signing_priv_key_pem, False,
recent_posts_cache, max_recent_posts,
@ -3462,8 +3462,8 @@ def _inboxAfterInitial(recent_posts_cache: {}, max_recent_posts: int,
# list of indexes to be updated
updateIndexList = ['inbox']
populateReplies(base_dir, http_prefix, domain, post_json_object,
max_replies, debug)
populate_replies(base_dir, http_prefix, domain, post_json_object,
max_replies, debug)
_receiveQuestionVote(base_dir, nickname, domain,
http_prefix, handle, debug,
@ -3680,18 +3680,18 @@ def _restoreQueueItems(base_dir: str, queue: []) -> None:
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
"""
print('Starting inbox queue watchdog')
inbox_queueOriginal = httpd.thrInboxQueue.clone(runInboxQueue)
inbox_queueOriginal = httpd.thrInboxQueue.clone(run_inbox_queue)
httpd.thrInboxQueue.start()
while True:
time.sleep(20)
if not httpd.thrInboxQueue.is_alive() or httpd.restartInboxQueue:
httpd.restartInboxQueueInProgress = True
httpd.thrInboxQueue.kill()
httpd.thrInboxQueue = inbox_queueOriginal.clone(runInboxQueue)
httpd.thrInboxQueue = inbox_queueOriginal.clone(run_inbox_queue)
httpd.inbox_queue.clear()
httpd.thrInboxQueue.start()
print('Restarting inbox queue...')
@ -4078,30 +4078,30 @@ def _receiveFollowRequest(session, base_dir: str, http_prefix: str,
signing_priv_key_pem)
def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
project_version: str,
base_dir: str, http_prefix: str,
send_threads: [], postLog: [],
cached_webfingers: {}, person_cache: {}, queue: [],
domain: str,
onion_domain: str, i2p_domain: str,
port: int, proxy_type: str,
federation_list: [], max_replies: int,
domain_max_posts_per_day: int,
account_max_posts_per_day: int,
allow_deletion: bool, debug: bool, max_mentions: int,
max_emoji: int, translate: {}, unit_test: bool,
yt_replace_domain: str,
twitter_replacement_domain: str,
show_published_date_only: bool,
max_followers: int,
allow_local_network_access: bool,
peertube_instances: [],
verify_all_signatures: bool,
theme_name: str, system_language: str,
max_like_count: int, signing_priv_key_pem: str,
default_reply_interval_hrs: int,
cw_lists: {}) -> None:
def run_inbox_queue(recent_posts_cache: {}, max_recent_posts: int,
project_version: str,
base_dir: str, http_prefix: str,
send_threads: [], postLog: [],
cached_webfingers: {}, person_cache: {}, queue: [],
domain: str,
onion_domain: str, i2p_domain: str,
port: int, proxy_type: str,
federation_list: [], max_replies: int,
domain_max_posts_per_day: int,
account_max_posts_per_day: int,
allow_deletion: bool, debug: bool, max_mentions: int,
max_emoji: int, translate: {}, unit_test: bool,
yt_replace_domain: str,
twitter_replacement_domain: str,
show_published_date_only: bool,
max_followers: int,
allow_local_network_access: bool,
peertube_instances: [],
verify_all_signatures: bool,
theme_name: str, system_language: str,
max_like_count: int, signing_priv_key_pem: str,
default_reply_interval_hrs: int,
cw_lists: {}) -> None:
"""Processes received items and moves them to the appropriate
directories
"""
@ -4187,7 +4187,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
# Load the queue json
queueJson = load_json(queueFilename, 1)
if not queueJson:
print('Queue: runInboxQueue failed to load inbox queue item ' +
print('Queue: run_inbox_queue failed to load inbox queue item ' +
queueFilename)
# Assume that the file is probably corrupt/unreadable
if len(queue) > 0:
@ -4197,7 +4197,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 1 unable to delete ' +
print('EX: run_inbox_queue 1 unable to delete ' +
str(queueFilename))
continue
@ -4271,7 +4271,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 2 unable to delete ' +
print('EX: run_inbox_queue 2 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4324,7 +4324,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 3 unable to delete ' +
print('EX: run_inbox_queue 3 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4345,7 +4345,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 4 unable to delete ' +
print('EX: run_inbox_queue 4 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4375,7 +4375,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 5 unable to delete ' +
print('EX: run_inbox_queue 5 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4397,7 +4397,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 6 unable to delete ' +
print('EX: run_inbox_queue 6 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4419,7 +4419,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 7 unable to delete ' +
print('EX: run_inbox_queue 7 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4441,7 +4441,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 8 unable to delete ' +
print('EX: run_inbox_queue 8 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4460,7 +4460,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 9 unable to delete ' +
print('EX: run_inbox_queue 9 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)
@ -4541,7 +4541,7 @@ def runInboxQueue(recent_posts_cache: {}, max_recent_posts: int,
try:
os.remove(queueFilename)
except OSError:
print('EX: runInboxQueue 10 unable to delete ' +
print('EX: run_inbox_queue 10 unable to delete ' +
str(queueFilename))
if len(queue) > 0:
queue.pop(0)

View File

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

View File

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

View File

@ -67,7 +67,7 @@ from pprint import pprint
from cache import getPersonFromCache
from cache import storePersonInCache
from filters import isFilteredBio
from follow import isFollowingActor
from follow import is_following_actor
def generateRSAKey() -> (str, str):
@ -1669,7 +1669,7 @@ def validSendingActor(session, base_dir: str,
sendingActor = post_json_object['actor']
# 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
# sending to yourself (reminder)

View File

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

118
tests.py
View File

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

View File

@ -22,7 +22,7 @@ from utils import is_featured_writer
from utils import acct_dir
from blocking import isBlocked
from follow import isFollowerOfPerson
from follow import isFollowingActor
from follow import is_following_actor
from followingCalendar import receivingCalendarEvents
from notifyOnPost import notifyWhenPersonPosts
from webapp_utils import htmlHeaderWithExternalStyle
@ -88,7 +88,7 @@ def htmlPersonOptions(defaultTimeline: str,
if '?' in nickname:
nickname = nickname.split('?')[0]
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'
if isGroup:
followStr = 'Leave'
@ -259,7 +259,7 @@ def htmlPersonOptions(defaultTimeline: str,
translate['Submit'] + '</button><br>\n'
# 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 = \
' <input type="checkbox" class="profilecheckbox" ' + \
'name="notifyOnPost" checked> 🔔' + \

View File

@ -18,7 +18,7 @@ from cache import getPersonFromCache
from bookmarks import bookmarkedByPerson
from like import likedByPerson
from like import noOfLikes
from follow import isFollowingActor
from follow import is_following_actor
from posts import postIsMuted
from posts import getPersonBox
from posts import downloadAnnounce
@ -2044,7 +2044,7 @@ def htmlIndividualPost(css_cache: {},
followStr += \
' <input type="hidden" name="searchtext" value="' + \
byStrHandle + '">\n'
if not isFollowingActor(base_dir, nickname, domain_full, byStr):
if not is_following_actor(base_dir, nickname, domain_full, byStr):
translateFollowStr = 'Follow'
if translate.get(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 acct_dir
from utils import local_actor_url
from skills import noOfActorSkills
from skills import getSkillsFromList
from skills import no_of_actor_skills
from skills import get_skills_from_list
from categories import getHashtagCategory
from feeds import rss2TagHeader
from feeds import rss2TagFooter
@ -478,12 +478,12 @@ def htmlSkillsSearch(actor: str,
actor_json = load_json(actorFilename)
if actor_json:
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('icon'):
actor = actor_json['id']
actorSkillsList = actor_json['hasOccupation']['skills']
skills = getSkillsFromList(actorSkillsList)
skills = get_skills_from_list(actorSkillsList)
for skillName, skillLevel in skills.items():
skillName = skillName.lower()
if not (skillName in skillsearch or
@ -515,13 +515,13 @@ def htmlSkillsSearch(actor: str,
if cachedActorJson.get('actor'):
actor_json = cachedActorJson['actor']
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('icon'):
actor = actor_json['id']
actorSkillsList = \
actor_json['hasOccupation']['skills']
skills = getSkillsFromList(actorSkillsList)
skills = get_skills_from_list(actorSkillsList)
for skillName, skillLevel in skills.items():
skillName = skillName.lower()
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 is_float
from utils import local_actor_url
from follow import followerApprovalActive
from follow import follower_approval_active
from person import isPersonSnoozed
from markdown import markdownToHtml
from webapp_utils import htmlKeyboardNavigation
@ -1148,7 +1148,7 @@ def htmlShares(css_cache: {}, defaultTimeline: str,
"""Show the shares timeline as html
"""
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline,
@ -1206,7 +1206,7 @@ def htmlWanted(css_cache: {}, defaultTimeline: str,
"""Show the wanted timeline as html
"""
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline,
@ -1265,7 +1265,7 @@ def htmlInbox(css_cache: {}, defaultTimeline: str,
"""Show the inbox as html
"""
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline,
@ -1324,7 +1324,7 @@ def htmlBookmarks(css_cache: {}, defaultTimeline: str,
"""Show the bookmarks as html
"""
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline,
@ -1700,7 +1700,7 @@ def htmlOutbox(css_cache: {}, defaultTimeline: str,
"""Show the Outbox as html
"""
manuallyApproveFollowers = \
followerApprovalActive(base_dir, nickname, domain)
follower_approval_active(base_dir, nickname, domain)
artist = is_artist(base_dir, nickname)
return htmlTimeline(css_cache, defaultTimeline,
recent_posts_cache, max_recent_posts,