Name | rinthdl JSON |
Version |
1.1.0
JSON |
| download |
home_page | None |
Summary | Define a Minecraft modpack in a JSON file, specifying mods, shaders, and resource packs, then download everything into organized folders for easy copying into your .minecraft folder. |
upload_time | 2024-11-15 23:07:46 |
maintainer | None |
docs_url | None |
author | Alexander Brightwater |
requires_python | ==3.11.* |
license | GPL-3.0-only |
keywords |
modrinth
minecraft
downloader
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Rinth DL
Rinth DL is a command-line tool for searching, downloading, and managing Minecraft mods,
modpacks, resource packs, shaders, datapacks, and plugins from [Modrinth](https://modrinth.com/).
It simplifies the process of automating mod downloads and their dependencies
and allows you to manage modpacks using a JSON configuration file.
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Searching for Projects](#searching-for-projects)
- [Downloading a Project](#downloading-a-project)
- [Managing Modpacks](#managing-modpacks)
- [Examples](#examples)
- [Notes](#notes)
- [Error Handling](#error-handling)
- [License](#license)
## Features
- **Search** for Minecraft projects (mods, resource packs, etc.) on Modrinth.
- **Download** your favourite mod, shader, etc. (even a specific version)
- Automatically find **dependencies** when downloading whole modpacks.
- Manage and download your **modpacks** via a simple JSON configuration file.
- Supports various **project types**: mods, resource packs, shaders, plugins, etc.
- Compatible with all **platforms/loaders**: Fabric, Forge, Minecraft, Iris, etc.
## Installation
Install the package using pip or pipx
```bash
pipx install rinthdl
```
## Usage
### Searching for Projects
Use the `rinth-search` command to search for projects on Modrinth.
**Example:**
```bash
rinth-search sodium
```
This command will display a list of projects matching the search query,
including titles, slugs, IDs, URLs, and descriptions.
### Downloading a Project
Use the `rinth-util` command to perform various operations related to a project.
#### Available Operations:
- `get_id`: Fetch the project ID using the project slug.
- `get_versions`: Fetch all versions of a project.
- `get_version`: Fetch a specific version of a project.
- `get_dependencies`: Fetch dependencies of a project version.
- `get_project_meta`: Fetch metadata of a project.
- `download`: Download a project.
#### Command Syntax:
```bash
rinth-util <operation> <slug> [--game_version <game_version>] [--platform <platform>] [--project_version <project_version>] [--path <download_path>]
```
#### Parameters:
- `<operation>`: The operation to perform (see above).
- `<slug>`: The project slug (e.g., `sodium`).
- `--game_version`: The Minecraft game version (e.g., `1.20`).
- `--platform`: The platform/loader (e.g., `fabric`, `forge`, `minecraft`, `iris`).
- `--project_version`: The specific project version (e.g., `1.5.0`). Leave empty to get the latest version.
- `--path`: The path to download the file to (required when using the `download` operation).
- `--channel`: The minimum release channel of the project. Default is beta. (one of: `release`, `beta`, `alpha`)
#### Examples:
- **Get the project ID of Sodium:**
```bash
rinth-util get_id sodium
```
- **Get all versions of Sodium for Minecraft 1.20 on Fabric:**
```bash
rinth-util get_versions sodium --game_version 1.20 --platform fabric
```
- **Download the latest version of Sodium for Minecraft 1.20 on Fabric (must be a release or beta):**
```bash
rinth-util download sodium --game_version 1.21 --platform fabric --path . --channel beta
```
- **Download a specific version of Sodium:**
```bash
rinth-util download sodium --game_version 1.20 --platform fabric --project_version mc1.20-0.4.10 --path /path/to/download
```
### Managing Modpacks
Use the `rinth-pack` command to manage modpacks via a JSON configuration file.
#### Modpack Configuration File
Create a JSON file (e.g., `modpack.json`) with the following structure:
```json
{
"name": "Modpack 1",
"game_version": "1.20",
"path": "/path/to/download",
"deps": "True",
"channel": "beta",
"projects": [
{
"name": "sodium",
"version": "",
"platform": "fabric",
"type": "mod"
},
{
"name": "fabric-api",
"version": "",
"platform": "fabric",
"type": "mod"
},
{
"name": "dramatic-skys",
"version": "1.5.3.27vs",
"platform": "minecraft",
"type": "resourcepack"
},
{
"name": "complementary-reimagined",
"version": "",
"platform": "iris",
"type": "shader"
}
]
}
```
#### Fields:
- **`name`**: Name of the modpack.
- **`game_version`**: Minecraft game version (e.g., `1.20`).
- **`path`**: The base path to download the mods to.
- **`deps`**: Whether to download dependencies (`"True"` or `"False"`).
- **`channel`**: The minimum release channel to use. (`release`, `beta`, `alpha`)
- **`projects`**: A list of project definitions.
Each project definition includes:
- **`name`**: The slug of the project on Modrinth (e.g., `sodium`).
- **`version`**: The specific version to download (leave empty string for the latest version).
- **`platform`**: The platform/loader (e.g., `fabric`, `forge`, `minecraft`, `iris`).
- **`type`**: The type of project (`mod`, `resourcepack`, `shader`, etc.).
#### Running the Modpack Script
```bash
rinth-pack <modpack_file>
```
**Example:**
```bash
rinth-pack modpack.json
```
This command will download all specified projects to the paths determined
by the `path` and `type` fields in your configuration.
## Examples
### Example 1: Search for a Mod
```bash
rinth-search sodium
```
### Example 2: Download a Mod with Dependencies
Create a `modpack.json` file:
```json
{
"name": "Awesome Modpack",
"game_version": "1.20",
"path": "~/modpacks/awesome",
"deps": "True",
"channel": "beta",
"projects": [
{
"name": "sodium",
"version": "",
"platform": "fabric",
"type": "mod"
},
{
"name": "fabric-api",
"version": "",
"platform": "fabric",
"type": "mod"
},
{
"name": "dramatic-skys",
"version": "1.5.3.27vs",
"platform": "minecraft",
"type": "resourcepack"
},
{
"name": "complementary-reimagined",
"version": "",
"platform": "iris",
"type": "shader"
}
]
}
```
Run the modpack script:
```bash
rinth-pack modpack.json
```
**Output:**
```
Downloading assets for Awesome Modpack
Should I create path /home/your-name/modpacks/awesome? (y|N): y
✔️ Successfully downloaded sodium.
✔️ Successfully downloaded fabric-api.
✔️ Successfully downloaded dramatic-skys.
ℹ️ Dramatic-skys has a possible dependency for https://modrinth.com/project/fabricskyboxes
ℹ️ Template for your modpack.json: {"name": "fabricskyboxes", "version": "", "platform": "fabric", "type": "mod"}
✔️ Successfully downloaded complementary-reimagined.
```
## Notes
- The `rinth-pack` command automatically creates subdirectories under the specified `path` based on the `type` of
each project (e.g., `mods`, `resourcepacks`, `shaderpacks`).
- If `deps` is set to `"True"`, dependencies will be searched for each project.
If a dependency is not already listed in the `projects` list, it will inform you and provide a json template to add it.
## Error Handling
- The program has error handling to manage network issues, missing projects, invalid inputs, etc.
- Error messages start with `❌` and provide details about the issue.
- Common errors include:
- Project not found.
- No versions found matching the specified criteria.
- Network connectivity problems.
## License
This project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3 License.
See the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "rinthdl",
"maintainer": null,
"docs_url": null,
"requires_python": "==3.11.*",
"maintainer_email": null,
"keywords": "modrinth, minecraft, downloader",
"author": "Alexander Brightwater",
"author_email": "alexander.brightwater@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/35/37/d7f805ecd67459f9360a9f7e2ffb1685aa4366ab858a5fe4019ade6933b4/rinthdl-1.1.0.tar.gz",
"platform": null,
"description": "# Rinth DL\n\nRinth DL is a command-line tool for searching, downloading, and managing Minecraft mods,\nmodpacks, resource packs, shaders, datapacks, and plugins from [Modrinth](https://modrinth.com/).\nIt simplifies the process of automating mod downloads and their dependencies\nand allows you to manage modpacks using a JSON configuration file.\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n - [Searching for Projects](#searching-for-projects)\n - [Downloading a Project](#downloading-a-project)\n - [Managing Modpacks](#managing-modpacks)\n- [Examples](#examples)\n- [Notes](#notes)\n- [Error Handling](#error-handling)\n- [License](#license)\n\n## Features\n\n- **Search** for Minecraft projects (mods, resource packs, etc.) on Modrinth.\n- **Download** your favourite mod, shader, etc. (even a specific version)\n- Automatically find **dependencies** when downloading whole modpacks.\n- Manage and download your **modpacks** via a simple JSON configuration file.\n- Supports various **project types**: mods, resource packs, shaders, plugins, etc.\n- Compatible with all **platforms/loaders**: Fabric, Forge, Minecraft, Iris, etc.\n\n## Installation\n\nInstall the package using pip or pipx\n```bash\npipx install rinthdl\n```\n\n## Usage\n\n### Searching for Projects\n\nUse the `rinth-search` command to search for projects on Modrinth.\n\n**Example:**\n\n```bash\nrinth-search sodium\n```\n\nThis command will display a list of projects matching the search query,\nincluding titles, slugs, IDs, URLs, and descriptions.\n\n### Downloading a Project\n\nUse the `rinth-util` command to perform various operations related to a project.\n\n#### Available Operations:\n\n- `get_id`: Fetch the project ID using the project slug.\n- `get_versions`: Fetch all versions of a project.\n- `get_version`: Fetch a specific version of a project.\n- `get_dependencies`: Fetch dependencies of a project version.\n- `get_project_meta`: Fetch metadata of a project.\n- `download`: Download a project.\n\n#### Command Syntax:\n\n```bash\nrinth-util <operation> <slug> [--game_version <game_version>] [--platform <platform>] [--project_version <project_version>] [--path <download_path>]\n```\n\n#### Parameters:\n\n- `<operation>`: The operation to perform (see above).\n- `<slug>`: The project slug (e.g., `sodium`).\n- `--game_version`: The Minecraft game version (e.g., `1.20`).\n- `--platform`: The platform/loader (e.g., `fabric`, `forge`, `minecraft`, `iris`).\n- `--project_version`: The specific project version (e.g., `1.5.0`). Leave empty to get the latest version.\n- `--path`: The path to download the file to (required when using the `download` operation).\n- `--channel`: The minimum release channel of the project. Default is beta. (one of: `release`, `beta`, `alpha`)\n\n#### Examples:\n\n- **Get the project ID of Sodium:**\n\n ```bash\n rinth-util get_id sodium\n ```\n\n- **Get all versions of Sodium for Minecraft 1.20 on Fabric:**\n\n ```bash\n rinth-util get_versions sodium --game_version 1.20 --platform fabric\n ```\n\n- **Download the latest version of Sodium for Minecraft 1.20 on Fabric (must be a release or beta):**\n\n ```bash\n rinth-util download sodium --game_version 1.21 --platform fabric --path . --channel beta\n ```\n\n- **Download a specific version of Sodium:**\n\n ```bash\n rinth-util download sodium --game_version 1.20 --platform fabric --project_version mc1.20-0.4.10 --path /path/to/download\n ```\n \n### Managing Modpacks\n\nUse the `rinth-pack` command to manage modpacks via a JSON configuration file.\n\n#### Modpack Configuration File\n\nCreate a JSON file (e.g., `modpack.json`) with the following structure:\n\n```json\n{\n \"name\": \"Modpack 1\",\n \"game_version\": \"1.20\",\n \"path\": \"/path/to/download\",\n \"deps\": \"True\",\n \"channel\": \"beta\",\n \"projects\": [\n {\n \"name\": \"sodium\",\n \"version\": \"\",\n \"platform\": \"fabric\",\n \"type\": \"mod\"\n },\n {\n \"name\": \"fabric-api\",\n \"version\": \"\",\n \"platform\": \"fabric\",\n \"type\": \"mod\"\n },\n {\n \"name\": \"dramatic-skys\",\n \"version\": \"1.5.3.27vs\",\n \"platform\": \"minecraft\",\n \"type\": \"resourcepack\"\n },\n {\n \"name\": \"complementary-reimagined\",\n \"version\": \"\",\n \"platform\": \"iris\",\n \"type\": \"shader\"\n }\n ]\n}\n```\n\n#### Fields:\n\n- **`name`**: Name of the modpack.\n- **`game_version`**: Minecraft game version (e.g., `1.20`).\n- **`path`**: The base path to download the mods to.\n- **`deps`**: Whether to download dependencies (`\"True\"` or `\"False\"`).\n- **`channel`**: The minimum release channel to use. (`release`, `beta`, `alpha`)\n- **`projects`**: A list of project definitions.\n\nEach project definition includes:\n\n- **`name`**: The slug of the project on Modrinth (e.g., `sodium`).\n- **`version`**: The specific version to download (leave empty string for the latest version).\n- **`platform`**: The platform/loader (e.g., `fabric`, `forge`, `minecraft`, `iris`).\n- **`type`**: The type of project (`mod`, `resourcepack`, `shader`, etc.).\n\n#### Running the Modpack Script\n\n```bash\nrinth-pack <modpack_file>\n```\n\n**Example:**\n\n```bash\nrinth-pack modpack.json\n```\n\nThis command will download all specified projects to the paths determined\nby the `path` and `type` fields in your configuration.\n\n## Examples\n\n### Example 1: Search for a Mod\n\n```bash\nrinth-search sodium\n```\n\n### Example 2: Download a Mod with Dependencies\n\nCreate a `modpack.json` file:\n\n```json\n{\n \"name\": \"Awesome Modpack\",\n \"game_version\": \"1.20\",\n \"path\": \"~/modpacks/awesome\",\n \"deps\": \"True\",\n \"channel\": \"beta\",\n \"projects\": [\n {\n \"name\": \"sodium\",\n \"version\": \"\",\n \"platform\": \"fabric\",\n \"type\": \"mod\"\n },\n {\n \"name\": \"fabric-api\",\n \"version\": \"\",\n \"platform\": \"fabric\",\n \"type\": \"mod\"\n },\n {\n \"name\": \"dramatic-skys\",\n \"version\": \"1.5.3.27vs\",\n \"platform\": \"minecraft\",\n \"type\": \"resourcepack\"\n },\n {\n \"name\": \"complementary-reimagined\",\n \"version\": \"\",\n \"platform\": \"iris\",\n \"type\": \"shader\"\n }\n ]\n}\n\n```\n\nRun the modpack script:\n\n```bash\nrinth-pack modpack.json\n```\n\n**Output:**\n\n```\nDownloading assets for Awesome Modpack\nShould I create path /home/your-name/modpacks/awesome? (y|N): y\n\u2714\ufe0f Successfully downloaded sodium.\n\u2714\ufe0f Successfully downloaded fabric-api.\n\u2714\ufe0f Successfully downloaded dramatic-skys.\n\u2139\ufe0f Dramatic-skys has a possible dependency for https://modrinth.com/project/fabricskyboxes\n\u2139\ufe0f Template for your modpack.json: {\"name\": \"fabricskyboxes\", \"version\": \"\", \"platform\": \"fabric\", \"type\": \"mod\"}\n\u2714\ufe0f Successfully downloaded complementary-reimagined.\n```\n\n## Notes\n\n- The `rinth-pack` command automatically creates subdirectories under the specified `path` based on the `type` of\neach project (e.g., `mods`, `resourcepacks`, `shaderpacks`).\n- If `deps` is set to `\"True\"`, dependencies will be searched for each project.\nIf a dependency is not already listed in the `projects` list, it will inform you and provide a json template to add it.\n\n\n## Error Handling\n\n- The program has error handling to manage network issues, missing projects, invalid inputs, etc.\n- Error messages start with `\u274c` and provide details about the issue.\n- Common errors include:\n - Project not found.\n - No versions found matching the specified criteria.\n - Network connectivity problems.\n\n\n## License\n\nThis project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3 License.\nSee the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "Define a Minecraft modpack in a JSON file, specifying mods, shaders, and resource packs, then download everything into organized folders for easy copying into your .minecraft folder.",
"version": "1.1.0",
"project_urls": null,
"split_keywords": [
"modrinth",
" minecraft",
" downloader"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "db5fe30e3979301a1ea2e3f52ab294a854df2bd7c2d599a63871850e0a56b6b0",
"md5": "fcbb1f316dec4c2fa3b830d61a77c080",
"sha256": "ae7d00ffe00117084b69064ee9f275979fb82ab1a988b4883b127c61e659a922"
},
"downloads": -1,
"filename": "rinthdl-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fcbb1f316dec4c2fa3b830d61a77c080",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "==3.11.*",
"size": 24346,
"upload_time": "2024-11-15T23:07:45",
"upload_time_iso_8601": "2024-11-15T23:07:45.775351Z",
"url": "https://files.pythonhosted.org/packages/db/5f/e30e3979301a1ea2e3f52ab294a854df2bd7c2d599a63871850e0a56b6b0/rinthdl-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3537d7f805ecd67459f9360a9f7e2ffb1685aa4366ab858a5fe4019ade6933b4",
"md5": "2721d6597cce5930962da72cdbf1c827",
"sha256": "be8dbdeceb9ade5622e07e4f85fae4081543f6c4d66f064395e44459b26712b4"
},
"downloads": -1,
"filename": "rinthdl-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2721d6597cce5930962da72cdbf1c827",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "==3.11.*",
"size": 22718,
"upload_time": "2024-11-15T23:07:46",
"upload_time_iso_8601": "2024-11-15T23:07:46.731741Z",
"url": "https://files.pythonhosted.org/packages/35/37/d7f805ecd67459f9360a9f7e2ffb1685aa4366ab858a5fe4019ade6933b4/rinthdl-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-15 23:07:46",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "rinthdl"
}