summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorNamilskyy <alive6863@gmail.com>2025-12-03 12:19:37 +0300
committerNamilskyy <alive6863@gmail.com>2025-12-03 12:19:37 +0300
commit1542713fef2e7a2241c74203873b822a17f6165e (patch)
treeb0e88d18bb2a952afbad1b83ee37a45b7dc83e6b /src/net
parent28f2822aa43096c4c6dfc675bfa20a3291730a87 (diff)
Starget rewritting i2p features of package manager and writing documentation
Diffstat (limited to 'src/net')
-rw-r--r--src/net/emissary_i2p.rs60
-rw-r--r--src/net/mod.rs4
2 files changed, 64 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
diff --git a/src/net/mod.rs b/src/net/mod.rs
index 1a04189..20a050e 100644
--- a/src/net/mod.rs
+++ b/src/net/mod.rs
@@ -1,2 +1,6 @@
pub mod http_package;
pub mod i2p_package;
+// unimplemented
+// now i rewritting with emissary, SAMv3 not for download files btw
+// but yosemite one of docemented lib for i2p (SAMv3 only), it-s better i try to use it
+// pub mod emissary_i2p; \ No newline at end of file