Reduce deps

This commit is contained in:
Aode (lion) 2021-09-06 15:44:01 -05:00
parent dbfdd010a6
commit a61d812d85
6 changed files with 196 additions and 384 deletions

498
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -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"] }

View file

@ -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()?;

View file

@ -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))
}

View file

@ -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()))
})

View file

@ -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)))
}
}