Package: anime-pgen
Генератор превью для ShikimoriДемоОписаниеanime-pgenпредставляет собойcli-утилиту для генерации превью-изображений по данным Шикимори (скачивание данных включено в функциональность). В качестве фреймворка для организацииcliинтерфейса используетсяTyperТребования и установкаPython^3.9pip, или,poetryили любой другой пакетный менеджер для PythonПриложение наShikimori(для работы необходимо иметьAPPLICATION_NAME)Установка:$>pipinstallanime-pgen[Опционально] Подсказки для терминала:$>pgen--install-completionИспользованиеПонадобится создать папку для конфигов и контента$>mkdirpreviews&&cdpreviewsДалее нужно добавить конфиг-файл. Его можно взятьв репозитории. Имя файла:config.yaml$>cpconfig.example.yamlconfig.yaml
$>l
total16drwxr-xr-x4userstaff128BJun2819:48.
drwxr-xr-x23userstaff736BJun2819:43..
-rw-r--r--1userstaff1.1KJun2819:48config.yamlДля удобства создадим папкуcontent- в ней разместим шрифты и иконки$>mkdircontent
$>l
total16drwxr-xr-x5userstaff160BJun2819:52.
drwxr-xr-x23userstaff736BJun2819:49..
-rw-r--r--1userstaff1.1KJun2819:48config.yaml
drwxr-xr-x2userstaff64BJun2819:52contentВ новосозданную папкуcontentможно сразуперенести из репозиториядвусоставное лого Шикимори, иконку рейтинга и заполнение заднего фона (или можно использовать свои)$>cpshikimori-glyph.pngcontent/shikimori-glyph.png
$>cpshikimori-logo.pngcontent/shikimori-logo.png
$>cpstar.pngcontent/star.png
$>cptile.pngcontent/tile.png
$>tree-a
.
└──previews├──config.yaml└──content├──shikimori-glyph.png├──shikimori-logo.png├──star.png└──tile.pngВcontentтак же нужно положить шрифты. Для Шикимори используются:🔗OpenSansдля заголовка и описания🔗Tahomaдля рейтинга🔗NotoSerif_JPдля Японских иероглифовФинально папкаpreviewsвыглядит примерно так:$>tree-a-L4.
└──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.pngconfig.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.otfsize: '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.regularlogo: 
      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шрифтыИспользованиеПодробная документация поcli-интерфейсу:DOCS.mdПример использования:MakefileИспользование состоит из двух частей:Скачиваем данные из API-Шикимори поidаниме или мангиГенерируем превью по даннымСкачаем информацию об аниме "Ковбой Бибоп":$>pgenfetch1--app-name<APPLICATION_NAME_из_Шикимори>
Successfullysavedto.pgen.json

$>l
total40drwxr-xr-x6vladimirlevinstaff192BJun2820:36.
drwxr-xr-x3vladimirlevinstaff96BJun2819:56..
-rw-r--r--1vladimirlevinstaff9.2KJun2820:36.pgen.json
-rw-r--r--1vladimirlevinstaff1.1KJun2819:48config.yaml
drwxr-xr-x9vladimirlevinstaff288BJun2820:03contentПо умолчанию данные сохраняются в.pgen.json, путь можно изменить, передав флаг--save-path 'my_file.json'$>pgenfetch1--app-name<APPLICATION_NAME_из_Шикимори>--save-path"my_file.json"Successfullysavedtomy_file.jsonПереходим к генерации:$>pgenmake-preview.pgen.json\--output-folder"."\--config"config.yaml"\--app-name<APPLICATION_NAME_из_Шикимори>

Successfullycreatepreviews:-1.jpgГотово!🥳FAQQ: Как разметить много за раз?A: С флагом-Mможно за раз скачать и разметить много Аниме/Манги:$>pgenfetch-M"1,5,8"--app-name<APPLICATION_NAME_из_Шикимори>
Successfullysavedto.pgen.json

$>pgenmake-preview.pgen.json--output-folder"."--config"config.yaml"--app-name<APPLICATION_NAME_из_Шикимори>
Successfullycreatepreviews:-1.jpg-5.jpg-8.jpgQ: Как разметить мангу?A: С помощью флага-mможно скачать Мангу. Создание превью опирается на данные, поэтому во второй команде ничего не потребуется менять$>pgenfetch-mM"1,8"--app-name<APPLICATION_NAME_из_Шикимори>
Successfullysavedto.pgen.json

$>pgenmake-preview.pgen.json--output-folder"."--config"config.yaml"--app-name<APPLICATION_NAME_из_Шикимори>
Successfullycreatepreviews:-1.jpg-8.jpg