I2P Proxy¶
The darc.proxy.i2p module contains the auxiliary functions
around managing and processing the I2P proxy.
-
darc.proxy.i2p._i2p_bootstrap()[source]¶ 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)[source]¶ Fetch
hosts.txt.- Parameters
link (darc.link.Link) – Link object to fetch for its
hosts.txt.- Returns
Content of the
hosts.txtfile.
-
darc.proxy.i2p.get_hosts(link)[source]¶ Read
hosts.txt.- Parameters
link (darc.link.Link) – Link object to read
hosts.txt.- Returns
- Return type
See also
darc.submit.submit_new_host()
-
darc.proxy.i2p.have_hosts(link)[source]¶ 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.i2p_bootstrap()[source]¶ 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)[source]¶ Read
hosts.txt.- Parameters
- Returns
List of links extracted.
- Return type
List[darc.link.Link]
-
darc.proxy.i2p.save_hosts(link, text)[source]¶ 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
See also
darc.save.sanitise()
-
darc.proxy.i2p.I2P_REQUESTS_PROXY: Dict[str, Any]¶ Proxy for I2P sessions.
See also
darc.requests.i2p_session()
-
darc.proxy.i2p.I2P_SELENIUM_PROXY: selenium.webdriver.Proxy¶ Proxy (
selenium.webdriver.Proxy) for I2P web drivers.See also
darc.selenium.i2p_driver()
The following constants are configuration through environment variables:
-
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_PROC: subprocess.Popen¶ I2P proxy process running in the background.