Editing blog posts

main
Bob Mottram 2020-03-01 18:17:36 +00:00
parent 0ee0d432f6
commit db19a3e29a
2 changed files with 80 additions and 6 deletions

14
blog.py
View File

@ -609,7 +609,9 @@ def htmlEditBlog(mediaInstance: bool,translate: {}, \
editBlogForm+= \
'<form enctype="multipart/form-data" method="POST" accept-charset="UTF-8" action="'+ \
pathBase+'?'+endpoint+'?page='+str(pageNumber)+'">'
pathBase+'?'+endpoint+'">'
editBlogForm+=' <input type="hidden" name="postUrl" value="'+postUrl+'">'
editBlogForm+=' <input type="hidden" name="pageNumber" value="'+str(pageNumber)+'">'
editBlogForm+=' <div class="vertical-center">'
editBlogForm+=' <label for="nickname"><b>'+editBlogText+'</b></label>'
editBlogForm+=' <div class="container">'
@ -622,7 +624,8 @@ def htmlEditBlog(mediaInstance: bool,translate: {}, \
editBlogForm+= \
' <a href="'+pathBase+ \
'/searchemoji"><img loading="lazy" class="emojisearch" src="/emoji/1F601.png" title="'+ \
'/searchemoji"><img loading="lazy" '+ \
'class="emojisearch" src="/emoji/1F601.png" title="'+ \
translate['Search for emoji']+'" alt="'+ \
translate['Search for emoji']+'"/></a>'
editBlogForm+=' </div>'
@ -645,10 +648,13 @@ def htmlEditBlog(mediaInstance: bool,translate: {}, \
editBlogForm+= \
' <input type="text" name="subject" value="'+titleStr+'">'
editBlogForm+=''
editBlogForm+=' <br><label class="labels">'+placeholderMessage+'</label>'
editBlogForm+= \
' <br><label class="labels">'+ \
placeholderMessage+'</label>'
messageBoxHeight=800
contentStr=postJsonObject['object']['content'].replace('<p>','').replace('</p>','')
contentStr= \
postJsonObject['object']['content'].replace('<p>','').replace('</p>','')
editBlogForm+= \
' <textarea id="message" name="message" style="height:'+ \

View File

@ -3896,8 +3896,7 @@ class PubServer(BaseHTTPRequestHandler):
return -1
elif postType=='newblog':
messageJson= \
createBlogPost(self.server.baseDir, \
nickname, \
createBlogPost(self.server.baseDir,nickname, \
self.server.domain,self.server.port, \
self.server.httpPrefix, \
fields['message'],False,False,False, \
@ -5362,6 +5361,75 @@ class PubServer(BaseHTTPRequestHandler):
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,13)
# edit blog post
if authorized and self.path.endswith('/tlblogs?editblogpost'):
pageNumber=1
length = int(self.headers['Content-length'])
if length>self.server.maxPostLength:
print('POST size too large')
self.send_response(429)
self.end_headers()
return
optionsConfirmParams= \
self.rfile.read(length).decode('utf-8').replace('%40','@').replace('%3A',':').replace('%23','#').replace('%2F','/').replace('%3F','')
postUrl=None
if 'postUrl=' in optionsConfirmParams:
postUrl=optionsConfirmParams.split('postUrl=')[1]
if '&' in postUrl:
postUrl=postUrl.split('&')[0]
originPathStr= \
self.server.httpPrefix+'://'+self.server.domainFull+ \
self.path.split('?')[0]
if postUrl:
titleStr=''
if 'subject=' in optionsConfirmParams:
titleStr=optionsConfirmParams.split('subject=')[1]
if '&' in titleStr:
titleStr=titleStr.split('&')[0]
titleStr=titleStr.replace('%26','&')
contentStr=''
if 'message=' in optionsConfirmParams:
contentStr=optionsConfirmParams.split('message=')[1]
if '&' in contentStr:
contentStr=contentStr.split('&')[0]
contentStr=contentStr.replace('%26','&')
#editNickname=getNicknameFromActor(originPathStr)
# page number to return to
if 'pageNumber=' in optionsConfirmParams:
pageNumberStr=optionsConfirmParams.split('pageNumber=')[1]
if '&' in pageNumberStr:
pageNumberStr=pageNumberStr.split('&')[0]
if pageNumberStr.isdigit():
pageNumber=int(pageNumberStr)
nickname= \
getNicknameFromActor(originPathStr)
postFilename= \
locatePost(self.server.baseDir, \
nickname,self.server.domain, \
postUrl)
if postFilename and titleStr and contentStr:
postJsonObject=loadJson(postFilename)
if postJsonObject:
# remove any previous cached html
cacheFilename= \
self.server.baseDir+'/postcache/' + \
postUrl.replace('/','#')+'.html'
if os.path.isfile(cacheFilename):
try:
os.remove(cacheFilename)
except:
pass
# save the new blog post
postJsonObject['object']['summary']=titleStr
postJsonObject['object']['content']=contentStr
saveJson(postJsonObject,postFilename)
self.server.POSTbusy=False
self._redirect_headers(originPathStr+ \
'?page='+str(pageNumber),cookie)
return
# an option was chosen from person options screen
# view/follow/block/report
if authorized and self.path.endswith('/personoptions'):