45 Commits

Author SHA1 Message Date
Maarten
b3f8b9360d refactor(workflow): only run action on manual trigger 2024-05-04 14:17:25 +02:00
dependabot[bot]
27b474ca3c chore(deps-dev): bump electron from 29.2.0 to 30.0.2 (#182)
Bumps [electron](https://github.com/electron/electron) from 29.2.0 to 30.0.2.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.2.0...v30.0.2)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 13:53:37 +02:00
dependabot[bot]
68ccf63f66 chore(deps-dev): bump eslint from 8.57.0 to 9.1.1 (#177)
Bumps [eslint](https://github.com/eslint/eslint) from 8.57.0 to 9.1.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v9.1.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 13:53:22 +02:00
dependabot[bot]
20567d8f8b chore(deps-dev): bump ejs from 3.1.9 to 3.1.10 (#180)
Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](https://github.com/mde/ejs/compare/v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 13:53:01 +02:00
Maarten van Heusden
c503c2ce51 feat: phase out donations to me 2024-05-04 13:51:47 +02:00
Maarten van Heusden
c403f14e65 chore(docs): rephrase parts of readme.md 2024-05-04 13:43:28 +02:00
Maarten van Heusden
070b5e7d10 chore: update to v2.4.2 2024-05-04 13:23:47 +02:00
Maarten
5b9838cf85 fix(utils): escape % character in passwords (#181) 2024-05-04 13:18:21 +02:00
Maarten
bb978b411f Merge pull request #175 from mmvanheusden/dependabot/npm_and_yarn/electron-29.2.0
chore(deps-dev): bump electron from 29.1.6 to 29.2.0
2024-04-09 08:00:51 +02:00
dependabot[bot]
b2160eda35 chore(deps-dev): bump electron from 29.1.6 to 29.2.0
Bumps [electron](https://github.com/electron/electron) from 29.1.6 to 29.2.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.1.6...v29.2.0)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-08 21:03:10 +00:00
Maarten
75488bff61 Merge pull request #173 from mmvanheusden/dependabot/npm_and_yarn/electron-29.1.6
chore(deps-dev): bump electron from 29.1.5 to 29.1.6
2024-04-02 12:35:25 +02:00
dependabot[bot]
60895e972a chore(deps-dev): bump electron from 29.1.5 to 29.1.6
Bumps [electron](https://github.com/electron/electron) from 29.1.5 to 29.1.6.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.1.5...v29.1.6)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 21:12:04 +00:00
Maarten
6ac1697c2f Merge pull request #172 from mmvanheusden/dependabot/npm_and_yarn/electron-29.1.5
chore(deps-dev): bump electron from 29.1.4 to 29.1.5
2024-03-27 07:38:01 +01:00
dependabot[bot]
88bca2d35a chore(deps-dev): bump electron from 29.1.4 to 29.1.5
Bumps [electron](https://github.com/electron/electron) from 29.1.4 to 29.1.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.1.4...v29.1.5)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 21:25:36 +00:00
Maarten
0ef5469943 Merge pull request #171 from mmvanheusden/dependabot/npm_and_yarn/electron-29.1.4
chore(deps-dev): bump electron from 29.1.1 to 29.1.4
2024-03-23 11:15:55 +01:00
dependabot[bot]
93f2718f0d chore(deps-dev): bump electron from 29.1.1 to 29.1.4
Bumps [electron](https://github.com/electron/electron) from 29.1.1 to 29.1.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.1.1...v29.1.4)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 21:28:55 +00:00
Maarten
0524c3231f Merge pull request #169 from mmvanheusden/dependabot/npm_and_yarn/electron-29.1.1
chore(deps-dev): bump electron from 29.1.0 to 29.1.1
2024-03-17 08:01:53 +01:00
Maarten
8d494e783c Merge pull request #170 from mmvanheusden/dependabot/npm_and_yarn/follow-redirects-1.15.6
chore(deps): bump follow-redirects from 1.15.5 to 1.15.6
2024-03-17 08:01:26 +01:00
dependabot[bot]
0befc10ce2 chore(deps): bump follow-redirects from 1.15.5 to 1.15.6
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-16 23:55:20 +00:00
dependabot[bot]
2b1a287ad8 chore(deps-dev): bump electron from 29.1.0 to 29.1.1
Bumps [electron](https://github.com/electron/electron) from 29.1.0 to 29.1.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.1.0...v29.1.1)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 21:27:10 +00:00
Maarten
2f85e861b6 feat: npm workflow cache 2024-03-05 10:43:52 +01:00
Maarten
11cb943d53 chore: update build workflow 2024-03-05 10:36:33 +01:00
Maarten
3c840bbdb7 chore: update readme stats action 2024-03-05 10:27:57 +01:00
Maarten
c418185984 Merge pull request #168 from mmvanheusden/dependabot/npm_and_yarn/electron-29.1.0
chore(deps-dev): bump electron from 29.0.1 to 29.1.0
2024-03-05 10:20:41 +01:00
dependabot[bot]
2663ad629c chore(deps-dev): bump electron from 29.0.1 to 29.1.0
Bumps [electron](https://github.com/electron/electron) from 29.0.1 to 29.1.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v29.0.1...v29.1.0)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 06:05:55 +00:00
Maarten
a7a98c06e0 Merge pull request #167 from mmvanheusden/dependabot/npm_and_yarn/electron-builder-24.13.3
chore(deps-dev): bump electron-builder from 24.12.0 to 24.13.3
2024-03-05 07:04:55 +01:00
Maarten
e17098e412 Merge pull request #166 from mmvanheusden/dependabot/npm_and_yarn/app-builder-lib-and-electron-builder-24.13.3
chore(deps): bump app-builder-lib and electron-builder
2024-03-05 07:04:37 +01:00
dependabot[bot]
52ee6cd822 chore(deps-dev): bump electron-builder from 24.12.0 to 24.13.3
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 24.12.0 to 24.13.3.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v24.13.3/packages/electron-builder)

---
updated-dependencies:
- dependency-name: electron-builder
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 21:50:14 +00:00
dependabot[bot]
d0b42d36e8 chore(deps): bump app-builder-lib and electron-builder
Bumps [app-builder-lib](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/app-builder-lib) to 24.13.3 and updates ancestor dependency [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder). These dependencies need to be updated together.


Updates `app-builder-lib` from 24.12.0 to 24.13.3
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v24.13.3/packages/app-builder-lib)

Updates `electron-builder` from 24.12.0 to 24.13.3
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v24.13.3/packages/electron-builder)

---
updated-dependencies:
- dependency-name: app-builder-lib
  dependency-type: indirect
- dependency-name: electron-builder
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 21:19:00 +00:00
Maarten
8a0249af18 chore: update AUR URL in README
@zxp19821005
2024-02-29 21:05:10 +01:00
Maarten
849155dc45 Merge pull request #164 from mmvanheusden/dependabot/npm_and_yarn/electron-builder-24.12.0
chore(deps-dev): bump electron-builder from 24.9.1 to 24.12.0
2024-02-27 13:59:13 +01:00
dependabot[bot]
83bff692f5 chore(deps-dev): bump electron-builder from 24.9.1 to 24.12.0
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 24.9.1 to 24.12.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/v24.12.0/packages/electron-builder)

---
updated-dependencies:
- dependency-name: electron-builder
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-27 12:58:56 +00:00
Maarten
0ba456df4f Merge pull request #165 from mmvanheusden/dependabot/npm_and_yarn/electron-29.0.1
chore(deps-dev): bump electron from 28.2.2 to 29.0.1
2024-02-27 13:58:20 +01:00
Maarten
97d1e6ffd1 Merge pull request #163 from mmvanheusden/dependabot/npm_and_yarn/eslint-8.57.0
chore(deps-dev): bump eslint from 8.56.0 to 8.57.0
2024-02-27 13:58:06 +01:00
dependabot[bot]
32559b7b4a chore(deps-dev): bump electron from 28.2.2 to 29.0.1
Bumps [electron](https://github.com/electron/electron) from 28.2.2 to 29.0.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v28.2.2...v29.0.1)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 21:38:01 +00:00
dependabot[bot]
1b4115cd70 chore(deps-dev): bump eslint from 8.56.0 to 8.57.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 21:36:57 +00:00
Maarten
e8e741a908 Merge pull request #159 from mmvanheusden/dependabot/npm_and_yarn/electron-28.2.2
chore(deps-dev): bump electron from 28.2.1 to 28.2.2
2024-02-13 20:59:22 +01:00
dependabot[bot]
0f06a45b9a chore(deps-dev): bump electron from 28.2.1 to 28.2.2
Bumps [electron](https://github.com/electron/electron) from 28.2.1 to 28.2.2.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v28.2.1...v28.2.2)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 21:40:18 +00:00
Maarten
dbf573c8ec Merge pull request #158 from mmvanheusden/dependabot/npm_and_yarn/electron-28.2.1
chore(deps-dev): bump electron from 28.2.0 to 28.2.1
2024-02-10 03:40:44 +01:00
dependabot[bot]
d1ff298cfa chore(deps-dev): bump electron from 28.2.0 to 28.2.1
Bumps [electron](https://github.com/electron/electron) from 28.2.0 to 28.2.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v28.2.0...v28.2.1)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 21:06:24 +00:00
Maarten
7fb7c57367 Merge pull request #155 from mmvanheusden/dependabot/npm_and_yarn/follow-redirects-1.15.5
chore(deps): bump follow-redirects from 1.15.4 to 1.15.5
2024-02-04 00:12:43 +01:00
Maarten
b6566e15fa Merge pull request #157 from mmvanheusden/dependabot/npm_and_yarn/electron-28.2.0
chore(deps-dev): bump electron from 28.1.1 to 28.2.0
2024-02-04 00:12:33 +01:00
dependabot[bot]
6583904bd9 chore(deps-dev): bump electron from 28.1.1 to 28.2.0
Bumps [electron](https://github.com/electron/electron) from 28.1.1 to 28.2.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v28.1.1...v28.2.0)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 21:34:36 +00:00
Maarten
a34d2e4ad9 feat: add steam deck to readme 2024-01-23 10:24:58 +01:00
dependabot[bot]
262864fcd4 chore(deps): bump follow-redirects from 1.15.4 to 1.15.5
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.5.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.5)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 21:10:17 +00:00
10 changed files with 1036 additions and 358 deletions

2
.github/FUNDING.yml vendored
View File

@@ -1 +1 @@
liberapay: barbapapa
custom: https://my.fsf.org/donate

View File

@@ -1,27 +1,24 @@
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
workflow_dispatch
jobs:
build:
runs-on: macos-latest
runs-on: ubuntu-latest
steps:
- name: Check out repositoty
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up nodejs
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
node-version: 20
- name: Set up npm project
run: npm install
- name: Build project
run: npm run buildall
run: npm run build
- name: Move x64 exe
run: cp ./dist/SteamDepotDownloaderGUI*.exe ./SteamDepotDownloaderGUI-${{ github.run_number }}.exe
@@ -39,7 +36,7 @@ jobs:
run: cp `ls -d1 dist/* | grep -E "steamdepotdownloadergui-[0-9]+\.[0-9]+\.[0-9]+\-arm64.zip"` ./SteamDepotDownloaderGUI-${{ github.run_number }}-arm64.zip
- name: Upload artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: SteamDepotDownloaderGUI-${{ github.run_number }}
path: SteamDepotDownloaderGUI-${{ github.run_number }}*.*

View File

@@ -14,6 +14,6 @@ jobs:
steps:
- name: run-ghrs
# Use latest release.
uses: jgehrcke/github-repo-stats@v1.4.1 # Don't use latest release for security reasons (what if the workflow gets taken over by a malicious party)
uses: jgehrcke/github-repo-stats@v1.4.2
with:
ghtoken: ${{ secrets.ghrs_github_api_token }}

113
README.md
View File

@@ -1,13 +1,106 @@
# SteamDepotDownloaderGUI for steam-deck
**This branch houses the Steam Deck-compatible version of SteamDepotDownloaderGUI**
Code is pretty messy, but it (should) work.
<h1 align="center">SteamDepotDownloaderGUI
<hr>
<h4 align="center">A graphical wrapper for DepotDownloader, designed to make downloading older versions of Steam games easy. built using <a href="https://www.electronjs.org" target="_blank">Electron</a>.
<br><br>
<a href="https://www.youtube.com/watch?v=H2COwT5OUOo" target="_blank"><b>Tutorial</b></a> ~
<a href="https://github.com/mmvanheusden/SteamDepotDownloaderGUI/tree/steamdeck-dotnet#steamdepotdownloadergui-for-steam-deck" target="_blank"><b>Steam Deck</b></a> ~
<a href="https://www.youtube.com/watch?v=ogiDAuH3VdY" target="_blank"><b>Subnautica</b></a>
</h4>
1. To use, download the build from [**Here**]()
and run it.
2. Now open the file and click on the gear icon.
3. Click "Auto Download .NET" and wait for it to finish.
4. Should be good to go!
**If any issues arise, please join the [support Discord](discord.com/invite/3qCt4DT5qe) and ask there. **
<p align="center"><a href="https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest"><img src="https://img.shields.io/github/downloads/mmvanheusden/SteamDepotDownloaderGUI/total?color=orange&label=downloads" alt="Download count badge"></a><a href="https://img.shields.io/github/last-commit/mmvanheusden/SteamDepotDownloaderGUI?color=crimson"><img src="https://img.shields.io/github/last-commit/mmvanheusden/SteamDepotDownloaderGUI?color=crimson" alt="Last contribution badge"></a><a href="https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest"><img src="https://img.shields.io/badge/Download -ffbd03?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABd0lEQVRoge2XwUrDQBCGPz3Ee++2UBSvdsGbeLHeFX0lPQhei+8g2AfwSVREK+LJ1oqHUGjRQ7Z0laRJNtldKPPBwoTM7D9/sks2IAiCsKrsAK/AC7DtSmTd1cTAKbAJtIAzVyIuDURGvOFKxKUBL4iB0IiB0IiB0IiB0IiB0IiB0IiB0IgBoA08Ak+AKpCvdO6AGn416zBwDGyRGLljuQmlc9pAEzipKl6HgVtgpOMGSYOdlLyOvtfQ1yPgpgb9WlDAEPjRYwj0jet+yv0iy80ru8AHiyazxiewF6jHXPJMeG3+CoiBy5J1/5dTlWVzAXwD5yXrAJho4YlFbdqesFnzsa6PLWr/PD0bFPAA3GO/YXN7WMspLpLnktweVvooMTPiKDPLHabmLCtpmYF3I96v3E55Doz4zWaCaxYb6Bno4udNRMCR1pzr92wmagFfZH+UfI0xycHPim5gE2Pg0Lb5OU2SVzgAph6anmqtHhWevCAIgh9+AdLMtu/CZhHJAAAAAElFTkSuQmCC" alt="Download latest release badge"></a><a href="https://img.shields.io/endpoint?url=https%3A%2F%2Fhits.dwyl.com%2Fmmvanheusden%2Fsteamdepotdownloadergui.json&color=lightblue"><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fhits.dwyl.com%2Fmmvanheusden%2Fsteamdepotdownloadergui.json&color=lightblue" alt="Visitor count badge"></a><a href="https://my.fsf.org/donate"><img src="https://img.shields.io/badge/Donate-%23A42E2B?logo=gnu" alt="Donation badge"></a><a href="https://www.codefactor.io/repository/github/mmvanheusden/steamdepotdownloadergui/badge/master"><img src="https://www.codefactor.io/repository/github/mmvanheusden/steamdepotdownloadergui/badge/master" alt="CodeFactor badge"></a></p>
<p align="center">
<img alt="Screenshot of the downloader interface" src="screenshot.png"
style="max-width: 60%;"/>
</p>
## Features
* **Cross platform**
- Windows
- <s>macOS</s> (in development™)
- Linux
- [Steam Deck](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/tree/steamdeck-dotnet#steamdepotdownloadergui-for-steam-deck)
* **Cross terminal**
- Gnome Terminal
- Konsole
- xfce4-terminal
- Terminator
- Terminology
- xterm
- Kitty
- LXTerminal
- Tilix
- Deepin Terminal
- cool-retro-term
- Manual: produce a script that can be copy pasted into a terminal of choice
* **Support for anonymous downloads**
## Rewrite
Computer resources are not an all-you-can-eat buffet. The executables weigh on average 103 MB.
That's why in the future, this project is fully switching to a different toolset, probably [gtk-rs](https://gtk-rs.org/).
This framework is more suited as we don't need a whole browser engine just to download files.
## Download
### Windows:
* If you haven't already, install [.NET SDK 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) on your computer.
Then, download the [latest Windows build](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest)
### **Linux:**
#### Arch Linux:
* There is an [AUR package](https://aur.archlinux.org/packages/steamdepotdownloadergui-bin) made. this can be installed using `yay -S steamdepotdownloadergui-bin`.
**This is not maintained by me!!**
#### Other Linux distros:
* **You'll need `unzip`, .NET SDK 6.0.**
* **Ubuntu:**
`sudo apt install unzip dotnet-sdk-6.0`
* **Fedora:**
`sudo dnf install unzip dotnet-sdk-6.0`
* There are several options, AppImage, and a `.zip`, for both x64 and arm64.
[Download latest release](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest)
## How to use
#### Tutorials:
* https://www.youtube.com/watch?v=H2COwT5OUOo How to download older versions of Steam games. rollback steam games tutorial
* https://www.youtube.com/watch?v=ogiDAuH3VdY How to download older versions of Subnautica tutorial
---
**Enter everything you normally would in the DepotDownloader console and select your OS/terminal and click download**
## Credits
This software makes use of the following projects:
- [**DepotDownloader**](https://github.com/SteamRE/DepotDownloader/)
- [Electron](https://www.electronjs.org/)
- [Node.js](https://nodejs.org/)
- [Primer CSS](https://primer.style/css/)
- [follow-redirects](https://github.com/follow-redirects/follow-redirects)
- [Hubut Sans](https://github.com/github/hubot-sans) under [license](https://github.com/github/hubot-sans/blob/05d5ea150c20e6434485db8ffd2277ed18a9e911/LICENSE)
## Donate
I prefer not to receive any donations. If you want to make me happy open an issue and say thanks ;)
Please donate to the [Free Software Foundation](https://my.fsf.org/donate) instead.
## Contribute
If you would like to contribute to SteamDepotDownloaderGUI, please make sure to follow
the [contributing instructions and guidelines](contributing.md).
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to keep code clean and cross-platform compatible.
![forthebadge](https://forthebadge.com/images/featured/featured-built-with-love.svg)

View File

@@ -11,8 +11,7 @@ const {
forceTerminals,
generateRunScript,
createCommandWithTerminal,
platformpath,
findDotnet
platformpath
} = require("./utils")
const electron = require("electron")
const {sep} = require("path")
@@ -33,7 +32,7 @@ function submitForm() {
document.getElementById("dotnetwarning").hidden = true
document.getElementById("dotnetwarning2").hidden = true
document.getElementById("emptywarning").hidden = true
console.info("dotnet is installed and the form is filled in. 🙌")
console.info("dotnet found in PATH")
// create variables for the form values
const username = document.getElementById("username").value
const password = document.getElementById("password").value
@@ -127,19 +126,19 @@ function openRelevantPage(target) {
}
break
case "issues":
console.debug("Opened GitHub issues page 🐞")
console.debug("Opened GitHub issues page")
void electron.shell.openExternal("https://github.com/mmvanheusden/SteamDepotDownloaderGUI/issues/new")
break
case "steamdb":
console.debug("Opened SteamDB instant search page 🔍")
console.debug("Opened SteamDB instant search page")
void electron.shell.openExternal("https://steamdb.info/instantsearch/")
break
case "donate":
console.debug("Opened donation page 💰")
void electron.shell.openExternal("https://liberapay.com/barbapapa/")
console.debug("Opened donation page")
void electron.shell.openExternal("https://my.fsf.org/donate")
break
case "instructions":
console.debug("Opened instructions page 📚")
console.debug("Opened instructions page")
void electron.shell.openExternal("https://github.com/mmvanheusden/SteamDepotDownloaderGUI/#how-to-use")
break
default:
@@ -164,7 +163,6 @@ function fillDefaultValues() {
// [0]: Windows, [1]: macOS [2]: Linux [3]: manual
if (process.platform.toString().includes("linux")) {
document.getElementById("default-os").innerText = "Linux"
document.getElementById("down-dotnet").ariaDisabled = "false"
} else if (process.platform.toString().includes("win")) {
document.getElementById("default-os").innerText = "Windows"
} else if (process.platform.toString().includes("darwin")) {
@@ -259,15 +257,6 @@ ipcRenderer.on("ready", async () => {
console.log("No terminals found in PATH. Continuing with default values") // when no terminals are found on the system, or when linux is not used.
}
await findDotnet().then(() => {
console.log("dotnet found in PATH/local directory!")
document.getElementById("dotnet-found").innerText = "Yes"
}).catch((error) => {
console.log(error)
console.log("dotnet not found in PATH!")
document.getElementById("dotnet-found").innerText = "No"
})
await toggleFormAccessibility(false) //enable the form again
await validateChoice() // updates the 'enabled/disabled' html value of the terminal dropdown.
@@ -289,22 +278,8 @@ platformpath(): ${platformpath()}
ready = false
})
async function downloadDotnetAuto() {
document.getElementById("down-dotnet").ariaDisabled = "true"
await download("https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz")
console.log("Finished downloading dotnet tarball")
await runCommand(`mkdir -p ${platformpath()}/dotnet`)
await runCommand(`tar -xvf ${platformpath()}/dotnet-sdk-8.0.100-linux-x64.tar.gz -C dotnet`)
console.log("Finished extracting dotnet tarball")
await findDotnet() // to make it use the newly downloaded dotnet
document.getElementById("down-dotnet").ariaDisabled = "false" // so the button can be pressed again for whatever reason
}
// Add event listeners to the buttons
window.addEventListener("DOMContentLoaded", () => {
document.getElementById("down-dotnet").addEventListener("click", () => {
if (document.getElementById("down-dotnet").ariaDisabled === "false") downloadDotnetAuto()
})
document.getElementById("dotnetalertbtn").addEventListener("click", () => openRelevantPage("dotnet"))
document.getElementById("smbtn1").addEventListener("click", () => openRelevantPage("issues"))
document.getElementById("smbtn2").addEventListener("click", () => openRelevantPage("steamdb"))

View File

@@ -154,7 +154,7 @@
SteamDB
</div>
<div aria-label="Donate to the authors of the project." class="btn btn-sm ml-2 tooltipped tooltipped-nw mb-1"
<div aria-label="Donate to the Free Software Foundation." class="btn btn-sm ml-2 tooltipped tooltipped-nw mb-1"
id="smbtn3">
<svg fill="#8B949E" height="16" style="display: inline-block; vertical-align: text-bottom;" viewBox="0 0 16 16"
width="16" xmlns="http://www.w3.org/2000/svg">
@@ -175,7 +175,7 @@
</div>
</div>
<div class="settings-surrounding" id="settings-surrounding">
<div class="settings-content" id="settings-content">
<div class="settings-content mx-auto" id="settings-content">
<label class="version-info" id="version-info">UNKNOWN</label>
<h3><b>Settings</b></h3>
<hr>
@@ -263,20 +263,6 @@
type="text"/>
</div>
</div>
<hr>
<h4><b>Experimental settings</b></h4>
<div class="form-group">
<div class="form-group-header">
<label for="os-dropdown">Automatically download dotnet binary</label><br>Linux only. Works for Steam Deck<br>system-wide dotnet has priority over local dotnet.
</div>
<div class="form-group-body" >
<div aria-disabled="true" class="btn" type="button" id="down-dotnet">
Auto Download .NET
</div>
Found: <span class="Counter"><code id="dotnet-found" >none</code></span>
</div>
</div>
</form>
</div>
</div>

1087
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "steamdepotdownloadergui",
"version": "2.4.1",
"version": "2.4.2",
"description": "DepotDownloader Electron frontend",
"main": "main.js",
"scripts": {
@@ -30,12 +30,12 @@
},
"homepage": "https://github.com/mmvanheusden/SteamDepotDownloaderGUI#readme",
"devDependencies": {
"electron": "^28.1.1",
"electron-builder": "^24.9.1",
"eslint": "^8.56.0"
"electron": "^30.0.2",
"electron-builder": "^24.13.3",
"eslint": "^9.1.1"
},
"dependencies": {
"follow-redirects": "^1.15.4",
"follow-redirects": "^1.15.6",
"v8-compile-cache": "^2.4.0"
}
}

View File

@@ -14,7 +14,7 @@
/* The grey part */
.settings-surrounding {
display: block;
display: none;
position: fixed;
z-index: 1;
left: 0;
@@ -31,28 +31,19 @@
overflow: auto;
/*noinspection CssUnresolvedCustomProperty*/
background-color: var(--bgColor-default, var(--color-canvas-default));
margin-top: 5px;
margin-left: auto;
margin-right: auto;
padding: 13px 20px 13px;
margin: 5%;
padding: 25px;
border: 1px solid #b4dede;
width: 90vw; /* 90vw -> 90% */
height: 97vh; /* 90vh -> 90% */
height: 90vh; /* 90vh -> 90% */
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(0, 0, 0, 0.1);
}
/* Hide the stupid scrollbar */
.settings-content::-webkit-scrollbar {
display: none;
}
.hide {
display: none;
}
hr {
margin-top: 6px;
margin-bottom: 6px;
border: 0;
height: 1px;
background: #0d1117 linear-gradient(to right, #0d1117, #ccc, #0d1117);

View File

@@ -1,5 +1,4 @@
var defaultTerminal = ""
let dotnetPath = ""
/**
* Checks if all required fields are filled and if dotnet is installed in the system path.
@@ -12,7 +11,6 @@ let dotnetPath = ""
* `noDotnet` -> `dotnet` has not been found in the path.
*/
function preDownloadCheck() {
const {exec} = require("child_process")
return new Promise((resolve, reject) => {
// Check if all fields are filled
const formInputs = document.forms["theform"]
@@ -29,16 +27,30 @@ function preDownloadCheck() {
}
// Check if dotnet is found, depending on the platform
// uses dotnetPath, which was populated by findDotnet().
// dotnet / dotnet.exe -> installed in system path
// ./dotnet/dotnet -> installed in local path. (for steam deck)
exec(`${dotnetPath} --version`, function (error) {
if (error) {
reject("noDotnet")
} else {
resolve(true)
}
})
if (process.platform.toString().includes("win")) {
// Windows
const {exec} = require("child_process")
const command = "dotnet.exe --version"
exec(command, function (error) {
if (error) {
reject("noDotnet")
} else {
resolve(true)
}
})
} else {
// Others
// macOS seems to be broken.
const {exec} = require("child_process")
const command = "dotnet --version"
exec(command, function (error) {
if (error) {
reject("noDotnet")
} else {
resolve(true)
}
})
}
})
}
@@ -223,8 +235,12 @@ async function generateRunScript(username, password, appid, depotid, manifestid,
let foldername = ""
// allow enormous strings like &$§"&$="§$/"(§NJUIDW>;!%?aQ52V?*['YsDnRy|(+Q 1h6BmnDQp,(Xr& being used as password.
// NOT TESTED
// This is very janky and will be replaced with a better solution in the upcoming rewrite.
password = password.replace(/"/g, "\"\"")
if (process.platform.includes("win")) {
// Replace all % with %% because batch scripts use % as a special character. This is not an elegant solution, but it should work.
password = password.replace(/%/g, "%%")
}
// if either the username or password fields is empty, anonymous login is used
let anonymous = username === "" || password === ""
@@ -267,13 +283,13 @@ async function generateRunScript(username, password, appid, depotid, manifestid,
if (process.platform.includes("linux")) {
// if linux, write a bash script.
let content = `#!/usr/bin/env bash
${dotnetPath} ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16
dotnet ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16
`
await fs.writeFileSync(`${platformpath()}${sep}run.sh`, content)
await fs.chmodSync(`${platformpath()}${sep}run.sh`, "755") // make it executable
console.log(`Writing:
--------
${dotnetPath} ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16
dotnet ${platformpath().replaceAll(" ", "\\ ")}${sep}depotdownloader${sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}${sep} -max-servers 50 -max-downloads 16
to ${platformpath()}${sep}run.sh.
`)
@@ -365,44 +381,6 @@ const forceTerminals = async () => {
} else return false
}
// checks if dotnet is found in either system path, or for linux in local path. (for steam deck)
function findDotnet() {
const {exec} = require("child_process")
const {existsSync} = require("fs")
return new Promise((resolve, reject) => {
let command
if (process.platform.toString().includes("win")) {
command = "dotnet.exe"
} else {
command = "dotnet"
}
exec(`${command} --version`, (error) => {
console.log(error)
if (error !== null) { // if there was an error
if (process.platform.toString().includes("linux")) console.log("Dotnet not found in system, trying to detect local dotnet installation..")
if (process.platform.toString().includes("linux") && existsSync(`${platformpath()}/dotnet/dotnet`)) {
exec(`${platformpath()}/dotnet/dotnet --version`, (error) => {
if (error !== null) { // if there was an error
console.log("no dotnet found at all 🙀")
reject("noDotnet")
} else { // if there was no error
dotnetPath = `${platformpath()}/dotnet/dotnet`
console.log("Local dotnet installation found. path: " + dotnetPath)
resolve(true)
}
})
} else {
console.log("no dotnet found at all")
reject("noDotnet")
}
} else {
dotnetPath = command
resolve(true)
}
})
})
}
module.exports = {
preDownloadCheck,
download,
@@ -413,6 +391,5 @@ module.exports = {
platformpath,
forceTerminals,
generateRunScript,
createCommandWithTerminal,
findDotnet
createCommandWithTerminal
}