MCPcopy Create free account
hub / github.com/Licoy/fetch-github-hosts / server_fetch_hosts

Function server_fetch_hosts

src-tauri/src/services.rs:158–177  ·  view source on GitHub ↗

Server-side: resolve DNS for GitHub domains, save to files

()

Source from the content-addressed store, hash-verified

156
157/// Server-side: resolve DNS for GitHub domains, save to files
158pub async fn server_fetch_hosts() -> Result<(), String> {
159 let domains = dns::get_github_domains();
160 let hosts = dns::fetch_hosts(&domains);
161 let now = chrono::Local::now().format("%Y-%m-%d %H:%M:%S").to_string();
162
163 let hosts_json = serde_json::to_string(&hosts).map_err(|e| e.to_string())?;
164 let hosts_text = dns::format_hosts_text(&hosts, &now);
165
166 let exe_dir = std::env::current_exe()
167 .ok()
168 .and_then(|p| p.parent().map(|p| p.to_path_buf()))
169 .unwrap_or_else(|| std::path::PathBuf::from("."));
170
171 std::fs::write(exe_dir.join("hosts.json"), &hosts_json)
172 .map_err(|e| format!("写入hosts.json失败: {}", e))?;
173 std::fs::write(exe_dir.join("hosts.txt"), &hosts_text)
174 .map_err(|e| format!("写入hosts.txt失败: {}", e))?;
175
176 Ok(())
177}
178
179/// Simple HTTP server for serving hosts files (async with graceful shutdown)
180#[cfg(feature = "gui")]

Callers 2

start_server_taskFunction · 0.85
run_server_cliFunction · 0.85

Calls 3

get_github_domainsFunction · 0.85
fetch_hostsFunction · 0.85
format_hosts_textFunction · 0.85

Tested by

no test coverage detected