mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
| __filename__ = "daemon_get_exports.py"
 | |
| __author__ = "Bob Mottram"
 | |
| __license__ = "AGPL3+"
 | |
| __version__ = "1.6.0"
 | |
| __maintainer__ = "Bob Mottram"
 | |
| __email__ = "bob@libreserver.org"
 | |
| __status__ = "Production"
 | |
| __module_group__ = "Daemon GET"
 | |
| 
 | |
| import os
 | |
| from httpcodes import http_404
 | |
| from httpcodes import write2
 | |
| from httpheaders import set_headers
 | |
| from httpheaders import set_headers_etag
 | |
| from utils import get_nickname_from_actor
 | |
| from blocking import export_blocking_file
 | |
| 
 | |
| 
 | |
| def get_exported_blocks(self, path: str, base_dir: str,
 | |
|                         domain: str,
 | |
|                         calling_domain: str) -> None:
 | |
|     """Returns an exported blocks csv file
 | |
|     """
 | |
|     filename = path.split('/exports/', 1)[1]
 | |
|     filename = base_dir + '/exports/' + filename
 | |
|     nickname = get_nickname_from_actor(path)
 | |
|     if nickname:
 | |
|         blocks_str = export_blocking_file(base_dir, nickname, domain)
 | |
|         if blocks_str:
 | |
|             msg = blocks_str.encode('utf-8')
 | |
|             msglen = len(msg)
 | |
|             set_headers(self, 'text/csv',
 | |
|                         msglen, None, calling_domain, False)
 | |
|             write2(self, msg)
 | |
|             return
 | |
|     http_404(self, 20)
 | |
| 
 | |
| 
 | |
| def get_exported_theme(self, path: str, base_dir: str,
 | |
|                        domain_full: str) -> None:
 | |
|     """Returns an exported theme zip file
 | |
|     """
 | |
|     filename = path.split('/exports/', 1)[1]
 | |
|     filename = base_dir + '/exports/' + filename
 | |
|     if os.path.isfile(filename):
 | |
|         export_binary = None
 | |
|         try:
 | |
|             with open(filename, 'rb') as fp_exp:
 | |
|                 export_binary = fp_exp.read()
 | |
|         except OSError:
 | |
|             print('EX: unable to read theme export ' + filename)
 | |
|         if export_binary:
 | |
|             export_type = 'application/zip'
 | |
|             set_headers_etag(self, filename, export_type,
 | |
|                              export_binary, None,
 | |
|                              domain_full, False, None)
 | |
|             write2(self, export_binary)
 | |
|     http_404(self, 19)
 |