flake8 format

main
Bob Mottram 2020-04-05 10:47:42 +01:00
parent 0a5a9d439b
commit ba493f9e20
2 changed files with 116 additions and 90 deletions

View File

@ -7,16 +7,16 @@ __email__="bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
import os import os
import datetime
import time
import json
from auth import createPassword from auth import createPassword
from utils import getNicknameFromActor from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import loadJson from utils import loadJson
from utils import saveJson from utils import saveJson
def getOcapFilename(baseDir :str,nickname: str,domain: str,actor :str,subdir: str) -> str:
def getOcapFilename(baseDir: str,
nickname: str, domain: str,
actor: str, subdir: str) -> str:
"""Returns the filename for a particular capability accepted or granted """Returns the filename for a particular capability accepted or granted
Also creates directories as needed Also creates directories as needed
""" """
@ -37,11 +37,15 @@ def getOcapFilename(baseDir :str,nickname: str,domain: str,actor :str,subdir: st
if not os.path.isdir(ocDir): if not os.path.isdir(ocDir):
os.mkdir(ocDir) os.mkdir(ocDir)
ocDir=baseDir+'/accounts/'+nickname+'@'+domain+'/ocap/'+subdir ocDir = baseDir + '/accounts/' + \
nickname + '@' + domain + '/ocap/' + subdir
if not os.path.isdir(ocDir): if not os.path.isdir(ocDir):
os.mkdir(ocDir) os.mkdir(ocDir)
return baseDir+'/accounts/'+nickname+'@'+domain+'/ocap/'+subdir+'/'+actor.replace('/','#')+'.json' return baseDir + '/accounts/' + \
nickname + '@' + domain + '/ocap/' + \
subdir + '/' + actor.replace('/', '#') + '.json'
def CapablePost(postJson: {}, capabilityList: [], debug: bool) -> bool: def CapablePost(postJson: {}, capabilityList: [], debug: bool) -> bool:
"""Determines whether a post arriving in the inbox """Determines whether a post arriving in the inbox
@ -52,13 +56,15 @@ def CapablePost(postJson: {}, capabilityList: [], debug :bool) -> bool:
if postJson['type'] == 'Announce': if postJson['type'] == 'Announce':
if 'inbox:noannounce' in capabilityList: if 'inbox:noannounce' in capabilityList:
if debug: if debug:
print('DEBUG: inbox post rejected because inbox:noannounce') print('DEBUG: ' +
'inbox post rejected because inbox:noannounce')
return False return False
# No likes # No likes
if postJson['type'] == 'Like': if postJson['type'] == 'Like':
if 'inbox:nolike' in capabilityList: if 'inbox:nolike' in capabilityList:
if debug: if debug:
print('DEBUG: inbox post rejected because inbox:nolike') print('DEBUG: ' +
'inbox post rejected because inbox:nolike')
return False return False
if postJson['type'] == 'Create': if postJson['type'] == 'Create':
if postJson.get('object'): if postJson.get('object'):
@ -67,28 +73,34 @@ def CapablePost(postJson: {}, capabilityList: [], debug :bool) -> bool:
if postJson['object']['inReplyTo']: if postJson['object']['inReplyTo']:
if 'inbox:noreply' in capabilityList: if 'inbox:noreply' in capabilityList:
if debug: if debug:
print('DEBUG: inbox post rejected because inbox:noreply') print('DEBUG: ' +
'inbox post rejected because ' +
'inbox:noreply')
return False return False
# are content warnings enforced? # are content warnings enforced?
if postJson['object'].get('sensitive'): if postJson['object'].get('sensitive'):
if not postJson['object']['sensitive']: if not postJson['object']['sensitive']:
if 'inbox:cw' in capabilityList: if 'inbox:cw' in capabilityList:
if debug: if debug:
print('DEBUG: inbox post rejected because inbox:cw') print('DEBUG: ' +
'inbox post rejected because inbox:cw')
return False return False
# content warning must have non-zero summary # content warning must have non-zero summary
if postJson['object'].get('summary'): if postJson['object'].get('summary'):
if len(postJson['object']['summary']) < 2: if len(postJson['object']['summary']) < 2:
if 'inbox:cw' in capabilityList: if 'inbox:cw' in capabilityList:
if debug: if debug:
print('DEBUG: inbox post rejected because inbox:cw, summary missing') print('DEBUG: ' +
'inbox post rejected because ' +
'inbox:cw, summary missing')
return False return False
if 'inbox:write' in capabilityList: if 'inbox:write' in capabilityList:
return True return True
return True return True
def capabilitiesRequest(baseDir: str,httpPrefix: str,domain: str, \
requestedActor: str, \ def capabilitiesRequest(baseDir: str, httpPrefix: str, domain: str,
requestedActor: str, requestedDomain: str,
requestedCaps=["inbox:write", "objects:read"]) -> {}: requestedCaps=["inbox:write", "objects:read"]) -> {}:
# This is sent to the capabilities endpoint /caps/new # This is sent to the capabilities endpoint /caps/new
# which could be instance wide or for a particular person # which could be instance wide or for a particular person
@ -103,9 +115,10 @@ def capabilitiesRequest(baseDir: str,httpPrefix: str,domain: str, \
} }
return ocapRequest return ocapRequest
def capabilitiesAccept(baseDir: str,httpPrefix: str, \
nickname: str,domain: str, port: int, \ def capabilitiesAccept(baseDir: str, httpPrefix: str,
acceptedActor: str, saveToFile: bool, \ nickname: str, domain: str, port: int,
acceptedActor: str, saveToFile: bool,
acceptedCaps=["inbox:write", "objects:read"]) -> {}: acceptedCaps=["inbox:write", "objects:read"]) -> {}:
# This gets returned to capabilities requester # This gets returned to capabilities requester
# This could also be added to a follow Accept activity # This could also be added to a follow Accept activity
@ -121,7 +134,8 @@ def capabilitiesAccept(baseDir: str,httpPrefix: str, \
fullDomain = domain + ':' + str(port) fullDomain = domain + ':' + str(port)
# make directories to store capabilities # make directories to store capabilities
ocapFilename=getOcapFilename(baseDir,nickname,fullDomain,acceptedActor,'accept') ocapFilename = \
getOcapFilename(baseDir, nickname, fullDomain, acceptedActor, 'accept')
if not ocapFilename: if not ocapFilename:
return None return None
ocapAccept = None ocapAccept = None
@ -135,11 +149,14 @@ def capabilitiesAccept(baseDir: str,httpPrefix: str, \
if not acceptedActorNickname: if not acceptedActorNickname:
print('WARN: unable to find nickname in ' + acceptedActor) print('WARN: unable to find nickname in ' + acceptedActor)
return None return None
acceptedActorDomain,acceptedActorPort=getDomainFromActor(acceptedActor) acceptedActorDomain, acceptedActorPort = \
getDomainFromActor(acceptedActor)
if acceptedActorPort: if acceptedActorPort:
ocapId=acceptedActorNickname+'@'+acceptedActorDomain+':'+str(acceptedActorPort)+'#'+createPassword(32) ocapId = acceptedActorNickname + '@' + acceptedActorDomain + \
':' + str(acceptedActorPort) + '#'+createPassword(32)
else: else:
ocapId=acceptedActorNickname+'@'+acceptedActorDomain+'#'+createPassword(32) ocapId = acceptedActorNickname + '@' + acceptedActorDomain + \
'#' + createPassword(32)
ocapAccept = { ocapAccept = {
"@context": "https://www.w3.org/ns/activitystreams", "@context": "https://www.w3.org/ns/activitystreams",
"id": httpPrefix + "://" + fullDomain + "/caps/" + ocapId, "id": httpPrefix + "://" + fullDomain + "/caps/" + ocapId,
@ -149,27 +166,32 @@ def capabilitiesAccept(baseDir: str,httpPrefix: str, \
"actor": httpPrefix + "://" + fullDomain "actor": httpPrefix + "://" + fullDomain
} }
if nickname: if nickname:
ocapAccept['actor']=httpPrefix+"://"+fullDomain+'/users/'+nickname ocapAccept['actor'] = \
httpPrefix + "://" + fullDomain + '/users/' + nickname
if saveToFile: if saveToFile:
saveJson(ocapAccept, ocapFilename) saveJson(ocapAccept, ocapFilename)
return ocapAccept return ocapAccept
def capabilitiesGrantedSave(baseDir :str,nickname :str,domain :str,ocap: {}) -> bool:
def capabilitiesGrantedSave(baseDir: str,
nickname: str, domain: str, ocap: {}) -> bool:
"""A capabilities accept is received, so stor it for """A capabilities accept is received, so stor it for
reference when sending to the actor reference when sending to the actor
""" """
if not ocap.get('actor'): if not ocap.get('actor'):
return False return False
ocapFilename=getOcapFilename(baseDir,nickname,domain,ocap['actor'],'granted') ocapFilename = \
getOcapFilename(baseDir, nickname, domain, ocap['actor'], 'granted')
if not ocapFilename: if not ocapFilename:
return False return False
saveJson(ocap, ocapFilename) saveJson(ocap, ocapFilename)
return True return True
def capabilitiesUpdate(baseDir: str,httpPrefix: str, \
nickname: str,domain: str, port: int, \ def capabilitiesUpdate(baseDir: str, httpPrefix: str,
updateActor: str, \ nickname: str, domain: str, port: int,
updateActor: str,
updateCaps: []) -> {}: updateCaps: []) -> {}:
"""Used to sends an update for a change of object capabilities """Used to sends an update for a change of object capabilities
Note that the capability id gets changed with a new random token Note that the capability id gets changed with a new random token
@ -187,7 +209,8 @@ def capabilitiesUpdate(baseDir: str,httpPrefix: str, \
fullDomain = domain + ':' + str(port) fullDomain = domain + ':' + str(port)
# Get the filename of the capability # Get the filename of the capability
ocapFilename=getOcapFilename(baseDir,nickname,fullDomain,updateActor,'accept') ocapFilename = \
getOcapFilename(baseDir, nickname, fullDomain, updateActor, 'accept')
if not ocapFilename: if not ocapFilename:
return None return None
@ -218,9 +241,11 @@ def capabilitiesUpdate(baseDir: str,httpPrefix: str, \
return None return None
updateActorDomain, updateActorPort = getDomainFromActor(updateActor) updateActorDomain, updateActorPort = getDomainFromActor(updateActor)
if updateActorPort: if updateActorPort:
ocapId=updateActorNickname+'@'+updateActorDomain+':'+str(updateActorPort)+'#'+createPassword(32) ocapId = updateActorNickname + '@' + updateActorDomain + \
':' + str(updateActorPort) + '#' + createPassword(32)
else: else:
ocapId=updateActorNickname+'@'+updateActorDomain+'#'+createPassword(32) ocapId = updateActorNickname + '@' + updateActorDomain + \
'#' + createPassword(32)
ocapJson['id'] = httpPrefix + "://" + fullDomain + "/caps/" + ocapId ocapJson['id'] = httpPrefix + "://" + fullDomain + "/caps/" + ocapId
ocapUpdate['object'] = ocapJson ocapUpdate['object'] = ocapJson
@ -229,10 +254,11 @@ def capabilitiesUpdate(baseDir: str,httpPrefix: str, \
return ocapUpdate return ocapUpdate
def capabilitiesReceiveUpdate(baseDir :str, \
nickname :str,domain :str,port :int, \ def capabilitiesReceiveUpdate(baseDir: str,
actor :str, \ nickname: str, domain: str, port: int,
newCapabilitiesId :str, \ actor: str,
newCapabilitiesId: str,
capabilityList: [], debug: bool) -> bool: capabilityList: [], debug: bool) -> bool:
"""An update for a capability or the given actor has arrived """An update for a capability or the given actor has arrived
""" """

View File

@ -10,7 +10,7 @@ echo "Starting static analysis"
for sourceFile in *.py for sourceFile in *.py
do do
if [[ "$sourceFile" == 'tests.py' || "$sourceFile" == 'blurhash.py' || "$sourceFile" == 'capabilities.py' ]]; then if [[ "$sourceFile" == 'tests.py' || "$sourceFile" == 'blurhash.py' ]]; then
continue continue
fi fi
result=$($cmd "$sourceFile") result=$($cmd "$sourceFile")