skyeweave/README.md

108 lines
4.5 KiB
Markdown
Raw Normal View History

2024-10-16 22:13:39 +02:00
# skyeweave
2024-10-05 14:01:50 +02:00
2024-10-16 22:13:39 +02:00
Easily generate any FGO expression sheets from an id
2024-10-05 14:01:50 +02:00
2024-10-16 22:13:39 +02:00
> Developed by [Firq](https://firq.dev/) and powered by the [AtlasAcademy API](https://atlasacademy.io/)
2024-10-05 14:01:50 +02:00
2024-10-16 22:13:39 +02:00
## Installation
The CLI can be installed by using `pip`. Python >= 3.10 is required.
2024-10-05 14:01:50 +02:00
```shell
2024-10-16 22:13:39 +02:00
pip install --extra-index-url https://forgejo.neshweb.net/api/packages/Firq/pypi/simple/ skyeweave
2024-10-05 14:01:50 +02:00
```
2024-10-16 22:13:39 +02:00
Note: Specifying the additional index of `forgejo.neshweb.net` is necessary, as I don't host my packages on PyPI. Using `--extra-index-url` is necessary as the
specified depencencies are not hosted on that index.
2024-10-05 14:01:50 +02:00
## Usage
2024-10-17 23:32:02 +02:00
### commandline
`skyeweave` is primarily a CLI application.
2024-10-16 22:13:39 +02:00
The following options are available:
- `--help` / `-h`: Shows helpful information about the other arguments
- `--version`: Shows the version number
- `--output`: Sets the output file path. This can be a relative path (`./out` or an absolute path `C:/files/out`)
- `--id`: Specify a servantId or charaId. This will skip the user prompt afterwards (useful in CI applications)
- `--filter`: Specify which spritesheets will actually be used. Useful if you want multiple spritesheets, but not all
- `--timeout`: Sets the timeout for any requests towards the Atlas Academy API. The default is 10 seconds
- `--no-cache`: Clear cache for this id, keeping all other files
- `--reset`: Delete any already downloaded assets
- `--quiet` / `-q`: Mute the output and hide progress bars
Typical usage:
2024-10-05 14:01:50 +02:00
```plain
2024-10-16 22:13:39 +02:00
skyeweave --output out --id 70
```
This would generate the expressions for Scathach (Servant Id 70) in the folder out, using subfolders to better separate the outputs of multiple runs.
2025-03-29 13:20:43 +01:00
For generating sprite sheets of only a singular ascension, use the `charaId` of the given sprite sheet collection. This is NOT to be confused with the `baseSvtId`, which is similar, but one digit short.
2024-10-17 23:32:02 +02:00
### python scripts [EXPERIMENTAL]
`skyeweave` can also be used in other Python scripts.
```python
2024-10-18 15:59:18 +02:00
from skyeweave import SkyeWeave
SkyeWeave().compose(70)
2024-10-17 23:32:02 +02:00
```
This feature will be expanded upon in future releases.
2024-10-16 22:13:39 +02:00
## Issues / Support
If there are any issues with `skyeweave`, feel free to reach out to me using the AtlasAcademy discord (`#dev-corner`) or create an issue in this repo.
If you want to help me debug when an issue occurs, set the environment variable `SKYEWEAVE_STDOUT_LEVEL` to `debug` and send me a copy of the log
Windows (PowerShell):
2024-10-16 22:13:39 +02:00
```powershell
2024-10-16 22:13:39 +02:00
$env:SKYEWEAVE_STDOUT_LEVEL="debug"
skyeweave --output out --id 70 2>&1 log.log
```
Linux (Bash):
```bash
SKYEWEAVE_STDOUT_LEVEL="debug"
skyeweave --output out --id 70 2>&1 log.log
2024-10-05 14:01:50 +02:00
```
## Contributing
Feel free to reach out if you want to help to improve skyeweave. I really appreachiate it.
## FAQ
> Q: Why Python
A: Because it is the language I am the most familiar with, and I know my stuff. I also like not having to deal with too many restrictions when developing or the mess that is JS/TS.
> Q: Why a CLI script?
A: Because it felt like the appropriate solution for this problem. Writing a whole GUI application felt overkill, and for the most part having the tool just spittingt out the necessary files is more than enough.
> Q: Where is the executable? Why do I have to install Python?
A: ~~Because I said so!~~ In all honesty, I felt that it's too much work for too little return building executables for multiple systems, expecially with `pyinstaller` resulting in a large executable for what is actually happening. Installing Python is pretty straightforward, and I have attached guidance for setting up from scratch below. Also: See [this gem](https://www.reddit.com/r/github/comments/1at9br4) for another reason.
> Q: How did this come to be?
A: I am usually editing thumbnails for my videos with the expression sheets, and at some point I was just annoyed as the process of editing those for EVERY. SINGLE. SERVANT. IN. EVERY. THUMBNAIL.
## How to install Python?
1. Go to [the download page](https://www.python.org/downloads/) and download a current version of Python (must be version 3.10 or later for this package to work).
2. Install Python as you would any other program, make sure it gets added to PATH
3. Open a Terminal (cmd, poweshell on Windows; bash, sh, ... on Linux) and run `python --version` once to verify it installed correctly. There should be some output like `Python 3.11.9`
After this, you can continue with the instructions above. I highly recommend you check out of virtual environments (venv) work beofre installing, so that you don't pollute the global package installation directory.