#!/usr/bin/python import asyncore, socket 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(asyncore.dispatcher): """ UDP Bot """ def __init__(self, port,pattern,action,bind_addr="",): asyncore.dispatcher.__init__(self) self.bind_addr = bind_addr self.port = port self.data = '' self.bind_socket() def bind_socket(self): """ if the socket is already bound we want to reuse this socket anyway """ self.create_socket(socket.AF_INET,socket.SOCK_DGRAM) self.set_reuse_addr() self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1) log.info("Binding Socket at %s:%d" %(self.bind_addr,self.port)) self.bind( (self.bind_addr,self.port) ) def handle_connect(self): log.info("Server Started") def handle_read(self): self.data,addr = self.recvfrom(2048) log.debug('<< %s' % self.data) if self.find_pattern(): self.start_action() def find_pattern(self): """ returns true if own pattern is found""" log.error("not yet implemented") sys.exit(23) def start_action(self): """ runs all the defined actions""" log.error("not yet implemented") sys.exit(23) if __name__ == "__main__": import os lol = logging.DEBUG if os.environ.get('debug',False) else logging.INFO logging.basicConfig(level=lol) ubot(1337,r'',{}) asyncore.loop()