import StringIO import SimpleHTTPServer from VideoCapture import Device import sys BaseClass = SimpleHTTPServer.SimpleHTTPRequestHandler CounterTemplate = """

Server Statistics

This server has been accessed %d times. """ count = 0 class MyRequestHandler(BaseClass): def do_GET(self): global count count = count + 1 BaseClass.do_GET(self) def send_head(self): if self.path == "/counter.html": return self.send_counter() elif self.path == "/camera.jpg": return self.send_camera() elif self.path == "/end.html": return self.send_end() else: return BaseClass.send_head(self) def send_counter(self): self.send_response(200) self.send_header("Content-type","text/html") self.end_headers() text = CounterTemplate % count return StringIO.StringIO(text) def send_camera(self): self.send_response(200) self.send_header("Content-type","image/jpeg") self.end_headers() cam = Device() cam.saveSnapshot('C:\\Python21\\Tom\\camera.jpg') del cam return open('C:\\Python21\\Tom\\camera.jpg') def send_end(self): del self def test(): SimpleHTTPServer.test(MyRequestHandler) test() #import urllib def geturl(url): "Return contents and Mime type of a URL" f = urllib.urlopen(url) data = f.read() headers = f.info() f.close() if headers.has_key("content-type"): mimetype = headers["content-type"] else: # No content-type header -- guess type based on extension if url[-5:] == ".html": mimetype = "text/html" else: # Don't know -- worst-case assumption mimetype = "application/octet-stream" return (data, mimetype) #from sgmllib import SGMLParser #import string class LinkExtractor(SGMLParser): def __init__(self): self.links = [] SGMLParser.__init__ (self) def do_a(self, attributes): for (name, value) in attributes: if name == "href": value = cleanlink(value) if value: self.links.append(value) def getlinks(self): return self.links def cleanlink(link): i = string.find(link, '#') if i >= 0: link = link[:i] # Remove #fragment words = string.split(link) # Split in whitespace delimited words return string.join(words, "") # Join words without whitespace def getlinks(url): (data, mimetype) = geturl(url) if mimetype == "text/html": parser = LinkExtractor() parser.feed(data) parser.close() links = parser.getlinks() else: links = [] # Non-HTML data has no links return links #import urlparse def getfulllinks(url): links = getlinks(url) fulllinks = [] for link in links: full = urlparse.urljoin(url, link) fulllinks.append(full) return fulllinks def webchecker(root): todo = [root] done = [] refs = {root: [""]} while todo: url = todo[0] done.append(url) del todo[0] print "Checking", url try: newlinks = getfulllinks(url) except IOError, msg: print "*** Error for", url, "***", msg print "*** Referenced from:" for ref in refs[url]: print "\t" + ref continue for link in newlinks: if not refs.has_key(link): refs[link] = [url] else: refs[link].append(url) if (link[:len(root)] == root and link not in done and link not in todo): todo.append(link) #del urllib.FancyURLopener.http_error_default #import sys #webchecker(sys.argv[1])