Download and publish EverQuest scripts and software using the RedGuides API
Project description
redfetch
redfetch is for downloading EverQuest software and scripts that you "watch" on RedGuides.
Installation
On Windows the easiest way to install redfetch is to download and run redfetch.exe
Alternative: Python
If you have a recent version of Python, you can install redfetch with pip,
pip install redfetch
Usage
To update everything you've watched from the command line,
redfetch.exe --download-watched
or if you installed with pip,
redfetch --download-watched
This will update Very Vanilla MacroQuest and any of its scripts or plugins you have watched on RedGuides, your licensed resources, and scripts recommended by staff.
To add more MacroQuest scripts, "watch" them on RedGuides.
If there are non-MQ resources you'd like to keep in sync with redfetch, you can add them as a "special resource" in the local settings file.
Alternative Interfaces
Terminal UI
Run the script without any arguments to access the terminal UI. If you have a modern terminal like Windows Terminal, it will look like this:
Web UI
Another UI option! Run this command and then browse https://www.redguides.com/community/resources
redfetch.exe --serve
Command-Line Options
--download-resource <RESOURCE_ID | URL>
: Downloads a resource by its ID or URL.--download-watched
: Downloads all watched and special resources.--force-download
: Clears recent download dates in the cache.--list-resources
: Lists all resources in the cache.--serve
: Runs as a flask server to interact with the web UI.--update-setting <SETTING_PATH> <VALUE> [ENVIRONMENT]
: Updates a configuration setting. The setting path should be dot-separated. Environment is optional.--switch-env <ENVIRONMENT>
: Changes the server type (LIVE
,TEST
,EMU
).--logout
: Logs out and clears cached tokens.--uninstall
: Uninstalls redfetch and outputs a text guide for cleaning up downloaded data.--version
: Displays the current version of redfetch.push <resource_id> [options]
: Update you or your team's resource. There's also a github action for this. Options include:--description <README.md>
: Path to a description file which will become the resource's overview description.--version <version_number>
: Specifies a new version number.--message <CHANGELOG.md | MESSAGE>
: Version update message or path to a changelog file.--file <FILE.zip>
: Path to the zipped release file.--domain <URL>
: Domain to prepend to relative URLs in README.md or CHANGELOG.md files. (mostly for images. e.g.,https://raw.githubusercontent.com/yourusername/yourrepo/main/
)
Settings
settings.local.toml
is found in your configuration directory, which by default is c:\Users\Public\redfetch\settings.local.toml
. Any keys you add will override their default values in settings.toml
.
All settings are prefixed with the environment,
[DEFAULT]
- encompasses all environments that are not explicitly defined.[LIVE]
- EverQuest Live[TEST]
- EverQuest Test[EMU]
- EverQuest Emulator
Adding a special resource
Here's how to add a non-MQ resource. You need the resource ID (numbers at the end of the url) and a target directory.
[LIVE.SPECIAL_RESOURCES.153]
custom_path = 'C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest\maps\Brewall_Maps'
opt_in = true
- Note the use of single quotes around the path, which are required for windows paths.
The above will install Brewall's maps to the EQ maps directory the next time --download-watched
is run for LIVE
servers.
Overwrite protection
If there are local files you don't want overwritten by a resource, you can add them to the PROTECTED_FILES_BY_RESOURCE
setting. Include the resource ID and files you want to protect. e.g.,
[LIVE.PROTECTED_FILES_BY_RESOURCE]
1974 = ["CharSelect.cfg", "Zoned.cfg", "MQ2Map.ini", "MQ2MoveUtils.ini"]
153 = ["citymist.txt", "innothule.txt", "oasis.txt"]
Tinkerers
If you self-compile MacroQuest or use a discord friend's copy, you can still keep your scripts and plugins in sync with redfetch by opting out of Very Vanilla:
redfetch.exe --update-setting SPECIAL_RESOURCES.1974.opt_in false LIVE
redfetch.exe --update-setting SPECIAL_RESOURCES.60.opt_in false EMU
redfetch.exe --update-setting SPECIAL_RESOURCES.2218.opt_in false TEST
or edit the settings.local.toml
file directly:
[LIVE.SPECIAL_RESOURCES.1974]
opt_in = false
Then assign the Very Vanilla MQ path to your self-compiled MacroQuest.
Known Issues
- Directory selectors can't change drive letters yet. To change the drive letter in a path, you'll need to type the new drive letter in the input field.
Todo
- Instead of keeping a record of each file downloaded and its version, we should reference the file's hash.
- Re-write auth for latest Xenforo version.
Contributing
I'd love help. I'm not a developer and this is my first big python project.
To set up a development environment,
git clone https://github.com/RedGuides/redfetch
cd redfetch
pip install hatch
hatch env create dev
hatch shell dev
You can then run your dev version with,
redfetch
Or if the issue is ui-specific, run the terminal UI in debug mode,
textual run --dev .\src\redfetch\main.py
When you're done, type exit
to leave the shell.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file redfetch-0.3.7.tar.gz
.
File metadata
- Download URL: redfetch-0.3.7.tar.gz
- Upload date:
- Size: 322.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31885e1543bb3ea61c75107eeaf2768fb9b7e0a38835e9f696f45804542ad779 |
|
MD5 | b62edc6c29534e3975a566e252300af4 |
|
BLAKE2b-256 | 80605f22b3a078428b15957a3e6fbb913098dc959c5dfbfa907c0567213900fb |
File details
Details for the file redfetch-0.3.7-py2.py3-none-any.whl
.
File metadata
- Download URL: redfetch-0.3.7-py2.py3-none-any.whl
- Upload date:
- Size: 63.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3010028b86a268d50a3f33d7cb3e353a50d72be91c7b3cb15d37dfd9a619ce8 |
|
MD5 | 68f59bf52958a08c2e59c1af293a5436 |
|
BLAKE2b-256 | 30b462e67c9c21a56d17a4460208b14d633061167c682c560cd6af1379a2155a |