mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 11:52:54 +00:00 
			
		
		
		
	Reorder stuff to follow the teachings of Uncle Bob
This commit is contained in:
		@@ -11,56 +11,6 @@ from tfw.config.logs import logging
 | 
			
		||||
LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TFWProxy:
 | 
			
		||||
    def __init__(self, to_source, to_destination):
 | 
			
		||||
        self.to_source = to_source
 | 
			
		||||
        self.to_destination = to_destination
 | 
			
		||||
 | 
			
		||||
        self.proxy_filters = CallbackMixin()
 | 
			
		||||
        self.proxy_callbacks = CallbackMixin()
 | 
			
		||||
 | 
			
		||||
        self.proxy_filters.subscribe_callback(self.validate_message)
 | 
			
		||||
 | 
			
		||||
        self.keyhandlers = {
 | 
			
		||||
            'mirror':    self.mirror,
 | 
			
		||||
            'broadcast': self.broadcast
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def validate_message(message):
 | 
			
		||||
        if 'key' not in message:
 | 
			
		||||
            raise ValueError('Invalid TFW message format!')
 | 
			
		||||
 | 
			
		||||
    def __call__(self, message):
 | 
			
		||||
        try:
 | 
			
		||||
            self.proxy_filters._execute_callbacks(message)
 | 
			
		||||
        except ValueError:
 | 
			
		||||
            LOG.exception('Invalid TFW message received!')
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        self.proxy_callbacks._execute_callbacks(message)
 | 
			
		||||
 | 
			
		||||
        if message['key'] not in self.keyhandlers:
 | 
			
		||||
            self.to_destination(message)
 | 
			
		||||
        else:
 | 
			
		||||
            handler = self.keyhandlers[message['key']]
 | 
			
		||||
            try:
 | 
			
		||||
                handler(message)
 | 
			
		||||
            except KeyError:
 | 
			
		||||
                LOG.error('Invalid "%s" message format! Ignoring.', handler.__name__)
 | 
			
		||||
 | 
			
		||||
    def mirror(self, message):
 | 
			
		||||
        message = message['data']
 | 
			
		||||
        LOG.debug('Mirroring message: %s', message)
 | 
			
		||||
        self.to_source(message)
 | 
			
		||||
 | 
			
		||||
    def broadcast(self, message):
 | 
			
		||||
        message = message['data']
 | 
			
		||||
        LOG.debug('Broadcasting message: %s', message)
 | 
			
		||||
        self.to_source(message)
 | 
			
		||||
        self.to_destination(message)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ZMQWebSocketProxy(WebSocketHandler):
 | 
			
		||||
    instances = set()
 | 
			
		||||
 | 
			
		||||
@@ -119,3 +69,53 @@ class ZMQWebSocketProxy(WebSocketHandler):
 | 
			
		||||
    # much secure, very cors, wow
 | 
			
		||||
    def check_origin(self, origin):
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TFWProxy:
 | 
			
		||||
    def __init__(self, to_source, to_destination):
 | 
			
		||||
        self.to_source = to_source
 | 
			
		||||
        self.to_destination = to_destination
 | 
			
		||||
 | 
			
		||||
        self.proxy_filters = CallbackMixin()
 | 
			
		||||
        self.proxy_callbacks = CallbackMixin()
 | 
			
		||||
 | 
			
		||||
        self.proxy_filters.subscribe_callback(self.validate_message)
 | 
			
		||||
 | 
			
		||||
        self.keyhandlers = {
 | 
			
		||||
            'mirror':    self.mirror,
 | 
			
		||||
            'broadcast': self.broadcast
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def validate_message(message):
 | 
			
		||||
        if 'key' not in message:
 | 
			
		||||
            raise ValueError('Invalid TFW message format!')
 | 
			
		||||
 | 
			
		||||
    def __call__(self, message):
 | 
			
		||||
        try:
 | 
			
		||||
            self.proxy_filters._execute_callbacks(message)
 | 
			
		||||
        except ValueError:
 | 
			
		||||
            LOG.exception('Invalid TFW message received!')
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        self.proxy_callbacks._execute_callbacks(message)
 | 
			
		||||
 | 
			
		||||
        if message['key'] not in self.keyhandlers:
 | 
			
		||||
            self.to_destination(message)
 | 
			
		||||
        else:
 | 
			
		||||
            handler = self.keyhandlers[message['key']]
 | 
			
		||||
            try:
 | 
			
		||||
                handler(message)
 | 
			
		||||
            except KeyError:
 | 
			
		||||
                LOG.error('Invalid "%s" message format! Ignoring.', handler.__name__)
 | 
			
		||||
 | 
			
		||||
    def mirror(self, message):
 | 
			
		||||
        message = message['data']
 | 
			
		||||
        LOG.debug('Mirroring message: %s', message)
 | 
			
		||||
        self.to_source(message)
 | 
			
		||||
 | 
			
		||||
    def broadcast(self, message):
 | 
			
		||||
        message = message['data']
 | 
			
		||||
        LOG.debug('Broadcasting message: %s', message)
 | 
			
		||||
        self.to_source(message)
 | 
			
		||||
        self.to_destination(message)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user