# Time-stamp: <2002-10-28 17:12:30 crabbkw> # Code and design by Casey Crabb (crabbkw@nafai.dyndns.org) # This code is licensed under the BSD license. # See the LICENSE file for details # # Copyright Casey Crabb (crabbkw@nafai.dyndns.org) July 2001 # import urllib import BaseHTTPServer import SimpleHTTPServer import os import string import sys from threading import * def callback(blocksxfered, blocksize, totalsize): print blocksxfered * blocksize,"of", totalsize class IMComHTTPServer(Thread): def __init__(self, path, port): Thread.__init__(self) if(path == ""): self.path = '.' else: self.path = path self.port = port #self.callback = callback self.done = 0 def go(self): handler = SimpleHTTPServer.SimpleHTTPRequestHandler os.chdir(self.path) server_address = ('', self.port) httpd = BaseHTTPServer.HTTPServer(server_address, handler) httpd.handle_request() def run(self): self.go() self.done = 1 # self.callback.handleTransferComplete() class FileGet(Thread): def __init__(self, jid, url, id, cbError, cbSuccess): Thread.__init__(self) self.jid = jid self.url = url self.id = id self.cbError = cbError self.cbSuccess = cbSuccess def run(self): try: os.mkdir(os.environ['HOME']+"/.imcom/files",0700) except: pass try: path = os.environ['HOME']+"/.imcom/files" + \ self.url[string.rfind(self.url,"/"):] urllib.urlretrieve(self.url, path) self.cbSuccess(self.jid,self.url,self.id) except: self.cbError(self.jid,self.url,self.id, sys.exc_info()[0], sys.exc_info()[1]) if __name__ == "__main__": s = IMComHTTPServer("/tmp",8000) s.start() #urllib.urlretrieve("http://137.112.201.243/games/divx_311alpha.exe", # "/tmp/test",callback)