diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 4a35061..4749215 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -718,6 +718,7 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" name = "cultivation" version = "0.1.0" dependencies = [ + "base64", "futures-util", "http", "hudsucker", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 98e0b6a..ebcda71 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -34,8 +34,9 @@ registry = "1.2.1" # Program opener. open = "2.1.2" -# Serialization library. +# Serialization. serde_json = "1" +base64 = "0.13.0" # Dependencies for the HTTP(S) proxy. http = "0.2" diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index d0f3641..210b338 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -36,6 +36,7 @@ fn main() { disconnect, req_get, get_bg_file, + base64_decode, system_helpers::run_program, system_helpers::run_jar, system_helpers::open_in_browser, @@ -171,4 +172,10 @@ async fn get_bg_file(bg_path: String) -> String { "".to_string() } }; +} + +#[tauri::command] +fn base64_decode(encoded: String) -> String { + let decoded = base64::decode(&encoded).unwrap(); + return String::from_utf8(decoded).unwrap(); } \ No newline at end of file diff --git a/src/ui/components/news/NewsSection.tsx b/src/ui/components/news/NewsSection.tsx index dc19ec1..49e67c4 100644 --- a/src/ui/components/news/NewsSection.tsx +++ b/src/ui/components/news/NewsSection.tsx @@ -4,7 +4,6 @@ import React from 'react' import Tr from '../../../utils/language' import './NewsSection.css' -import {base64Decode} from '../../../utils/string' interface IProps { selected?: string; @@ -57,7 +56,8 @@ export default class NewsSection extends React.Component { const commits: string = await invoke('req_get', { url: 'https://api.github.com/repos/Grasscutters/Grasscutter/commits' }) obj = JSON.parse(commits) } else { - const commitData = JSON.parse(base64Decode(obj.commits)) + const decoded: string = await invoke('base64_decode', { encoded: obj.commits }) + const commitData = JSON.parse(decoded) obj = commitData.gc_stable } diff --git a/src/utils/string.ts b/src/utils/string.ts index df04e8b..fefc7a4 100644 --- a/src/utils/string.ts +++ b/src/utils/string.ts @@ -8,8 +8,4 @@ export function byteToString(bytes: number) { const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)).toString(), 10) if (i === 0) return `${bytes} ${sizes[i]}` return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}` -} - -export function base64Decode(str: string) { - return Buffer.from(str, 'base64').toString('utf8') } \ No newline at end of file