mirror of https://gitlab.com/bashrc2/epicyon
Snake case
parent
133566c821
commit
1872d25cd1
4
auth.py
4
auth.py
|
@ -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
116
daemon.py
|
@ -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()
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
38
follow.py
38
follow.py
|
@ -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
|
||||||
|
|
66
inbox.py
66
inbox.py
|
@ -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)
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
|
|
18
skills.py
18
skills.py
|
@ -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)
|
||||||
|
|
36
tests.py
36
tests.py
|
@ -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:
|
||||||
|
|
|
@ -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> 🔔' + \
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue