aboutsummaryrefslogtreecommitdiff
path: root/src/modules
AgeCommit message (Collapse)Author
6 daysproperly open <select>'s with navigation functions0neGal
6 daysadded requests.check() and uses of it0neGal
Very minimal uses of it, currently it simply checks every 30s and on startup whether a set of domains/endpoints we use work, and if all fail, then we assume something is wrong with the internet.
6 daysskip core mods when doing "Toggle All"0neGal
fixes #252
6 daysMerge pull request #248 from Jan200101/PR/protocol0neGal
feat: support thunderstore ror2mm protocol for installing mods
2024-08-14chore: remove debug loggingJan200101
2024-08-14chore: remove useless try catchJan200101
2024-08-14feat: parse commandLine of secondary instancesJan200101
2024-08-13chore: use existing mod installation logic for r2mm protocolJan200101
2024-08-13chore: rework protocol mod installs to use renderer package listJan200101
This is achieved by sending an IPC event to the renderer and waiting for a reply once Since this is async we return from the function after sending the event and recursively invoke it once the reply arrives The package data is returned a a JSON String because Electron is unable to copy the Object over IPC
2024-08-10revert some localization changesJan200101
2024-08-10fix: prevent multiple missing-perms routines from startingJan200101
2024-08-10chore: prevent gamepath permission alert from reopening on same gamepathJan200101
Co-authored-by: 0neGal <mail@0negal.com>
2024-08-05chore: set default folder argumentJan200101
2024-08-05feat: test gamepath permissions by creating a fileJan200101
2024-08-04feat: add error handler for streaming unzipJan200101
2024-08-04feat: support thunderstore ror2mm protocol for installing modsJan200101
2024-06-23make sure "libraryfolders" exists in VDF files0neGal
2024-06-18Merge pull request #229 from 0neGal/linux-launch-v20neGal
feat: Linux launch support v2
2024-06-14verify VDF files gets parsed correctly0neGal
2024-06-09Merge branch 'main' into linux-launch-v2linux-launch-v20neGal
2024-06-09fixed missing/renamed IPC events0neGal
Too busy with the frontend, and forgor to change the main process IPC event listeners, whoopsie.
2024-06-08initial commit to better modularize frontend0neGal
Far from done, but this pretty much splits everything inside `src/app/main.js` into separate files.
2024-05-31fixed error when enabledmods.json cant be parsed0neGal
2024-05-02Merge branch 'main' into linux-launch-v20neGal
2024-04-30fixed killing EA Desktop at times failing on Linux0neGal
Pesky EA Desktop being annoying as always, leaving behind processes, to be fair, I don't exactly think you're supposed to be killing it it like this, but oh well, it seems to function now.
2024-04-30fixed game sometimes not shown as running on Linux0neGal
This didn't happen in all cases, so it took me until randomly discovering it recently, for me to actually realize there was a problem, and then subsequently fixing it.
2024-04-30fixed #231 (hopefully)0neGal
Did an oopsie whoopsie doopsie, now its unoopsied
2024-04-29actual Linux launch support0neGal
The "Steam (Auto)" launch method should ideally work in all scenarios, ideally! Obviously, I can't and haven't tested in every environment, but I've attempted to make sure it functions. Launching Vanilla and Northstar works just fine, custom launch arguments also work just fine, it works with normal Steam, Flatpak Steam, and as a fallback with the Steam Browser Protocol (`steam://`) There's also the option to set your own/custom launch command for both the Vanilla and Northstar launch options. How well they work will of course depend on what the user set them to. "Steam (Auto)" attempts to pick the right Steam launch method depending on what's available, if the Steam executable can be found, it'll use "Steam (Executable)", if it cant and Flatpak is found on top of an install of Steam through Flatpak, then "Steam (Flatpak)" is used, if all of that fails, then we attempt to use "Steam (Protocol)" Some toasts will be shown if you attempt to run the game with either "Steam (Executable)" or "Steam (Flatpak)" and they cant find the game/Steam. This isn't an issue with "Steam (Auto)"
2024-04-29added launch method settings0neGal
2024-02-05switch to unzip-stream over unzipperv1.11.00neGal
unzipper apparently has a bug that causes extracted files to be corrupted, switching to unzip-stream may not be the best long term, but it at least solves this corrupting problem!
2024-02-05fixed trying to remove core mods that dont exist0neGal
Some code relating to removing core mods when updating/installing didn't account for `R2Northstar/mods` not even existing, thought I made checks for that already, managed to mess them up, oopsie whoopsie.
2024-02-04removed use of "vipertmp" folder0neGal
Previously we downloaded the Northstar archive and packages to a folder named "vipertmp" in the system's cache folder, now that's just moved into "Viper/Temp" (still inside the system's cache folder) With this, all Viper cache is stored in the same folder in the system's cache folder... Wait... Why wasn't it always like this? Oh right, my past stupidity and lack of foresight. Oh well. "vipertmp" still gets deleted when clearing install cache, along with the new folder, so doing so will by itself clean up the old folder.
2024-02-04deleting request cache now deletes old cache file0neGal
We previously had a requests cache file just named `viper-requests.json` in the system's cache folder, we now also delete that alongside the current file, simply cleaning up a user's cache folder, as that file will not be used anymore. We also technically had a file named `requests.json`, however the name is too vague and could potentially (unlikely, but oh well) delete something that isn't actually Viper's older requests cache file.
2024-02-04fixed "Northstar is not installed!" when updating0neGal
After Northstar has been downloaded, we start extracting into the gamepath, this causes Viper to think Northstar isn't installed, which is fine, except it'd whine about it when many `src/modules/mods.js` functions we're called, some of which get run on an interval, so it'd often lead you to have multiple "Northstar is not installed!" messages whilst updating Northstar. Which is quite unneccesary and it may also, be able to confuse the user, as to whether something has gone wrong.
2024-02-04merge src/modules/window.js into src/win.js0neGal
I intended to do this when creating src/win.js, but wanted it to be in a different commit, as that commit made pretty large changes as well. So no more `main_win`, `win_show` and confusion between what `win` is.
2024-02-04remove newlines from version.titanfall()0neGal
2024-02-04move IPC events into their respective modules0neGal
I've not been able to find anything that breaks from this, as I've gone through every IPC event that got moved, to ensure it still functions, and all the breakage I found has since been fixed. IPC events that dont fit in any particular module is also now in the new file named `src/app/modules/ipc.js` There's also another module `src/win.js`, which lets you get the `BrowserWindow` outside of `src/index.js` I also took the oppertunity to clean up some of the code when moving it around, and adding a couple comments, as some of it was quite horrid.
2024-02-03requests.js ignores cache time when no internet0neGal
This means if you dont have any internet, but there's a cached requests, it'll use that, even if it was cached a very long time ago. This just attempts to eliminate errors. This can still be turned off for things where you dont want this to happen, notably the masterserver status.
2024-02-03src/modules/settings.js now provides a function0neGal
This fixes a couple issues where the main process wouldn't actually get changes made to the settings, this fixes that. On top of this, changing settings is now done with `settings.set()` There shouldn't be any breakage from this change, but I suppose it is possible. Especially because the `settings()` function still does contain backup options set, meaning `settings.nsargs` is technically still valid, but dont expect it to actually be updated when that variable is changed, its merely here to avoid any problems.
2024-01-29prevent multiple updates running simultaneously0neGal
We're the renderer to request for an update multiple times, then it'd simply start both updates, at the same time, causing all kinds of issues. This was only really realistically possible to happen if you were to manually check for updates whilst an update automatically were to be checked from right before then. As an example, when Viper starts up, it'll by default check for updates for itself, then Northstar, if you within that time frame checked for updates manually, it'll run both. Now however, we check if an existing update is occurring, and do nothing if so, this is both for Viper and Northstar updates.
2024-01-24entirely refactor src/modules/requests.js0neGal
Its now been split into 2, requests.js and releases.js, the latter simply gets relevant info from GitHub release pages. The prior however gives simple functions for doing `GET` requests, and caching the result, and then transparently it'll use that cache when you request it next time. On top of this, some requests made by the renderer will now also use this, and this in turn ends up making loading the mod browser much faster. As instead of having to request the list of packages from Thunderstore, we can simply load the result of an old request. The current lifetime of the cache is 5 minutes, however this can also easily be adjusted. This also moves the cached requests away from <cache_folder>/viper-requests.json, and over to <cache_folder>/Viper/cached-requests.json
2024-01-12deprecate ns_startup_args.txt0neGal
Ideally this has no side effects, however, I've not actually tested if the launching does properly use the launch arguments, due to not having a Windows device on hand. This will be tested later... We still attempt to load launch arguments from `ns_startup_args.txt` if none is set in the settings. However, this may be removed in the future.
2024-01-11updating Northstar now deletes existing core mods0neGal
This solves #223
2023-11-08added progress bar to download and extraction0neGal
This takes a bit of code from #220 to implement percentage progress on the download, then with the new pseudo element on the Launch button, we can have a slight progress bar inside the button, along with percentages, and it all works handy dandy. This may not be finished, but it's definitely far there.
2023-09-16added buttons for fixing some problems and alike0neGal
I will likely add more buttons in the future, but for now this is most of the ones a user could need to repair problems.
2023-09-16more minor fixes to the change in lang files0neGal
2023-09-16handle gamepaths with missing read/write perms0neGal
We now show an alert if the gamepath is detected to be missing read/write perms, both when selecting the gamepath initially, when it gets auto detected, but also after it's selected, passively.
2023-09-16made some lang keys far more logical0neGal
Most of these are from back when Viper was originally started, I also removed a few keys as they were no longer in use, but were forgotten about, most of these are from pre-v1.0.0 aka, the old smaller UI
2023-09-16added button to force kill game0neGal
2023-09-13fixed settings file refusing to save if invalid0neGal
This is quite counter intuitive, as, if it's invalid, how do we re-validate it, if we can't even save it again. This existed here because the idea was for the re-validation to occur somewhere else, and to make sure incorrectly formatted data wasn't being given to this function. Now the function simply resets the config, a restart may be required to add missing settings, in case the parsed `conf` doesn't have all keys.