cli-утилита для генерации превью-изображений по данным Шикимори
Project description
Генератор превью для Shikimori
Демо
Описание
anime-pgen
представляет собой cli
-утилиту для генерации превью-изображений по данным Шикимори (скачивание данных включено в функциональность). В качестве фреймворка для организации cli
интерфейса используется Typer
Требования и установка
- Python
^3.9
pip
, или,poetry
или любой другой пакетный менеджер для Python- Приложение на Shikimori (для работы необходимо иметь
APPLICATION_NAME
)
Установка:
$> pip install anime-pgen
[Опционально] Подсказки для терминала:
$> pgen --install-completion
Использование
- Понадобится создать папку для конфигов и контента
$> mkdir previews && cd previews
- Далее нужно добавить конфиг-файл. Его можно взять в репозитории. Имя файла:
config.yaml
$> cp config.example.yaml config.yaml
$> l
total 16
drwxr-xr-x 4 user staff 128B Jun 28 19:48 .
drwxr-xr-x 23 user staff 736B Jun 28 19:43 ..
-rw-r--r-- 1 user staff 1.1K Jun 28 19:48 config.yaml
- Для удобства создадим папку
content
- в ней разместим шрифты и иконки
$> mkdir content
$> l
total 16
drwxr-xr-x 5 user staff 160B Jun 28 19:52 .
drwxr-xr-x 23 user staff 736B Jun 28 19:49 ..
-rw-r--r-- 1 user staff 1.1K Jun 28 19:48 config.yaml
drwxr-xr-x 2 user staff 64B Jun 28 19:52 content
- В новосозданную папку
content
можно сразу перенести из репозитория двусоставное лого Шикимори, иконку рейтинга и заполнение заднего фона (или можно использовать свои)
$> cp shikimori-glyph.png content/shikimori-glyph.png
$> cp shikimori-logo.png content/shikimori-logo.png
$> cp star.png content/star.png
$> cp tile.png content/tile.png
$> tree -a
.
└── previews
├── config.yaml
└── content
├── shikimori-glyph.png
├── shikimori-logo.png
├── star.png
└── tile.png
- В
content
так же нужно положить шрифты. Для Шикимори используются:
Финально папка previews
выглядит примерно так:
$> tree -a -L 4
.
└── previews
├── config.yaml
└── content
├── Noto_Serif_JP
│ ├── NotoSerifJP-Black.otf
│ ├── NotoSerifJP-Bold.otf
│ ├── NotoSerifJP-ExtraLight.otf
│ ├── NotoSerifJP-Light.otf
│ ├── NotoSerifJP-Medium.otf
│ ├── NotoSerifJP-Regular.otf
│ ├── NotoSerifJP-SemiBold.otf
│ └── OFL.txt
├── Open_Sans
│ ├── LICENSE.txt
│ ├── OpenSans-Italic-VariableFont_wdth,wght.ttf
│ ├── OpenSans-VariableFont_wdth,wght.ttf
│ ├── README.txt
│ └── static
├── Tahoma
│ ├── COPYRIGHT.txt
│ └── tahoma.ttf
├── shikimori-glyph.png
├── shikimori-logo.png
├── star.png
└── tile.png
config.yaml
Рассмотрим конфигурационный файл. По дефолту он выглядит так:
size: 'big'
colors:
background: '#ffffff'
text: '#343434'
year: '#555555'
rating:
active: '#4c86c8'
regular: '#cccccc'
content:
images:
background_tile: content/tile.png
star: content/star.png
logo:
glyph: content/shikimori-glyph.png
text: content/shikimori-logo.png
fonts:
text: content/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf
bold_text: content/Open_Sans/static/OpenSans/OpenSans-Bold.ttf
numbers: content/Tahoma/tahoma.ttf
japanese: content/Noto_Serif_JP/NotoSerifJP-Bold.otf
size: 'big'
Возможные значения:
big
= 1200 x 630 (значение по умолчанию)small
= 600 x 315
Это размер финального изображения. Цифры являются рекоммендацией к формату превью от Facebook/Twitter/Вконтакте.
rating:
active: '#4c86c8'
regular: '#cccccc'
Цвета звёздочек рейтинга - активных и плейсхолдеров. В конфиге представлены их дефолтные значения.
colors:
background: '#ffffff'
text: '#343434'
year: '#555555'
Цвета:
- Подложки (
background
) - Всего текса (
text
) - Года выпуска (
year
)
В конфиге представлены их дефолтные значения.
Важно!
colors
и size
- опциональны.
В случае, если они не указаны в файле - будут использовать дефолтные значения (которые совпадают с дефолтным конфигом)
content
- обязательные поля
Важно2!
Для картинок нельзя использовать .svg
, только .jpeg|.jpg|.png
(ограничение библиотеки)
content:
images:
background_tile: content/tile.png
Путь до файла с тайлом для заднего фона. Например, дефолтный для Шикимори:
Рекоммендации:
- Квадратный (иначе сплющится)
- Бесшовный
.png
с альфа-каналом, если хочется красивого наложения на белый фон
content:
images:
star: content/star.png
Путь до файла со звездой рейтинга.
Требования:
- Прозрачный фон
- Фигура чёрного цвета
- Квадрат
При накладывании на превью чёрный цвет перекрашивается в rating.active
или rating.regular
logo:
glyph: content/shikimori-glyph.png
text: content/shikimori-logo.png
Двусоставное лого Шикимори - Иероглиф + "SHIKIMORI"
Требования:
- Одинаковая высота
.png
с альфа-каналом
fonts:
text: content/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf
bold_text: content/Open_Sans/static/OpenSans/OpenSans-Bold.ttf
numbers: content/Tahoma/tahoma.ttf
japanese: content/Noto_Serif_JP/NotoSerifJP-Bold.otf
Путь до шрифтов:
text
- описание и подписиbold_text
- названиеnumber
- рейтинг и годjapanese
- для Иероглифов, Хираганы и Катаканы
Требования:
TrueType
шрифты
Использование
Использование состоит из двух частей:
- Скачиваем данные из API-Шикимори по
id
аниме или манги - Генерируем превью по данным
Скачаем информацию об аниме "Ковбой Бибоп":
$> pgen fetch 1 --app-name <APPLICATION_NAME_из_Шикимори>
Successfully saved to .pgen.json
$> l
total 40
drwxr-xr-x 6 vladimirlevin staff 192B Jun 28 20:36 .
drwxr-xr-x 3 vladimirlevin staff 96B Jun 28 19:56 ..
-rw-r--r-- 1 vladimirlevin staff 9.2K Jun 28 20:36 .pgen.json
-rw-r--r-- 1 vladimirlevin staff 1.1K Jun 28 19:48 config.yaml
drwxr-xr-x 9 vladimirlevin staff 288B Jun 28 20:03 content
По умолчанию данные сохраняются в .pgen.json
, путь можно изменить, передав флаг --save-path 'my_file.json'
$> pgen fetch 1 --app-name <APPLICATION_NAME_из_Шикимори> --save-path "my_file.json"
Successfully saved to my_file.json
Переходим к генерации:
$>pgen make-preview .pgen.json \
--output-folder "." \
--config "config.yaml" \
--app-name <APPLICATION_NAME_из_Шикимори>
Successfully create previews:
- 1.jpg
Готово! 🥳
FAQ
Q: Как разметить много за раз?
A: С флагом -M
можно за раз скачать и разметить много Аниме/Манги:
$> pgen fetch -M "1,5,8" --app-name <APPLICATION_NAME_из_Шикимори>
Successfully saved to .pgen.json
$> pgen make-preview .pgen.json --output-folder "." --config "config.yaml" --app-name <APPLICATION_NAME_из_Шикимори>
Successfully create previews:
- 1.jpg
- 5.jpg
- 8.jpg
Q: Как разметить мангу?
A: С помощью флага -m
можно скачать Мангу. Создание превью опирается на данные, поэтому во второй команде ничего не потребуется менять
$> pgen fetch -mM "1,8" --app-name <APPLICATION_NAME_из_Шикимори>
Successfully saved to .pgen.json
$> pgen make-preview .pgen.json --output-folder "." --config "config.yaml" --app-name <APPLICATION_NAME_из_Шикимори>
Successfully create previews:
- 1.jpg
- 8.jpg
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file anime-pgen-1.0.1.tar.gz
.
File metadata
- Download URL: anime-pgen-1.0.1.tar.gz
- Upload date:
- Size: 29.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a88e12cbba63990125f38411636684e670404484995d912bb76fa601640d2b23 |
|
MD5 | 6bd9a3a20bccd2f65a5e7c02dbab1e04 |
|
BLAKE2b-256 | a8991bb41fd04f6b8888feef478e0da89e0b0119bbb3047dbbe805f039b2ec35 |
File details
Details for the file anime_pgen-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: anime_pgen-1.0.1-py3-none-any.whl
- Upload date:
- Size: 27.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a945a57cd3ecab4ccfeebd1693618be30810826259d6dfe73bca6131ce566691 |
|
MD5 | c773a8ce4b10e6dea4df0db92ef56ea9 |
|
BLAKE2b-256 | 70219ac4c43b9871027f6fbd75305599e827bcb13b445cbb29b10fcb239d64a4 |