summaryrefslogtreecommitdiffstats
path: root/Reaktor
diff options
context:
space:
mode:
Diffstat (limited to 'Reaktor')
-rw-r--r--Reaktor/UDP/README11
-rwxr-xr-xReaktor/UDP/index57
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)