Reduce deps
This commit is contained in:
parent
dbfdd010a6
commit
a61d812d85
498
Cargo.lock
generated
498
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
15
Cargo.toml
15
Cargo.toml
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "pict-rs-aggregator"
|
name = "pict-rs-aggregator"
|
||||||
version = "0.1.8"
|
version = "0.1.9"
|
||||||
authors = ["asonix <asonix@asonix.dog>"]
|
authors = ["asonix <asonix@asonix.dog>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
build = "src/build.rs"
|
build = "src/build.rs"
|
||||||
|
@ -8,23 +8,22 @@ build = "src/build.rs"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = { version = "4.0.0-beta.8", default-features = false, features = ["compress-brotli", "compress-gzip"] }
|
actix-rt = "2.2"
|
||||||
anyhow = "1.0"
|
actix-web = { version = "4.0.0-beta.8", default-features = false }
|
||||||
awc = { version = "3.0.0-beta.7", default-features = false, features = ["rustls", "compress-brotli", "compress-gzip"] }
|
awc = { version = "3.0.0-beta.7", default-features = false }
|
||||||
bcrypt = "0.10"
|
bcrypt = "0.10"
|
||||||
env_logger = "0.8.2"
|
env_logger = "0.9.0"
|
||||||
futures = "0.3"
|
|
||||||
mime = "0.3"
|
mime = "0.3"
|
||||||
minify-html = "0.4.0"
|
minify-html = "0.6.0"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
sled = { version = "0.34.6", features = ["zstd"] }
|
sled = { version = "0.34.6", features = ["zstd"] }
|
||||||
structopt = "0.3.21"
|
structopt = "0.3.21"
|
||||||
|
tokio = { version = "1", default-features = false, features = ["sync"] }
|
||||||
thiserror = "1.0"
|
thiserror = "1.0"
|
||||||
url = { version = "2.2", features = ["serde"] }
|
url = { version = "2.2", features = ["serde"] }
|
||||||
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
anyhow = "1.0"
|
|
||||||
dotenv = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
ructe = { version = "0.13.0", features = ["sass", "mime03"] }
|
ructe = { version = "0.13.0", features = ["sass", "mime03"] }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use ructe::Ructe;
|
use ructe::Ructe;
|
||||||
|
|
||||||
fn main() -> Result<(), anyhow::Error> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
dotenv::dotenv().ok();
|
dotenv::dotenv().ok();
|
||||||
let mut ructe = Ructe::from_env()?;
|
let mut ructe = Ructe::from_env()?;
|
||||||
let mut statics = ructe.statics()?;
|
let mut statics = ructe.statics()?;
|
||||||
|
|
44
src/lib.rs
44
src/lib.rs
|
@ -322,15 +322,6 @@ enum Error {
|
||||||
|
|
||||||
#[error("{0}")]
|
#[error("{0}")]
|
||||||
UploadString(String),
|
UploadString(String),
|
||||||
|
|
||||||
#[error("Failed to minify html, {0}")]
|
|
||||||
Minify(String),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<minify_html::Error> for Error {
|
|
||||||
fn from(e: minify_html::Error) -> Self {
|
|
||||||
Error::Minify(format!("{:?}", e))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(serde::Deserialize, serde::Serialize)]
|
#[derive(serde::Deserialize, serde::Serialize)]
|
||||||
|
@ -339,7 +330,7 @@ pub struct Collection {
|
||||||
description: String,
|
description: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(serde::Deserialize, serde::Serialize)]
|
#[derive(Clone, serde::Deserialize, serde::Serialize)]
|
||||||
pub struct Entry {
|
pub struct Entry {
|
||||||
title: String,
|
title: String,
|
||||||
description: String,
|
description: String,
|
||||||
|
@ -703,10 +694,25 @@ async fn delete_collection(
|
||||||
|
|
||||||
let future_vec = entries
|
let future_vec = entries
|
||||||
.iter()
|
.iter()
|
||||||
.map(|(_, entry)| conn.delete(&entry.filename, &entry.delete_token))
|
.map(|(_, entry)| {
|
||||||
|
let (tx, rx) = tokio::sync::oneshot::channel();
|
||||||
|
let entry: Entry = entry.clone();
|
||||||
|
let conn = conn.clone();
|
||||||
|
actix_rt::spawn(async move {
|
||||||
|
let _ = tx.send(conn.delete(&entry.filename, &entry.delete_token).await);
|
||||||
|
});
|
||||||
|
rx
|
||||||
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let results = futures::future::join_all(future_vec).await;
|
let mut results = Vec::new();
|
||||||
|
for rx in future_vec {
|
||||||
|
results.push(
|
||||||
|
rx.await
|
||||||
|
.map_err(|_| Error::UploadString("Canceled".to_string()))
|
||||||
|
.stateful(&state)?,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Only bail before deleting collection if all images failed deletion
|
// Only bail before deleting collection if all images failed deletion
|
||||||
// It is possible that some images were already deleted
|
// It is possible that some images were already deleted
|
||||||
|
@ -732,17 +738,11 @@ fn rendered(
|
||||||
) -> Result<HttpResponse, Error> {
|
) -> Result<HttpResponse, Error> {
|
||||||
let mut cursor = Cursor::new(vec![]);
|
let mut cursor = Cursor::new(vec![]);
|
||||||
(f)(&mut cursor)?;
|
(f)(&mut cursor)?;
|
||||||
let mut html = cursor.into_inner();
|
let html = cursor.into_inner();
|
||||||
let len = minify_html::in_place(
|
let output = minify_html::minify(&html, &minify_html::Cfg::spec_compliant());
|
||||||
&mut html,
|
drop(html);
|
||||||
&minify_html::Cfg {
|
|
||||||
minify_js: true,
|
|
||||||
minify_css: true,
|
|
||||||
},
|
|
||||||
)?;
|
|
||||||
html.truncate(len);
|
|
||||||
|
|
||||||
Ok(builder
|
Ok(builder
|
||||||
.content_type(mime::TEXT_HTML.essence_str())
|
.content_type(mime::TEXT_HTML.essence_str())
|
||||||
.body(html))
|
.body(output))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
use actix_web::{
|
use actix_web::{middleware::Logger, App, HttpServer};
|
||||||
middleware::{Compress, Logger},
|
|
||||||
App, HttpServer,
|
|
||||||
};
|
|
||||||
use awc::Client;
|
use awc::Client;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
|
|
||||||
#[actix_web::main]
|
#[actix_web::main]
|
||||||
async fn main() -> Result<(), anyhow::Error> {
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
if std::env::var("RUST_LOG").is_err() {
|
if std::env::var("RUST_LOG").is_err() {
|
||||||
std::env::set_var("RUST_LOG", "info,pict_rs_aggregator=info,actix_web=info");
|
std::env::set_var("RUST_LOG", "info,pict_rs_aggregator=info,actix_web=info");
|
||||||
}
|
}
|
||||||
|
@ -26,7 +23,6 @@ async fn main() -> Result<(), anyhow::Error> {
|
||||||
.finish();
|
.finish();
|
||||||
|
|
||||||
App::new()
|
App::new()
|
||||||
.wrap(Compress::default())
|
|
||||||
.wrap(Logger::default())
|
.wrap(Logger::default())
|
||||||
.service(pict_rs_aggregator::service(client, state.clone()))
|
.service(pict_rs_aggregator::service(client, state.clone()))
|
||||||
})
|
})
|
||||||
|
|
|
@ -3,13 +3,16 @@ use actix_web::{
|
||||||
http::StatusCode,
|
http::StatusCode,
|
||||||
web, FromRequest, HttpMessage, HttpRequest, HttpResponse, ResponseError,
|
web, FromRequest, HttpMessage, HttpRequest, HttpResponse, ResponseError,
|
||||||
};
|
};
|
||||||
use futures::{
|
use std::{
|
||||||
channel::oneshot,
|
future::{ready, Future, Ready},
|
||||||
future::{ok, LocalBoxFuture, Ready},
|
pin::Pin,
|
||||||
|
task::{Context, Poll},
|
||||||
};
|
};
|
||||||
use std::task::{Context, Poll};
|
use tokio::sync::oneshot;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
type LocalBoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + 'a>>;
|
||||||
|
|
||||||
pub(crate) struct Verify;
|
pub(crate) struct Verify;
|
||||||
pub(crate) struct VerifyMiddleware<S>(S);
|
pub(crate) struct VerifyMiddleware<S>(S);
|
||||||
|
|
||||||
|
@ -76,7 +79,7 @@ where
|
||||||
type Future = Ready<Result<Self::Transform, Self::InitError>>;
|
type Future = Ready<Result<Self::Transform, Self::InitError>>;
|
||||||
|
|
||||||
fn new_transform(&self, service: S) -> Self::Future {
|
fn new_transform(&self, service: S) -> Self::Future {
|
||||||
ok(VerifyMiddleware(service))
|
ready(Ok(VerifyMiddleware(service)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue