aboutsummaryrefslogtreecommitdiff
path: root/src-tauri/src/main.rs
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-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-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-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-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-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.
2022-12-02refactor: remove useless debug printRemy Raes
2022-11-28style: Auto-format all Rust code (#84)GeckoEidechse
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-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: 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-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.
2022-11-02refactor: Return error string instead of anyhow!() (#36)GeckoEidechse
All that is returned as the error type is a string so there's no point in using a custom error type when we can just have the error type be a string. Co-authored-by: Remy Raes <contact@remyraes.com>
2022-11-02refactor: Make all functions async (#35)GeckoEidechse
This way none of them are run on main thread and as such if a function panics, it will only crash that specific thread allowing the rest of the application to survive. The only exception is `force_panic()` as its purpose is hard crashing the application. From the frontend side of things, `invoke()` is already async, so no frontend changes are needed.
2022-10-21feat: Add initial skeleton for ModsView (#27)GeckoEidechse
* feat: Backend code to get list of installed mods For now simply parses `enabledmods.json`. Note that this file will not be up-to-date if the user just installed a mod but hasn't launched Northstar yet. * feat: Empty skeleton page for ModsView Will be populated later with list of installed mods * chore: Remove leftover print statement
2022-10-20refactor: Various formatting and fixes (#23)GeckoEidechse
* refactor: Add error return type * style: Auto-format Only minor changes, did not take over all changes from auto-format. * refactor: Rename function to get FC version number To make it more clear which version number we're getting (FlightCore vs Northstar)
2022-10-19refactor: Use `Result<>` return type for Linux checks (#21)GeckoEidechse
* refactor: Use result return type for Linux checks * refactor: Store min required ldd version in const This way we only need to update a single variable in case min required version changes.
2022-10-18Add ldd --version check for Linux (#10)Salmon
2022-10-05feat: Add backend function to check if debug modeGeckoEidechse
Useful for having different UI between dev and release
2022-09-29Add backend function to disable all mods but corearchive/pre-ui-mergeGeckoEidechse
Should help with fixing a Northstar install in the case of conflicting mods.
2022-09-29Add ability to enable/disable modsGeckoEidechse
2022-09-28Add backend logic to parse `enabledmods.json`GeckoEidechse
2022-09-28Auto-formatGeckoEidechse
2022-09-24Add code skeleton to verify game filesGeckoEidechse
Once done, should help with some tickets.
2022-09-23Show if debug in version numberGeckoEidechse
2022-09-22Remove left-over functions from original templateGeckoEidechse
2022-09-22Add initial functionality to get NS log filesGeckoEidechse
2022-09-20Make button to select NS RC persistentGeckoEidechse
Uses a tauri plugin for persistent store behind the scenes to persist values over restarts of the application.
2022-09-20Periodically check if Northstar is runningGeckoEidechse
2022-09-16Show in UI if FlightCore out-of-dateGeckoEidechse
To show user if application is outdated should self-update somehow not work.
2022-09-14Support switching between main release and RCsGeckoEidechse
State is not saved between launches currently.
2022-09-14Use variable instead of hard-coded stringGeckoEidechse
2022-09-14Show error message in panicGeckoEidechse
2022-09-11Check if Origin is runningGeckoEidechse
2022-09-10Auto-formatGeckoEidechse
2022-09-10Move launching Northstar to lib.rs source fileGeckoEidechse
2022-09-10Move get host OS function to lib.rsGeckoEidechse
2022-09-10Auto-formatGeckoEidechse