aboutsummaryrefslogtreecommitdiff
path: root/src-tauri/src
AgeCommit message (Collapse)Author
2023-02-14refactor: Get TS package API response from backend (#168)GeckoEidechse
* refactor: Get TS package API response from backend Previously Thunderstore package index was done in frontend. Should be moved to backend instead as backend is reponsible for such tasks while frontend should just be used to store and display information. * refactor: Filter TS API response in backend * refactor: Rename function Makes it more descriptive what it does * refactor: Use gen. binds instead of duped struct Replaces the current TypeScript interface defintions with autogenerated bindings. * fix: Properly type variable * fix: Correct imported path of interface file * fix: Update struct field types to fix typing issue i32 should be big enough unless Thunderstore and Northstar suddenly becomes really huge and we start seeing over 4 million downloads on some mod * fix: Correct imported path of interface file
2023-02-13feat: Better stacktrace in Sentry dashboard (#175)GeckoEidechse
Enable attaching stacktrace to see the function in which the crash happened.
2023-02-11refactor: Move various consts to `constants.rs` (#162)GeckoEidechse
* refactor: Move list of core mods to consts source Move the list of core Northstar mods to constants.rs * fix: Add missing newline * refactor: Move list of blacklisted mods to consts source file * refactor: Move list of TF2 Origin IDs to consts source file
2023-02-09feat: Add version number to user-agent (#173)GeckoEidechse
* feat: Add version number to user-agent Uses a crate that allows for formatting at compile time. * fix: Add comment
2023-02-07feat: Show mod version in LocalMods View (#159)GeckoEidechse
* refactor: Parse using serde deserialisation * refactor: Parse using serde deserial. (TS mod str) Reduce code by making use of serde deserialisation. Still supports legacy method * chore: Remove commented out fields While useful, it just made the code messy... * feat: Show mod version in LocalMods view * refactor: Move mod version to new line in source code Makes diffing in git easier * fix: Hide version number if not available
2023-02-06chore: Bump libthermite version to 0.5.2 (#163)GeckoEidechse
And fix corresponding code that broke in the process Basically just removing `await`s as the networking functions are no longer async.
2023-02-06refactor: Parse using serde deserialisation (#158)GeckoEidechse
* refactor: Parse using serde deserialisation * refactor: Parse using serde deserial. (TS mod str) Reduce code by making use of serde deserialisation. Still supports legacy method * chore: Remove commented out fields While useful, it just made the code messy...
2023-02-05feat: Auto-generate TS bindings (#140)GeckoEidechse
* feat: Initial trial to auto-generate TS bindings That way instead of manually duplicating code, we can just run `cargo test` to generate them. * fix: Update forgotten imports * refactor: Move FlightCoreVersion to autogen bind TypeScript binding autogenerated from Rust code * refactor: Move ReleaseInfo to autogen binding TypeScript binding autogenerated from Rust code * docs: Explain how to generate TS binds from Rust * feat: Check for binding changes in CI Checks for uncommitted binding changes in CI and fails if they differ * style: Formatting fixes
2023-02-02fix: Prevent ModsView from crashing if Northstar is not installed (#152)Jan
2023-02-02refactor: Deal with `fs::read_dir` failure instead of checking if exists (#155)Jan
* refactor: Deal with fs::read_dir failure instead of checking if exists
2023-01-31refactor: Remove unnecessary use of anyhow (#150)GeckoEidechse
2023-01-22chore: Autoformat Rust source files (#143)GeckoEidechse
2023-01-22fix: Remove unused serde import in `main.rs` (#142)GeckoEidechse
fix: Remove unused serde import in main.rs Seems like I forgot to remove it when I did some code refactoring
2023-01-22fix: Properly parse mod string (#141)GeckoEidechse
2023-01-13feat: Add backend code for getting playercount (#135)GeckoEidechse
* feat: Initial backend code to get the playercount from the Northstar master server together with servercount * fix: Push correct backend code * feat: Load playercount on application load and show on PlayView * refactor: Store global const in separate file Moved user agent there for now * refactor: User user agent from global const * refactor: Move masterserver URL into global const * refactor: Remove temporary variable * fix: Do proper typing for playercount return value * feat: Change text if unable to load playercount So instead of showing some wrong value, we just say that we were unable to load it. * fix: Remove leftover print statement * refactor: Move struct to library source file * fix: Remove break element * fix: Remove frontend display of playercount This allows for separate PR for adding backend code early. * refactor: serverlist endpoint var to global const
2023-01-13refactor: Bump libthermite (#133)GeckoEidechse
* chore: Bump libthermite to v0.4.0-rc.1 And update broken code in FlightCore accordingly * chore: Bump libthermite to v0.4.0 And update broken code in FlightCore accordingly * feat: Parse TS mod string using new standard Instead of reading `mod.json`, we now build Thunderstore mod string using `manifest.json` and `thunderstore_author.txt`. The old method for reading is still supported for now but will likely be replaced by a converted function in the future. See also discussion in https://github.com/0neGal/viper/issues/165
2023-01-08feat: Delete given Thunderstore mod (#111)GeckoEidechse
* feat: Expose installed NS mod directory This allows other functions to get a mod directory directly which is useful for e.g. deleting a mod. * feat: Add button to delete Northstar mod * refactor: Return vector of NorthstarMod instead of unnamed Tuples * feat: Delete given Thunderstore mod * refactor: replace information button by a dropdown menu with remove item * refactor: only display removal mod option if said mod is installed * feat: only display dropdown menu for installed mods * refactor: Remove leftover print statement * chore: Remove leftover todo comment * feat: Show confirm warning before deleting mod * refactor: Call func directly instead of proxy Removes the `func_caller` pattern * fix: Call reloading mods after attempted delete * feat: Hook up deleting mod backend function Now clicking "Remove Mod" calls the appropriate backend function that removes the corresponding mod. * refactor: Call func directly instead of proxy Removes the `func_caller` pattern * style: Autoformat * feat: Support removing outdated mods No longer include the version number in the comparison check * fix: Rephrase error message * feat: Show pop-up confirmation before deleting mod for Thunderstore mod in ThunderstoreView Co-authored-by: Alystrasz <contact@remyraes.com> Co-authored-by: Remy Raes <raes.remy@gmail.com>
2023-01-07refactor: Store global const in separate file (#131)GeckoEidechse
Moved user agent there for now
2023-01-04feat: Add button to delete Northstar mod (#110)GeckoEidechse
* feat: Expose installed NS mod directory This allows other functions to get a mod directory directly which is useful for e.g. deleting a mod. * feat: Add button to delete Northstar mod * refactor: Return vector of NorthstarMod instead of unnamed Tuples * refactor: Remove leftover print statement * chore: Remove leftover todo comment * feat: Show confirm warning before deleting mod * refactor: Call func directly instead of proxy Removes the `func_caller` pattern * fix: Call reloading mods after attempted delete
2023-01-04refactor: Remove unnecessary caller function pattern (#128)GeckoEidechse
* refactor: Remove unnecessary caller function Instead call `disable_all_but_core` directly * refactor: Remove unnecessary caller function Instead call `get_installed_mods_and_properties` directly * refactor: Remove unused exposed backend function * refactor: Remove unnecessary caller function Instead call `set_mod_enabled_status` directly * refactor: Remove unnecessary caller function Instead call `verify_game_files` directly * refactor: Remove unnecessary caller function Instead call `get_log_list` directly
2023-01-04feat: Show newest version number (#124)GeckoEidechse
* refactor: Move getting new FC version to own func * refactor: Deserialize into object * refactor: Return whole object instead of 2 strings More readable * refactor: Rename variable * refactor: Use fields of object directly instead of assigning to variables first * feat: Expose backend func to get newest FC version and then call it to get newest version number if current is outdated. This way we can display to the user how far behind their currently installed version is.
2023-01-04refactor: Deserialize into struct directly (#127)GeckoEidechse
Instead of deserializing into a generic serde struct and then extracting specific value from it, deserialize directly into the struct we want.
2022-12-20feat: Alternatively check if EA App is running (#115)GeckoEidechse
2022-12-13feat: Start Northstar properly detached (#112)GeckoEidechse
Simply run cmd with `start "" "PATH/TO/NORTHSTAR_EXE"` Co-authored-by: ASpoonPlaysGames <66967891+ASpoonPlaysGames@users.noreply.github.com> Co-authored-by: ASpoonPlaysGames <66967891+ASpoonPlaysGames@users.noreply.github.com>
2022-12-12feat: Expose installed NS mod directory (#109)GeckoEidechse
* feat: Expose installed NS mod directory This allows other functions to get a mod directory directly which is useful for e.g. deleting a mod. * refactor: Return vector of NorthstarMod instead of unnamed Tuples
2022-12-12fix: Make sure all non-core mods get disabled (#103)GeckoEidechse
For this we first rebuild the `enabledmods.json` file. This ensures that all installed mods are actually listed there. The function was originally created before we could rebuild `enabledmods.json` by checking installed mods.
2022-12-05refactor: Move variable to global const (#85)GeckoEidechse
Makes it easier to update/re-use in the future Co-authored-by: Remy Raes <contact@remyraes.com>
2022-12-02refactor: remove useless debug printRemy Raes
2022-12-02fix: Stop opening PS to get Origin game path (#99)GeckoEidechse
Now using a library instead of calling a PowerShell command should prevent the PowerShell window from opening.
2022-12-01feat: Threshold before showing update notification (#98)GeckoEidechse
* feat: Threshold before showing update notification This way we don't spam the end-user with an update notification before an update is fully build and released * fix: Push missing dependencies * fix: Adjust delay to 2 hours
2022-11-30refactor: Remove the "Origin running" check from frontend (#94)GeckoEidechse
* refactor: Remove Origin running check in frontend We already perform the check in the backend. Frontend does not check for OS and as such on Linux will just always tell you that Origin is not running. * feat: Show notification toast, not alert pop-up * refactor: Perform OS check before Origin check
2022-11-28style: Auto-format all Rust code (#84)GeckoEidechse
2022-11-28feat: Rebuild `enabledmods.json` if value not found (#69)GeckoEidechse
* feat: Rebuild enabledmods.json if value not found When toggling a mod on enabled mods that is not present in `enabledmods.json` we would previously just error out. Now we rebuild the `enabledmods.json` file in a Northstar compatible format and then toggle the mod in question. * feat: Handle missing or corrupted enabledmods.json * chore: Remove leftover print statement
2022-11-27feat: Option to launch NS bypassing update check (#59)GeckoEidechse
* feat: Option to launch NS bypassing update check Hidden behind dev view * refactor: Use existing function to launch NS Instead of duplicating code * feat: Adjust button to allow bypassing all checks
2022-11-27refactor: Make var containing core mods pub const (#74)GeckoEidechse
This way we only define them in one place
2022-11-25chore: Update all references of personal repo (#70)GeckoEidechse
and change them to R2NorthstarTools org
2022-11-25refactor: Move function to dedicated module (#67)GeckoEidechse
Getting log files is part of repair and troubleshooting
2022-11-22refactor: Start moving NS related logic to own mod (#63)GeckoEidechse
2022-11-19feat: Return Thunderstore mod string of installed mods. (#56)GeckoEidechse
* refactor: Rename function to better differentiate what it does * refactor: Add TS mod string field to NS mod struct This allows us to expose to frontend which Thunderstore mod a Northstar mod may belong to. Field is optional as not all mods may contain a Thunderstore mod string for example when they were installed manually. * feat: Add TS mod string field to NS mod interace * feat: Parse TS mod string and expose to frontend * fix: Mark unused variable as such
2022-11-19feat: Initial support for installing mods from TS (#32)GeckoEidechse
* feat: Initial support for installing mods from TS This is the basic code needed to install a mod from Thunderstore * refactor: Remove console log, show msg in notif Instead of console logging result message, show it in notification instead. * refactor: Rename function to indicate behaviour Function not only installs but also downloads mod first. Although it does remove downloaded zip post installation. * refactor: Move install logic to dedicated module `mod_management` module didn't exist when this PR was created * chore: Trim single leftover newline * fix: Update code for newer `libthermite` version * feat: Allow installing older versions of mods Installs the given version number instead of only allowing latest. * fix: Explicit error msg for installing NS as mod While it would fail during install anyway, having explicit error message is nicer * feat: Write TS mod string to mod.json Write Thunderstore mod string of installed mod to its `mod.json` This way we can later check whether a mod is outdated based on the Thunderstore mod string * fix: Early return on empty string Prevent trying to install the first mod that matches an early string. We should never pass an empty string in the first place but better safe then sorry. * build: Add dependency for recursive async Needed for recursive mod dependency install * feat: Recursively install mod dependencies * fix: Early catch installing R2modman as mod Just in case to prevent someone trying to install R2modman as a mod. * refactor: Remove debug prints * fix: Allow installing mods having NS as dependency They would previously error out as Northstar cannot be installed as dependency. We now catch that specific error and return Ok(()) * fix: Delete download folder after mod install Deletes download folder after mod install if non-empty. * fix: Do not early leave when dependency is NS Logic error, instead of skipping installing Northstar as dependency it would previously just return early with success. * chore: Remove leftover commented out code
2022-11-14refactor: Move GitHub API fetch to submodule and re-use existing function (#51)GeckoEidechse
* refactor: Import all functions from lib So that I don't need to update the header each time I add/remove a function. * refactor: Move function to submodule Move it to module for GitHub API related tasks. * refactor: Re-use existing func for fetching GH API
2022-11-13chore: Bump libthermite version to 0.3.3 (#49)GeckoEidechse
2022-11-13feat: Add JSON5 support, allows comments in JSON (#50)GeckoEidechse
Some mods have comments in their JSON. Northstar handles it fine, so we should too.
2022-11-13refactor: Splice out GH release API fetch function (#47)GeckoEidechse
So that it can be re-used by other functions later such as for checking newest FlightCore version by checking against GitHub releases.
2022-11-11refactor: Return Result<> for getting NS version (#46)GeckoEidechse
as opposed to using an empty string to indicate an error.
2022-11-10feat: Parse actually installed mods (#38)GeckoEidechse
* feat: Parse actually installed mods Instead of using solely `enabledmods.json` parse the `mod.json` of found mods in `mods` folder. * refactor: Remove leftover print statements * refactor: Move logic into dedicated module * fix: Load mods despite `enabledmods.json` missing Previously we would error out early if `enabledmods.json` was missing despite not actually needing it for mod list. * style: Autoformat
2022-11-09feat: Patch notes (#18)Rémy Raes
* feat: add Rust method to fetch Northstar release notes * feat: fetch release notes on changelog view mount * feat: only transmit some info to frontend GitHub API gives much information about releases, we only need some: name, publication date and content of such release; so other information is not transmitted to UI. * feat: add ReleaseInfo Typescript interface matching Rust struct * feat: display release notes on a timeline * refactor: remove old releases external link * build: add marked dependency * build: add marked types dev dependency * feat: format release notes' markdown * fix: member typo in ReleaseInfo interface * fix: type releases array * fix: open github links in external browser * fix: adjust marked import * refactor: store release notes in store Release notes are now stored in the app store, so we don't have to fetch them multiple times. * fix: notes fetching method is now async * feat: display a loading bar while release notes are being fetched * feat: display dates in white * feat: release notes' dates are human-readable * fix: make menu bar appear on top of release notes view when scrolled * feat: add custom scrollbar * refactor: format releases creation to please reviewer * Update src-tauri/src/github/mod.rs * Update src-tauri/src/github/release_notes.rs * Update src-vue/src/utils/ReleaseInfo.d.ts * fix: augment scrollbar opacity * fix: only display releases' release date (no more time of the day) * fix: adjust Github request user agent * style: add missing end line in src-vue/src/style.css * fix: link formatting only targets GitHub PR links (whose name begins with a #) * fix: timeline element children cannot be bigger than container card
2022-11-07refactor: Move functions to dedicated file (#41)GeckoEidechse
Only a single function for now as a sort of proof-of-concept.
2022-11-03refactor: Rename function to better fit behaviour (#40)GeckoEidechse
2022-11-03fix: Resolve thread crash due to block in async (#39)GeckoEidechse
Set the function to async but it was still using blocking version of reqwest.