mirror of https://gitlab.com/bashrc2/epicyon
Snake case
parent
133566c821
commit
1872d25cd1
8
auth.py
8
auth.py
|
@ -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
288
daemon.py
|
@ -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()
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
16
epicyon.py
16
epicyon.py
|
@ -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
|
||||
|
|
90
follow.py
90
follow.py
|
@ -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
132
inbox.py
|
@ -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)
|
||||
|
|
16
migrate.py
16
migrate.py
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
22
skills.py
22
skills.py
|
@ -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
118
tests.py
|
@ -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:
|
||||
|
|
|
@ -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> 🔔' + \
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue