update preferences

This commit is contained in:
nieve 2025-04-10 21:11:04 -04:00
parent 604aef19ce
commit 482e698822
2 changed files with 13 additions and 4 deletions

View file

@ -26,6 +26,8 @@ pub struct Config {
#[serde(rename = "REDLIB_DEFAULT_THEME_LIGHT")] #[serde(rename = "REDLIB_DEFAULT_THEME_LIGHT")]
#[serde(alias = "LIBREDDIT_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<String>, pub(crate) default_theme_light: Option<String>,
#[serde(rename = "REDLIB_DEFAULT_THEME_DARK")] #[serde(rename = "REDLIB_DEFAULT_THEME_DARK")]

View file

@ -12,7 +12,7 @@ use libflate::deflate::{Decoder, Encoder};
use log::error; use log::error;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
use regex::Regex; use regex::Regex;
use revision::revisioned; use revision::{revisioned, Error};
use rinja::Template; use rinja::Template;
use rust_embed::RustEmbed; use rust_embed::RustEmbed;
use serde::{Deserialize, Deserializer, Serialize, Serializer}; use serde::{Deserialize, Deserializer, Serialize, Serializer};
@ -621,14 +621,16 @@ pub struct Params {
} }
#[derive(Default, Serialize, Deserialize, Debug, PartialEq, Eq)] #[derive(Default, Serialize, Deserialize, Debug, PartialEq, Eq)]
#[revisioned(revision = 1)] #[revisioned(revision = 2)]
pub struct Preferences { pub struct Preferences {
#[revision(start = 1)] #[revision(start = 1)]
#[serde(skip_serializing, skip_deserializing)] #[serde(skip_serializing, skip_deserializing)]
pub available_themes: Vec<String>, pub available_themes: Vec<String>,
#[revision(start = 1)] #[revision(start = 1, end = 2, convert_fn="convert_theme")]
pub theme: String,
#[revision(start = 2)]
pub theme_light: String, pub theme_light: String,
#[revision(start = 1)] #[revision(start = 2)]
pub theme_dark: String, pub theme_dark: String,
#[revision(start = 1)] #[revision(start = 1)]
pub front_page: String, pub front_page: String,
@ -746,6 +748,11 @@ impl Preferences {
pub fn to_bincode_str(&self) -> Result<String, String> { pub fn to_bincode_str(&self) -> Result<String, String> {
Ok(base2048::encode(&self.to_compressed_bincode()?)) 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<u8>) -> Result<Vec<u8>, String> { pub fn deflate_compress(i: Vec<u8>) -> Result<Vec<u8>, String> {