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]
|
||||
name = "pict-rs-aggregator"
|
||||
version = "0.1.8"
|
||||
version = "0.1.9"
|
||||
authors = ["asonix <asonix@asonix.dog>"]
|
||||
edition = "2018"
|
||||
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
|
||||
|
||||
[dependencies]
|
||||
actix-web = { version = "4.0.0-beta.8", default-features = false, features = ["compress-brotli", "compress-gzip"] }
|
||||
anyhow = "1.0"
|
||||
awc = { version = "3.0.0-beta.7", default-features = false, features = ["rustls", "compress-brotli", "compress-gzip"] }
|
||||
actix-rt = "2.2"
|
||||
actix-web = { version = "4.0.0-beta.8", default-features = false }
|
||||
awc = { version = "3.0.0-beta.7", default-features = false }
|
||||
bcrypt = "0.10"
|
||||
env_logger = "0.8.2"
|
||||
futures = "0.3"
|
||||
env_logger = "0.9.0"
|
||||
mime = "0.3"
|
||||
minify-html = "0.4.0"
|
||||
minify-html = "0.6.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
sled = { version = "0.34.6", features = ["zstd"] }
|
||||
structopt = "0.3.21"
|
||||
tokio = { version = "1", default-features = false, features = ["sync"] }
|
||||
thiserror = "1.0"
|
||||
url = { version = "2.2", features = ["serde"] }
|
||||
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
||||
|
||||
[build-dependencies]
|
||||
anyhow = "1.0"
|
||||
dotenv = "0.15.0"
|
||||
ructe = { version = "0.13.0", features = ["sass", "mime03"] }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use ructe::Ructe;
|
||||
|
||||
fn main() -> Result<(), anyhow::Error> {
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
dotenv::dotenv().ok();
|
||||
let mut ructe = Ructe::from_env()?;
|
||||
let mut statics = ructe.statics()?;
|
||||
|
|
44
src/lib.rs
44
src/lib.rs
|
@ -322,15 +322,6 @@ enum Error {
|
|||
|
||||
#[error("{0}")]
|
||||
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)]
|
||||
|
@ -339,7 +330,7 @@ pub struct Collection {
|
|||
description: String,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, serde::Serialize)]
|
||||
#[derive(Clone, serde::Deserialize, serde::Serialize)]
|
||||
pub struct Entry {
|
||||
title: String,
|
||||
description: String,
|
||||
|
@ -703,10 +694,25 @@ async fn delete_collection(
|
|||
|
||||
let future_vec = entries
|
||||
.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<_>>();
|
||||
|
||||
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
|
||||
// It is possible that some images were already deleted
|
||||
|
@ -732,17 +738,11 @@ fn rendered(
|
|||
) -> Result<HttpResponse, Error> {
|
||||
let mut cursor = Cursor::new(vec![]);
|
||||
(f)(&mut cursor)?;
|
||||
let mut html = cursor.into_inner();
|
||||
let len = minify_html::in_place(
|
||||
&mut html,
|
||||
&minify_html::Cfg {
|
||||
minify_js: true,
|
||||
minify_css: true,
|
||||
},
|
||||
)?;
|
||||
html.truncate(len);
|
||||
let html = cursor.into_inner();
|
||||
let output = minify_html::minify(&html, &minify_html::Cfg::spec_compliant());
|
||||
drop(html);
|
||||
|
||||
Ok(builder
|
||||
.content_type(mime::TEXT_HTML.essence_str())
|
||||
.body(html))
|
||||
.body(output))
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
use actix_web::{
|
||||
middleware::{Compress, Logger},
|
||||
App, HttpServer,
|
||||
};
|
||||
use actix_web::{middleware::Logger, App, HttpServer};
|
||||
use awc::Client;
|
||||
use std::time::Duration;
|
||||
use structopt::StructOpt;
|
||||
|
||||
#[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() {
|
||||
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();
|
||||
|
||||
App::new()
|
||||
.wrap(Compress::default())
|
||||
.wrap(Logger::default())
|
||||
.service(pict_rs_aggregator::service(client, state.clone()))
|
||||
})
|
||||
|
|
|
@ -3,13 +3,16 @@ use actix_web::{
|
|||
http::StatusCode,
|
||||
web, FromRequest, HttpMessage, HttpRequest, HttpResponse, ResponseError,
|
||||
};
|
||||
use futures::{
|
||||
channel::oneshot,
|
||||
future::{ok, LocalBoxFuture, Ready},
|
||||
use std::{
|
||||
future::{ready, Future, Ready},
|
||||
pin::Pin,
|
||||
task::{Context, Poll},
|
||||
};
|
||||
use std::task::{Context, Poll};
|
||||
use tokio::sync::oneshot;
|
||||
use uuid::Uuid;
|
||||
|
||||
type LocalBoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + 'a>>;
|
||||
|
||||
pub(crate) struct Verify;
|
||||
pub(crate) struct VerifyMiddleware<S>(S);
|
||||
|
||||
|
@ -76,7 +79,7 @@ where
|
|||
type Future = Ready<Result<Self::Transform, Self::InitError>>;
|
||||
|
||||
fn new_transform(&self, service: S) -> Self::Future {
|
||||
ok(VerifyMiddleware(service))
|
||||
ready(Ok(VerifyMiddleware(service)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue