flake8 format

merge-requests/30/head
Bob Mottram 2020-04-03 16:45:00 +00:00
parent 128e431e9f
commit a85baf08ed
1 changed files with 110 additions and 95 deletions

View File

@ -1,175 +1,190 @@
__filename__="manualapprove.py" __filename__ = "manualapprove.py"
__author__="Bob Mottram" __author__ = "Bob Mottram"
__license__="AGPL3+" __license__ = "AGPL3+"
__version__="1.1.0" __version__ = "1.1.0"
__maintainer__="Bob Mottram" __maintainer__ = "Bob Mottram"
__email__="bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__="Production" __status__ = "Production"
import os import os
import json
import time
from follow import followedAccountAccepts from follow import followedAccountAccepts
from follow import followedAccountRejects from follow import followedAccountRejects
from follow import removeFromFollowRequests from follow import removeFromFollowRequests
from utils import loadJson from utils import loadJson
from utils import saveJson
def manualDenyFollowRequest(session,baseDir: str, \
def manualDenyFollowRequest(session, baseDir: str,
httpPrefix: str, httpPrefix: str,
nickname: str,domain: str,port: int, \ nickname: str, domain: str, port: int,
denyHandle: str, \ denyHandle: str,
federationList: [], \ federationList: [],
sendThreads: [],postLog: [], \ sendThreads: [], postLog: [],
cachedWebfingers: {},personCache: {}, \ cachedWebfingers: {}, personCache: {},
debug: bool, \ debug: bool,
projectVersion: str) -> None: projectVersion: str) -> None:
"""Manually deny a follow request """Manually deny a follow request
""" """
handle=nickname+'@'+domain handle = nickname + '@' + domain
accountsDir=baseDir+'/accounts/'+handle accountsDir = baseDir + '/accounts/' + handle
# has this handle already been rejected? # has this handle already been rejected?
rejectedFollowsFilename=accountsDir+'/followrejects.txt' rejectedFollowsFilename = accountsDir + '/followrejects.txt'
if os.path.isfile(rejectedFollowsFilename): if os.path.isfile(rejectedFollowsFilename):
if denyHandle in open(rejectedFollowsFilename).read(): if denyHandle in open(rejectedFollowsFilename).read():
removeFromFollowRequests(baseDir,nickname,domain,denyHandle,debug) removeFromFollowRequests(baseDir, nickname, domain,
print(denyHandle+' has already been rejected as a follower of '+nickname) denyHandle, debug)
print(denyHandle + ' has already been rejected as a follower of ' +
nickname)
return return
removeFromFollowRequests(baseDir,nickname,domain,denyHandle,debug) removeFromFollowRequests(baseDir, nickname, domain, denyHandle, debug)
# Store rejected follows # Store rejected follows
rejectsFile=open(rejectedFollowsFilename, "a+") rejectsFile = open(rejectedFollowsFilename, "a+")
rejectsFile.write(denyHandle+'\n') rejectsFile.write(denyHandle + '\n')
rejectsFile.close() rejectsFile.close()
denyNickname=denyHandle.split('@')[0] denyNickname = denyHandle.split('@')[0]
denyDomain=denyHandle.split('@')[1].replace('\n','') denyDomain = denyHandle.split('@')[1].replace('\n', '')
denyPort=port denyPort = port
if ':' in denyDomain: if ':' in denyDomain:
denyPort=denyDomain.split(':')[1] denyPort = denyDomain.split(':')[1]
denyDomain=denyDomain.split(':')[0] denyDomain = denyDomain.split(':')[0]
followedAccountRejects(session,baseDir,httpPrefix, \ followedAccountRejects(session, baseDir, httpPrefix,
nickname,domain,port, \ nickname, domain, port,
denyNickname,denyDomain,denyPort, \ denyNickname, denyDomain, denyPort,
federationList, \ federationList,
sendThreads,postLog, \ sendThreads, postLog,
cachedWebfingers,personCache, \ cachedWebfingers, personCache,
debug,projectVersion) debug, projectVersion)
print('Follow request from '+denyHandle+' was denied.') print('Follow request from ' + denyHandle + ' was denied.')
def approveFollowerHandle(accountDir: str,approveHandle: str) -> None:
def approveFollowerHandle(accountDir: str, approveHandle: str) -> None:
""" Record manually approved handles so that if they unfollow and then """ Record manually approved handles so that if they unfollow and then
re-follow later then they don't need to be manually approved again re-follow later then they don't need to be manually approved again
""" """
approvedFilename=accountDir+'/approved.txt' approvedFilename = accountDir + '/approved.txt'
if os.path.isfile(approvedFilename): if os.path.isfile(approvedFilename):
if approveHandle not in open(approvedFilename).read(): if approveHandle not in open(approvedFilename).read():
approvedFile=open(approvedFilename, "a+") approvedFile = open(approvedFilename, "a+")
approvedFile.write(approveHandle+'\n') approvedFile.write(approveHandle + '\n')
approvedFile.close() approvedFile.close()
else: else:
approvedFile=open(approvedFilename, "w+") approvedFile = open(approvedFilename, "w+")
approvedFile.write(approveHandle+'\n') approvedFile.write(approveHandle + '\n')
approvedFile.close() approvedFile.close()
def manualApproveFollowRequest(session,baseDir: str, \
def manualApproveFollowRequest(session, baseDir: str,
httpPrefix: str, httpPrefix: str,
nickname: str,domain: str,port: int, \ nickname: str, domain: str, port: int,
approveHandle: str, \ approveHandle: str,
federationList: [], \ federationList: [],
sendThreads: [],postLog: [], \ sendThreads: [], postLog: [],
cachedWebfingers: {},personCache: {}, \ cachedWebfingers: {}, personCache: {},
acceptedCaps: [], \ acceptedCaps: [],
debug: bool, \ debug: bool,
projectVersion: str) -> None: projectVersion: str) -> None:
"""Manually approve a follow request """Manually approve a follow request
""" """
handle=nickname+'@'+domain handle = nickname + '@' + domain
print('Manual follow accept: '+handle+' approving follow request from '+approveHandle) print('Manual follow accept: ' + handle +
accountDir=baseDir+'/accounts/'+handle ' approving follow request from ' + approveHandle)
approveFollowsFilename=accountDir+'/followrequests.txt' accountDir = baseDir + '/accounts/' + handle
approveFollowsFilename = accountDir + '/followrequests.txt'
if not os.path.isfile(approveFollowsFilename): if not os.path.isfile(approveFollowsFilename):
print('Manual follow accept: follow requests file '+approveFollowsFilename+' not found') print('Manual follow accept: follow requests file ' +
approveFollowsFilename + ' not found')
return return
# is the handle in the requests file? # is the handle in the requests file?
if approveHandle not in open(approveFollowsFilename).read(): if approveHandle not in open(approveFollowsFilename).read():
print('Manual follow accept: '+approveHandle+' not in requests file '+approveFollowsFilename) print('Manual follow accept: ' + approveHandle +
' not in requests file ' + approveFollowsFilename)
return return
approvefilenew=open(approveFollowsFilename+'.new', 'w+') approvefilenew = open(approveFollowsFilename + '.new', 'w+')
updateApprovedFollowers=False updateApprovedFollowers = False
followActivityfilename=None followActivityfilename = None
with open(approveFollowsFilename, 'r') as approvefile: with open(approveFollowsFilename, 'r') as approvefile:
for handleOfFollowRequester in approvefile: for handleOfFollowRequester in approvefile:
# is this the approved follow? # is this the approved follow?
if handleOfFollowRequester.startswith(approveHandle): if handleOfFollowRequester.startswith(approveHandle):
handleOfFollowRequester=handleOfFollowRequester.replace('\n','') handleOfFollowRequester = \
port2=port handleOfFollowRequester.replace('\n', '')
port2 = port
if ':' in handleOfFollowRequester: if ':' in handleOfFollowRequester:
port2Str=handleOfFollowRequester.split(':')[1] port2Str = handleOfFollowRequester.split(':')[1]
if port2Str.isdigit(): if port2Str.isdigit():
port2=int(port2Str) port2 = int(port2Str)
requestsDir=accountDir+'/requests' requestsDir = accountDir + '/requests'
followActivityfilename=requestsDir+'/'+handleOfFollowRequester+'.follow' followActivityfilename = \
requestsDir + '/' + handleOfFollowRequester + '.follow'
if os.path.isfile(followActivityfilename): if os.path.isfile(followActivityfilename):
followJson=loadJson(followActivityfilename) followJson = loadJson(followActivityfilename)
if followJson: if followJson:
approveNickname=approveHandle.split('@')[0] approveNickname = approveHandle.split('@')[0]
approveDomain=approveHandle.split('@')[1].replace('\n','') approveDomain = \
approvePort=port2 approveHandle.split('@')[1].replace('\n', '')
approvePort = port2
if ':' in approveDomain: if ':' in approveDomain:
approvePort=approveDomain.split(':')[1] approvePort = approveDomain.split(':')[1]
approveDomain=approveDomain.split(':')[0] approveDomain = approveDomain.split(':')[0]
print('Manual follow accept: Sending Accept for '+handle+' follow request from '+approveNickname+'@'+approveDomain) print('Manual follow accept: Sending Accept for ' +
followedAccountAccepts(session,baseDir,httpPrefix, \ handle + ' follow request from ' +
nickname,domain,port, \ approveNickname + '@' + approveDomain)
approveNickname,approveDomain,approvePort, \ followedAccountAccepts(session, baseDir, httpPrefix,
followJson['actor'],federationList, \ nickname, domain, port,
followJson,acceptedCaps, \ approveNickname, approveDomain,
sendThreads,postLog, \ approvePort,
cachedWebfingers,personCache, \ followJson['actor'],
debug,projectVersion,False) federationList,
updateApprovedFollowers=True followJson, acceptedCaps,
sendThreads, postLog,
cachedWebfingers, personCache,
debug, projectVersion, False)
updateApprovedFollowers = True
else: else:
# this isn't the approved follow so it will remain # this isn't the approved follow so it will remain
# in the requests file # in the requests file
approvefilenew.write(handleOfFollowRequester) approvefilenew.write(handleOfFollowRequester)
approvefilenew.close() approvefilenew.close()
followersFilename=accountDir+'/followers.txt' followersFilename = accountDir + '/followers.txt'
if updateApprovedFollowers: if updateApprovedFollowers:
# update the followers # update the followers
print('Manual follow accept: updating '+followersFilename) print('Manual follow accept: updating ' + followersFilename)
if os.path.isfile(followersFilename): if os.path.isfile(followersFilename):
if approveHandle not in open(followersFilename).read(): if approveHandle not in open(followersFilename).read():
try: try:
with open(followersFilename, 'r+') as followersFile: with open(followersFilename, 'r+') as followersFile:
content=followersFile.read() content = followersFile.read()
followersFile.seek(0, 0) followersFile.seek(0, 0)
followersFile.write(approveHandle+'\n'+content) followersFile.write(approveHandle + '\n' + content)
except Exception as e: except Exception as e:
print('WARN: Manual follow accept. Failed to write entry to followers file '+str(e)) print('WARN: Manual follow accept. ' +
'Failed to write entry to followers file ' + str(e))
else: else:
print('WARN: Manual follow accept: '+approveHandle+' already exists in '+followersFilename) print('WARN: Manual follow accept: ' + approveHandle +
' already exists in ' + followersFilename)
else: else:
print('Manual follow accept: first follower accepted for '+handle+' is '+approveHandle) print('Manual follow accept: first follower accepted for ' +
followersFile=open(followersFilename, "w+") handle + ' is ' + approveHandle)
followersFile.write(approveHandle+'\n') followersFile = open(followersFilename, "w+")
followersFile.write(approveHandle + '\n')
followersFile.close() followersFile.close()
# only update the follow requests file if the follow is confirmed to be # only update the follow requests file if the follow is confirmed to be
# in followers.txt # in followers.txt
if approveHandle in open(followersFilename).read(): if approveHandle in open(followersFilename).read():
# mark this handle as approved for following # mark this handle as approved for following
approveFollowerHandle(accountDir,approveHandle) approveFollowerHandle(accountDir, approveHandle)
# update the follow requests with the handles not yet approved # update the follow requests with the handles not yet approved
os.rename(approveFollowsFilename+'.new',approveFollowsFilename) os.rename(approveFollowsFilename + '.new', approveFollowsFilename)
# remove the .follow file # remove the .follow file
if followActivityfilename: if followActivityfilename:
if os.path.isfile(followActivityfilename): if os.path.isfile(followActivityfilename):
os.remove(followActivityfilename) os.remove(followActivityfilename)
else: else:
os.remove(approveFollowsFilename+'.new') os.remove(approveFollowsFilename + '.new')