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+=postLines[line] | ||||
|                                 fields[postKey]=postValue | ||||
|                         else: | ||||
|                             # directly search the binary array for the beginning | ||||
|                             # of an image | ||||
|                             extensionList=['png','jpeg','gif','mp4','webm','ogv','mp3','ogg'] | ||||
|                             for extension in extensionList: | ||||
|                                 searchStr=b'Content-Type: image/png' | ||||
|                                 if extension=='jpeg': | ||||
|                                     searchStr=b'Content-Type: image/jpeg' | ||||
|                                 elif extension=='gif': | ||||
|                                     searchStr=b'Content-Type: image/gif' | ||||
|                                 elif extension=='mp4': | ||||
|                                     searchStr=b'Content-Type: video/mp4' | ||||
|                                 elif extension=='ogv': | ||||
|                                     searchStr=b'Content-Type: video/ogv' | ||||
|                                 elif extension=='mp3': | ||||
|                                     searchStr=b'Content-Type: audio/mpeg' | ||||
|                                 elif extension=='ogg': | ||||
|                                     searchStr=b'Content-Type: audio/ogg' | ||||
|                                 imageLocation=postBytes.find(searchStr) | ||||
|                                 filenameBase= \ | ||||
|                                     self.server.baseDir+'/accounts/'+ \ | ||||
|                                     nickname+'@'+self.server.domain+'/upload' | ||||
|                                 if imageLocation>-1: | ||||
|                                     if extension=='jpeg': | ||||
|                                         extension='jpg' | ||||
|                                     if extension=='mpeg': | ||||
|                                         extension='mp3' | ||||
|                                     filename=filenameBase+'.'+extension | ||||
|                                     attachmentMediaType= \ | ||||
|                                         searchStr.decode().split('/')[0].replace('Content-Type: ','') | ||||
|                                     break | ||||
|                             if filename and imageLocation>-1: | ||||
|                                 # locate the beginning of the image, after any | ||||
|                                 # carriage returns | ||||
|                                 startPos=imageLocation+len(searchStr) | ||||
|                                 for offset in range(1,8): | ||||
|                                     if postBytes[startPos+offset]!=10: | ||||
|                                         if postBytes[startPos+offset]!=13: | ||||
|                                             startPos+=offset | ||||
|                                             break | ||||
|             if imageLocation>-1: | ||||
|                 # directly search the binary array for the beginning | ||||
|                 # of an image | ||||
|                 extensionList=['png','jpeg','gif','mp4','webm','ogv','mp3','ogg'] | ||||
|                 for extension in extensionList: | ||||
|                     searchStr=b'Content-Type: image/png' | ||||
|                     if extension=='jpeg': | ||||
|                         searchStr=b'Content-Type: image/jpeg' | ||||
|                     elif extension=='gif': | ||||
|                         searchStr=b'Content-Type: image/gif' | ||||
|                     elif extension=='mp4': | ||||
|                         searchStr=b'Content-Type: video/mp4' | ||||
|                     elif extension=='ogv': | ||||
|                         searchStr=b'Content-Type: video/ogv' | ||||
|                     elif extension=='mp3': | ||||
|                         searchStr=b'Content-Type: audio/mpeg' | ||||
|                     elif extension=='ogg': | ||||
|                         searchStr=b'Content-Type: audio/ogg' | ||||
|                     imageLocation=postBytes.find(searchStr) | ||||
|                     filenameBase= \ | ||||
|                         self.server.baseDir+'/accounts/'+ \ | ||||
|                         nickname+'@'+self.server.domain+'/upload' | ||||
|                     if imageLocation>-1: | ||||
|                         imageFound=True | ||||
|                         if extension=='jpeg': | ||||
|                             extension='jpg' | ||||
|                         elif extension=='mpeg': | ||||
|                             extension='mp3' | ||||
|                         filename=filenameBase+'.'+extension | ||||
|                         attachmentMediaType= \ | ||||
|                             searchStr.decode().split('/')[0].replace('Content-Type: ','') | ||||
|                         break | ||||
|                 if filename and imageLocation>-1: | ||||
|                     # locate the beginning of the image, after any | ||||
|                     # carriage returns | ||||
|                     startPos=imageLocation+len(searchStr) | ||||
|                     for offset in range(1,8): | ||||
|                         if postBytes[startPos+offset]!=10: | ||||
|                             if postBytes[startPos+offset]!=13: | ||||
|                                 startPos+=offset | ||||
|                                 break | ||||
| 
 | ||||
|                                 fd = open(filename, 'wb') | ||||
|                                 fd.write(postBytes[startPos:]) | ||||
|                                 fd.close() | ||||
|                             else: | ||||
|                                 filename=None | ||||
|                 else: | ||||
|                     filename=None | ||||
| 
 | ||||
|             # send the post | ||||
|             if not fields.get('message') and not fields.get('imageDescription'): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue