feat: added migrations to the new discord rpc values

This commit is contained in:
Observer KRypt0n_ 2023-06-08 15:39:39 +02:00
parent 7ee8294d3a
commit 9d1ec0907d
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
3 changed files with 56 additions and 30 deletions

View file

@ -25,8 +25,6 @@ impl From<DiscordRpc> for DiscordRpcParams {
} }
} }
// TODO: add honkers-specific discord rpc
impl Default for DiscordRpc { impl Default for DiscordRpc {
#[inline] #[inline]
fn default() -> Self { fn default() -> Self {
@ -45,26 +43,41 @@ impl From<&JsonValue> for DiscordRpc {
fn from(value: &JsonValue) -> Self { fn from(value: &JsonValue) -> Self {
let default = Self::default(); let default = Self::default();
Self { // Migration: Update old Discord RPC values
app_id: match value.get("app_id") { // This will be removed in future updates
let mut app_id = match value.get("app_id") {
Some(value) => value.as_u64().unwrap_or(default.app_id), Some(value) => value.as_u64().unwrap_or(default.app_id),
None => default.app_id None => default.app_id
}, };
let mut title = match value.get("title") {
Some(value) => value.as_str().unwrap_or(&default.title).to_string(),
None => default.title
};
let mut subtitle = match value.get("subtitle") {
Some(value) => value.as_str().unwrap_or(&default.subtitle).to_string(),
None => default.subtitle
};
// If old values are detected - replace them by new
if app_id == 901534333360304168 {
app_id = defualt.app_id;
title = default.title;
subtitle = default.subtitle;
}
Self {
app_id,
enabled: match value.get("enabled") { enabled: match value.get("enabled") {
Some(value) => value.as_bool().unwrap_or(default.enabled), Some(value) => value.as_bool().unwrap_or(default.enabled),
None => default.enabled None => default.enabled
}, },
title: match value.get("title") { title,
Some(value) => value.as_str().unwrap_or(&default.title).to_string(), subtitle,
None => default.title
},
subtitle: match value.get("subtitle") {
Some(value) => value.as_str().unwrap_or(&default.subtitle).to_string(),
None => default.subtitle
},
icon: match value.get("icon") { icon: match value.get("icon") {
Some(value) => value.as_str().unwrap_or(&default.icon).to_string(), Some(value) => value.as_str().unwrap_or(&default.icon).to_string(),

View file

@ -25,8 +25,6 @@ impl From<DiscordRpc> for DiscordRpcParams {
} }
} }
// TODO: add honkers-specific discord rpc
impl Default for DiscordRpc { impl Default for DiscordRpc {
#[inline] #[inline]
fn default() -> Self { fn default() -> Self {

View file

@ -43,26 +43,41 @@ impl From<&JsonValue> for DiscordRpc {
fn from(value: &JsonValue) -> Self { fn from(value: &JsonValue) -> Self {
let default = Self::default(); let default = Self::default();
Self { // Migration: Update old Discord RPC values
app_id: match value.get("app_id") { // This will be removed in future updates
let mut app_id = match value.get("app_id") {
Some(value) => value.as_u64().unwrap_or(default.app_id), Some(value) => value.as_u64().unwrap_or(default.app_id),
None => default.app_id None => default.app_id
}, };
let mut title = match value.get("title") {
Some(value) => value.as_str().unwrap_or(&default.title).to_string(),
None => default.title
};
let mut subtitle = match value.get("subtitle") {
Some(value) => value.as_str().unwrap_or(&default.subtitle).to_string(),
None => default.subtitle
};
// If old values are detected - replace them by new
if app_id == 901534333360304168 {
app_id = defualt.app_id;
title = default.title;
subtitle = default.subtitle;
}
Self {
app_id,
enabled: match value.get("enabled") { enabled: match value.get("enabled") {
Some(value) => value.as_bool().unwrap_or(default.enabled), Some(value) => value.as_bool().unwrap_or(default.enabled),
None => default.enabled None => default.enabled
}, },
title: match value.get("title") { title,
Some(value) => value.as_str().unwrap_or(&default.title).to_string(), subtitle,
None => default.title
},
subtitle: match value.get("subtitle") {
Some(value) => value.as_str().unwrap_or(&default.subtitle).to_string(),
None => default.subtitle
},
icon: match value.get("icon") { icon: match value.get("icon") {
Some(value) => value.as_str().unwrap_or(&default.icon).to_string(), Some(value) => value.as_str().unwrap_or(&default.icon).to_string(),