Skip to main content

Download and publish EverQuest scripts and software using the RedGuides API

Project description

six wizards levitating a package, the word redfetch underneath

redfetch is for updating software and scripts for EverQuest that RedGuides recommends, as well as those you "watch". It's also open source, how nice.

Installation

On Windows the easiest way to install redfetch is to download and run redfetch.exe. (optional: If you're still on Windows 10 and want a more modern appearance, follow this guide to set Windows Terminal as your default terminal.)

Terminal / Python / Linux

Make sure you have a recent version of Python

  1. Install pipx
python -m pip install --user pipx
  1. Make it so you can run packages without having to type "python -m"
python -m pipx ensurepath
  1. Install redfetch
pipx install redfetch

When you open a new terminal window you'll be able to run redfetch by typing redfetch from the command line.

Usage

1) Double-click redfetch.exe to run the script.

Take a moment to consider your configuration and the settings tab.

2) Click the big blue "Easy Update" button, and then "Yes" or "Always" on the popup.

a screenshot showing the easy update button
(It's updating Very Vanilla MQ and any of its scripts or plugins you have watched on RedGuides, your licensed resources, and scripts recommended by staff. You can customize this if you like.)

Now you're ready to play EQ with the big boys.

Add more MQ Scripts

To add more MacroQuest scripts, "watch" them on www.redguides.com/community/resources, and then click the Easy Update button again.

a screenshot showing the watch button on a resource page

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, as shown in settings section.

Command Line

To run redfetch from the command line:

.exe file python
.\redfetch.exe update redfetch update

a screenshot showing the command line interface

Command Line Reference

Run redfetch --help or .\redfetch.exe --help to see something like this in your terminal:

📦 Resource Management

  • update - Update all watched and special resources
    • --force / -f - Force re-download of all watched resources
  • download <ID_OR_URL> - Download a specific resource by ID or URL
    • --force / -f - Force re-download by resetting this resource's download date
  • list - List resources and dependencies in the cache database
  • reset - Reset download dates for watched resources

🍔 Configuration

  • server <SERVER> - Switch the current server/environment to LIVE, TEST, or EMU
  • config <SETTING_PATH> <VALUE> - Update a setting by path and value
    • SETTING_PATH - Dot-separated setting path (e.g., SPECIAL_RESOURCES.1974.opt_in)
    • VALUE - New value for the setting
    • --server / -s - Server to apply the change in (LIVE, TEST, EMU)
  • status - Show the configuration for the current or specified server
    • --server / -s - Server to show (defaults to current)

🔧 System & Utilities

  • ui - Launch the Terminal User Interface
  • web - Launch the RedGuides.com web interface
  • version - Show version and exit
  • logout - Disconnect your account from redfetch
  • uninstall - Uninstall redfetch and clean up data

📤 Publishing

  • publish <resource_id> - Publish an update to you or your team's resource. There's also a github action for this.
    • resource_id - Existing RedGuides resource ID
    • --description <README.md> / -d - Path to a file (e.g. README.md) that will become the resource's overview description
    • --version <version_number> / -v - New version string (e.g., v1.0.1)
    • --message <CHANGELOG.md | MESSAGE> / -m - Version update message, a message file (e.g. message.md / message.txt), or a CHANGELOG.md (keep a changelog) file.
    • --file <FILE.zip> / -f - Path to your 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

To add a "special resource" (a non-MQ resource that you want to keep updated), open settings.local.toml and add an entry. You'll need the resource ID (numbers at the end of the url) and a target directory. Example:

[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"]
navmesh = ["befallen.navmesh", "innothuleb.navmesh"]

Custom category directories

If you share lua, macros, or plugins directories across multiple MQ environments, you can override where an entire category is installed. Add a CATEGORY_PATHS section to your settings.local.toml:

[DEFAULT.CATEGORY_PATHS]
lua = 'D:\\shared\\lua'
macros = 'D:\\shared\\macros'

Absolute paths are used as-is. Relative paths are joined to DOWNLOAD_FOLDER. You can set this globally in [DEFAULT] or per-environment ([LIVE.CATEGORY_PATHS], [TEST.CATEGORY_PATHS], etc.).

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 config SPECIAL_RESOURCES.1974.opt_in false --server LIVE
redfetch.exe config SPECIAL_RESOURCES.60.opt_in false --server EMU
redfetch.exe config SPECIAL_RESOURCES.2218.opt_in false --server TEST

Then assign the Very Vanilla MQ path to your self-compiled MacroQuest.

Trailmap

  • Add custom buttons for "fetch" tab.
  • Option: Close after update
  • Launch programs with cli options
  • Indicate when updated VV is available
  • Launch more than just mq (eqbcs, etc) upon update.
  • Run from MQ
  • Deeper integration with the forums

Watchers on RedGuides

Contributing

I'd love help, conceptually and technically. I'm not a developer and this is my first big python script.

[!NOTE] This project is built with LLM assistance.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redfetch-1.2.0.tar.gz (130.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redfetch-1.2.0-py2.py3-none-any.whl (123.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file redfetch-1.2.0.tar.gz.

File metadata

  • Download URL: redfetch-1.2.0.tar.gz
  • Upload date:
  • Size: 130.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for redfetch-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6cb09b7eef5956b8d37edf3f3d02e8c5ce02f280c9e958cd6add13c9bef4f065
MD5 123995368a6a7de03c5ee508386a83a3
BLAKE2b-256 d680b3b45fe0a83b7e1dca5d2df5ce30205adea7555646118b6aa429388bc717

See more details on using hashes here.

Provenance

The following attestation bundles were made for redfetch-1.2.0.tar.gz:

Publisher: pipeline.yml on RedGuides/redfetch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file redfetch-1.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: redfetch-1.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 123.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for redfetch-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c2de71cce478718188e6c5835a5295cfcac7aa83e79655b338b376dc09faf9a1
MD5 c744301f7c005ed8a2d6df21437434dd
BLAKE2b-256 0de87e49ce5efb6b2f0a5f274146818fd568ad2989fc0bf40c0146fac6b2bbb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for redfetch-1.2.0-py2.py3-none-any.whl:

Publisher: pipeline.yml on RedGuides/redfetch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page