From 6eecef78b77c3c074e23f2ad4d997459a5840929 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sat, 17 Dec 2022 18:57:49 +0100 Subject: [PATCH 01/16] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index ea15c846..a991b297 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@
- -## Ajour is no longer maintained. Please read https://github.com/ajour/ajour/issues/746. -Thank you all for the support, the feedback and for being an awesome community. - # Ajour ![Continuous integration](https://github.com/ajour/ajour/workflows/Continuous-integration/badge.svg) From 5ca2508d3206464dcd67f5c5e012f7b4c7baee1b Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sat, 17 Dec 2022 18:58:08 +0100 Subject: [PATCH 02/16] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a991b297..5f581d62 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@
+ # Ajour ![Continuous integration](https://github.com/ajour/ajour/workflows/Continuous-integration/badge.svg) From a7aeb1ecc4221fa28f2190bdeb23415821342c29 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 00:28:57 +0100 Subject: [PATCH 03/16] Added support for development under macOS --- INSTALL.md | 9 +++++++-- build.rs | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 5616b154..d5622a20 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -72,7 +72,13 @@ sudo apt install build-essential cmake libxft-dev libssl-dev libx11-dev libxkbco If your system has extra dependencies, and they are not listed here please create a [pull-request](https://github.com/ajour/ajour/pulls) or open a [issue](https://github.com/ajour/ajour/issues). -### Building +### Development +#### Linux / Windows / macOS +```sh +cargo run +``` + +### Building release #### Linux / Windows @@ -87,7 +93,6 @@ target/release/ajour ``` #### macOS - ```sh make app cp -r target/release/osx/Ajour.app /Applications/ diff --git a/build.rs b/build.rs index 545dda43..20bab78f 100644 --- a/build.rs +++ b/build.rs @@ -1,6 +1,17 @@ extern crate embed_resource; fn main() { - #[cfg(windows)] - embed_resource::compile("resources/windows/res.rc"); + let target_os = std::env::var("CARGO_CFG_TARGET_OS"); + match target_os.as_ref().map(|x| &**x) { + Ok("windows") => { + embed_resource::compile("resources/windows/res.rc"); + } + Ok("macos") => { + print!("cargo:rustc-env=MACOSX_DEPLOYMENT_TARGET=10.11") + } + Ok("linux") => { + // noop + } + tos => panic!("unknown target os {:?}!", tos) + } } From c40212aa7222725a436ea6ab87a8265213c4a837 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:31:02 +0100 Subject: [PATCH 04/16] Added support for WotLK --- CHANGELOG.md | 14 +++++++++++ Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- README.md | 2 +- crates/core/Cargo.toml | 2 +- crates/core/src/bin/parse_addon_directory.rs | 2 +- crates/core/src/catalog.rs | 3 ++- crates/core/src/config/addons.rs | 2 +- crates/core/src/config/wow.rs | 25 ++++++++++++++++---- crates/core/src/parse.rs | 3 ++- crates/core/src/repository/backend/git.rs | 23 ++++++++++++++++++ crates/core/src/repository/backend/tukui.rs | 10 ++++++-- src/cli.rs | 7 +++--- src/gui/mod.rs | 1 + 14 files changed, 82 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e796213e..757dd7ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,20 @@ and `Removed`. ## [Unreleased] +## [1.4.0] - 2022-12-18 + +### Added + +- Support for WotLK. + +### Removed + +- Temporary removed support for CurseForge. + +### Fixed + +- Ajour now depends on another Ajour-Catalog. + ## [1.3.2] - 2021-09-23 ### Added diff --git a/Cargo.lock b/Cargo.lock index 32c11739..6d729af1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,7 +50,7 @@ dependencies = [ [[package]] name = "ajour" -version = "1.3.2" +version = "1.4.0" dependencies = [ "ajour-core", "ajour-weak-auras", @@ -88,7 +88,7 @@ dependencies = [ [[package]] name = "ajour-core" -version = "1.3.2" +version = "1.4.0" dependencies = [ "async-std", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 591cd8ca..bf9de416 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ajour" description = "A World of Warcraft addon manager" -version = "1.3.2" +version = "1.4.0" authors = ["Casper Rogild Storm"] license = "GPL-3.0" homepage = "https://github.com/ajour/ajour" @@ -19,7 +19,7 @@ no-self-update = ["ajour-core/no-self-update"] debug = ["iced/debug"] [dependencies] -ajour-core = { version = "1.3.2", path = "crates/core", features=['gui'] } +ajour-core = { version = "1.4.0", path = "crates/core", features=['gui'] } ajour-weak-auras = { version = "1.3.2", path = "crates/weak_auras" } ajour-widgets = { version = "1.3.2", path = "crates/widgets" } diff --git a/README.md b/README.md index 5f581d62..3ae6238b 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ respecting and open source. Ajour currently supports Windows, macOS and Linux. - Bulk addon update without any limitations - Remove addons and their dependencies - Ignore addons you don't want to update -- Supports both Retail, Classic Era, Classic Tbc, Ptr and Beta versions of +- Supports both Retail, Classic Era, Classic Tbc, Classic Wotlk, Ptr and Beta versions of World of Warcraft - 10+ handcrafted themes to choose between - [Ability to add your own custom themes](#themes) diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index a44f56d1..f2a12356 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ajour-core" description = "Core library for Ajour" -version = "1.3.2" +version = "1.4.0" authors = ["Casper Rogild Storm"] license = "GPL-3.0" homepage = "https://github.com/ajour/ajour" diff --git a/crates/core/src/bin/parse_addon_directory.rs b/crates/core/src/bin/parse_addon_directory.rs index 413d7a18..dfa92438 100644 --- a/crates/core/src/bin/parse_addon_directory.rs +++ b/crates/core/src/bin/parse_addon_directory.rs @@ -55,7 +55,7 @@ fn main() { let addon_cache = Some(Arc::new(Mutex::new(load_addon_cache().await.unwrap()))); let addons = - read_addon_directory(addon_cache, fingerprint_cache, &path, Flavor::ClassicTbc) + read_addon_directory(addon_cache, fingerprint_cache, &path, Flavor::ClassicWotlk) .await .unwrap(); diff --git a/crates/core/src/catalog.rs b/crates/core/src/catalog.rs index 8df69fbc..9ba3f135 100644 --- a/crates/core/src/catalog.rs +++ b/crates/core/src/catalog.rs @@ -6,7 +6,8 @@ use chrono::prelude::*; use isahc::AsyncReadResponseExt; use serde::{Deserialize, Serialize}; -const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/catalog/main/catalog-0.2.0.json"; +//const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/catalog/main/catalog-0.2.0.json"; +const CATALOG_URL: &str = "https://raw.githubusercontent.com/sikrinick/ajour-catalog/main/catalog-0.3.0.json"; type Etag = Option; diff --git a/crates/core/src/config/addons.rs b/crates/core/src/config/addons.rs index e579f4f4..313fd08b 100644 --- a/crates/core/src/config/addons.rs +++ b/crates/core/src/config/addons.rs @@ -67,7 +67,7 @@ mod de { } map.insert(Flavor::Retail, ignored.clone()); - map.insert(Flavor::ClassicTbc, ignored); + map.insert(Flavor::ClassicWotlk, ignored); Ok(map) } diff --git a/crates/core/src/config/wow.rs b/crates/core/src/config/wow.rs index a1be53fa..f2ae1560 100644 --- a/crates/core/src/config/wow.rs +++ b/crates/core/src/config/wow.rs @@ -50,19 +50,24 @@ pub enum Flavor { alias = "bcc" )] ClassicTbc, + #[serde( + alias = "wotlk" + )] + ClassicWotlk, #[serde(alias = "ClassicPTR")] ClassicPtr, ClassicBeta, } impl Flavor { - pub const ALL: [Flavor; 8] = [ + pub const ALL: [Flavor; 9] = [ Flavor::Retail, Flavor::RetailPtr, Flavor::RetailBeta, Flavor::ClassicEra, Flavor::ClassicEraPtr, Flavor::ClassicTbc, + Flavor::ClassicWotlk, Flavor::ClassicPtr, Flavor::ClassicBeta, ]; @@ -71,7 +76,11 @@ impl Flavor { pub(crate) fn curse_format(self) -> String { match self { Flavor::Retail | Flavor::RetailPtr | Flavor::RetailBeta => "wow_retail".to_owned(), - Flavor::ClassicTbc | Flavor::ClassicPtr | Flavor::ClassicBeta => { + Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => { + // Fixme. Fake value, as CurseForge is ignored + "wow_wotlk".to_owned() + } + Flavor::ClassicTbc => { "wow_burning_crusade".to_owned() } Flavor::ClassicEra | Flavor::ClassicEraPtr => "wow_classic".to_owned(), @@ -82,7 +91,10 @@ impl Flavor { pub(crate) fn hub_format(self) -> String { match self { Flavor::Retail | Flavor::RetailPtr | Flavor::RetailBeta => "retail".to_owned(), - Flavor::ClassicTbc | Flavor::ClassicPtr | Flavor::ClassicBeta => { + Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => { + "wotlk".to_owned() + }, + Flavor::ClassicTbc => { "burningCrusade".to_owned() } Flavor::ClassicEra | Flavor::ClassicEraPtr => "classic".to_owned(), @@ -93,7 +105,8 @@ impl Flavor { pub fn base_flavor(self) -> Flavor { match self { Flavor::Retail | Flavor::RetailPtr | Flavor::RetailBeta => Flavor::Retail, - Flavor::ClassicTbc | Flavor::ClassicPtr | Flavor::ClassicBeta => Flavor::ClassicTbc, + Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => Flavor::ClassicWotlk, + Flavor::ClassicTbc => Flavor::ClassicTbc, Flavor::ClassicEra | Flavor::ClassicEraPtr => Flavor::ClassicEra, } } @@ -106,7 +119,8 @@ impl Flavor { Flavor::RetailBeta => "_beta_".to_owned(), Flavor::ClassicEra => "_classic_era_".to_owned(), Flavor::ClassicEraPtr => "_classic_era_ptr_".to_owned(), - Flavor::ClassicTbc => "_classic_".to_owned(), + Flavor::ClassicTbc => "_classic_tbc_".to_owned(), // Fake value. There is no Classic TBC + Flavor::ClassicWotlk => "_classic_".to_owned(), Flavor::ClassicPtr => "_classic_ptr_".to_owned(), Flavor::ClassicBeta => "_classic_beta_".to_owned(), } @@ -131,6 +145,7 @@ impl std::fmt::Display for Flavor { Flavor::ClassicEra => "Classic Era", Flavor::ClassicEraPtr => "Classic Era PTR", Flavor::ClassicTbc => "Classic TBC", + Flavor::ClassicWotlk => "Classic WotLK", Flavor::ClassicBeta => "Classic Beta", Flavor::ClassicPtr => "Classic PTR", } diff --git a/crates/core/src/parse.rs b/crates/core/src/parse.rs index cea52d49..1c780e5c 100644 --- a/crates/core/src/parse.rs +++ b/crates/core/src/parse.rs @@ -279,6 +279,7 @@ async fn parse_addon_folders( Flavor::Retail => vec!["Mainline"], Flavor::ClassicEra => vec!["Classic", "Vanilla"], Flavor::ClassicTbc => vec!["BCC", "TBC"], + Flavor::ClassicWotlk => vec!["Wrath"], _ => vec![], }; @@ -1053,7 +1054,7 @@ static RE_PARSING_PATTERNS: Lazy = Lazy::new(|| { ParsingPatterns { extra_inclusion_regex: Regex::new(r#"(?i)^[^/\\]+[/\\]Bindings\.xml$"#).unwrap(), initial_inclusion_regex: Regex::new( - r#"(?i)^([^/\\]+)[/\\]\1([-|_](mainline|bcc|tbc|classic|vanilla))?\.toc$"#, + r#"(?i)^([^/\\]+)[/\\]\1([-|_](mainline|wotlk|bcc|tbc|classic|vanilla))?\.toc$"#, ) .unwrap(), file_parsing_regex, diff --git a/crates/core/src/repository/backend/git.rs b/crates/core/src/repository/backend/git.rs index 9eca9fba..20f1abb2 100644 --- a/crates/core/src/repository/backend/git.rs +++ b/crates/core/src/repository/backend/git.rs @@ -261,6 +261,7 @@ mod github { /// Eg: /// `foobar-classic` => ClassicEra file. /// `foobar-bcc` => ClassicTbc file. + /// `foobar-wotlk` => ClassicWotlk file. fn find_asset_fallback(release: &Release, flavor: Flavor) -> Option<&ReleaseAsset> { let asset = release.assets.iter().find(|a| match flavor.base_flavor() { Flavor::Retail => { @@ -269,6 +270,7 @@ mod github { && !a.name.to_lowercase().contains("vanilla") && !a.name.to_lowercase().contains("bcc") && !a.name.to_lowercase().contains("tbc") + && !a.name.to_lowercase().contains("wotlk") } Flavor::ClassicEra => { a.name.ends_with("zip") @@ -276,6 +278,7 @@ mod github { || a.name.to_lowercase().contains("vanilla")) && !a.name.to_lowercase().contains("bcc") && !a.name.to_lowercase().contains("tbc") + && !a.name.to_lowercase().contains("wotlk") } Flavor::ClassicTbc => { a.name.ends_with("zip") @@ -283,6 +286,15 @@ mod github { && !a.name.to_lowercase().contains("vanilla") && (a.name.to_lowercase().contains("bcc") || a.name.to_lowercase().contains("tbc")) + && !a.name.to_lowercase().contains("wotlk") + } + Flavor::ClassicWotlk => { + a.name.ends_with("zip") + && !a.name.to_lowercase().contains("classic") + && !a.name.to_lowercase().contains("vanilla") + && !a.name.to_lowercase().contains("bcc") + && !a.name.to_lowercase().contains("tbc") + && a.name.to_lowercase().contains("wotlk") } _ => a.name.ends_with("zip"), }); @@ -413,6 +425,7 @@ mod gitlab { && !a.name.to_lowercase().contains("vanilla") && !a.name.to_lowercase().contains("bcc") && !a.name.to_lowercase().contains("tbc") + && !a.name.to_lowercase().contains("wotlk") } Flavor::ClassicEra => { a.name.ends_with("zip") @@ -420,6 +433,7 @@ mod gitlab { || a.name.to_lowercase().contains("vanilla")) && !a.name.to_lowercase().contains("bcc") && !a.name.to_lowercase().contains("tbc") + && !a.name.to_lowercase().contains("wotlk") } Flavor::ClassicTbc => { a.name.ends_with("zip") @@ -427,6 +441,15 @@ mod gitlab { && !a.name.to_lowercase().contains("vanilla") && (a.name.to_lowercase().contains("bcc") || a.name.to_lowercase().contains("tbc")) + && !a.name.to_lowercase().contains("wotlk") + } + Flavor::ClassicWotlk => { + a.name.ends_with("zip") + && !a.name.to_lowercase().contains("classic") + && !a.name.to_lowercase().contains("vanilla") + && !a.name.to_lowercase().contains("bcc") + && !a.name.to_lowercase().contains("tbc") + && a.name.to_lowercase().contains("wotlk") } _ => a.name.ends_with("zip"), }); diff --git a/crates/core/src/repository/backend/tukui.rs b/crates/core/src/repository/backend/tukui.rs index 13e0fc15..934b0bea 100644 --- a/crates/core/src/repository/backend/tukui.rs +++ b/crates/core/src/repository/backend/tukui.rs @@ -56,7 +56,8 @@ impl Backend for Tukui { } } } - Flavor::ClassicTbc + Flavor::ClassicWotlk + | Flavor::ClassicTbc | Flavor::ClassicPtr | Flavor::ClassicBeta | Flavor::ClassicEra @@ -117,6 +118,7 @@ fn format_flavor(flavor: &Flavor) -> String { let base_flavor = flavor.base_flavor(); match base_flavor { Flavor::Retail => "retail".to_owned(), + Flavor::ClassicWotlk => "wotlk".to_owned(), Flavor::ClassicTbc => "tbc".to_owned(), Flavor::ClassicEra => "classic".to_owned(), _ => panic!("Unknown base flavor {}", base_flavor), @@ -143,7 +145,11 @@ fn changelog_endpoint(id: &str, flavor: &Flavor) -> String { "https://www.tukui.org/classic-addons.php?id={}&changelog", id ), - Flavor::ClassicTbc | Flavor::ClassicPtr | Flavor::ClassicBeta => format!( + Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => format!( + "https://www.tukui.org/classic-wotlk-addons.php?id={}&changelog", + id + ), + Flavor::ClassicTbc => format!( "https://www.tukui.org/classic-tbc-addons.php?id={}&changelog", id ), diff --git a/src/cli.rs b/src/cli.rs index 9d30c409..80083d0b 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -90,7 +90,7 @@ pub enum Command { UpdateAuras, /// Install an addon Install { - #[structopt(parse(try_from_str = str_to_flavor), possible_values = &["retail","ptr","beta","classic_tbc","classic_era","classic_era_ptr","classic_ptr","classic_beta"])] + #[structopt(parse(try_from_str = str_to_flavor), possible_values = &["retail","ptr","beta","classic_wotlk","classic_tbc","classic_era","classic_era_ptr","classic_ptr","classic_beta"])] /// flavor to install addon under flavor: Flavor, #[structopt()] @@ -102,7 +102,7 @@ pub enum Command { #[structopt(short, long, default_value = "all", parse(try_from_str = str_to_backup_folder), possible_values = &["all","wtf","addons","config", "screenshots", "fonts"])] /// folder to backup backup_folder: BackupFolder, - #[structopt(short, long, parse(try_from_str = str_to_flavor), possible_values = &["retail","ptr","beta","classic_tbc","classic_era","classic_era_ptr","classic_ptr","classic_beta"])] + #[structopt(short, long, parse(try_from_str = str_to_flavor), possible_values = &["retail","ptr","beta","classic_wotlk","classic_tbc","classic_era","classic_era_ptr","classic_ptr","classic_beta"])] /// space separated list of flavors to include in backup. If ommited, all flavors will be included. flavors: Vec, #[structopt()] @@ -128,12 +128,13 @@ fn str_to_flavor(s: &str) -> Result { "retail" => Ok(Flavor::Retail), "beta" => Ok(Flavor::RetailBeta), "ptr" => Ok(Flavor::RetailPtr), + "classic_wotlk" => Ok(Flavor::ClassicWotlk), "classic_tbc" => Ok(Flavor::ClassicTbc), "classic_era" => Ok(Flavor::ClassicEra), "classic_era_ptr" => Ok(Flavor::ClassicEraPtr), "classic_ptr" => Ok(Flavor::ClassicPtr), "classic_beta" => Ok(Flavor::ClassicBeta), - _ => Err("valid values are ['retail','ptr','beta','classic_tbc','classic_era','classic_era_ptr','classic_ptr','classic_beta']"), + _ => Err("valid values are ['retail','ptr','beta','classic_wotlk','classic_tbc','classic_era','classic_era_ptr','classic_ptr','classic_beta']"), } } diff --git a/src/gui/mod.rs b/src/gui/mod.rs index fce8c054..20a7425d 100644 --- a/src/gui/mod.rs +++ b/src/gui/mod.rs @@ -2544,6 +2544,7 @@ fn apply_config(ajour: &mut Ajour, mut config: Config) { // Migration for the new TBC client. Link ClassicEra flavor to `_classic_era_` instead of // `_classic_` + // TODO. Decide. Should it be done for TBC => WotLK migration? { if let Some(classic_era_dir) = config.wow.directories.get(&Flavor::ClassicEra) { if classic_era_dir.ends_with("_classic_") { From a2c3c25bded65f55c5e1463a08d3fd7143b44ab0 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:36:09 +0100 Subject: [PATCH 05/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ae6238b..27ef96bb 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ respecting and open source. Ajour currently supports Windows, macOS and Linux. - Addons will be parsed automatically and resolved from multiple repositories: - [Tukui](https://www.tukui.org/) - - [CurseForge](https://www.curseforge.com/wow/addons) + - [CurseForge](https://www.curseforge.com/wow/addons) (temporary disabled) - [WoWInterface](https://www.wowinterface.com/) - [Hub](https://wowup.io/) - Install new addons from the catalog or directly from a GitHub/GitLab URL From cd1648624116a4f34bd281eda3a63e7d165a6a9f Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:40:22 +0100 Subject: [PATCH 06/16] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 27ef96bb..ab18c98f 100644 --- a/README.md +++ b/README.md @@ -63,8 +63,7 @@ respecting and open source. Ajour currently supports Windows, macOS and Linux. - Bulk addon update without any limitations - Remove addons and their dependencies - Ignore addons you don't want to update -- Supports both Retail, Classic Era, Classic Tbc, Classic Wotlk, Ptr and Beta versions of - World of Warcraft +- Supports Retail, Classic Era, Classic TBC, Classic WotLK, PTR and Beta versions of WoW. - 10+ handcrafted themes to choose between - [Ability to add your own custom themes](#themes) - Ability to backup your whole UI, including all settings from WTF From c2c13390167bb3699bb1b6e495ece1fda25e7040 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:42:25 +0100 Subject: [PATCH 07/16] Update INSTALL.md --- INSTALL.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index d5622a20..945d0bc0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -73,7 +73,9 @@ If your system has extra dependencies, and they are not listed here please creat a [pull-request](https://github.com/ajour/ajour/pulls) or open a [issue](https://github.com/ajour/ajour/issues). ### Development + #### Linux / Windows / macOS + ```sh cargo run ``` @@ -93,6 +95,7 @@ target/release/ajour ``` #### macOS + ```sh make app cp -r target/release/osx/Ajour.app /Applications/ From 8605909b88751422f6769c44021b9309c9d5c203 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:43:34 +0100 Subject: [PATCH 08/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab18c98f..eac6f0ec 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ respecting and open source. Ajour currently supports Windows, macOS and Linux. - Bulk addon update without any limitations - Remove addons and their dependencies - Ignore addons you don't want to update -- Supports Retail, Classic Era, Classic TBC, Classic WotLK, PTR and Beta versions of WoW. +- Supports Retail, Classic Era, TBC, WotLK, PTR and Beta versions of WoW. - 10+ handcrafted themes to choose between - [Ability to add your own custom themes](#themes) - Ability to backup your whole UI, including all settings from WTF From a60de7688eacc38b1059c4e92a7e484ce56ddb2d Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 02:48:55 +0100 Subject: [PATCH 09/16] cargo fmt fixes --- build.rs | 2 +- crates/core/src/catalog.rs | 3 ++- crates/core/src/config/wow.rs | 16 ++++------------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/build.rs b/build.rs index 20bab78f..d09a866f 100644 --- a/build.rs +++ b/build.rs @@ -12,6 +12,6 @@ fn main() { Ok("linux") => { // noop } - tos => panic!("unknown target os {:?}!", tos) + tos => panic!("unknown target os {:?}!", tos), } } diff --git a/crates/core/src/catalog.rs b/crates/core/src/catalog.rs index 9ba3f135..5b25b5e7 100644 --- a/crates/core/src/catalog.rs +++ b/crates/core/src/catalog.rs @@ -7,7 +7,8 @@ use isahc::AsyncReadResponseExt; use serde::{Deserialize, Serialize}; //const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/catalog/main/catalog-0.2.0.json"; -const CATALOG_URL: &str = "https://raw.githubusercontent.com/sikrinick/ajour-catalog/main/catalog-0.3.0.json"; +const CATALOG_URL: &str = + "https://raw.githubusercontent.com/sikrinick/ajour-catalog/main/catalog-0.3.0.json"; type Etag = Option; diff --git a/crates/core/src/config/wow.rs b/crates/core/src/config/wow.rs index f2ae1560..10ae29ac 100644 --- a/crates/core/src/config/wow.rs +++ b/crates/core/src/config/wow.rs @@ -50,9 +50,7 @@ pub enum Flavor { alias = "bcc" )] ClassicTbc, - #[serde( - alias = "wotlk" - )] + #[serde(alias = "wotlk")] ClassicWotlk, #[serde(alias = "ClassicPTR")] ClassicPtr, @@ -80,9 +78,7 @@ impl Flavor { // Fixme. Fake value, as CurseForge is ignored "wow_wotlk".to_owned() } - Flavor::ClassicTbc => { - "wow_burning_crusade".to_owned() - } + Flavor::ClassicTbc => "wow_burning_crusade".to_owned(), Flavor::ClassicEra | Flavor::ClassicEraPtr => "wow_classic".to_owned(), } } @@ -91,12 +87,8 @@ impl Flavor { pub(crate) fn hub_format(self) -> String { match self { Flavor::Retail | Flavor::RetailPtr | Flavor::RetailBeta => "retail".to_owned(), - Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => { - "wotlk".to_owned() - }, - Flavor::ClassicTbc => { - "burningCrusade".to_owned() - } + Flavor::ClassicWotlk | Flavor::ClassicPtr | Flavor::ClassicBeta => "wotlk".to_owned(), + Flavor::ClassicTbc => "burningCrusade".to_owned(), Flavor::ClassicEra | Flavor::ClassicEraPtr => "classic".to_owned(), } } From 8f8b3557e9466409b3a5e19d884231be49e1d6bd Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 03:04:32 +0100 Subject: [PATCH 10/16] Fixes for rustfmt, clippy and Github actions --- .github/workflows/commit_to_pr_body.yml | 2 +- .github/workflows/continuous-integration.yml | 10 +++++----- .github/workflows/markdown_lint.yml | 2 +- .github/workflows/pull_poeditor_translations.yml | 2 +- .github/workflows/release_to_crates.yml | 2 +- .github/workflows/release_to_draft.yml | 4 ++-- .github/workflows/security-audit.yml | 2 +- crates/widgets/src/renderer/table_row.rs | 4 ++-- crates/widgets/src/widget/header.rs | 8 ++++---- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/commit_to_pr_body.yml b/.github/workflows/commit_to_pr_body.yml index 5a8a38bb..6cb35e70 100644 --- a/.github/workflows/commit_to_pr_body.yml +++ b/.github/workflows/commit_to_pr_body.yml @@ -7,7 +7,7 @@ name: Pull Request updated jobs: history: name: Pull Request Body - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 if: startsWith(github.event.pull_request.head.ref, 'release/') steps: - name: Pull Request Body diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index fa7dc6fe..c8865d30 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -15,7 +15,7 @@ name: Continuous-integration jobs: check: name: Check - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 @@ -41,7 +41,7 @@ jobs: test: name: Test Suite - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - name: Install dependencies @@ -69,7 +69,7 @@ jobs: fmt: name: Rustfmt - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 @@ -85,7 +85,7 @@ jobs: clippy: name: Clippy - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 @@ -108,7 +108,7 @@ jobs: poeditor: name: POEditor - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - name: Push terms to POEditor diff --git a/.github/workflows/markdown_lint.yml b/.github/workflows/markdown_lint.yml index c7604bde..b551cea0 100644 --- a/.github/workflows/markdown_lint.yml +++ b/.github/workflows/markdown_lint.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: linting: name: "Markdown linting" - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 name: Check out the code diff --git a/.github/workflows/pull_poeditor_translations.yml b/.github/workflows/pull_poeditor_translations.yml index 297bb1b5..b25add4a 100644 --- a/.github/workflows/pull_poeditor_translations.yml +++ b/.github/workflows/pull_poeditor_translations.yml @@ -3,7 +3,7 @@ on: workflow_dispatch jobs: createPullRequest: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/release_to_crates.yml b/.github/workflows/release_to_crates.yml index d2592863..517ad0fd 100644 --- a/.github/workflows/release_to_crates.yml +++ b/.github/workflows/release_to_crates.yml @@ -6,7 +6,7 @@ on: jobs: create-release: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release_to_draft.yml b/.github/workflows/release_to_draft.yml index f785716c..af494b72 100644 --- a/.github/workflows/release_to_draft.yml +++ b/.github/workflows/release_to_draft.yml @@ -107,7 +107,7 @@ jobs: name: Create Release outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -171,7 +171,7 @@ jobs: asset_name: ajour-noselfupdate-macos.tar.gz asset_type: application/gzip - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 8fd84584..146b528c 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -4,7 +4,7 @@ on: - cron: '0 0 * * *' jobs: audit: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 # https://github.com/actions/runner-images/issues/6697 steps: - uses: actions/checkout@v2 - uses: actions-rs/audit-check@v1 diff --git a/crates/widgets/src/renderer/table_row.rs b/crates/widgets/src/renderer/table_row.rs index 78c0e5f5..42113f87 100644 --- a/crates/widgets/src/renderer/table_row.rs +++ b/crates/widgets/src/renderer/table_row.rs @@ -37,9 +37,9 @@ where if style.background.is_some() { let background = Primitive::Quad { bounds: Rectangle { - x: bounds.x + style.offset_left as f32, + x: bounds.x + style.offset_left, y: bounds.y, - width: bounds.width - style.offset_right as f32, + width: bounds.width - style.offset_right, height: custom_bounds.height, }, background: style diff --git a/crates/widgets/src/widget/header.rs b/crates/widgets/src/widget/header.rs index 8d4aacf3..ba2db47a 100644 --- a/crates/widgets/src/widget/header.rs +++ b/crates/widgets/src/widget/header.rs @@ -160,8 +160,8 @@ where if self.state.resizing || in_bounds { let child_len = self.children.len(); - let start_offset = if self.left_margin { 1 } else { 0 }; - let end_offset = if self.right_margin { 1 } else { 0 }; + let start_offset = usize::from(self.left_margin); + let end_offset = usize::from(self.right_margin); let dividers = self .children @@ -232,9 +232,9 @@ where let max_width = left_width + right_width - 30.0; - let left_width = (left_width + delta).max(30.0).min(max_width) as u16; + let left_width = (left_width + delta).clamp(30.0, max_width) as u16; let left_name = &self.names[self.state.resizing_idx - start_offset]; - let right_width = (right_width - delta).max(30.0).min(max_width) as u16; + let right_width = (right_width - delta).clamp(30.0, max_width) as u16; let right_name = &self.names[self.state.resizing_idx + 1 - start_offset]; self.trigger_resize( From 2034ea8f19f1f1a890c75dfe2171d99da945ee41 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 11:28:17 +0100 Subject: [PATCH 11/16] Fix for Ukrainian naming --- crates/core/src/config/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/core/src/config/mod.rs b/crates/core/src/config/mod.rs index 8bfbfdba..ebf20c8e 100644 --- a/crates/core/src/config/mod.rs +++ b/crates/core/src/config/mod.rs @@ -326,7 +326,7 @@ impl std::fmt::Display for Language { Language::Spanish => "Español", Language::Swedish => "Svenska", Language::Turkish => "Türkçe", - Language::Ukrainian => "Yкраїнська", + Language::Ukrainian => "Українська", } ) } From ae65c530e1ace674d33e84283fbbb4f51dd1856b Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 11:31:06 +0100 Subject: [PATCH 12/16] Added TODO --- TODO.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..27f7111e --- /dev/null +++ b/TODO.md @@ -0,0 +1,6 @@ +# Plans + +- `Wago.io` support +- `Github` support +- `CurseForge` support +- Categories \ No newline at end of file From e4f67810240fb695617a3c1d8917dd5bd4a2feda Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 12:23:53 +0100 Subject: [PATCH 13/16] Markdown fix --- TODO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 27f7111e..d3ee70c4 100644 --- a/TODO.md +++ b/TODO.md @@ -3,4 +3,4 @@ - `Wago.io` support - `Github` support - `CurseForge` support -- Categories \ No newline at end of file +- Categories From e88dc71231f4d81f199931e09377482dc8577a22 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 16:00:24 +0100 Subject: [PATCH 14/16] Depends on main ajour-catalog --- crates/core/src/catalog.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/core/src/catalog.rs b/crates/core/src/catalog.rs index 5b25b5e7..3c4e5e75 100644 --- a/crates/core/src/catalog.rs +++ b/crates/core/src/catalog.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; //const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/catalog/main/catalog-0.2.0.json"; const CATALOG_URL: &str = - "https://raw.githubusercontent.com/sikrinick/ajour-catalog/main/catalog-0.3.0.json"; + "https://raw.githubusercontent.com/ajour/ajour-catalog/main/catalog-0.3.0.json"; type Etag = Option; From 3f47d0e00407ad4dc4909b3f6327f1bc4e8a1007 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 16:00:47 +0100 Subject: [PATCH 15/16] Depends on main ajour-catalog --- crates/core/src/catalog.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/core/src/catalog.rs b/crates/core/src/catalog.rs index 3c4e5e75..cb56a11f 100644 --- a/crates/core/src/catalog.rs +++ b/crates/core/src/catalog.rs @@ -6,7 +6,6 @@ use chrono::prelude::*; use isahc::AsyncReadResponseExt; use serde::{Deserialize, Serialize}; -//const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/catalog/main/catalog-0.2.0.json"; const CATALOG_URL: &str = "https://raw.githubusercontent.com/ajour/ajour-catalog/main/catalog-0.3.0.json"; From 70fa6079113e481158913e79ff8e86760f36b048 Mon Sep 17 00:00:00 2001 From: Mykyta Sikriier Date: Sun, 18 Dec 2022 16:03:51 +0100 Subject: [PATCH 16/16] Removed TODO --- TODO.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 TODO.md diff --git a/TODO.md b/TODO.md deleted file mode 100644 index d3ee70c4..00000000 --- a/TODO.md +++ /dev/null @@ -1,6 +0,0 @@ -# Plans - -- `Wago.io` support -- `Github` support -- `CurseForge` support -- Categories