mirror of
https://github.com/i2p/i2p.i2p.git
synced 2026-05-14 01:05:12 +00:00
69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
#! /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()
|