mirror of
https://github.com/i2p/i2p.i2p.git
synced 2026-05-14 03:15:20 +00:00
Update Python I2P version 0.91 by sunshine
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
"""
|
||||
Emulation of Python SimpleHTTPServer module using I2P sockets.
|
||||
|
||||
The Python module is described at
|
||||
http://www.python.org/doc/current/lib/module-SimpleHTTPServer.html
|
||||
|
||||
To get a server going, use:
|
||||
|
||||
>>> from i2p import SimpleHTTPServer
|
||||
>>> SimpleHTTPServer.test().
|
||||
|
||||
Consult the documentation for function test() to change basic
|
||||
server settings, such as the session name.
|
||||
|
||||
A fully customizable example:
|
||||
|
||||
>>> from i2p import BaseHTTPServer, SimpleHTTPServer
|
||||
>>> session = "mytestxxx.i2p" # SAM session name
|
||||
>>> class MyServer(BaseHTTPServer.HTTPServer): pass
|
||||
>>> class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): pass
|
||||
>>> httpd = MyServer(session, MyRequestHandler)
|
||||
>>> httpd.socket.dest
|
||||
(Base64 Destination of server)
|
||||
>>> httpd.serve_forever()
|
||||
|
||||
"""
|
||||
|
||||
# By aum.
|
||||
|
||||
# Hack to keep Python from importing from current directory:
|
||||
# Use pylib package, then use = signs instead of from x import y.
|
||||
import pylib
|
||||
SimpleHTTPServer = pylib.SimpleHTTPServer
|
||||
|
||||
import sys
|
||||
import i2p.BaseHTTPServer
|
||||
|
||||
__version__ = "0.1.0"
|
||||
|
||||
__all__ = ["SimpleHTTPRequestHandler", "test"]
|
||||
|
||||
HTTPServer = i2p.BaseHTTPServer.HTTPServer
|
||||
class SimpleHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
|
||||
"""
|
||||
Same interface as Python class
|
||||
SimpleHTTPServer.SimpleHTTPRequestHandler.
|
||||
"""
|
||||
|
||||
def test(HandlerClass = SimpleHTTPRequestHandler,
|
||||
ServerClass = i2p.BaseHTTPServer.HTTPServer,
|
||||
session = "mytestxxx.i2p"):
|
||||
"""
|
||||
Test the HTTP simple request handler class.
|
||||
|
||||
This runs an I2P TCP server under SAM session 'session'.
|
||||
If a single command line argument is given, the argument is used
|
||||
instead as the SAM session name.
|
||||
"""
|
||||
if sys.argv[1:] and __name__ == '__main__':
|
||||
session = sys.argv[1]
|
||||
|
||||
i2p.BaseHTTPServer.test(HandlerClass, ServerClass,
|
||||
session=session)
|
||||
|
||||
if __name__ == '__main__':
|
||||
test()
|
||||
Reference in New Issue
Block a user