I2P Proxy¶
The darc.proxy.i2p
module contains the auxiliary functions
around managing and processing the I2P proxy.
-
darc.proxy.i2p.
_i2p_bootstrap
()¶ I2P bootstrap.
The bootstrap arguments are defined as
_I2P_ARGS
.- Raises
subprocess.CalledProcessError – If the return code of
_I2P_PROC
is non-zero.
-
darc.proxy.i2p.
fetch_hosts
(link)¶ Fetch
hosts.txt
.- Parameters
link (darc.link.Link) – Link object to fetch for its
hosts.txt
.
-
darc.proxy.i2p.
get_hosts
(link)¶ Read
hosts.txt
.- Parameters
link (darc.link.Link) – Link object to read
hosts.txt
.- Returns
If
hosts.txt
exists, return the data fromhosts.txt
.path
– relative path fromhosts.txt
to root of data storagePATH_DB
,<proxy>/<scheme>/<hostname>/hosts.txt
data
– base64 encoded content ofhosts.txt
If not, return
None
.
- Return type
Optional[Dict[str, Union[str, ByteString]]]
-
darc.proxy.i2p.
has_hosts
(link)¶ Check if
hosts.txt
already exists.- Parameters
link (darc.link.Link) – Link object to check if
hosts.txt
already exists.- Returns
If
hosts.txt
exists, return the path tohosts.txt
, i.e.<root>/<proxy>/<scheme>/<hostname>/hosts.txt
.If not, return
None
.
- Return type
Optional[str]
-
darc.proxy.i2p.
has_i2p
(link_pool)¶ Check if contain I2P links.
- Parameters
link_pool (Set[str]) – Link pool to check.
- Returns
If the link pool contains I2P links.
- Return type
bool
-
darc.proxy.i2p.
i2p_bootstrap
()¶ Bootstrap wrapper for I2P.
The function will bootstrap the I2P proxy. It will retry for
I2P_RETRY
times in case of failure.Also, it will NOT re-bootstrap the proxy as is guaranteed by
_I2P_BS_FLAG
.- Warns
I2PBootstrapFailed – If failed to bootstrap I2P proxy.
- Raises
UnsupportedPlatform – If the system is not supported, i.e. not macOS or Linux.
-
darc.proxy.i2p.
read_hosts
(text, check=False)¶ Read
hosts.txt
.- Parameters
text (Iterable[str]) – Content of
hosts.txt
.check (bool) – If perform checks on extracted links, default to
CHECK
.
- Returns
List of links extracted.
- Return type
Iterable[str]
-
darc.proxy.i2p.
save_hosts
(link, text)¶ Save
hosts.txt
.- Parameters
link (darc.link.Link) – Link object of
hosts.txt
.text (str) – Content of
hosts.txt
.
- Returns
Saved path to
hosts.txt
, i.e.<root>/<proxy>/<scheme>/<hostname>/hosts.txt
.- Return type
str
See also
-
darc.proxy.i2p.
I2P_REQUESTS_PROXY
: Dict[str, Any]¶ Proxy for I2P sessions.
See also
-
darc.proxy.i2p.
I2P_SELENIUM_PROXY
: selenium.webdriver.Proxy¶ Proxy (
selenium.webdriver.Proxy
) for I2P web drivers.See also
The following constants are configuration through environment variables:
-
darc.proxy.i2p.
I2P_RETRY
: int¶ Retry times for I2P bootstrap when failure.
- Default
3
- Environ
-
darc.proxy.i2p.
BS_WAIT
: float¶ Time after which the attempt to start I2P is aborted.
- Default
90
- Environ
I2P_WAIT
Note
If not provided, there will be NO timeouts.
-
darc.proxy.i2p.
I2P_ARGS
: List[str]¶ I2P bootstrap arguments for
i2prouter start
.If provided, it should be parsed as command line arguments (c.f.
shlex.split
).- Default
''
- Environ
Note
The command will be run as
DARC_USER
, if current user (c.f.getpass.getuser()
) is root.
The following constants are defined for internal usage:
-
darc.proxy.i2p.
_I2P_BS_FLAG
: bool¶ If the I2P proxy is bootstrapped.
-
darc.proxy.i2p.
_I2P_PROC
: subprocess.Popen¶ I2P proxy process running in the background.
-
darc.proxy.i2p.
_I2P_ARGS
: List[str]¶ I2P proxy bootstrap arguments.