From 482e698822edfdec11b248c663245e87a3214931 Mon Sep 17 00:00:00 2001 From: nieve Date: Thu, 10 Apr 2025 21:11:04 -0400 Subject: [PATCH] update preferences --- src/config.rs | 2 ++ src/utils.rs | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index 7f028db..351e226 100644 --- a/src/config.rs +++ b/src/config.rs @@ -26,6 +26,8 @@ pub struct Config { #[serde(rename = "REDLIB_DEFAULT_THEME_LIGHT")] #[serde(alias = "LIBREDDIT_DEFAULT_THEME_LIGHT")] + #[serde(alias = "REDLIB_DEFAULT_THEME")] + #[serde(alias = "LIBREDDIT_DEFAULT_THEME")] pub(crate) default_theme_light: Option, #[serde(rename = "REDLIB_DEFAULT_THEME_DARK")] diff --git a/src/utils.rs b/src/utils.rs index 6fd78f0..28f5e37 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -12,7 +12,7 @@ use libflate::deflate::{Decoder, Encoder}; use log::error; use once_cell::sync::Lazy; use regex::Regex; -use revision::revisioned; +use revision::{revisioned, Error}; use rinja::Template; use rust_embed::RustEmbed; use serde::{Deserialize, Deserializer, Serialize, Serializer}; @@ -621,14 +621,16 @@ pub struct Params { } #[derive(Default, Serialize, Deserialize, Debug, PartialEq, Eq)] -#[revisioned(revision = 1)] +#[revisioned(revision = 2)] pub struct Preferences { #[revision(start = 1)] #[serde(skip_serializing, skip_deserializing)] pub available_themes: Vec, - #[revision(start = 1)] + #[revision(start = 1, end = 2, convert_fn="convert_theme")] + pub theme: String, + #[revision(start = 2)] pub theme_light: String, - #[revision(start = 1)] + #[revision(start = 2)] pub theme_dark: String, #[revision(start = 1)] pub front_page: String, @@ -746,6 +748,11 @@ impl Preferences { pub fn to_bincode_str(&self) -> Result { Ok(base2048::encode(&self.to_compressed_bincode()?)) } + fn convert_theme(&mut self, _revision: u16, value:String) -> Result<(), Error> { + self.theme_light = value.clone(); + self.theme_dark = value.clone(); + Ok(()) + } } pub fn deflate_compress(i: Vec) -> Result, String> {