File: IHTTPServer.py

package info (click to toggle)
imcom 0.93-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,572 kB
  • ctags: 1,261
  • sloc: python: 5,269; perl: 99; makefile: 66; sh: 7
file content (72 lines) | stat: -rw-r--r-- 2,115 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Time-stamp: <2001-07-16 15:53:10 Administrator>

# Code and design by Casey Crabb (crabbkw@rose-hulman.edu)
# This code is licensed under the BSD license.
# See the LICENSE file for details
#
# Copyright Casey Crabb (crabbkw@rose-hulman.edu) 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, listener):
        Thread.__init__(self)
        self.jid = jid
        self.url = url
        self.id = id
        self.listener = listener

    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.listener.handleFileReceived(self.jid,self.url,self.id)
        except:
            self.listener.handleFileErrorReceived(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)