An open API service indexing awesome lists of open source software.

https://github.com/gann4life/gclient-py

GClient is an application that allows you to handle updates for your own software or games.
https://github.com/gann4life/gclient-py

Last synced: 2 months ago
JSON representation

GClient is an application that allows you to handle updates for your own software or games.

Awesome Lists containing this project

README

        

# GClient-py
GClient-py is an application written in python that allows you to handle updates for your own software or games by setting parameters on a json file.

C# and JS version will come after this gets finished.

# Disclaimer
I won't recommend using this right now as it is in constant development and unstable.

I suggest to make your own fork or contribute to this repository.

# Goals
- [ ] Python version
- [x] Console version (core)
- [ ] TKInter version
- [ ] Kivy version
- [ ] PyQt version
- [ ] C# version (GUI)
- [ ] JS version (GUI)

# How it works
1. Verifies if the software has been installed/downloaded.
1. `if YES`: verify if it is up to date
1. `if NOT`: remove software and download it again.
1. `if NOT`: download it
1. Execute the software.

![Class Diagram](http://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/Gann4Life/gclient-py/main/UML/concept.puml)

# Setup
1. Host your software's zip file and version.txt file in a service that allows direct access to the files content or binary data.

For this program i'd recommend using Google Drive along [this tool.](https://sites.google.com/site/gdocs2direct/home)
1. Download the release (if available)
1. Open `data` folder and modify `config.json`
1. Set parameters (`config.json`):

`software_file`

The file hosted in the cloud that the program will download.

Use your own URL.

**Disclaimer**: *It has to be a .zip file!*

`software_install_path`

Where is the software going to be extracted.

I recommend to leave the default value.

`software_executable_path`

The path of the file that will be executed, this refers to files and folders inside `software_install_path`.

`software_name`

The name of your software.

`software_prefix`

The prefix of your software. (Game/Software/Prototype/Etc)

`version_file`

The file hosted in the cloud that stores your latest software's version.

Use your own URL.

`version_path`

Where is the version file going to be stored.

I recommend to leave the default value.

`force_update`

_Not implemented._

Forces the software to be updated.

Probably useful for multiplayer games.

# Example
```json
{
"software_file": "https://link-to-your/app.zip",
"software_install_path": "\\app",
"software_executable_path": "\\app.exe",
"software_name": "My App Name.",
"software_prefix": "Application",
"version_file": "https://link-to-your/version-file.txt",
"version_path": "\\version.txt"
}
```