[WIP] A (somewhat barebones) atproto app for creating custom sites without hosting!

upload: apply (some) reccomendations from `cargo clippy`

vielle.dev ebc5618d f58a29eb

verified
Changed files
+9 -14
upload
+5 -10
upload/src/main.rs
··· 50 51 // get local site info 52 let local_sitemap = sitemap::local_sitemap(config.dir, config.all_files, config.git_ignore) 53 - .or_else(|err| { 54 println!("Sitemap Error: {}", err); 55 - Err(()) 56 })?; 57 58 // create session ··· 93 .xrpc(agent.endpoint().await) 94 .send::<ListRecords>(&req) 95 .await 96 - .or_else(|err| { 97 println!("Error fetching records: {err}"); 98 - Err(()) 99 })? 100 .into_output() 101 - .or_else(|err| { 102 println!("Error fetching records: {err}"); 103 - Err(()) 104 })?; 105 106 for record in res.records { ··· 146 panic!("Impossible state") 147 } 148 }; 149 - let blob = fs::read(blob).or_else(|err| { 150 println!("FS error: {err}"); 151 - Err(()) 152 })?; 153 let res = agent 154 .upload_blob(blob, v.mime_type.clone().into()) 155 .await 156 - .or_else(|err| { 157 println!("Blob upload error: {err}"); 158 - Err(()) 159 })?; 160 new_sitemap.insert( 161 k,
··· 50 51 // get local site info 52 let local_sitemap = sitemap::local_sitemap(config.dir, config.all_files, config.git_ignore) 53 + .map_err(|err| { 54 println!("Sitemap Error: {}", err); 55 })?; 56 57 // create session ··· 92 .xrpc(agent.endpoint().await) 93 .send::<ListRecords>(&req) 94 .await 95 + .map_err(|err| { 96 println!("Error fetching records: {err}"); 97 })? 98 .into_output() 99 + .map_err(|err| { 100 println!("Error fetching records: {err}"); 101 })?; 102 103 for record in res.records { ··· 143 panic!("Impossible state") 144 } 145 }; 146 + let blob = fs::read(blob).map_err(|err| { 147 println!("FS error: {err}"); 148 })?; 149 let res = agent 150 .upload_blob(blob, v.mime_type.clone().into()) 151 .await 152 + .map_err(|err| { 153 println!("Blob upload error: {err}"); 154 })?; 155 new_sitemap.insert( 156 k,
+2 -2
upload/src/sitemap.rs
··· 56 } 57 } 58 59 - pub fn local_sitemap<'a>( 60 dir: PathBuf, 61 include_dotfiles: bool, 62 use_gitignore: bool, ··· 87 // etc 88 let key = file.path().canonicalize()?; 89 let key = key.strip_prefix(&prefix)?; 90 - let key = String::from(key.to_str().ok_or_else(|| SitemapErr::NotUTF8Path)?); 91 92 let mime = mime_guess::from_path(&key); 93 let mime = mime.first().unwrap_or(mime::APPLICATION_OCTET_STREAM);
··· 56 } 57 } 58 59 + pub fn local_sitemap( 60 dir: PathBuf, 61 include_dotfiles: bool, 62 use_gitignore: bool, ··· 87 // etc 88 let key = file.path().canonicalize()?; 89 let key = key.strip_prefix(&prefix)?; 90 + let key = String::from(key.to_str().ok_or(SitemapErr::NotUTF8Path)?); 91 92 let mime = mime_guess::from_path(&key); 93 let mime = mime.first().unwrap_or(mime::APPLICATION_OCTET_STREAM);
+2 -2
upload/src/utils.rs
··· 32 .replace(":3D", "=") 33 .replace(":40", "@"); 34 35 - return Some(res); 36 } 37 38 pub fn url_to_rkey(url: String) -> Option<String> { ··· 60 .replace("=", ":3D") 61 .replace("@", ":40"); 62 63 - return Some(res); 64 }
··· 32 .replace(":3D", "=") 33 .replace(":40", "@"); 34 35 + Some(res) 36 } 37 38 pub fn url_to_rkey(url: String) -> Option<String> { ··· 60 .replace("=", ":3D") 61 .replace("@", ":40"); 62 63 + Some(res) 64 }