mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Show activitypub protocol images
							parent
							
								
									1168f1c8a9
								
							
						
					
					
						commit
						a0700df668
					
				
							
								
								
									
										58
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										58
									
								
								daemon.py
								
								
								
								
							| 
						 | 
				
			
			@ -8233,6 +8233,56 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                return
 | 
			
		||||
        self._404()
 | 
			
		||||
 | 
			
		||||
    def _show_specification_image(self, path: str,
 | 
			
		||||
                                  base_dir: str, getreq_start_time) -> None:
 | 
			
		||||
        """Shows an image within the ActivityPub specification document
 | 
			
		||||
        """
 | 
			
		||||
        image_filename = path.split('/', 1)[1]
 | 
			
		||||
        if '/' in image_filename:
 | 
			
		||||
            self._404()
 | 
			
		||||
            return
 | 
			
		||||
        media_filename = \
 | 
			
		||||
            base_dir + '/specification/' + image_filename
 | 
			
		||||
        if self._etag_exists(media_filename):
 | 
			
		||||
            # The file has not changed
 | 
			
		||||
            self._304()
 | 
			
		||||
            return
 | 
			
		||||
        if self.server.iconsCache.get(media_filename):
 | 
			
		||||
            media_binary = self.server.iconsCache[media_filename]
 | 
			
		||||
            mime_type_str = media_file_mime_type(media_filename)
 | 
			
		||||
            self._set_headers_etag(media_filename,
 | 
			
		||||
                                   mime_type_str,
 | 
			
		||||
                                   media_binary, None,
 | 
			
		||||
                                   self.server.domain_full,
 | 
			
		||||
                                   False, None)
 | 
			
		||||
            self._write(media_binary)
 | 
			
		||||
            fitness_performance(getreq_start_time, self.server.fitness,
 | 
			
		||||
                                '_GET', '_show_specification_image',
 | 
			
		||||
                                self.server.debug)
 | 
			
		||||
            return
 | 
			
		||||
        if os.path.isfile(media_filename):
 | 
			
		||||
            media_binary = None
 | 
			
		||||
            try:
 | 
			
		||||
                with open(media_filename, 'rb') as av_file:
 | 
			
		||||
                    media_binary = av_file.read()
 | 
			
		||||
            except OSError:
 | 
			
		||||
                print('EX: unable to read specification image ' +
 | 
			
		||||
                      media_filename)
 | 
			
		||||
            if media_binary:
 | 
			
		||||
                mime_type = media_file_mime_type(media_filename)
 | 
			
		||||
                self._set_headers_etag(media_filename,
 | 
			
		||||
                                       mime_type,
 | 
			
		||||
                                       media_binary, None,
 | 
			
		||||
                                       self.server.domain_full,
 | 
			
		||||
                                       False, None)
 | 
			
		||||
                self._write(media_binary)
 | 
			
		||||
                self.server.iconsCache[media_filename] = media_binary
 | 
			
		||||
            fitness_performance(getreq_start_time, self.server.fitness,
 | 
			
		||||
                                '_GET', '_show_specification_image',
 | 
			
		||||
                                self.server.debug)
 | 
			
		||||
            return
 | 
			
		||||
        self._404()
 | 
			
		||||
 | 
			
		||||
    def _show_help_screen_image(self, calling_domain: str, path: str,
 | 
			
		||||
                                base_dir: str, getreq_start_time) -> None:
 | 
			
		||||
        """Shows a help screen image
 | 
			
		||||
| 
						 | 
				
			
			@ -16737,6 +16787,14 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                            self.server.base_dir, getreq_start_time)
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # show images within https://instancedomain/activitypub
 | 
			
		||||
        if self.path.startswith('/activitypub-tutorial-'):
 | 
			
		||||
            if self.path.endswith('.png'):
 | 
			
		||||
                self._show_specification_image(self.path,
 | 
			
		||||
                                               self.server.base_dir,
 | 
			
		||||
                                               getreq_start_time)
 | 
			
		||||
                return
 | 
			
		||||
 | 
			
		||||
        # help screen images
 | 
			
		||||
        # Note that this comes before the busy flag to avoid conflicts
 | 
			
		||||
        if self.path.startswith('/helpimages/'):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue