diff options
Diffstat (limited to 'Reaktor/UDP')
-rw-r--r-- | Reaktor/UDP/README | 11 | ||||
-rwxr-xr-x | Reaktor/UDP/index | 57 |
2 files changed, 68 insertions, 0 deletions
diff --git a/Reaktor/UDP/README b/Reaktor/UDP/README index f89d377d..ad7117fe 100644 --- a/Reaktor/UDP/README +++ b/Reaktor/UDP/README @@ -13,6 +13,17 @@ From 2011-09-16: } } ] +## Head definition + { + "bind" : "127.0.0.1", + "port" : 1234, + "pattern" : "XXZZ", + "terminator" : "\r\n" + "action" : { }, + } +bind is an optional entry which lets the user define a bind address for the server. +terminator is optional which lets the user define the EOM terminator. + ## Actions ### POST "POST" : { diff --git a/Reaktor/UDP/index b/Reaktor/UDP/index new file mode 100755 index 00000000..950f0d21 --- /dev/null +++ b/Reaktor/UDP/index @@ -0,0 +1,57 @@ +#!/usr/bin/python + +from asycore import asychat +import logging +import sys +log = logging.getLogger('asybot') + +def enable_syslog(logger): + import logging.handlers as handlers + from logging import Formatter + hdlr = handlers.SysLogHandler( + facility=handlers.SysLogHandler.LOG_DAEMON) + formatter = Formatter( + '%(filename)s: %(levelname)s: %(message)s') + hdlr.setFormatter(formatter) + logger.addHandler(hdlr) + +class ubot(asychat): + """ UDP Bot """ + def __init__(self, port,pattern,action,bind="0.0.0.0",terminator='\r\n'): + asychat.__init__(self) + self.bind = bind + self.port = port + self.data = '' + self.set_terminator('\r\n') + self.bind_socket() + + def bind_socket(self): + """ + if the socket is already bound we want to reuse this socket anyway + """ + log.error("not yet implemented") + sys.exit(23) + def collect_incoming_data(self,data): + self.data += data + + def found_terminator(self): + """ + TODO what happens if, for example in an html message we find our pattern a hundred times. + should the actions been called a hundred times or just once for the connect? + """ + log.debug('<< %s' % self.data) + + message = self.data + self.data = '' + if self.find_pattern(message): + self.start_action(message) + + def find_pattern(self,message): + """ returns true if own pattern is found""" + log.error("not yet implemented") + sys.exit(23) + + def start_action(self,message): + """ runs all the defined actions""" + log.error("not yet implemented") + sys.exit(23) |