random small fixes
This commit is contained in:
+2
-6
@@ -1,10 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
features,
|
features,
|
||||||
gui::{
|
gui::{settings::Settings, tools, ui_ext::UiExt},
|
||||||
settings::{Settings, Theme},
|
|
||||||
tools,
|
|
||||||
ui_ext::UiExt,
|
|
||||||
},
|
|
||||||
util::{consts::game::WINDOW_TITLE, meta::Meta, persistent_state::PersistentState, win},
|
util::{consts::game::WINDOW_TITLE, meta::Meta, persistent_state::PersistentState, win},
|
||||||
};
|
};
|
||||||
use eframe::egui;
|
use eframe::egui;
|
||||||
@@ -217,7 +213,7 @@ impl App {
|
|||||||
ui.label("with ");
|
ui.label("with ");
|
||||||
ui.hyperlink_to("❤", "https://codeberg.org/futile/gta-tools");
|
ui.hyperlink_to("❤", "https://codeberg.org/futile/gta-tools");
|
||||||
ui.label(" from ");
|
ui.label(" from ");
|
||||||
ui.hyperlink_to("futile", "http://futile.eu");
|
ui.hyperlink_to("futile", "https://futile.eu");
|
||||||
});
|
});
|
||||||
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
|
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
|
||||||
ui.label(format!(
|
ui.label(format!(
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ use eframe::egui;
|
|||||||
fn panic_hook(panic_info: &std::panic::PanicHookInfo<'_>) {
|
fn panic_hook(panic_info: &std::panic::PanicHookInfo<'_>) {
|
||||||
let backtrace = std::backtrace::Backtrace::capture();
|
let backtrace = std::backtrace::Backtrace::capture();
|
||||||
let message = format!("{panic_info}\nstack backtrace:\n{backtrace}\n");
|
let message = format!("{panic_info}\nstack backtrace:\n{backtrace}\n");
|
||||||
log::log(log::LogLevel::Panic, message);
|
log::log(log::LogLevel::Panic, &message);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn app_creator(
|
fn app_creator(
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
use semver::Version;
|
use semver::Version;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
const APP_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));
|
const APP_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));
|
||||||
const CODEBERG_ENDPOINT_ROOT: &str = "https://codeberg.org/api/v1";
|
const CODEBERG_ENDPOINT_ROOT: &str = "https://codeberg.org/api/v1";
|
||||||
@@ -32,7 +33,12 @@ struct Asset {
|
|||||||
|
|
||||||
pub fn get_latest_release() -> Result<Release, Box<dyn std::error::Error>> {
|
pub fn get_latest_release() -> Result<Release, Box<dyn std::error::Error>> {
|
||||||
let request_url = format!("{CODEBERG_ENDPOINT_ROOT}/repos/futile/gta-tools/releases/latest");
|
let request_url = format!("{CODEBERG_ENDPOINT_ROOT}/repos/futile/gta-tools/releases/latest");
|
||||||
let mut response = ureq::get(request_url).header("User-Agent", APP_USER_AGENT).call()?;
|
let mut response = ureq::get(request_url)
|
||||||
|
.config()
|
||||||
|
.timeout_global(Some(Duration::from_secs(10)))
|
||||||
|
.user_agent(APP_USER_AGENT)
|
||||||
|
.build()
|
||||||
|
.call()?;
|
||||||
let body = response.body_mut();
|
let body = response.body_mut();
|
||||||
let json = body.read_json::<LatestRelease>()?;
|
let json = body.read_json::<LatestRelease>()?;
|
||||||
let tag_name = json.tag_name;
|
let tag_name = json.tag_name;
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ pub enum LogLevel {
|
|||||||
Panic,
|
Panic,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn log(level: LogLevel, message: String) {
|
pub fn log(level: LogLevel, message: &str) {
|
||||||
let mut file = File::options()
|
let mut file = File::options()
|
||||||
.create(true)
|
.create(true)
|
||||||
.append(true)
|
.append(true)
|
||||||
|
|||||||
+5
-8
@@ -11,14 +11,11 @@ pub struct Meta {
|
|||||||
impl Default for Meta {
|
impl Default for Meta {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
let current_version = Version::parse(env!("CARGO_PKG_VERSION")).unwrap();
|
let current_version = Version::parse(env!("CARGO_PKG_VERSION")).unwrap();
|
||||||
let latest_release = match codeberg::get_latest_release() {
|
let latest_release = codeberg::get_latest_release().unwrap_or_else(|why| {
|
||||||
Ok(release) => release,
|
let message = format!("failed to get latest codeberg release:\n{why}");
|
||||||
Err(why) => {
|
log::log(log::LogLevel::Error, &message);
|
||||||
let message = format!("failed to get latest codeberg release:\n{why}");
|
codeberg::Release::default()
|
||||||
log::log(log::LogLevel::Error, message);
|
});
|
||||||
codeberg::Release::default()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let newer_version_available = matches!(
|
let newer_version_available = matches!(
|
||||||
¤t_version.cmp_precedence(&latest_release.version),
|
¤t_version.cmp_precedence(&latest_release.version),
|
||||||
std::cmp::Ordering::Less
|
std::cmp::Ordering::Less
|
||||||
|
|||||||
Reference in New Issue
Block a user