diff options
| author | Namilskyy <alive6863@gmail.com> | 2025-12-03 12:19:37 +0300 |
|---|---|---|
| committer | Namilskyy <alive6863@gmail.com> | 2025-12-03 12:19:37 +0300 |
| commit | 1542713fef2e7a2241c74203873b822a17f6165e (patch) | |
| tree | b0e88d18bb2a952afbad1b83ee37a45b7dc83e6b /src/net/emissary_i2p.rs | |
| parent | 28f2822aa43096c4c6dfc675bfa20a3291730a87 (diff) | |
Starget rewritting i2p features of package manager and writing documentation
Diffstat (limited to 'src/net/emissary_i2p.rs')
| -rw-r--r-- | src/net/emissary_i2p.rs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/net/emissary_i2p.rs b/src/net/emissary_i2p.rs new file mode 100644 index 0000000..b9e5967 --- /dev/null +++ b/src/net/emissary_i2p.rs @@ -0,0 +1,60 @@ +use emissary_core::{ + I2cpConfig, + Ntcp2Config +}; + + +use crate::pkgtoolkit::pkgtools::Package; +use crate::Config; + +use indicatif::{ProgressBar, ProgressStyle}; +use std::{collections::HashMap, path::Path}; +use tokio::io::{AsyncReadExt, AsyncWriteExt, BufReader}; + +pub struct I2PPackage { + pub config: Config, + pub i2p_config: emissary_core::Config, + pub index_packages: Option<HashMap<String, Package>>, +} + +impl I2PPackage { + pub fn new(cfg: Config, i2p_cfg: emissary_core::Config) -> Self { + I2PPackage { + config: cfg, + i2p_config: i2p_cfg, + index_packages: None, + } + } + + pub async fn fetch_index(&mut self) -> Result<(), Box<dyn std::error::Error>> { + let cfg = Config::parse()?; + + let repo_url = &self.config.repo.repo_url; + let cache_dir = &self.config.paths.cache_dir; + + let utl = url::Url::parse(repo_url).unwrap(); + let host = utl.host_str().ok_or("No host in URL")?; + + let request_path = utl.path(); + let request_path = if request_path.ends_with(".tar.gz") { + request_path.to_string() + } else { + format!("{}/INDEX.tar.gz", request_path.trim_end_matches('/')) + }; + + + let StorageBundle { + ntcp2_iv, + ntcp2_key, + profiles, + router_info, + routers, + signing_key, + static_key, + ssu2_intro_key, + ssu2_static_key, + } = storage.load().await; + + Ok(()) + } +}
\ No newline at end of file |
