small bsky embedder @ boobsky.app - kinda mid but works - mirror of git.fomx.gay/rooot/embedthing

fix: bluesky embedding

Signed-off-by: rooot <hey@rooot.gay>

+29 -20
+18 -18
Cargo.lock
··· 110 110 111 111 [[package]] 112 112 name = "atrium-api" 113 - version = "0.24.6" 113 + version = "0.24.7" 114 114 source = "registry+https://github.com/rust-lang/crates.io-index" 115 - checksum = "ccc91b45b9655a4f358e44456e8c8b5adcb34ceb97f4c38495b329b33215a186" 115 + checksum = "ee68ddf7cde9eb121eed3a28b138f6a9b4c4a90ab0c5c2e38bc2817af0b06da3" 116 116 dependencies = [ 117 117 "atrium-xrpc", 118 118 "chrono", ··· 130 130 131 131 [[package]] 132 132 name = "atrium-xrpc" 133 - version = "0.11.5" 133 + version = "0.11.6" 134 134 source = "registry+https://github.com/rust-lang/crates.io-index" 135 - checksum = "25631899c7bfe43d0dfbd91a516f556a51638ee128d7e849e96c3fe2bf90a51b" 135 + checksum = "737eea1de2eb174bbfe720619cb25a22c30b9640ae0d3b78386cedf007712963" 136 136 dependencies = [ 137 137 "http 1.1.0", 138 138 "serde", ··· 144 144 145 145 [[package]] 146 146 name = "atrium-xrpc-client" 147 - version = "0.5.8" 147 + version = "0.5.9" 148 148 source = "registry+https://github.com/rust-lang/crates.io-index" 149 - checksum = "f6d37f66bce4392d05eaae71fc09be389fa86a131d8619c8e1dee41c979a3214" 149 + checksum = "bccdf321239d0c634f012720f4f35f34cb8b79ebcde04820ffb3a4bb38ad8cf1" 150 150 dependencies = [ 151 151 "atrium-xrpc", 152 152 "reqwest", ··· 199 199 200 200 [[package]] 201 201 name = "bsky-sdk" 202 - version = "0.1.11" 202 + version = "0.1.12" 203 203 source = "registry+https://github.com/rust-lang/crates.io-index" 204 - checksum = "504e33edec7ac50afd7d4821f79a00ed9104443a56d56c6152a4424952ea21d8" 204 + checksum = "791b6ad2177fbed91c56ed6f8be24300a8fa8bd05e5d10eb66e56fbe62fa276b" 205 205 dependencies = [ 206 206 "anyhow", 207 207 "atrium-api", ··· 776 776 777 777 [[package]] 778 778 name = "hyper-util" 779 - version = "0.1.9" 779 + version = "0.1.10" 780 780 source = "registry+https://github.com/rust-lang/crates.io-index" 781 - checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" 781 + checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" 782 782 dependencies = [ 783 783 "bytes", 784 784 "futures-channel", ··· 1380 1380 1381 1381 [[package]] 1382 1382 name = "reqwest" 1383 - version = "0.12.8" 1383 + version = "0.12.9" 1384 1384 source = "registry+https://github.com/rust-lang/crates.io-index" 1385 - checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" 1385 + checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" 1386 1386 dependencies = [ 1387 1387 "async-compression", 1388 1388 "base64", ··· 1508 1508 1509 1509 [[package]] 1510 1510 name = "rustix" 1511 - version = "0.38.37" 1511 + version = "0.38.38" 1512 1512 source = "registry+https://github.com/rust-lang/crates.io-index" 1513 - checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 1513 + checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" 1514 1514 dependencies = [ 1515 1515 "bitflags", 1516 1516 "errno", ··· 1592 1592 1593 1593 [[package]] 1594 1594 name = "serde" 1595 - version = "1.0.213" 1595 + version = "1.0.214" 1596 1596 source = "registry+https://github.com/rust-lang/crates.io-index" 1597 - checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" 1597 + checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" 1598 1598 dependencies = [ 1599 1599 "serde_derive", 1600 1600 ] ··· 1610 1610 1611 1611 [[package]] 1612 1612 name = "serde_derive" 1613 - version = "1.0.213" 1613 + version = "1.0.214" 1614 1614 source = "registry+https://github.com/rust-lang/crates.io-index" 1615 - checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" 1615 + checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" 1616 1616 dependencies = [ 1617 1617 "proc-macro2", 1618 1618 "quote",
+6 -2
src/bsky.rs
··· 147 147 let mut embed_embeds = Vec::new(); 148 148 for blob in blobs { 149 149 println!("blob: {:?}", blob); 150 - // todo: get blob url? - might have to cook our own "API" for this as bsky's require auth 151 - // for images we might get away with a simple CDN url, although those have bad quality 150 + let url = format!("https://bsky.social/xrpc/com.atproto.sync.getBlob?did={}&cid={}", did, blob.r#ref.0); 151 + if blob.mime_type.starts_with("image/") { 152 + embed_embeds.push(EmbedEmbed::Image(url)); 153 + } else { 154 + embed_embeds.push(EmbedEmbed::Video(url)); 155 + } 152 156 } 153 157 154 158 println!("embed embeds aaa: {:?}", &embed_embeds);
+5
src/meow.rs
··· 3 3 use rocket::{response, Request, Response}; 4 4 use serde::ser::SerializeMap; 5 5 use serde::Serialize; 6 + use std::str::FromStr; 6 7 use thiserror::Error; 7 8 8 9 #[derive(Debug)] ··· 58 59 r#"<meta property="og:video:secure_url" content="{}">"#, 59 60 url 60 61 )); 62 + html.push('\n'); 63 + // THIS IS NEEDED FOR DISCORD !! 64 + // todo: maybe don't hardcode video/mp4 as content type for all videos? 65 + html.push_str(r#"<meta property="og:video:type" content="video/mp4">"#) 61 66 } 62 67 } 63 68 }