mirror of https://gitlab.com/bashrc2/epicyon
Handle edited blog post
parent
28d72cb83c
commit
b0f514d329
2
blog.py
2
blog.py
|
@ -609,7 +609,7 @@ def htmlEditBlog(mediaInstance: bool,translate: {}, \
|
||||||
|
|
||||||
editBlogForm+= \
|
editBlogForm+= \
|
||||||
'<form enctype="multipart/form-data" method="POST" accept-charset="UTF-8" action="'+ \
|
'<form enctype="multipart/form-data" method="POST" accept-charset="UTF-8" action="'+ \
|
||||||
pathBase+'?'+endpoint+'">'
|
pathBase+'?'+endpoint+'?page='+str(pageNumber)+'">'
|
||||||
editBlogForm+=' <input type="hidden" name="postUrl" value="'+postUrl+'">'
|
editBlogForm+=' <input type="hidden" name="postUrl" value="'+postUrl+'">'
|
||||||
editBlogForm+=' <input type="hidden" name="pageNumber" value="'+str(pageNumber)+'">'
|
editBlogForm+=' <input type="hidden" name="pageNumber" value="'+str(pageNumber)+'">'
|
||||||
editBlogForm+=' <div class="vertical-center">'
|
editBlogForm+=' <div class="vertical-center">'
|
||||||
|
|
110
daemon.py
110
daemon.py
|
@ -3917,6 +3917,34 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
return 1
|
return 1
|
||||||
else:
|
else:
|
||||||
return -1
|
return -1
|
||||||
|
elif postType=='editblogpost':
|
||||||
|
print('Edited blog post received')
|
||||||
|
postFilename= \
|
||||||
|
locatePost(self.server.baseDir, \
|
||||||
|
nickname,self.server.domain, \
|
||||||
|
fields['postUrl'])
|
||||||
|
if os.path.isfile(postFilename):
|
||||||
|
postJsonObject=loadJson(postFilename)
|
||||||
|
if postJsonObject:
|
||||||
|
cachedFilename= \
|
||||||
|
self.server.baseDir+'/postcache/'+ \
|
||||||
|
fields['postUrl'].replace('/','#')+'.html'
|
||||||
|
if os.path.isfile(cachedFilename):
|
||||||
|
print('Edited blog post, removing cached html')
|
||||||
|
try:
|
||||||
|
os.remove(cachedFilename)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
postJsonObject['object']['summary']=fields['subject']
|
||||||
|
postJsonObject['object']['content']=fields['message']
|
||||||
|
saveJson(postJsonObject,postFilename)
|
||||||
|
print('Edited blog post, resaved '+postFilename)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
print('Edited blog post, unable to load json for '+postFilename)
|
||||||
|
else:
|
||||||
|
print('Edited blog post not found '+str(fields['postUrl']))
|
||||||
|
return -1
|
||||||
elif postType=='newunlisted':
|
elif postType=='newunlisted':
|
||||||
messageJson= \
|
messageJson= \
|
||||||
createUnlistedPost(self.server.baseDir, \
|
createUnlistedPost(self.server.baseDir, \
|
||||||
|
@ -5358,86 +5386,6 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
|
|
||||||
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,13)
|
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,13)
|
||||||
|
|
||||||
# edit blog post
|
|
||||||
if authorized and '/tlblogs?editblogpost' in self.path:
|
|
||||||
pageNumber=1
|
|
||||||
|
|
||||||
print('Edit blog 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','')
|
|
||||||
print('Edit blog 2: '+optionsConfirmParams)
|
|
||||||
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]
|
|
||||||
print('Edit blog 3: '+str(postUrl))
|
|
||||||
print('Edit blog 4: '+originPathStr)
|
|
||||||
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','&')
|
|
||||||
print('Edit blog 5: '+titleStr)
|
|
||||||
print('Edit blog 6: '+contentStr)
|
|
||||||
#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)
|
|
||||||
print('Edit blog 7: '+str(pageNumber))
|
|
||||||
nickname= \
|
|
||||||
getNicknameFromActor(originPathStr)
|
|
||||||
postFilename= \
|
|
||||||
locatePost(self.server.baseDir, \
|
|
||||||
nickname,self.server.domain, \
|
|
||||||
postUrl)
|
|
||||||
print('Edit blog 8: '+str(postFilename))
|
|
||||||
if postFilename and titleStr and contentStr:
|
|
||||||
postJsonObject=loadJson(postFilename)
|
|
||||||
print('Edit blog 9: '+str(postJsonObject))
|
|
||||||
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
|
|
||||||
print('Edit blog 10')
|
|
||||||
# save the new blog post
|
|
||||||
postJsonObject['object']['summary']=titleStr
|
|
||||||
postJsonObject['object']['content']=contentStr
|
|
||||||
saveJson(postJsonObject,postFilename)
|
|
||||||
print('Edit blog 11')
|
|
||||||
self.server.POSTbusy=False
|
|
||||||
self._redirect_headers(originPathStr+ \
|
|
||||||
'?page='+str(pageNumber),cookie)
|
|
||||||
return
|
|
||||||
|
|
||||||
# an option was chosen from person options screen
|
# an option was chosen from person options screen
|
||||||
# view/follow/block/report
|
# view/follow/block/report
|
||||||
if authorized and self.path.endswith('/personoptions'):
|
if authorized and self.path.endswith('/personoptions'):
|
||||||
|
@ -5608,7 +5556,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,14)
|
self._benchmarkPOSTtimings(POSTstartTime,POSTtimings,14)
|
||||||
|
|
||||||
# receive different types of post created by htmlNewPost
|
# receive different types of post created by htmlNewPost
|
||||||
postTypes=["newpost","newblog","newunlisted","newfollowers","newdm","newreport","newshare","newquestion"]
|
postTypes=["newpost","newblog","newunlisted","newfollowers","newdm","newreport","newshare","newquestion","editblogpost"]
|
||||||
for currPostType in postTypes:
|
for currPostType in postTypes:
|
||||||
if currPostType!='newshare':
|
if currPostType!='newshare':
|
||||||
postRedirect=self.server.defaultTimeline
|
postRedirect=self.server.defaultTimeline
|
||||||
|
|
Loading…
Reference in New Issue