mirror of
https://github.com/mmvanheusden/SteamDepotDownloaderGUI.git
synced 2026-02-04 13:41:18 +01:00
Compare commits
119 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff89270976 | ||
|
|
c63cb94e28 | ||
|
|
fad16516f0 | ||
|
|
d20f94c449 | ||
|
|
1d7fd54c6a | ||
|
|
06dd83f99e | ||
|
|
0914a832d7 | ||
|
|
2de0ca8130 | ||
|
|
db75c7f623 | ||
|
|
219803f01b | ||
|
|
c8a9468e3a | ||
|
|
27da4d7534 | ||
|
|
c8717de5f7 | ||
|
|
0508be5171 | ||
|
|
199472e4af | ||
|
|
37b86711a7 | ||
|
|
92c3ca0f9d | ||
|
|
42d2ca108a | ||
|
|
481f9165e4 | ||
|
|
e75e10ba5e | ||
|
|
0c8cf2d15b | ||
|
|
dbc5db4e98 | ||
|
|
c7eb98263a | ||
|
|
dc5630d3af | ||
|
|
e76c0b7e0f | ||
|
|
cc7b4b9578 | ||
|
|
f7f3a6b254 | ||
|
|
326fbd1d73 | ||
|
|
12344805f3 | ||
|
|
0eee1f8c16 | ||
|
|
64dc7a79b8 | ||
|
|
f9e5bf4953 | ||
|
|
c8d215bf37 | ||
|
|
c945f90f36 | ||
|
|
2943fe62fe | ||
|
|
17e31901a2 | ||
|
|
b26e95a992 | ||
|
|
fcbf340a95 | ||
|
|
7aa60d53d9 | ||
|
|
01b9f1eda6 | ||
|
|
b2dcd5279f | ||
|
|
c655207c04 | ||
|
|
84dde67a4d | ||
|
|
6b603a004d | ||
|
|
1d1f66bb7c | ||
|
|
b8fc38b4f9 | ||
|
|
8b7253d9bf | ||
|
|
702a4530ed | ||
|
|
f0e378fde2 | ||
|
|
f64655eee2 | ||
|
|
ab8c23c6db | ||
|
|
36c42910a2 | ||
|
|
0f0442cf61 | ||
|
|
15eecac4e3 | ||
|
|
72febb5c8b | ||
|
|
f8ad3b3566 | ||
|
|
8891e550c5 | ||
|
|
47888668ae | ||
|
|
dc6a7d966c | ||
|
|
4f2b7d6cb5 | ||
|
|
c4085fe6ea | ||
|
|
0073974d25 | ||
|
|
a9cf7aa338 | ||
|
|
b66abf916a | ||
|
|
e4b287d2b2 | ||
|
|
5e39208999 | ||
|
|
b47d1ac1d9 | ||
|
|
3564bf7202 | ||
|
|
1a974f40d9 | ||
|
|
e7e5223132 | ||
|
|
d8e20aac62 | ||
|
|
18915bf7a4 | ||
|
|
9ccdf3e0cb | ||
|
|
a08402fb0e | ||
|
|
95d58b1bfa | ||
|
|
f17386d7c8 | ||
|
|
74cbc0fee9 | ||
|
|
866163b81c | ||
|
|
1682539aba | ||
|
|
4215b3b233 | ||
|
|
3e4faa5492 | ||
|
|
cacd77c246 | ||
|
|
9d5d09c252 | ||
|
|
72efb71ca4 | ||
|
|
be34cc746e | ||
|
|
7f669a44d4 | ||
|
|
e2020d7aa3 | ||
|
|
3f185153e9 | ||
|
|
28ea79276e | ||
|
|
b1bcac83f5 | ||
|
|
96fec37650 | ||
|
|
a976d807c1 | ||
|
|
0e56ec477f | ||
|
|
6eed37278d | ||
|
|
11e0316d50 | ||
|
|
f59b350acf | ||
|
|
e82d943cbd | ||
|
|
66a1b6f01a | ||
|
|
9a66fc9921 | ||
|
|
627630aec2 | ||
|
|
afb722f730 | ||
|
|
328e0527ab | ||
|
|
423a93afae | ||
|
|
7bedaadcdd | ||
|
|
e41f6b7958 | ||
|
|
d79f34f6d7 | ||
|
|
f1609d29aa | ||
|
|
f710ed3cce | ||
|
|
b3f3ea5ef7 | ||
|
|
66b1777be7 | ||
|
|
d0b3889a83 | ||
|
|
038de51557 | ||
|
|
76c1d3c4c5 | ||
|
|
0b8b6cb9ee | ||
|
|
98235b41c9 | ||
|
|
beeec6d3bf | ||
|
|
05b315e30d | ||
|
|
1906722c02 | ||
|
|
523418d882 |
19
.github/workflows/github-repo-stats.yml
vendored
Normal file
19
.github/workflows/github-repo-stats.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
name: github-repo-stats
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run this once per day, towards the end of the day for keeping the most
|
||||
# recent data point most meaningful (hours are interpreted in UTC).
|
||||
- cron: "0 23 * * *"
|
||||
workflow_dispatch: # Allow for running this manually.
|
||||
|
||||
jobs:
|
||||
j1:
|
||||
name: github-repo-stats
|
||||
runs-on: ubuntu-latest
|
||||
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)
|
||||
with:
|
||||
ghtoken: ${{ secrets.ghrs_github_api_token }}
|
||||
110
README.md
110
README.md
@@ -1,29 +1,103 @@
|
||||
<h1 align="center">SteamDepotDownloaderGUI</h1>
|
||||
|
||||
<h1 align="center">
|
||||
<br>
|
||||
SteamDepotDownloaderGUI
|
||||
<br>
|
||||
</h1>
|
||||
|
||||
<h4 align="center">A graphical wrapper of Depotdownloader, designed to make downloading Steam depots easy. built on top of <a href="https://www.electronjs.org" target="_blank">Electron</a>.</h4>
|
||||
|
||||
<p align="center">
|
||||
<img alt="Project Status" src="https://img.shields.io/badge/status-maintained-blue" />
|
||||
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/mmvanheusden/SteamDepotDownloaderGUI/total?color=orange&label=downloads">
|
||||
<img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/mmvanheusden/SteamDepotDownloaderGUI?color=crimson">
|
||||
<img alt="Visitor Count" src="https://visitor-badge.glitch.me/badge?page_id=mmvanheusden.SteamDepotDownloaderGUI">
|
||||
<a href="https://www.codefactor.io/repository/github/mmvanheusden/steamdepotdownloadergui/overview/master"><img src="https://www.codefactor.io/repository/github/mmvanheusden/steamdepotdownloadergui/badge/master" alt="CodeFactor" /></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<img alt="Screenshot" src="screenshot.png" />
|
||||
<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://visitor-badge.glitch.me/badge?page_id=mmvanheusden.SteamDepotDownloaderGUI">
|
||||
<img src="https://visitor-badge.glitch.me/badge?page_id=mmvanheusden.SteamDepotDownloaderGUI"
|
||||
alt="Visitor count badge">
|
||||
</a>
|
||||
<a href="https://liberapay.com/barbapapa">
|
||||
<img src="https://img.shields.io/badge/Donate-black?logo=liberapay"
|
||||
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">SteamDepotDownloaderGUI is a graphical user interface for DepotDownloader.</p>
|
||||
<p align="center">You can download older versions of Steam games, useful for testing and speedrunners.</p>
|
||||
<p align="center">
|
||||
<a href="#features">Features</a> •
|
||||
<a href="#installation">Installation</a> •
|
||||
<a href="#how-to-use">How to use</a> •
|
||||
<a href="#credits">Credits</a> •
|
||||
<a href="#support">Support</a> •
|
||||
<a href="#contribute">Contribute</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img alt="Screenshot of the downloader interface" src="screenshot.png"
|
||||
style="max-width: 70%;"/>
|
||||
</p>
|
||||
|
||||
## Features
|
||||
|
||||
* Cross platform
|
||||
- Windows
|
||||
- <s>macOS</s>
|
||||
- Linux
|
||||
* Cross terminal
|
||||
- Gnome Terminal
|
||||
- cmd
|
||||
- Konsole
|
||||
- xfce4-terminal
|
||||
- Terminator
|
||||
- Manual: produce a script that can be copy pasted into a terminal of choice
|
||||
* Support for anonymous downloads
|
||||
|
||||
## Installation
|
||||
|
||||
Download the latest release for your operating system
|
||||
from [GitHub](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest).
|
||||
If you haven't already, install [.NET SDK 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) on your computer.
|
||||
From then, download the appropriate binary from [here](https://github.com/mmvanheusden/SteamDepotDownloaderGUI/releases/latest).
|
||||
|
||||
## Usage
|
||||
|
||||
Enter everything you normally would in the DepotDownloader console.
|
||||
> **Note**
|
||||
> No support will be provided for binaries downloaded from unofficial mirrors like softpedia.
|
||||
|
||||
## Contributing
|
||||
|
||||
## How to use
|
||||
|
||||
Enter everything you normally would in the DepotDownloader console and select your OS/terminal and click download
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
This software uses the following open source packages:
|
||||
- [Electron](http://electron.atom.io/)
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [Primer CSS](https://primer.style/css/)
|
||||
- [DepotDownloader](https://github.com/SteamRE/DepotDownloader/)
|
||||
- README inspired from [Markdownify](https://github.com/amitmerchant1990/electron-markdownify#readme)
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
Donations can be made through Liberapay :)
|
||||
|
||||
<a href="https://liberapay.com/barbapapa">
|
||||
<img src="https://img.shields.io/badge/Donate-black?logo=liberapay&style=for-the-badge"
|
||||
alt="Donation badge">
|
||||
</a>
|
||||
|
||||
## Contribute
|
||||
|
||||
If you want to contribute to SteamDepotDownloaderGUI, please make sure to follow
|
||||
the [contributing instructions and guidelines](contributing.md).
|
||||
@@ -32,3 +106,7 @@ Pull requests are welcome. For major changes, please open an issue first to disc
|
||||
|
||||
Please make sure to keep code consistent and cross-platform compatible.
|
||||
|
||||
|
||||
##### --
|
||||
|
||||
##### enjoy 😘
|
||||
@@ -8,6 +8,9 @@ const {
|
||||
unzip
|
||||
} = require("./utils")
|
||||
|
||||
// Initializes the variable that holds the path to the specified download location
|
||||
let exportedFile
|
||||
|
||||
function submitForm() {
|
||||
// Check if the form is filled in and if dotnet is installed
|
||||
preDownloadCheck().then(async function () {
|
||||
@@ -48,7 +51,7 @@ function submitDotnet() {
|
||||
document.getElementById("dotnetwarning").hidden = true
|
||||
if (os.includes("win")) {
|
||||
console.debug("Opened .NET download page for " + os.charAt(0).toUpperCase() + os.slice(1))
|
||||
void electron.shell.openExternal("https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-6.0.301-windows-x64-installer")
|
||||
void electron.shell.openExternal("https://aka.ms/dotnet/6.0/dotnet-sdk-win-x64.exe")
|
||||
}
|
||||
if (os.includes("linux")) {
|
||||
console.debug("Opened .NET download page for " + os.charAt(0).toUpperCase() + os.slice(1))
|
||||
@@ -57,7 +60,7 @@ function submitDotnet() {
|
||||
if (os.includes("darwin")) {
|
||||
console.debug("Opened .NET download page for" + os)
|
||||
//TODO: Apple Silicon(ARM64) URL
|
||||
void electron.shell.openExternal("https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-6.0.301-macos-x64-installer")
|
||||
void electron.shell.openExternal("https://aka.ms/dotnet/6.0/dotnet-sdk-osx-x64.pkg")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +76,20 @@ function openSteamDB() {
|
||||
void electron.shell.openExternal("https://steamdb.info/instantsearch/")
|
||||
}
|
||||
|
||||
/* Everything below this line runs when the page is loaded */
|
||||
function openDonate() {
|
||||
const electron = require("electron")
|
||||
console.debug("Opened donation page")
|
||||
void electron.shell.openExternal("https://liberapay.com/barbapapa/")
|
||||
}
|
||||
|
||||
function checkPath() {
|
||||
// Opens the chosen location where the game will be downloaded to
|
||||
shell.openPath(exportedFile)
|
||||
}
|
||||
|
||||
/* Everything beyond this line runs when the page is loaded */
|
||||
|
||||
const { ipcRenderer, shell} = require("electron")
|
||||
|
||||
// Add event listeners to the buttons
|
||||
window.addEventListener("DOMContentLoaded", () => {
|
||||
@@ -81,4 +97,16 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||
document.getElementById("downloadbtn").addEventListener("click", submitForm)
|
||||
document.getElementById("smbtn1").addEventListener("click", openGitHubIssues)
|
||||
document.getElementById("smbtn2").addEventListener("click", openSteamDB)
|
||||
document.getElementById("smbtn3").addEventListener("click", openDonate)
|
||||
document.getElementById("smbtn3").addEventListener("click", openDonate)
|
||||
document.getElementById("pickpath").addEventListener("click", () => {
|
||||
ipcRenderer.send("selectpath")
|
||||
})
|
||||
document.getElementById("checkpath").addEventListener("click", checkPath)
|
||||
})
|
||||
|
||||
ipcRenderer.on("file", (event, file) => {
|
||||
console.log("obtained file from main process: " + file)
|
||||
document.getElementById("checkpath").ariaDisabled = false // Makes the check button active
|
||||
exportedFile = file.toString()
|
||||
})
|
||||
@@ -1,6 +1,6 @@
|
||||
appId: steam.depot.downloader.gui
|
||||
appId: rocks.maarten.depotdownloader
|
||||
productName: SteamDepotDownloaderGUI
|
||||
copyright: Copyright © 2022 mmvanheusden | This work is free. Licensed under the Do What The Fuck You Want To Public License
|
||||
copyright: Copyright © 2022 mmvanheusden | This work is free. Licensed under the GNU GPLv3 Public License
|
||||
|
||||
linux:
|
||||
executableName: SteamDepotDownloaderGUI
|
||||
@@ -25,7 +25,7 @@ mac:
|
||||
- x64
|
||||
|
||||
win:
|
||||
legalTrademarks: Copyright © 2022 mmvanheusden | This work is free. Licensed under the Do What The Fuck You Want To Public License
|
||||
legalTrademarks: Copyright © 2022 mmvanheusden | This work is free. Licensed under the GNU GPLv3 Public License
|
||||
target:
|
||||
- target: portable
|
||||
arch:
|
||||
|
||||
59
index.html
59
index.html
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<link href="https://unpkg.com/@primer/css@20.4.7/dist/primer.css" rel="stylesheet"/>
|
||||
<link href="https://unpkg.com/@primer/css@21.0.7/dist/primer.css" rel="stylesheet"/>
|
||||
<title>SteamDepotDownloaderGUI</title>
|
||||
</head>
|
||||
<body>
|
||||
@@ -43,48 +43,51 @@
|
||||
<div class="form-group-header">
|
||||
<label for="username">Username</label>
|
||||
</div>
|
||||
<div aria-label="Enter your username here. (leave empty for anonymous login)" class="form-group-body tooltipped tooltipped-n">
|
||||
<input class="form-control input-block" id="username" type="text"/>
|
||||
</div>
|
||||
<input class="form-control input-block" id="username" type="text" placeholder="Leave empty for anonymous download"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group mx-3 mt-1">
|
||||
<div class="form-group-header">
|
||||
<label for="password">Password</label>
|
||||
</div>
|
||||
<div aria-label="Enter your password here. (leave empty for anonymous login)" class="form-group-body tooltipped tooltipped-n">
|
||||
<input class="form-control input-block" id="password" type="password"/>
|
||||
</div>
|
||||
<input class="form-control input-block" id="password" type="password" placeholder="Leave empty for anonymous download"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group mx-3 mt-1">
|
||||
<div class="form-group mx-3 mt-1 required">
|
||||
<div class="form-group-header">
|
||||
<label for="appid">App ID</label>
|
||||
</div>
|
||||
<div aria-label="Enter the App ID here." class="form-group-body tooltipped tooltipped-n">
|
||||
<input class="form-control input-block" id="appid" type="number"/>
|
||||
</div>
|
||||
<input class="form-control input-block" id="appid" type="number"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group mx-3 mt-1">
|
||||
<div class="form-group mx-3 mt-1 required">
|
||||
<div class="form-group-header">
|
||||
<label for="depotid">Depot ID</label>
|
||||
</div>
|
||||
<div aria-label="Enter the Depot ID here." class="form-group-body tooltipped tooltipped-n">
|
||||
<input class="form-control input-block" id="depotid" type="number"/>
|
||||
</div>
|
||||
<input class="form-control input-block" id="depotid" type="number"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group mx-3 mt-1">
|
||||
<div class="form-group mx-3 mt-1 required">
|
||||
<div class="form-group-header">
|
||||
<label for="manifestid">Manifest ID</label>
|
||||
</div>
|
||||
<div aria-label="Enter the Manifest ID here." class="form-group-body tooltipped tooltipped-n">
|
||||
<input class="form-control input-block" id="manifestid" type="number"/>
|
||||
<input class="form-control input-block" id="manifestid" type="number"/>
|
||||
</div>
|
||||
|
||||
<div class="mx-3 mt-1 required">
|
||||
<div class="form-group-header">
|
||||
<label>Download Location</label>
|
||||
</div>
|
||||
<div aria-label="Pick the path/location where the game will be downloaded to." class="form-control btn btn-sm tooltipped tooltipped-ne" id="pickpath">
|
||||
Set location
|
||||
</div>
|
||||
|
||||
<div aria-label="Check the location that has been selected." class="form-control btn btn-sm ml-2 tooltipped tooltipped-ne" id="checkpath" aria-disabled="true">
|
||||
Open location
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group mx-3 mt-1">
|
||||
<div class="form-group mx-3 mt-3 required">
|
||||
<div class="form-group-header ">
|
||||
<label for="osdropdown">Operating system</label>
|
||||
</div>
|
||||
@@ -106,9 +109,9 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div aria-label="Start the download process." class="form-group mt-3 ml-3 mr-3 tooltipped tooltipped-n">
|
||||
<div class="form-group mt-3 ml-3 mr-3">
|
||||
<button class="btn btn-block btn-primary" id="downloadbtn">
|
||||
<svg class="octicon" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg class="octicon filter-red" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"
|
||||
fill-rule="evenodd"></path>
|
||||
</svg>
|
||||
@@ -122,11 +125,10 @@
|
||||
<path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zM6.92 6.085c.081-.16.19-.299.34-.398.145-.097.371-.187.74-.187.28 0 .553.087.738.225A.613.613 0 019 6.25c0 .177-.04.264-.077.318a.956.956 0 01-.277.245c-.076.051-.158.1-.258.161l-.007.004a7.728 7.728 0 00-.313.195 2.416 2.416 0 00-.692.661.75.75 0 001.248.832.956.956 0 01.276-.245 6.3 6.3 0 01.26-.16l.006-.004c.093-.057.204-.123.313-.195.222-.149.487-.355.692-.662.214-.32.329-.702.329-1.15 0-.76-.36-1.348-.863-1.725A2.76 2.76 0 008 4c-.631 0-1.155.16-1.572.438-.413.276-.68.638-.849.977a.75.75 0 101.342.67z"
|
||||
fill-rule="evenodd"></path>
|
||||
</svg>
|
||||
Support
|
||||
Help
|
||||
</div>
|
||||
|
||||
<div aria-label="Visit the SteamDB instant search website." class="btn btn-sm ml-1 tooltipped tooltipped-n mb-1"
|
||||
id="smbtn2">
|
||||
<div aria-label="Visit the SteamDB instant search website." class="btn btn-sm ml-2 tooltipped tooltipped-n mb-1" id="smbtn2">
|
||||
<svg aria-hidden="true" class="octicon" height="14" viewBox="0 0 128 128" width="14"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M63.9 0C30.5 0 3.1 11.9.1 27.1l35.6 6.7c2.9-.9 6.2-1.3 9.6-1.3l16.7-10c-.2-2.5 1.3-5.1 4.7-7.2 4.8-3.1 12.3-4.8 19.9-4.8 5.2-.1 10.5.7 15 2.2 11.2 3.8 13.7 11.1 5.7 16.3-5.1 3.3-13.3 5-21.4 4.8l-22 7.9c-.2 1.6-1.3 3.1-3.4 4.5-5.9 3.8-17.4 4.7-25.6 1.9-3.6-1.2-6-3-7-4.8L2.5 38.4c2.3 3.6 6 6.9 10.8 9.8C5 53 0 59 0 65.5c0 6.4 4.8 12.3 12.9 17.1C4.8 87.3 0 93.2 0 99.6 0 115.3 28.6 128 64 128c35.3 0 64-12.7 64-28.4 0-6.4-4.8-12.3-12.9-17 8.1-4.8 12.9-10.7 12.9-17.1 0-6.5-5-12.6-13.4-17.4 8.3-5.1 13.3-11.4 13.3-18.2 0-16.5-28.7-29.9-64-29.9zm22.8 14.2c-5.2.1-10.2 1.2-13.4 3.3-5.5 3.6-3.8 8.5 3.8 11.1 7.6 2.6 18.1 1.8 23.6-1.8s3.8-8.5-3.8-11c-3.1-1-6.7-1.5-10.2-1.5zm.3 1.7c7.4 0 13.3 2.8 13.3 6.2 0 3.4-5.9 6.2-13.3 6.2s-13.3-2.8-13.3-6.2c0-3.4 5.9-6.2 13.3-6.2zM45.3 34.4c-1.6.1-3.1.2-4.6.4l9.1 1.7a10.8 5 0 1 1-8.1 9.3l-8.9-1.7c1 .9 2.4 1.7 4.3 2.4 6.4 2.2 15.4 1.5 20-1.5s3.2-7.2-3.2-9.3c-2.6-.9-5.7-1.3-8.6-1.3zM109 51v9.3c0 11-20.2 19.9-45 19.9-24.9 0-45-8.9-45-19.9v-9.2c11.5 5.3 27.4 8.6 44.9 8.6 17.6 0 33.6-3.3 45.2-8.7zm0 34.6v8.8c0 11-20.2 19.9-45 19.9-24.9 0-45-8.9-45-19.9v-8.8c11.6 5.1 27.4 8.2 45 8.2s33.5-3.1 45-8.2z"
|
||||
@@ -134,6 +136,15 @@
|
||||
</svg>
|
||||
SteamDB
|
||||
</div>
|
||||
|
||||
<div aria-label="Donate to the authors of the project." class="btn btn-sm ml-2 tooltipped tooltipped-ne 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">
|
||||
<path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"
|
||||
fill-rule="evenodd"></path>
|
||||
</svg>
|
||||
Donate
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
27
main.js
27
main.js
@@ -1,4 +1,7 @@
|
||||
const {app, BrowserWindow} = require("electron")
|
||||
const {app, BrowserWindow, dialog, ipcMain} = require("electron")
|
||||
const {platformpath} = require("./utils")
|
||||
|
||||
|
||||
|
||||
const createWindow = () => {
|
||||
// Create the browser window.
|
||||
@@ -6,7 +9,7 @@ const createWindow = () => {
|
||||
autoHideMenuBar: true,
|
||||
resizable: false,
|
||||
width: 430,
|
||||
height: 590,
|
||||
height: 660,
|
||||
useContentSize: true,
|
||||
maximizable: false,
|
||||
webPreferences: {
|
||||
@@ -43,3 +46,23 @@ app.whenReady().then(() => {
|
||||
app.on("window-all-closed", () => {
|
||||
if (process.platform !== "darwin") app.quit()
|
||||
})
|
||||
|
||||
|
||||
ipcMain.on("selectpath", (event) => {
|
||||
dialog.showOpenDialog(BrowserWindow.getFocusedWindow(), {
|
||||
// Specifying the Directory Selector Property
|
||||
properties: ["openDirectory"],
|
||||
title: "Select the path where the game will be downloaded",
|
||||
defaultPath: platformpath(),
|
||||
buttonLabel: "Select"
|
||||
}).then(file => {
|
||||
//console.debug("Has path selection succeeded: " + ((file.canceled) ? "NO" : "YES; see below")) --- doesn't log to the dev console TODO
|
||||
if (!file.canceled) {
|
||||
const filepath = file.filePaths[0].toString()
|
||||
// console.debug("Path selected is " + filepath) --- same thing
|
||||
event.reply("file", filepath)
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
})
|
||||
|
||||
4222
package-lock.json
generated
4222
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "steamdepotdownloadergui",
|
||||
"version": "2.0.6",
|
||||
"version": "2.2.0",
|
||||
"description": "DepotDownloader Electron frontend",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
@@ -30,9 +30,9 @@
|
||||
},
|
||||
"homepage": "https://github.com/mmvanheusden/SteamDepotDownloaderGUI#readme",
|
||||
"devDependencies": {
|
||||
"electron": "^21.2.0",
|
||||
"electron-builder": "^23.6.0",
|
||||
"eslint": "^8.25.0"
|
||||
"electron": "^25.4.0",
|
||||
"electron-builder": "^24.6.3",
|
||||
"eslint": "^8.46.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"elecron": "^0.0.1-security",
|
||||
|
||||
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 53 KiB |
29
utils.js
29
utils.js
@@ -4,13 +4,16 @@
|
||||
*/
|
||||
function preDownloadCheck() {
|
||||
return new Promise((resolve, reject) => {
|
||||
let appid = document.forms["theform"]["appid"].value
|
||||
let depotid = document.forms["theform"]["depotid"].value
|
||||
let manifestid = document.forms["theform"]["manifestid"].value
|
||||
|
||||
// Check if all fields are filled
|
||||
if (appid === "" || depotid === "" || manifestid === "") {
|
||||
// Reject before even checking if dotnet is installed
|
||||
const formInputs = document.forms["theform"]
|
||||
|
||||
let unfilledFields = 0
|
||||
for (const input of formInputs) {
|
||||
const isInvalid = input.value === "" && input.parentElement.classList.contains("required")
|
||||
input.parentElement.classList.toggle("errored", isInvalid) // toggle the 'errored' class depending on if isInvalid is true or false.
|
||||
if (isInvalid) unfilledFields++
|
||||
}
|
||||
if (unfilledFields > 0) {
|
||||
reject("emptyField")
|
||||
return
|
||||
}
|
||||
@@ -153,16 +156,22 @@ const createCommand = () => {
|
||||
// if either the username or password fields are empty, anonymous login is used
|
||||
let anonymous = username === "" || password === ""
|
||||
|
||||
// build the username and password flags into one string, allowing for anonymous login
|
||||
let userpass = anonymous ? "" : `-username ${username} -password ${password}`
|
||||
// Allows enormous strings like &$§"&$="§$/"(§NJUIDW>;!%?aQ52V?*['YsDnRy|(+Q 1h6BmnDQp,(Xr&Th _fMMm|*1T5a^HBuJr)EYKdA$~V*9N~74zg3hf9ZH(!HR"§RH§"H(R being used as password
|
||||
password = password.replace(/"/g, "\"\"")
|
||||
|
||||
const finalPath = platformpath() + path.sep + "games" + path.sep + appid
|
||||
// build the username and password flags into one string, allowing for anonymous login
|
||||
let userpass = anonymous ? "" : `-username ${username} -password "${password}"`
|
||||
|
||||
// for some reason exportedFile doesn't have to be imported or exported
|
||||
// eslint-disable-next-line no-undef
|
||||
const finalPath = exportedFile + path.sep + appid
|
||||
console.debug("download path will be: " + finalPath)
|
||||
|
||||
// The final command to run, returned by this function
|
||||
if (osdropdown.options[osdropdown.selectedIndex].text.includes("Gnome")) {
|
||||
return `gnome-terminal -e 'bash -c "dotnet ./depotdownloader/DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}/ -max-servers 50 -max-downloads 16";bash'`
|
||||
} else if (osdropdown.options[osdropdown.selectedIndex].text.includes("Windows")) {
|
||||
return `start cmd.exe /k dotnet ${platformpath()}${path.sep}depotdownloader${path.sep}DepotDownloader.dll -${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}/ -max-servers 50 -max-downloads 16`
|
||||
return `start cmd.exe /k dotnet ${platformpath()}${path.sep}depotdownloader${path.sep}DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}/ -max-servers 50 -max-downloads 16`
|
||||
} else if (osdropdown.options[osdropdown.selectedIndex].text.includes("macOS")) {
|
||||
return `osascript -c 'tell application "Terminal" to do script 'dotnet ./depotdownloader/DepotDownloader.dll ${userpass} -app ${appid} -depot ${depotid} -manifest ${manifestid} -dir ${finalPath}/ -max-servers 50 -max-downloads 16'`
|
||||
} else if (osdropdown.options[osdropdown.selectedIndex].text.includes("Konsole")) {
|
||||
|
||||
Reference in New Issue
Block a user