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 EverQuest multiboxing software and scripts that RedGuides recommends, as well as those you "watch". It's also open source, how nice.

Installation (Windows)

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.)

Python / Linux

Alternate install for Linux or cool Windows users

install a recent version of Python and type a few commands in your terminal:

First, install pipx

python -m pip install --user pipx
python -m pipx ensurepath

Then 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.

a screenshot showing the easy update button
Wait until it completes. (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. If you're watching thousands of resources, your first run will take a long time.)

3) In the shortcuts tab, click the "Very Vanilla MQ" button

a screenshot showing the shortcuts tab

This starts MacroQuest, and now you're ready to multibox EQ.

Add more MQ Scripts

To add more MacroQuest scripts, "watch" them on RedGuides, and then run 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.

Alternative Interfaces

Command Line

To update everything you've watched from the command line (as well as special resources),

redfetch.exe --download-watched

Web UI

Another UI option! Run this command and then browse https://www.redguides.com/community/resources

redfetch.exe --serve

redfetch Web UI, with a hastily drawn circle around the install button

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

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"]

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

Alternately, you can add an entry to settings.local.toml:

[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 db entry for each file downloaded and its version, we should check the files on the drive.
  • Refactor download logic, now that we know our needs.
  • Re-write auth for latest Xenforo version.

Contributing

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

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-0.6.3.tar.gz (85.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-0.6.3-py2.py3-none-any.whl (77.4 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: redfetch-0.6.3.tar.gz
  • Upload date:
  • Size: 85.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for redfetch-0.6.3.tar.gz
Algorithm Hash digest
SHA256 a47e264d713cc531b0e4171880c369ede03824c3e0581d86bd187d579ab18a0b
MD5 51ccf5f60fce4fa3955e543c4a5b4102
BLAKE2b-256 1ecb48c57ff38000f35b6eb9fa9d20dcb36f125dec015aad43def7f363722e64

See more details on using hashes here.

Provenance

The following attestation bundles were made for redfetch-0.6.3.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-0.6.3-py2.py3-none-any.whl.

File metadata

  • Download URL: redfetch-0.6.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 77.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for redfetch-0.6.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2c866dd747baca00e4bf1035b66f025575dde75c95bda3967068729a9bb35f4e
MD5 1ee13f1294162518857fb3bed6ccfc10
BLAKE2b-256 852f354ef1499beb9eddf5d9a4ac668791902f1a6c8570e7c69c9cea0925aa08

See more details on using hashes here.

Provenance

The following attestation bundles were made for redfetch-0.6.3-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