# Overwrought It manages Minecraft modpacks. ## Requirements Python 3.6+ ### Master Python packages: `requests bs4` ### Server Python packages: `flask gunicorn passlib argon2_cffi` ### Slave Python packages: ` ` ## Usage ### Master Copy `overwrought_master.py` and the matching config file to your `.minecraft/` folder. Edit the config file appropriately. `overwrought_master.py action [options] [target]` __actions__ * `add` Add a new mod to the modpack. `target` must be a url to a curseforge mod project page. By default, it will prioritize release phases as Release, Beta and then Alpha. `--phase` can alter this. Will always grab the latest version of whichever phase it targets. * `add_all` Add a list of mods to the modpack. `target` must be a file containing a newline-delineated list of curseforge mod project page urls. Will prioritize release phases similar to `add`, however `--phase` will not affect it. * `update` Update a specific mod in the modpack. `target` must be the url associated with the mod. By default, it will prioritize the release phase previously added. `--phase` can alter this. Will only update if the targeted mod is more recent than the one previously downloaded. By default, the old version of the mod will be moved to another folder `old_mods`. If `--delete` is passed, it be deleted instead. * `update_all` Update every mod in the modpack. No `target` needed. Will prioritize release phases similar to `update`, however `--phase` will will not affect it. By default, the old version of the mod will be moved to another folder `old_mods`. If `--delete` is passed, it be deleted instead. * `summary` Generate a summary page as html. Summary page displays a list of all mods in the modpack and a change log that is updated as changes are made to the modpack. * `post` Upload the modpack so the remote server specified in `config_master.py`. Note that only mods not currently on the server, or which are of a different version, are sent. A copy of the current database and summary page is also sent. * `remove` Removes a mod from the modpack. `target` must be the url associated with the mod. `--delete` has similar behavior here as noted under `update`. ### Server `gunicorn -b localhost:5000 -e SCRIPT_NAME=/overwrought overwrought_server:app` Use `overwrought_server.py hash` to generate an Argon2 hash of your password. Update `config_server.py` appropriately. ### Slave Copy `overwrought_slave.py` and the matching config file to your `.minecraft/` folder. Edit the config file appropriately. Use `overwrought_slave.py sync` to synchronize the `mods/` folder with the remote server. By default, old versions of mods will be moved to `mods_old/`. `--delete` may be used to delete these files instead eg. `overwrought_slave.py sync --delete`.