test networks
This commit is contained in:
@@ -24,6 +24,21 @@ struct PackageJson {
|
|||||||
|
|
||||||
const PDS_PACKAGE_URL: &str = "https://raw.githubusercontent.com/bluesky-social/pds/main/service/package.json";
|
const PDS_PACKAGE_URL: &str = "https://raw.githubusercontent.com/bluesky-social/pds/main/service/package.json";
|
||||||
|
|
||||||
|
const DEFAULT_NETWORKS: &str = r#"{
|
||||||
|
"bsky.social": {
|
||||||
|
"plc": "https://plc.directory",
|
||||||
|
"bsky": "https://public.api.bsky.app",
|
||||||
|
"web": "https://bsky.app",
|
||||||
|
"handleDomains": ["bsky.social"]
|
||||||
|
},
|
||||||
|
"syu.is": {
|
||||||
|
"plc": "https://plc.syu.is",
|
||||||
|
"bsky": "https://bsky.syu.is",
|
||||||
|
"web": "https://syu.is",
|
||||||
|
"handleDomains": ["syu.is", "syui.ai"]
|
||||||
|
}
|
||||||
|
}"#;
|
||||||
|
|
||||||
async fn get_latest_version(client: &reqwest::Client) -> String {
|
async fn get_latest_version(client: &reqwest::Client) -> String {
|
||||||
if let Ok(res) = client.get(PDS_PACKAGE_URL).send().await {
|
if let Ok(res) = client.get(PDS_PACKAGE_URL).send().await {
|
||||||
if res.status().is_success() {
|
if res.status().is_success() {
|
||||||
@@ -40,10 +55,26 @@ async fn get_latest_version(client: &reqwest::Client) -> String {
|
|||||||
"N/A".to_string()
|
"N/A".to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn load_networks(networks_path: &str) -> Result<HashMap<String, Network>> {
|
||||||
|
// 1. Try specified path
|
||||||
|
if let Ok(content) = std::fs::read_to_string(networks_path) {
|
||||||
|
return Ok(serde_json::from_str(&content)?);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Try ~/.config/ai.syui.log/networks.json
|
||||||
|
if let Some(config_dir) = dirs::config_dir() {
|
||||||
|
let config_path = config_dir.join("ai.syui.log").join("networks.json");
|
||||||
|
if let Ok(content) = std::fs::read_to_string(&config_path) {
|
||||||
|
return Ok(serde_json::from_str(&content)?);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Fall back to built-in default
|
||||||
|
Ok(serde_json::from_str(DEFAULT_NETWORKS)?)
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn check_versions(networks_path: &str) -> Result<()> {
|
pub async fn check_versions(networks_path: &str) -> Result<()> {
|
||||||
// Read networks.json
|
let networks = load_networks(networks_path)?;
|
||||||
let content = std::fs::read_to_string(networks_path)?;
|
|
||||||
let networks: HashMap<String, Network> = serde_json::from_str(&content)?;
|
|
||||||
|
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user