diff options
| author | Xe Iaso <me@christine.website> | 2022-07-11 00:49:15 +0000 |
|---|---|---|
| committer | Xe Iaso <me@christine.website> | 2022-07-11 00:49:15 +0000 |
| commit | b0a87b890e2f97842ff738166207341ba5f11e58 (patch) | |
| tree | ac9a45784c6f3243fcd2a88430483b8d0a35bdfc /src | |
| parent | 3da2c94f689820815903a826f4682a7b8122d35f (diff) | |
| download | xesite-b0a87b890e2f97842ff738166207341ba5f11e58.tar.xz xesite-b0a87b890e2f97842ff738166207341ba5f11e58.zip | |
Revert "fix"
This reverts commit 7dd708c6613b8e617fe77a6a8ad177485b39c258.
Diffstat (limited to 'src')
| -rw-r--r-- | src/app/mod.rs | 8 | ||||
| -rw-r--r-- | src/handlers/mod.rs | 15 | ||||
| -rw-r--r-- | src/handlers/notes.rs | 7 |
3 files changed, 26 insertions, 4 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 4b52a90..24eabc5 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -1,4 +1,6 @@ use crate::{post::Post, signalboost::Person}; +use bb8::Pool; +use bb8_rusqlite::RusqliteConnectionManager; use chrono::prelude::*; use color_eyre::eyre::Result; use std::{env, fs, path::PathBuf, sync::Arc}; @@ -58,6 +60,7 @@ pub struct State { pub sitemap: Vec<u8>, pub patrons: Option<patreon::Users>, pub mi: mi::Client, + pub pool: Pool<RusqliteConnectionManager>, } pub async fn init(cfg: PathBuf) -> Result<State> { @@ -73,6 +76,10 @@ pub async fn init(cfg: PathBuf) -> Result<State> { let gallery = crate::post::load(cfg.clone(), "gallery").await?; let talks = crate::post::load(cfg.clone(), "talks").await?; let mut everything: Vec<Post> = vec![]; + let mgr = RusqliteConnectionManager::new( + env::var("DATABASE_URL").unwrap_or("./var/waifud.db".to_string()), + ); + let pool = bb8::Pool::builder().build(mgr).await?; { let blog = blog.clone(); @@ -150,6 +157,7 @@ pub async fn init(cfg: PathBuf) -> Result<State> { jf: jfb.build(), sitemap: sm, patrons: patrons().await?, + pool, }) } diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index 97939fb..87175ca 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -168,6 +168,21 @@ pub enum Error { #[error("database error: {0}")] SQLite(#[from] rusqlite::Error), + + #[error("database pool error: {0}")] + SQLitePool(#[from] bb8_rusqlite::Error), + + #[error("other error: {0}")] + Catchall(String), +} + +impl<E> From<bb8::RunError<E>> for Error +where + E: std::error::Error + Send + 'static, +{ + fn from(err: bb8::RunError<E>) -> Self { + Self::Catchall(format!("{}", err)) + } } pub type Result<T = Html<Vec<u8>>> = std::result::Result<T, Error>; diff --git a/src/handlers/notes.rs b/src/handlers/notes.rs index 42f89ad..56e0f90 100644 --- a/src/handlers/notes.rs +++ b/src/handlers/notes.rs @@ -20,13 +20,12 @@ impl Note { pub fn to_html(&self) -> Markup { html! { article."h-entry" { - a href={"/notes/" (self.id)} { - "🔗" - } - " " time."dt-published" datetime=(self.created_at) { {(self.detrytemci())} } + a href={"/notes/" (self.id)} { + "🔗" + } @if let Some(reply_to) = &self.reply_to { p { |
