forked from I2P_Developers/i2p.i2p
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
|
# -------------------------------------------------------------
|
|
# eep.py: I2P Project -- Eeproxy Python API
|
|
# -------------------------------------------------------------
|
|
|
|
"""
|
|
Eeproxy Python API
|
|
"""
|
|
|
|
import urllib2
|
|
|
|
eepaddr = '127.0.0.1:4444' # Default port for eeproxy
|
|
|
|
# --------------------------------------------------
|
|
# Functions
|
|
# --------------------------------------------------
|
|
|
|
def urlopen(url, eepaddr=eepaddr):
|
|
"""Like urllib2.urlopen(url), but only works for eep-sites.
|
|
Example: f = urlopen('http://duck.i2p/index.html')"""
|
|
if url.find('http://') != 0: url = 'http://' + url
|
|
|
|
# Handle I2P Destination
|
|
if len(url) >= 256:
|
|
suffix = url[len('http://'):]
|
|
if suffix[:4] != 'i2p/': url = 'http://i2p/' + suffix
|
|
|
|
# Add trailing slash
|
|
if url.find('/', len('http://')) < 0: url = url + '/'
|
|
|
|
# Remove http:// and trailing slash from eepaddr.
|
|
if eepaddr.find('http://') == 0: eepaddr = eepaddr[len('http://'):]
|
|
eepaddr = eepaddr.rstrip('/')
|
|
|
|
proxy = urllib2.ProxyHandler( \
|
|
{'http': 'http://anonymous:passwd@' + eepaddr})
|
|
opener = urllib2.build_opener(proxy, \
|
|
urllib2.HTTPBasicAuthHandler(), urllib2.HTTPHandler)
|
|
return opener.open(url)
|
|
|
|
def urlget(url, eepaddr=eepaddr):
|
|
"""Get contents of an eepsite.
|
|
Example: urlget('http://duck.i2p/')."""
|
|
f = urlopen(url, eepaddr=eepaddr)
|
|
ans = f.read()
|
|
f.close()
|
|
return ans
|