follow accept logic

master
Bob Mottram 2019-08-07 14:31:11 +01:00
parent f189994879
commit 527c4c2a24
2 changed files with 33 additions and 4 deletions

View File

@ -82,6 +82,7 @@ from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from manualapprove import manualDenyFollowRequest from manualapprove import manualDenyFollowRequest
from manualapprove import manualApproveFollowRequest from manualapprove import manualApproveFollowRequest
from manualapprove import addHandleToApproveFile
from announce import createAnnounce from announce import createAnnounce
from announce import outboxAnnounce from announce import outboxAnnounce
from content import addMentions from content import addMentions
@ -759,6 +760,9 @@ class PubServer(BaseHTTPRequestHandler):
if not self.server.session: if not self.server.session:
self.server.session= \ self.server.session= \
createSession(self.server.domain,self.server.port,self.server.useTor) createSession(self.server.domain,self.server.port,self.server.useTor)
addHandleToApproveFile(self.server.baseDir, \
followerNickname,followerDomain, \
followingHandle)
manualApproveFollowRequest(self.server.session, \ manualApproveFollowRequest(self.server.session, \
self.server.baseDir, \ self.server.baseDir, \
self.server.httpPrefix, \ self.server.httpPrefix, \
@ -782,6 +786,9 @@ class PubServer(BaseHTTPRequestHandler):
followerDomain,FollowerPort=getDomainFromActor(originPathStr) followerDomain,FollowerPort=getDomainFromActor(originPathStr)
followingHandle=self.path.split('/followdeny=')[1] followingHandle=self.path.split('/followdeny=')[1]
if '@' in followingHandle: if '@' in followingHandle:
addHandleToApproveFile(self.server.baseDir, \
followerNickname,followerDomain, \
followingHandle)
manualDenyFollowRequest(self.server.baseDir, \ manualDenyFollowRequest(self.server.baseDir, \
followerNickname,followerDomain, \ followerNickname,followerDomain, \
followingHandle) followingHandle)

View File

@ -18,7 +18,11 @@ def manualDenyFollowRequest(baseDir: str,nickname: str,domain: str,denyHandle: s
handle=args.nickname+'@'+domain handle=args.nickname+'@'+domain
accountsDir=baseDir+'/accounts/'+handle accountsDir=baseDir+'/accounts/'+handle
approveFollowsFilename=accountsDir+'/followrequests.txt' approveFollowsFilename=accountsDir+'/followrequests.txt'
if handle not in open(approveFollowsFilename).read(): if not os.path.isfile(approveFollowsFilename):
if debug:
print('WARN: Follow requests file '+approveFollowsFilename+' not found')
return
if denyHandle not in open(approveFollowsFilename).read():
return return
with open(approveFollowsFilename+'.new', 'w') as approvefilenew: with open(approveFollowsFilename+'.new', 'w') as approvefilenew:
with open(approveFollowsFilename, 'r') as approvefile: with open(approveFollowsFilename, 'r') as approvefile:
@ -27,6 +31,23 @@ def manualDenyFollowRequest(baseDir: str,nickname: str,domain: str,denyHandle: s
approvefilenew.write(approveHandle) approvefilenew.write(approveHandle)
os.rename(approveFollowsFilename+'.new',approveFollowsFilename) os.rename(approveFollowsFilename+'.new',approveFollowsFilename)
print('Follow request from '+denyHandle+' was denied.') print('Follow request from '+denyHandle+' was denied.')
def addHandleToApproveFile(baseDir: str,nickname: str,domain: str,addHandle: str) -> None:
"""Adds the given handle to the follow requests for the given account
"""
handle=nickname+'@'+domain
accountsDir=baseDir+'/accounts/'+handle
approveFollowsFilename=accountsDir+'/followrequests.txt'
appendHandle=True
if os.path.isfile(approveFollowsFilename):
if addHandle in open(approveFollowsFilename).read():
appendHandle=False
with open(approveFollowsFilename+'.add', 'w') as approvefilenew:
with open(approveFollowsFilename, 'r') as approvefile:
for handle in approvefile:
approvefilenew.write(handle)
approvefilenew.write(addHandle)
os.rename(approveFollowsFilename+'.add',approveFollowsFilename)
def manualApproveFollowRequest(session,baseDir: str, \ def manualApproveFollowRequest(session,baseDir: str, \
httpPrefix: str, httpPrefix: str,
@ -46,7 +67,7 @@ def manualApproveFollowRequest(session,baseDir: str, \
if debug: if debug:
print('WARN: Follow requests file '+approveFollowsFilename+' not found') print('WARN: Follow requests file '+approveFollowsFilename+' not found')
return return
if handle not in open(approveFollowsFilename).read(): if approveHandle not in open(approveFollowsFilename).read():
if debug: if debug:
print(handle+' not in '+approveFollowsFilename) print(handle+' not in '+approveFollowsFilename)
return return
@ -54,8 +75,9 @@ def manualApproveFollowRequest(session,baseDir: str, \
with open(approveFollowsFilename, 'r') as approvefile: with open(approveFollowsFilename, 'r') as approvefile:
for handle in approvefile: for handle in approvefile:
if handle.startswith(approveHandle): if handle.startswith(approveHandle):
port2=port
if ':' in handle: if ':' in handle:
port=int(handle.split(':')[1].replace('\n','')) port2=int(handle.split(':')[1].replace('\n',''))
requestsDir=accountsDir+'/requests' requestsDir=accountsDir+'/requests'
followActivityfilename=requestsDir+'/'+handle+'.follow' followActivityfilename=requestsDir+'/'+handle+'.follow'
if os.path.isfile(followActivityfilename): if os.path.isfile(followActivityfilename):
@ -63,7 +85,7 @@ def manualApproveFollowRequest(session,baseDir: str, \
followJson=commentjson.load(fp) followJson=commentjson.load(fp)
approveNickname=approveHandle.split('@')[0] approveNickname=approveHandle.split('@')[0]
approveDomain=approveHandle.split('@')[1].replace('\n','') approveDomain=approveHandle.split('@')[1].replace('\n','')
approvePort=port approvePort=port2
if ':' in approveDomain: if ':' in approveDomain:
approvePort=approveDomain.split(':')[1] approvePort=approveDomain.split(':')[1]
approveDomain=approveDomain.split(':')[0] approveDomain=approveDomain.split(':')[0]