forked from indymedia/epicyon
Reduce line lengths
parent
f9e8c09826
commit
2047e86684
214
daemon.py
214
daemon.py
|
@ -3948,10 +3948,12 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
# Instead we use the multipart mime parser from the email module
|
||||
if self.server.debug:
|
||||
print('DEBUG: extracting media from POST')
|
||||
mediaBytes,postBytes=extractMediaInFormPOST(postBytes,boundary,'attachpic')
|
||||
mediaBytes,postBytes= \
|
||||
extractMediaInFormPOST(postBytes,boundary,'attachpic')
|
||||
if self.server.debug:
|
||||
if mediaBytes:
|
||||
print('DEBUG: media was found. '+str(len(mediaBytes))+' bytes')
|
||||
print('DEBUG: media was found. '+ \
|
||||
str(len(mediaBytes))+' bytes')
|
||||
else:
|
||||
print('DEBUG: no media was found in POST')
|
||||
|
||||
|
@ -3981,12 +3983,14 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if os.path.isfile(postImageFilename):
|
||||
print('POST media saved to '+postImageFilename)
|
||||
else:
|
||||
print('ERROR: POST media could not be saved to '+postImageFilename)
|
||||
print('ERROR: POST media could not be saved to '+ \
|
||||
postImageFilename)
|
||||
else:
|
||||
if os.path.isfile(filename):
|
||||
os.rename(filename,filename.replace('.temp',''))
|
||||
|
||||
fields=extractTextFieldsInPOST(postBytes,boundary,self.server.debug)
|
||||
fields= \
|
||||
extractTextFieldsInPOST(postBytes,boundary,self.server.debug)
|
||||
if self.server.debug:
|
||||
if fields:
|
||||
print('DEBUG: text field extracted from POST '+str(fields))
|
||||
|
@ -4153,7 +4157,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('Edited blog post, resaved '+postFilename)
|
||||
return 1
|
||||
else:
|
||||
print('Edited blog post, unable to load json for '+postFilename)
|
||||
print('Edited blog post, unable to load json for '+ \
|
||||
postFilename)
|
||||
else:
|
||||
print('Edited blog post not found '+str(fields['postUrl']))
|
||||
return -1
|
||||
|
@ -4218,7 +4223,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
messageJson= \
|
||||
createDirectMessagePost(self.server.baseDir, \
|
||||
nickname, \
|
||||
self.server.domain,self.server.port, \
|
||||
self.server.domain, \
|
||||
self.server.port, \
|
||||
self.server.httpPrefix, \
|
||||
fields['message'],True,False,False, \
|
||||
filename,attachmentMediaType, \
|
||||
|
@ -4342,11 +4348,13 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
return None
|
||||
|
||||
if '/users/' not in path:
|
||||
print('Not receiving new post for '+path+' because /users/ not in path')
|
||||
print('Not receiving new post for '+path+ \
|
||||
' because /users/ not in path')
|
||||
return None
|
||||
|
||||
if '?'+postType+'?' not in path:
|
||||
print('Not receiving new post for '+path+' because ?'+postType+'? not in path')
|
||||
print('Not receiving new post for '+path+' because ?'+ \
|
||||
postType+'? not in path')
|
||||
return None
|
||||
|
||||
print('New post begins: '+postType+' '+path)
|
||||
|
@ -4371,7 +4379,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if self.server.newPostThread.get(newPostThreadName):
|
||||
print('Waiting for previous new post thread to end')
|
||||
waitCtr=0
|
||||
while self.server.newPostThread[newPostThreadName].isAlive() and waitCtr<8:
|
||||
while self.server.newPostThread[newPostThreadName].isAlive() and \
|
||||
waitCtr<8:
|
||||
time.sleep(1)
|
||||
waitCtr+=1
|
||||
if waitCtr>=8:
|
||||
|
@ -4412,10 +4421,13 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('POST size too large')
|
||||
return None
|
||||
|
||||
# Note sending new posts needs to be synchronous, otherwise any attachments
|
||||
# can get mangled if other events happen during their decoding
|
||||
# Note sending new posts needs to be synchronous,
|
||||
# otherwise any attachments can get mangled if
|
||||
# other events happen during their decoding
|
||||
print('Creating new post from: '+newPostThreadName)
|
||||
self._receiveNewPostProcess(authorized,postType,path,headers,length,postBytes,boundary)
|
||||
self._receiveNewPostProcess(authorized,postType, \
|
||||
path,headers,length, \
|
||||
postBytes,boundary)
|
||||
return pageNumber
|
||||
|
||||
def do_POST(self):
|
||||
|
@ -4527,7 +4539,9 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.POSTbusy=False
|
||||
if callingDomain.endswith('.onion') and \
|
||||
self.server.onionDomain:
|
||||
self._redirect_headers('http://'+self.server.onionDomain+'/login', \
|
||||
self._redirect_headers('http://'+ \
|
||||
self.server.onionDomain+ \
|
||||
'/login', \
|
||||
cookie,callingDomain)
|
||||
else:
|
||||
self._redirect_headers(self.server.httpPrefix+'://'+ \
|
||||
|
@ -4552,7 +4566,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('Login success: '+loginNickname)
|
||||
self.send_response(303)
|
||||
# re-activate account if needed
|
||||
activateAccount(self.server.baseDir,loginNickname,self.server.domain)
|
||||
activateAccount(self.server.baseDir,loginNickname, \
|
||||
self.server.domain)
|
||||
# This produces a deterministic token based on nick+password+salt
|
||||
saltFilename= \
|
||||
self.server.baseDir+'/accounts/'+ \
|
||||
|
@ -4573,7 +4588,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('WARN: Unable to save salt for '+ \
|
||||
loginNickname+' '+str(e))
|
||||
|
||||
token=sha256((loginNickname+loginPassword+salt).encode('utf-8')).hexdigest()
|
||||
tokenText=loginNickname+loginPassword+salt
|
||||
token=sha256(tokenText.encode('utf-8')).hexdigest()
|
||||
self.server.tokens[loginNickname]=token
|
||||
loginHandle=loginNickname+'@'+self.server.domain
|
||||
tokenFilename= \
|
||||
|
@ -4583,14 +4599,19 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
with open(tokenFilename, 'w') as fp:
|
||||
fp.write(token)
|
||||
except Exception as e:
|
||||
print('WARN: Unable to save token for '+loginNickname+' '+str(e))
|
||||
print('WARN: Unable to save token for '+ \
|
||||
loginNickname+' '+str(e))
|
||||
|
||||
personUpgradeActor(self.server.baseDir,None,loginHandle, \
|
||||
self.server.baseDir+'/accounts/'+loginHandle+'.json')
|
||||
self.server.baseDir+'/accounts/'+ \
|
||||
loginHandle+'.json')
|
||||
|
||||
self.server.tokensLookup[self.server.tokens[loginNickname]]=loginNickname
|
||||
self.server.tokensLookup[self.server.tokens[loginNickname]]= \
|
||||
loginNickname
|
||||
self.send_header('Set-Cookie', \
|
||||
'epicyon='+self.server.tokens[loginNickname]+'; SameSite=Strict')
|
||||
'epicyon='+ \
|
||||
self.server.tokens[loginNickname]+ \
|
||||
'; SameSite=Strict')
|
||||
if not callingDomain.endswith('.onion') or \
|
||||
not self.server.onionDomain:
|
||||
self.send_header('Location', \
|
||||
|
@ -4618,7 +4639,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
|
||||
# update of profile/avatar from web interface
|
||||
if authorized and self.path.endswith('/profiledata'):
|
||||
usersPath=self.path.replace('/profiledata','').replace('/editprofile','')
|
||||
usersPath= \
|
||||
self.path.replace('/profiledata','').replace('/editprofile','')
|
||||
actorStr= \
|
||||
self.server.httpPrefix+'://'+self.server.domainFull+usersPath
|
||||
if ' boundary=' in self.headers['Content-type']:
|
||||
|
@ -4628,7 +4650,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
|
||||
nickname=getNicknameFromActor(actorStr)
|
||||
if not nickname:
|
||||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
if callingDomain.endswith('.onion') and \
|
||||
self.server.onionDomain:
|
||||
actorStr= \
|
||||
'http://'+self.server.onionDomain+usersPath
|
||||
print('WARN: nickname not found in '+actorStr)
|
||||
|
@ -4637,7 +4660,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
return
|
||||
length=int(self.headers['Content-length'])
|
||||
if length>self.server.maxPostLength:
|
||||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
if callingDomain.endswith('.onion') and \
|
||||
self.server.onionDomain:
|
||||
actorStr= \
|
||||
'http://'+self.server.onionDomain+usersPath
|
||||
print('Maximum profile data length exceeded '+str(length))
|
||||
|
@ -4654,14 +4678,19 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
profileMediaTypesUploaded={}
|
||||
for mType in profileMediaTypes:
|
||||
if self.server.debug:
|
||||
print('DEBUG: profile update extracting '+mType+' image from POST')
|
||||
mediaBytes,postBytes=extractMediaInFormPOST(postBytes,boundary,mType)
|
||||
print('DEBUG: profile update extracting '+mType+ \
|
||||
' image from POST')
|
||||
mediaBytes,postBytes= \
|
||||
extractMediaInFormPOST(postBytes,boundary,mType)
|
||||
if mediaBytes:
|
||||
if self.server.debug:
|
||||
print('DEBUG: profile update '+mType+' image was found. '+str(len(mediaBytes))+' bytes')
|
||||
print('DEBUG: profile update '+mType+ \
|
||||
' image was found. '+ \
|
||||
str(len(mediaBytes))+' bytes')
|
||||
else:
|
||||
if self.server.debug:
|
||||
print('DEBUG: profile update, no '+mType+' image was found in POST')
|
||||
print('DEBUG: profile update, no '+mType+ \
|
||||
' image was found in POST')
|
||||
continue
|
||||
|
||||
# Note: a .temp extension is used here so that at no time is
|
||||
|
@ -4675,13 +4704,16 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.baseDir+'/accounts/login.temp'
|
||||
|
||||
filename,attachmentMediaType= \
|
||||
saveMediaInFormPOST(mediaBytes,self.server.debug,filenameBase)
|
||||
saveMediaInFormPOST(mediaBytes,self.server.debug, \
|
||||
filenameBase)
|
||||
if filename:
|
||||
if self.server.debug:
|
||||
print('DEBUG: profile update POST '+mType+' media filename is '+filename)
|
||||
print('DEBUG: profile update POST '+mType+ \
|
||||
' media filename is '+filename)
|
||||
else:
|
||||
if self.server.debug:
|
||||
print('DEBUG: profile update, no '+mType+' media filename in POST')
|
||||
print('DEBUG: profile update, no '+mType+ \
|
||||
' media filename in POST')
|
||||
continue
|
||||
|
||||
if self.server.debug:
|
||||
|
@ -4689,20 +4721,28 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
postImageFilename=filename.replace('.temp','')
|
||||
removeMetaData(filename,postImageFilename)
|
||||
if os.path.isfile(postImageFilename):
|
||||
print('profile update POST '+mType+' image saved to '+postImageFilename)
|
||||
print('profile update POST '+mType+ \
|
||||
' image saved to '+postImageFilename)
|
||||
if mType!='instanceLogo':
|
||||
lastPartOfImageFilename=postImageFilename.split('/')[-1]
|
||||
profileMediaTypesUploaded[mType]=lastPartOfImageFilename
|
||||
lastPartOfImageFilename= \
|
||||
postImageFilename.split('/')[-1]
|
||||
profileMediaTypesUploaded[mType]= \
|
||||
lastPartOfImageFilename
|
||||
actorChanged=True
|
||||
else:
|
||||
print('ERROR: profile update POST '+mType+' image could not be saved to '+postImageFilename)
|
||||
print('ERROR: profile update POST '+mType+ \
|
||||
' image could not be saved to '+postImageFilename)
|
||||
|
||||
fields=extractTextFieldsInPOST(postBytes,boundary,self.server.debug)
|
||||
fields= \
|
||||
extractTextFieldsInPOST(postBytes,boundary, \
|
||||
self.server.debug)
|
||||
if self.server.debug:
|
||||
if fields:
|
||||
print('DEBUG: profile update text field extracted from POST '+str(fields))
|
||||
print('DEBUG: profile update text '+ \
|
||||
'field extracted from POST '+str(fields))
|
||||
else:
|
||||
print('WARN: profile update, no text fields could be extracted from POST')
|
||||
print('WARN: profile update, no text '+ \
|
||||
'fields could be extracted from POST')
|
||||
|
||||
actorFilename= \
|
||||
self.server.baseDir+'/accounts/'+ \
|
||||
|
@ -4714,7 +4754,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
# update the avatar/image url file extension
|
||||
for mType,lastPartOfImageFilename in profileMediaTypesUploaded.items():
|
||||
if mType=='avatar':
|
||||
lastPartOfUrl=actorJson['icon']['url'].split('/')[-1]
|
||||
lastPartOfUrl= \
|
||||
actorJson['icon']['url'].split('/')[-1]
|
||||
actorJson['icon']['url']= \
|
||||
actorJson['icon']['url'].replace('/'+lastPartOfUrl, \
|
||||
'/'+lastPartOfImageFilename)
|
||||
|
@ -4750,7 +4791,9 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if actorJson['password']==fields['passwordconfirm']:
|
||||
if len(actorJson['password'])>2:
|
||||
# set password
|
||||
storeBasicCredentials(self.server.baseDir,nickname,actorJson['password'])
|
||||
storeBasicCredentials(self.server.baseDir, \
|
||||
nickname, \
|
||||
actorJson['password'])
|
||||
if fields.get('displayNickname'):
|
||||
if fields['displayNickname']!=actorJson['name']:
|
||||
actorJson['name']=fields['displayNickname']
|
||||
|
@ -4822,23 +4865,35 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
setDonationUrl(actorJson,'')
|
||||
actorChanged=True
|
||||
if fields.get('instanceTitle'):
|
||||
currInstanceTitle=getConfigParam(self.server.baseDir,'instanceTitle')
|
||||
currInstanceTitle= \
|
||||
getConfigParam(self.server.baseDir,'instanceTitle')
|
||||
if fields['instanceTitle']!=currInstanceTitle:
|
||||
setConfigParam(self.server.baseDir,'instanceTitle',fields['instanceTitle'])
|
||||
currInstanceDescriptionShort=getConfigParam(self.server.baseDir,'instanceDescriptionShort')
|
||||
setConfigParam(self.server.baseDir,'instanceTitle', \
|
||||
fields['instanceTitle'])
|
||||
currInstanceDescriptionShort= \
|
||||
getConfigParam(self.server.baseDir, \
|
||||
'instanceDescriptionShort')
|
||||
if fields.get('instanceDescriptionShort'):
|
||||
if fields['instanceDescriptionShort']!=currInstanceDescriptionShort:
|
||||
setConfigParam(self.server.baseDir,'instanceDescriptionShort',fields['instanceDescriptionShort'])
|
||||
setConfigParam(self.server.baseDir, \
|
||||
'instanceDescriptionShort', \
|
||||
fields['instanceDescriptionShort'])
|
||||
else:
|
||||
if currInstanceDescriptionShort:
|
||||
setConfigParam(self.server.baseDir,'instanceDescriptionShort','')
|
||||
currInstanceDescription=getConfigParam(self.server.baseDir,'instanceDescription')
|
||||
setConfigParam(self.server.baseDir, \
|
||||
'instanceDescriptionShort','')
|
||||
currInstanceDescription= \
|
||||
getConfigParam(self.server.baseDir, \
|
||||
'instanceDescription')
|
||||
if fields.get('instanceDescription'):
|
||||
if fields['instanceDescription']!=currInstanceDescription:
|
||||
setConfigParam(self.server.baseDir,'instanceDescription',fields['instanceDescription'])
|
||||
setConfigParam(self.server.baseDir, \
|
||||
'instanceDescription', \
|
||||
fields['instanceDescription'])
|
||||
else:
|
||||
if currInstanceDescription:
|
||||
setConfigParam(self.server.baseDir,'instanceDescription','')
|
||||
setConfigParam(self.server.baseDir, \
|
||||
'instanceDescription','')
|
||||
if fields.get('bio'):
|
||||
if fields['bio']!=actorJson['summary']:
|
||||
actorTags={}
|
||||
|
@ -4858,9 +4913,11 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
actorJson['summary']=''
|
||||
actorChanged=True
|
||||
if fields.get('moderators'):
|
||||
adminNickname=getConfigParam(self.server.baseDir,'admin')
|
||||
adminNickname= \
|
||||
getConfigParam(self.server.baseDir,'admin')
|
||||
if self.path.startswith('/users/'+adminNickname+'/'):
|
||||
moderatorsFile=self.server.baseDir+'/accounts/moderators.txt'
|
||||
moderatorsFile= \
|
||||
self.server.baseDir+'/accounts/moderators.txt'
|
||||
clearModeratorStatus(self.server.baseDir)
|
||||
if ',' in fields['moderators']:
|
||||
# if the list was given as comma separated
|
||||
|
@ -4901,13 +4958,16 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
|
||||
if fields.get('removeScheduledPosts'):
|
||||
if fields['removeScheduledPosts']=='on':
|
||||
removeScheduledPosts(self.server.baseDir,nickname,self.server.domain)
|
||||
removeScheduledPosts(self.server.baseDir, \
|
||||
nickname, \
|
||||
self.server.domain)
|
||||
approveFollowers=False
|
||||
if fields.get('approveFollowers'):
|
||||
if fields['approveFollowers']=='on':
|
||||
approveFollowers=True
|
||||
if approveFollowers!=actorJson['manuallyApprovesFollowers']:
|
||||
actorJson['manuallyApprovesFollowers']=approveFollowers
|
||||
actorJson['manuallyApprovesFollowers']= \
|
||||
approveFollowers
|
||||
actorChanged=True
|
||||
if fields.get('mediaInstance'):
|
||||
self.server.mediaInstance=False
|
||||
|
@ -5014,7 +5074,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
# save allowed instances list
|
||||
allowedInstancesFilename= \
|
||||
self.server.baseDir+'/accounts/'+ \
|
||||
nickname+'@'+self.server.domain+'/allowedinstances.txt'
|
||||
nickname+'@'+self.server.domain+ \
|
||||
'/allowedinstances.txt'
|
||||
if fields.get('allowedInstances'):
|
||||
with open(allowedInstancesFilename, "w") as allowedInstancesFile:
|
||||
allowedInstancesFile.write(fields['allowedInstances'])
|
||||
|
@ -5030,7 +5091,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
actorJson['id'],actorJson, \
|
||||
self.server.personCache)
|
||||
# clear any cached images for this actor
|
||||
removeAvatarFromCache(self.server.baseDir,actorJson['id'].replace('/','-'))
|
||||
removeAvatarFromCache(self.server.baseDir, \
|
||||
actorJson['id'].replace('/','-'))
|
||||
# save the actor to the cache
|
||||
actorCacheFilename= \
|
||||
self.server.baseDir+'/cache/actors/'+ \
|
||||
|
@ -5044,10 +5106,12 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
'cc': ['https://www.w3.org/ns/activitystreams#Public'],
|
||||
'object': actorJson
|
||||
}
|
||||
self._postToOutbox(updateActorJson,__version__,nickname)
|
||||
self._postToOutbox(updateActorJson, \
|
||||
__version__,nickname)
|
||||
if fields.get('deactivateThisAccount'):
|
||||
if fields['deactivateThisAccount']=='on':
|
||||
deactivateAccount(self.server.baseDir,nickname,self.server.domain)
|
||||
deactivateAccount(self.server.baseDir,nickname, \
|
||||
self.server.domain)
|
||||
self._clearLoginDetails(nickname)
|
||||
self.server.POSTbusy=False
|
||||
return
|
||||
|
@ -5473,7 +5537,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
originPathStr='http://'+self.server.onionDomain+usersPath
|
||||
if pageNumber==1:
|
||||
self._redirect_headers(originPathStr+'/outbox',cookie,callingDomain)
|
||||
self._redirect_headers(originPathStr+'/outbox',cookie, \
|
||||
callingDomain)
|
||||
else:
|
||||
self._redirect_headers(originPathStr+'/outbox?page='+ \
|
||||
str(pageNumber),cookie,callingDomain)
|
||||
|
@ -5560,7 +5625,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('You cannot unfollow yourself!')
|
||||
else:
|
||||
if self.server.debug:
|
||||
print(followerNickname+' stops following '+followingActor)
|
||||
print(followerNickname+' stops following '+ \
|
||||
followingActor)
|
||||
followActor= \
|
||||
self.server.httpPrefix+'://'+ \
|
||||
self.server.domainFull+ \
|
||||
|
@ -5636,7 +5702,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
else:
|
||||
if self.server.debug:
|
||||
print(blockerNickname+' stops blocking '+blockingActor)
|
||||
removeBlock(self.server.baseDir,blockerNickname,self.server.domain, \
|
||||
removeBlock(self.server.baseDir, \
|
||||
blockerNickname,self.server.domain, \
|
||||
blockingNickname,blockingDomainFull)
|
||||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
originPathStr= \
|
||||
|
@ -5841,7 +5908,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
print('Snoozing '+optionsActor+' '+thisActor)
|
||||
if '/users/' in thisActor:
|
||||
nickname=thisActor.split('/users/')[1]
|
||||
personSnooze(self.server.baseDir,nickname,self.server.domain,optionsActor)
|
||||
personSnooze(self.server.baseDir,nickname, \
|
||||
self.server.domain,optionsActor)
|
||||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
thisActor= \
|
||||
'http://'+self.server.onionDomain+usersPath
|
||||
|
@ -5854,12 +5922,14 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if '&submitUnSnooze=' in optionsConfirmParams:
|
||||
usersPath=self.path.split('/personoptions')[0]
|
||||
thisActor= \
|
||||
self.server.httpPrefix+'://'+self.server.domainFull+usersPath
|
||||
self.server.httpPrefix+'://'+ \
|
||||
self.server.domainFull+usersPath
|
||||
if self.server.debug:
|
||||
print('Unsnoozing '+optionsActor+' '+thisActor)
|
||||
if '/users/' in thisActor:
|
||||
nickname=thisActor.split('/users/')[1]
|
||||
personUnsnooze(self.server.baseDir,nickname,self.server.domain,optionsActor)
|
||||
personUnsnooze(self.server.baseDir,nickname, \
|
||||
self.server.domain,optionsActor)
|
||||
if callingDomain.endswith('.onion') and self.server.onionDomain:
|
||||
thisActor= \
|
||||
'http://'+self.server.onionDomain+usersPath
|
||||
|
@ -5894,7 +5964,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,14)
|
||||
|
||||
# receive different types of post created by htmlNewPost
|
||||
postTypes=["newpost","newblog","newunlisted","newfollowers","newdm","newreport","newshare","newquestion","editblogpost"]
|
||||
postTypes=("newpost","newblog","newunlisted","newfollowers", \
|
||||
"newdm","newreport","newshare","newquestion","editblogpost")
|
||||
for currPostType in postTypes:
|
||||
if currPostType!='newshare':
|
||||
postRedirect=self.server.defaultTimeline
|
||||
|
@ -5909,7 +5980,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
|
||||
if not callingDomain.endswith('.onion') or \
|
||||
not self.server.onionDomain:
|
||||
self._redirect_headers(self.server.httpPrefix+'://'+self.server.domainFull+ \
|
||||
self._redirect_headers(self.server.httpPrefix+'://'+ \
|
||||
self.server.domainFull+ \
|
||||
'/users/'+nickname+ \
|
||||
'/'+postRedirect+ \
|
||||
'?page='+str(pageNumber),cookie, \
|
||||
|
@ -5980,7 +6052,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
'/users/' in self.path:
|
||||
if not self.outboxAuthenticated:
|
||||
if self.server.debug:
|
||||
print('DEBUG: unauthenticated attempt to post image to outbox')
|
||||
print('DEBUG: unauthenticated attempt to '+ \
|
||||
'post image to outbox')
|
||||
self.send_response(403)
|
||||
self.end_headers()
|
||||
self.server.POSTbusy=False
|
||||
|
@ -6048,7 +6121,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
elif self.headers.get('content-length'):
|
||||
length=int(self.headers['content-length'])
|
||||
if length>10240:
|
||||
print('WARN: post to shared inbox is too long '+str(length)+' bytes')
|
||||
print('WARN: post to shared inbox is too long '+ \
|
||||
str(length)+' bytes')
|
||||
self._400()
|
||||
self.server.POSTbusy=False
|
||||
return
|
||||
|
@ -6059,7 +6133,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if self.path == '/sharedInbox' or self.path == '/inbox':
|
||||
lenMessage=len(messageBytes)
|
||||
if lenMessage>10240:
|
||||
print('WARN: post to shared inbox is too long '+str(lenMessage)+' bytes')
|
||||
print('WARN: post to shared inbox is too long '+ \
|
||||
str(lenMessage)+' bytes')
|
||||
self._400()
|
||||
self.server.POSTbusy=False
|
||||
return
|
||||
|
@ -6097,7 +6172,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.path=='/sharedInbox':
|
||||
if not inboxMessageHasParams(messageJson):
|
||||
if self.server.debug:
|
||||
print("DEBUG: inbox message doesn't have the required parameters")
|
||||
print("DEBUG: inbox message doesn't have the "+ \
|
||||
"required parameters")
|
||||
self.send_response(403)
|
||||
self.end_headers()
|
||||
self.server.POSTbusy=False
|
||||
|
@ -6108,7 +6184,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if not self.headers.get('signature'):
|
||||
if 'keyId=' not in self.headers['signature']:
|
||||
if self.server.debug:
|
||||
print('DEBUG: POST to inbox has no keyId in header signature parameter')
|
||||
print('DEBUG: POST to inbox has no keyId in '+ \
|
||||
'header signature parameter')
|
||||
self.send_response(403)
|
||||
self.end_headers()
|
||||
self.server.POSTbusy=False
|
||||
|
@ -6278,7 +6355,8 @@ def runDaemon(blogsInstance: bool,mediaInstance: bool, \
|
|||
httpd=ThreadingHTTPServer(serverAddress, pubHandler)
|
||||
except Exception as e:
|
||||
if e.errno==98:
|
||||
print('ERROR: HTTP server address is already in use. '+str(serverAddress))
|
||||
print('ERROR: HTTP server address is already in use. '+ \
|
||||
str(serverAddress))
|
||||
return False
|
||||
|
||||
print('ERROR: HTTP server failed to start. '+str(e))
|
||||
|
|
Loading…
Reference in New Issue