title Bedstraw Automation user strick ip 76.125.30.244 vol 1 lock ******** # cat bedstraw/boxen.model /pre( 101001;m;11,21,60;! 101002;m;12,22,60;s;0.5,0.5,0.5 101003;m;13,23,60 101004;m;14,24,60 101005;m;15,25,60 /pre) /box( /pre( import BaseHTTPServer as B import sys import re import time import traceback HOST_NAME = 'xxx.xxx' PORT_NUMBER = xxx MAX_BYTES = 1500 NICE = re.compile('^[a-z0-9]+$').match LINENO = re.compile('^([0-9]+)').match AFTER = re.compile('a=([0-9]+)').search MODEL = re.compile('m=([a-z0-9_]+)').search class MyHandler(B.BaseHTTPRequestHandler): def do_GET(s): """Respond to a GET request.""" s.send_response(200) s.send_header("Content-type", "text/plain") s.end_headers() w = s.wfile print >>sys.stderr, "\n\nPATH: %s" % s.path if s.path == "/favicon.ico": return try: m = MODEL(s.path).group(1) a = int(AFTER(s.path).group(1)) if not NICE(m): raise "not nice" fd = open('bedstraw/%s.model' % m) b = 0 broke = False print >>w, "=%s" % m for line in fd: line = line.strip() i = int(LINENO(line).group(1)) if i > a: print >>w, line b += len(line) + 2 if b > MAX_BYTES: broke = True break if not broke: print >>w, "0;eof" print >>sys.stderr, "OKAY: %s" % s.path except: print >>w, "0;FAIL;%s" % repr(sys.exc_info()) print >>sys.stderr, "0;FAIL;%s" % repr(sys.exc_info()) traceback.print_exc() traceback.print_stack() traceback.format_stack() sys.stderr.flush() if __name__ == '__main__': httpd = B.HTTPServer((HOST_NAME, PORT_NUMBER), MyHandler) print time.asctime(), "Server Starts - %s:%s" % (HOST_NAME, PORT_NUMBER) try: httpd.serve_forever() except KeyboardInterrupt: pass httpd.server_close() print time.asctime(), "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER) /pre