| 
									
										
										
										
											2020-11-09 17:51:15 +01:00
										 |  |  | #!/usr/bin/python3 | 
					
						
							|  |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | Image Server module for Inkycal project | 
					
						
							|  |  |  | For use with Robert Sierre's inkycal web-service | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright by aceisace | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2020-11-12 21:22:22 +01:00
										 |  |  | from inkycal.modules.template import inkycal_module | 
					
						
							|  |  |  | from inkycal.custom import * | 
					
						
							| 
									
										
										
										
											2020-11-09 17:51:15 +01:00
										 |  |  | import requests | 
					
						
							| 
									
										
										
										
											2020-11-12 21:22:22 +01:00
										 |  |  | # import numpy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | filename = os.path.basename(__file__).split('.py')[0] | 
					
						
							|  |  |  | logger = logging.getLogger(filename) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Inkyserver(inkycal_module): | 
					
						
							|  |  |  |   """Inkyserver class""" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-21 16:22:15 +01:00
										 |  |  |   name = "Inkycal Server - get image from Inkycal server" | 
					
						
							| 
									
										
										
										
											2020-11-12 21:22:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   requires = { | 
					
						
							|  |  |  |     "panel_id" : { | 
					
						
							|  |  |  |       "label":"Please enter your panel ID", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def __init__(self, config): | 
					
						
							|  |  |  |     """Initialize inkycal_feeds module""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     super().__init__(config) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     config = config['config'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Check if all required parameters are present | 
					
						
							|  |  |  |     for param in self.requires: | 
					
						
							|  |  |  |       if not param in config: | 
					
						
							|  |  |  |         raise Exception('config is missing {}'.format(param)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # required parameters | 
					
						
							|  |  |  |     self.panel_id = config["panel_id"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # give an OK message | 
					
						
							|  |  |  |     print('{0} loaded'.format(filename)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def _validate(self): | 
					
						
							|  |  |  |     """Validate module-specific parameters""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if not isinstance(self.panel_id, str): | 
					
						
							|  |  |  |       print('panel_id has to be a string') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def generate_image(self): | 
					
						
							|  |  |  |     """Generate image for this module""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def get_image(url): | 
					
						
							|  |  |  |     """Get an image from a given URL""" | 
					
						
							|  |  |  | ##      try: | 
					
						
							|  |  |  | ##        # POST request, passing path_body in the body | 
					
						
							|  |  |  | ##        im = Image.open(requests.post(path, json=path_body, stream=True).raw) | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ##      except FileNotFoundError: | 
					
						
							|  |  |  | ##        raise Exception('Your file could not be found. Please check the path to your file.') | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ##      except OSError: | 
					
						
							|  |  |  | ##        raise Exception('Please check if the path points to an image file.') | 
					
						
							|  |  |  |       pass | 
					
						
							|  |  |  |       ## return image | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def splice(image): | 
					
						
							|  |  |  |     """Splits a 3-colour image to two black-white images""" | 
					
						
							|  |  |  |     pass | 
					
						
							|  |  |  |     ## return im_black, im_colour | 
					
						
							| 
									
										
										
										
											2020-11-09 17:51:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 |