Easily generate any FGO expression sheets from an id, powered by AtlasAcademy
Find a file
2025-04-05 20:27:41 +02:00
.forgejo/workflows python 3.9 support? nope 2025-04-05 20:16:34 +02:00
skyeweave NotRequired fix 2025-04-05 20:02:05 +02:00
tests Added testing 2024-10-20 21:38:22 +02:00
.gitignore Added testing 2024-10-20 21:38:22 +02:00
pyproject.toml fixed supports stuff and python workflows 2025-04-05 20:27:41 +02:00
README.md Updated readme, fixed linting and type annotations 2025-04-04 11:33:49 +02:00

skyeweave

Easily generate any FGO expression sheets from an id

Developed by Firq and powered by the AtlasAcademy API

Installation

The CLI can be installed by using pip. Python >= 3.10 is required.

pip install --extra-index-url https://forgejo.neshweb.net/api/packages/Firq/pypi/simple/ skyeweave

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.

Usage

commandline

skyeweave is primarily a CLI application.

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:

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.

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.

python scripts [EXPERIMENTAL]

skyeweave can also be used in other Python scripts.

from skyeweave import SkyeWeave
SkyeWeave().compose(70)

This feature will be expanded upon in future releases.

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

$env:SKYEWEAVE_STDOUT_LEVEL="debug"

skyeweave --output out --id 70 2>&1 log.log

Linux (Bash):

SKYEWEAVE_STDOUT_LEVEL="debug"

skyeweave --output out --id 70 2>&1 log.log

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