forked from indymedia/epicyon
Function for getting the followers of an actor
parent
db68b34cc5
commit
77e2ec39bc
28
follow.py
28
follow.py
|
@ -348,3 +348,31 @@ def sendFollowRequest(session,baseDir: str, \
|
|||
sendThreads,postLog,cachedWebfingers,personCache, debug)
|
||||
|
||||
return newFollowJson
|
||||
|
||||
def getFollowersOfActor(baseDir :str,actor :str) -> []:
|
||||
"""In a shared inbox if we receive a post we know who it's from
|
||||
and if it's addressed to followers then we need to get a list of those
|
||||
"""
|
||||
result=[]
|
||||
nickname=getNicknameFromActor(actor)
|
||||
print("nickname: "+nickname)
|
||||
if not nickname:
|
||||
return result
|
||||
domain,port=getDomainFromActor(actor)
|
||||
print("domain: "+domain)
|
||||
if not domain:
|
||||
return result
|
||||
actorHandle=nickname+'@'+domain
|
||||
# for each of the accounts
|
||||
for subdir, dirs, files in os.walk(baseDir+'/accounts'):
|
||||
for account in dirs:
|
||||
if '@' in account and not account.startswith('inbox@'):
|
||||
print("account: "+account)
|
||||
followingFilename = os.path.join(subdir, account)+'/following.txt'
|
||||
if os.path.isfile(followingFilename):
|
||||
print("followingFilename: "+followingFilename)
|
||||
print("actorHandle: "+actorHandle)
|
||||
# does this account follow the given actor?
|
||||
if actorHandle in open(followingFilename).read():
|
||||
result.append(account)
|
||||
return result
|
||||
|
|
6
tests.py
6
tests.py
|
@ -33,6 +33,7 @@ from follow import unfollowPerson
|
|||
from follow import unfollowerOfPerson
|
||||
from follow import getFollowersOfPerson
|
||||
from follow import sendFollowRequest
|
||||
from follow import getFollowersOfActor
|
||||
from person import createPerson
|
||||
from person import setPreferredNickname
|
||||
from person import setBio
|
||||
|
@ -360,6 +361,11 @@ def testFollowBetweenServers():
|
|||
break
|
||||
time.sleep(1)
|
||||
|
||||
actorFollows=getFollowersOfActor(aliceDir,httpPrefix+'://'+bobDomain+':'+str(bobPort)+'/users/bob')
|
||||
assert len(actorFollows)==1
|
||||
print("actorFollows: "+actorFollows[0])
|
||||
assert actorFollows[0]=='alice@'+aliceDomain
|
||||
|
||||
print('\n\nEve tries to send to Bob')
|
||||
sessionEve = createSession(eveDomain,evePort,useTor)
|
||||
eveSendThreads = []
|
||||
|
|
Loading…
Reference in New Issue