mirror of https://gitlab.com/bashrc2/epicyon
Extract image from post
parent
dcc3683133
commit
dd5fdfa192
85
daemon.py
85
daemon.py
|
@ -2686,52 +2686,53 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
postValue+='\n'
|
postValue+='\n'
|
||||||
postValue+=postLines[line]
|
postValue+=postLines[line]
|
||||||
fields[postKey]=postValue
|
fields[postKey]=postValue
|
||||||
else:
|
if imageLocation>-1:
|
||||||
# directly search the binary array for the beginning
|
# directly search the binary array for the beginning
|
||||||
# of an image
|
# of an image
|
||||||
extensionList=['png','jpeg','gif','mp4','webm','ogv','mp3','ogg']
|
extensionList=['png','jpeg','gif','mp4','webm','ogv','mp3','ogg']
|
||||||
for extension in extensionList:
|
for extension in extensionList:
|
||||||
searchStr=b'Content-Type: image/png'
|
searchStr=b'Content-Type: image/png'
|
||||||
if extension=='jpeg':
|
if extension=='jpeg':
|
||||||
searchStr=b'Content-Type: image/jpeg'
|
searchStr=b'Content-Type: image/jpeg'
|
||||||
elif extension=='gif':
|
elif extension=='gif':
|
||||||
searchStr=b'Content-Type: image/gif'
|
searchStr=b'Content-Type: image/gif'
|
||||||
elif extension=='mp4':
|
elif extension=='mp4':
|
||||||
searchStr=b'Content-Type: video/mp4'
|
searchStr=b'Content-Type: video/mp4'
|
||||||
elif extension=='ogv':
|
elif extension=='ogv':
|
||||||
searchStr=b'Content-Type: video/ogv'
|
searchStr=b'Content-Type: video/ogv'
|
||||||
elif extension=='mp3':
|
elif extension=='mp3':
|
||||||
searchStr=b'Content-Type: audio/mpeg'
|
searchStr=b'Content-Type: audio/mpeg'
|
||||||
elif extension=='ogg':
|
elif extension=='ogg':
|
||||||
searchStr=b'Content-Type: audio/ogg'
|
searchStr=b'Content-Type: audio/ogg'
|
||||||
imageLocation=postBytes.find(searchStr)
|
imageLocation=postBytes.find(searchStr)
|
||||||
filenameBase= \
|
filenameBase= \
|
||||||
self.server.baseDir+'/accounts/'+ \
|
self.server.baseDir+'/accounts/'+ \
|
||||||
nickname+'@'+self.server.domain+'/upload'
|
nickname+'@'+self.server.domain+'/upload'
|
||||||
if imageLocation>-1:
|
if imageLocation>-1:
|
||||||
if extension=='jpeg':
|
imageFound=True
|
||||||
extension='jpg'
|
if extension=='jpeg':
|
||||||
if extension=='mpeg':
|
extension='jpg'
|
||||||
extension='mp3'
|
elif extension=='mpeg':
|
||||||
filename=filenameBase+'.'+extension
|
extension='mp3'
|
||||||
attachmentMediaType= \
|
filename=filenameBase+'.'+extension
|
||||||
searchStr.decode().split('/')[0].replace('Content-Type: ','')
|
attachmentMediaType= \
|
||||||
break
|
searchStr.decode().split('/')[0].replace('Content-Type: ','')
|
||||||
if filename and imageLocation>-1:
|
break
|
||||||
# locate the beginning of the image, after any
|
if filename and imageLocation>-1:
|
||||||
# carriage returns
|
# locate the beginning of the image, after any
|
||||||
startPos=imageLocation+len(searchStr)
|
# carriage returns
|
||||||
for offset in range(1,8):
|
startPos=imageLocation+len(searchStr)
|
||||||
if postBytes[startPos+offset]!=10:
|
for offset in range(1,8):
|
||||||
if postBytes[startPos+offset]!=13:
|
if postBytes[startPos+offset]!=10:
|
||||||
startPos+=offset
|
if postBytes[startPos+offset]!=13:
|
||||||
break
|
startPos+=offset
|
||||||
|
break
|
||||||
|
|
||||||
fd = open(filename, 'wb')
|
fd = open(filename, 'wb')
|
||||||
fd.write(postBytes[startPos:])
|
fd.write(postBytes[startPos:])
|
||||||
fd.close()
|
fd.close()
|
||||||
else:
|
else:
|
||||||
filename=None
|
filename=None
|
||||||
|
|
||||||
# send the post
|
# send the post
|
||||||
if not fields.get('message') and not fields.get('imageDescription'):
|
if not fields.get('message') and not fields.get('imageDescription'):
|
||||||
|
|
Loading…
Reference in New Issue