From 1542713fef2e7a2241c74203873b822a17f6165e Mon Sep 17 00:00:00 2001 From: Namilskyy Date: Wed, 3 Dec 2025 12:19:37 +0300 Subject: Starget rewritting i2p features of package manager and writing documentation --- src/net/emissary_i2p.rs | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/net/emissary_i2p.rs (limited to 'src/net/emissary_i2p.rs') 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>, +} + +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> { + 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 -- cgit v1.2.3