Metadata-Version: 2.1
Name: mmc-export
Version: 2.0.1
Summary: 
Home-page: https://github.com/RozeFound/mmc-export
License: MIT
Keywords: minecraft,mods,modpack,converter,MultiMC
Author: RozeFound
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Requires-Dist: Werkzeug (>=2.1.2,<3.0.0)
Requires-Dist: aiohttp (>=3.7.4,<4.0.0)
Requires-Dist: jsonpickle (>=2.1.0,<3.0.0)
Requires-Dist: murmurhash2 (>=0.2.9,<0.3.0)
Requires-Dist: pytoml (>=0.1.21,<0.2.0)
Requires-Dist: tenacity (>=8.0.1,<9.0.0)
Requires-Dist: tomli (>=1.2.1,<2.0.0)
Project-URL: Repository, https://github.com/RozeFound/mmc-export
Description-Content-Type: text/markdown

# MultiMC advanced exporter

Since MultiMC export features are very limited, I created a script that solves this problem, with this script you can export MultiMC pack to any popular format (e.g. curseforge, modrinth, packwiz)

# Features

- Support convertions to:
    - CurseForge
    - Modrinth
    - packwiz
- Detects downloadable resourcepacks and shaders
- Supports github parsing[¹](#github-rate-limits)
- Loose modrinth search
- User friendly toml config
- Multiple output formats at once

---
### Github rate limits

Github have limited requests per hour to 60, that means that if you have more than 60 mods, the rest will be excluded from github search.

To solve this, you can authorize in application. \
You need to create personal key [here](https://github.com/settings/tokens) (with no permissions), and pass it as argument to script along with your username, example:
```
mmc-export -i modpack -f format --github_auth username:token
```
I recommend you to store tokens in enviroment variables for security reasons.

# How to Use

```
mmc-export [-h] [-c CONFIG] -i INPUT -f FORMAT [-o OUTPUT]
```

Example: 
```
mmc-export -i modpack.zip -c config.toml -f curseforge modrinth -o converted_modpacks
```

## Explanation:

```
-h --help: prints help
-i --input: specifies input file (mostly zip file)
-c --config: specifies config file, used for fill the gaps like description or files not in modrinth on curseforge example can be found in this repository.
-f --format: soecifies formats to convert, must be separated by spaces.
-o --output: specifies output directory, where converted zip files will be stored. By default current working directory will be used.
```

Avaliable formats:     - `CurseForge, Modrinth, packwiz, Intermediate` (case sensetive)

`intermediate` must be used only for debuging, can contain sensetive information like user name.

# How to Install

## From PyPI
```
pip install mmc-export
```
 
 # Credits

murmurhash2 - Murmur Hash 2 libray - https://pypi.org/project/murmurhash2 \
aiohttp - Async web interface - https://github.com/aio-libs/aiohttp \
tomli - Fast pure python toml parser - https://github.com/hukkin/tomli \
pytoml - The only one toml writer that can handle weird packwiz files - https://github.com/avakar/pytoml \
tenacity - Awesome, ease-in-use retrying library - https://github.com/jd/tenacity

