[Wikirover-commits] CVS: wikiserver web-server.py,1.39,1.40
Brought to you by:
medericboquien,
ryo_saeba
From: Luc V. O. <lo...@us...> - 2004-10-24 23:20:18
|
Update of /cvsroot/wikirover/wikiserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23864 Modified Files: web-server.py Log Message: cleanup, add cp notice Index: web-server.py =================================================================== RCS file: /cvsroot/wikirover/wikiserver/web-server.py,v retrieving revision 1.39 retrieving revision 1.40 diff -u -p -d -r1.39 -r1.40 --- web-server.py 23 Oct 2004 22:38:48 -0000 1.39 +++ web-server.py 24 Oct 2004 23:19:57 -0000 1.40 @@ -1,9 +1,12 @@ +# Copyright 2004 by Phillipe Elie, Médéric Boquien, Nicolas Laurent & Luc Van Oostenryck +# Licence: GPL + """Static Wiki HTTP Server. -This module builds on BaseHTTPServer will server the static wikipedia articles from a dvd. +This module builds on BaseHTTPServer will serve a static version of +wikipedia articles from a dvd. """ -__version__ = "0.6" __all__ = ["StaticWikiRequestHandler"] import os, posixpath, sys @@ -39,32 +42,12 @@ def get_search(lang, query): class StaticWikiRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): - """Simple HTTP request handler with GET and HEAD commands. - - This serves files from the current directory and any of its - subdirectories. It assumes that all files are plain text files - unless they have the extension ".html" in which case it assumes - they are HTML files. - - The GET and HEAD requests are identical except that the HEAD - request omits the actual contents of the file. - - """ - - server_version = "StaticWikiHttpServer/" + __version__ - -## def __init__(self, *args, **kwargs): -## print "#init StaticWikiRequestHandler" -## BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs) - def do_GET(self): - """Serve a GET request.""" t = self.send_head() if t: self.wfile.write(t) def do_HEAD(self): - """Serve a HEAD request.""" self.send_head() def get_random_title(self, lang): @@ -195,16 +178,6 @@ class StaticWikiRequestHandler(BaseHTTPS self.end_headers() def send_head(self): - """Common code for GET and HEAD commands. - - This sends the response code and MIME headers. - - Return value is either a file object (which has to be copied - to the outputfile by the caller unless the command was HEAD, - and must be closed by the caller under all circumstances), or - None, in which case the caller has nothing further to do. - - """ print self.path (lang_code, path, type, title) = self.translate_path(self.path) @@ -289,13 +262,6 @@ class StaticWikiRequestHandler(BaseHTTPS return t def translate_path(self, path): - """Translate a /-separated PATH to the local filename syntax. - - Components that mean special things to the local file system - (e.g. drive or directory names) are ignored. (XXX They should - probably be diagnosed.) - - """ l = path.split('/', 2) print "path => " + str(l) @@ -336,53 +302,16 @@ class StaticWikiRequestHandler(BaseHTTPS ##print path return (lang_code, path, type, titl) - def copyfile(self, source, outputfile): - """Copy all data between two file objects. - - The SOURCE argument is a file object open for reading - (or anything with a read() method) and the DESTINATION - argument is a file object open for writing (or - anything with a write() method). - - The only reason for overriding this would be to change - the block size or perhaps to replace newlines by CRLF - -- note however that this the default server uses this - to copy binary data as well. - - """ - shutil.copyfileobj(source, outputfile) +## def copyfile(self, source, outputfile): +## shutil.copyfileobj(source, outputfile) def guess_type(self, path): - """Guess the type of a file. - - Argument is a PATH (a filename). - - Return value is a string of the form type/subtype, - usable for a MIME Content-type header. - - The default implementation looks the file's extension - up in the table self.extensions_map, using text/plain - as a default; however it would be permissible (if - slow) to look inside the data to make a better guess. - - """ - base, ext = posixpath.splitext(path) - if ext in self.extensions_map: - return self.extensions_map[ext] ext = ext.lower() - if ext in self.extensions_map: + if ext in self.mimetypes.types_map: return self.extensions_map[ext] else: - return self.extensions_map[''] - - extensions_map = mimetypes.types_map.copy() - extensions_map.update({ - '': 'application/octet-stream', # Default - '.py': 'text/plain', - '.c': 'text/plain', - '.h': 'text/plain', - }) + return 'application/octet-stream' def run_server(conf) : @@ -449,6 +378,8 @@ if __name__ == "__main__": ##else: ## print "Database index [%s] is missing" % dbIndexFile + ## FIXME: test the presence of each index files ? + global conf conf = ConfigSingleton.getInstance() |