about summary refs log tree commit diff
path: root/src/bin/kittybox_bulk_import.rs
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2022-05-24 17:18:30 +0300
committerVika <vika@fireburn.ru>2022-05-24 17:18:30 +0300
commit5610a5f0bf1a9df02bd3d5b55e2cdebef2440360 (patch)
tree8394bcf1dcc204043d7adeb8dde2e2746977606e /src/bin/kittybox_bulk_import.rs
parent2f93873122b47e42f7ee1c38f1f04d052a63599c (diff)
flake.nix: reorganize
 - Kittybox's source code is moved to a subfolder
   - This improves build caching by Nix since it doesn't take changes
     to other files into account
 - Package and test definitions were spun into separate files
   - This makes my flake.nix much easier to navigate
   - This also makes it somewhat possible to use without flakes (but
     it is still not easy, so use flakes!)
 - Some attributes were moved in compliance with Nix 2.8's changes to
   flake schema
Diffstat (limited to 'src/bin/kittybox_bulk_import.rs')
-rw-r--r--src/bin/kittybox_bulk_import.rs66
1 files changed, 0 insertions, 66 deletions
diff --git a/src/bin/kittybox_bulk_import.rs b/src/bin/kittybox_bulk_import.rs
deleted file mode 100644
index 7e1f6af..0000000
--- a/src/bin/kittybox_bulk_import.rs
+++ /dev/null
@@ -1,66 +0,0 @@
-use anyhow::{anyhow, bail, Context, Result};
-use std::fs::File;
-use std::io;
-
-#[async_std::main]
-async fn main() -> Result<()> {
-    let args = std::env::args().collect::<Vec<String>>();
-    if args.iter().skip(1).any(|s| s == "--help") {
-        println!("Usage: {} <url> [file]", args[0]);
-        println!("\nIf launched with no arguments, reads from stdin.");
-        println!(
-            "\nUse KITTYBOX_AUTH_TOKEN environment variable to authorize to the Micropub endpoint."
-        );
-        std::process::exit(0);
-    }
-
-    let token = std::env::var("KITTYBOX_AUTH_TOKEN")
-        .map_err(|_| anyhow!("No auth token found! Use KITTYBOX_AUTH_TOKEN env variable."))?;
-    let data: Vec<serde_json::Value> = (if args.len() == 2 || (args.len() == 3 && args[2] == "-") {
-        serde_json::from_reader(io::stdin())
-    } else if args.len() == 3 {
-        serde_json::from_reader(File::open(&args[2]).with_context(|| "Error opening input file")?)
-    } else {
-        bail!("See `{} --help` for usage.", args[0]);
-    })
-    .with_context(|| "Error while loading the input file")?;
-
-    let url = surf::Url::parse(&args[1])?;
-    let client = surf::Client::new();
-
-    let iter = data.into_iter();
-
-    for post in iter {
-        println!(
-            "Processing {}...",
-            post["properties"]["url"][0]
-                .as_str()
-                .or_else(|| post["properties"]["published"][0]
-                    .as_str()
-                    .or_else(|| post["properties"]["name"][0]
-                        .as_str()
-                        .or(Some("<unidentified post>"))))
-                .unwrap()
-        );
-        match client
-            .post(&url)
-            .body(surf::http::Body::from_string(serde_json::to_string(&post)?))
-            .header("Content-Type", "application/json")
-            .header("Authorization", format!("Bearer {}", &token))
-            .send()
-            .await
-        {
-            Ok(mut response) => {
-                if response.status() == 201 || response.status() == 202 {
-                    println!("Posted at {}", response.header("location").unwrap().last());
-                } else {
-                    println!("Error: {:?}", response.body_string().await);
-                }
-            }
-            Err(err) => {
-                println!("{}", err);
-            }
-        }
-    }
-    Ok(())
-}