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_PROCis 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.txtexists, return the data fromhosts.txt.path– relative path fromhosts.txtto root of data storagePATH_DB,<proxy>/<scheme>/<hostname>/hosts.txtdata– 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.txtalready exists.- Parameters
link (darc.link.Link) – Link object to check if
hosts.txtalready exists.- Returns
If
hosts.txtexists, 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_RETRYtimes 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.