]> Untitled Git - lemmy.git/commitdiff
Thumbnail generation for iframely incompatible sources
authorAndre Vallestero <andrevallestero@gmail.com>
Thu, 7 May 2020 00:40:36 +0000 (20:40 -0400)
committerAndre Vallestero <andrevallestero@gmail.com>
Thu, 7 May 2020 00:40:36 +0000 (20:40 -0400)
server/src/lib.rs

index 79a1437e7bb91813fa61af69ff2ef5f37c540b65..1c24f0b4c89a6652332c68edba90edba55bc4bec 100644 (file)
@@ -185,6 +185,7 @@ pub fn fetch_pictshare(image_url: &str) -> Result<PictshareResponse, failure::Er
     utf8_percent_encode(image_url, NON_ALPHANUMERIC)
   );
   let text = isahc::get(&fetch_url)?.text()?;
+  println!("--------------{}", text);
   let res: PictshareResponse = serde_json::from_str(&text)?;
   Ok(res)
 }
@@ -198,8 +199,8 @@ fn fetch_iframely_and_pictshare_data(
   Option<String>,
 ) {
   // Fetch iframely data
-  let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match url {
-    Some(url) => match fetch_iframely(&url) {
+  let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match &url {
+    Some(url) => match fetch_iframely(url) {
       Ok(res) => (res.title, res.description, res.thumbnail_url, res.html),
       Err(e) => {
         error!("iframely err: {}", e);
@@ -218,7 +219,22 @@ fn fetch_iframely_and_pictshare_data(
         None
       }
     },
-    None => None,
+
+    None => match url {
+      Some(url) => match fetch_pictshare(&url) {
+        // Try to generate a small thumbnail if iframely is not supported
+        Ok(res) => {
+          let mut split_url: Vec<&str> = res.url.split("/").collect();
+          split_url.insert(split_url.len() - 1, "192");
+          Some(split_url.join("/"))
+        }
+        Err(e) => {
+          error!("pictshare err: {}", e);
+          None
+        }
+      },
+      None => None,
+    },
   };
 
   (