Skip to content

attyru/CardViewer-v2

Repository files navigation

Character Card CLI

Character Card CLI — это мощный инструмент командной строки для управления и каталогизации метаданных "карт персонажей", хранящихся в PNG-файлах. Он использует оптимизированную базу данных SQLite для быстрого доступа, поиска и управления большими коллекциями карт.

Основные возможности

  • Быстрое сканирование: Эффективно сканирует папки с PNG-файлами и обновляет базу данных.
  • Продвинутый поиск: Фильтрация по имени файла, автору и тегам с использованием простого синтаксиса.
  • Гибкий вывод: Просмотр данных в различных форматах: обычный текст, CSV, JSON, и таблицы.
  • Группировка и сортировка: Организация списка карт по автору, тегам или имени.
  • Управление картами: Команды для экспорта метаданных, дублирования, копирования и безопасного удаления карт.
  • Статистика: Получение статистики по коллекции, такой как общее количество карт, уникальных авторов и тегов.

Требования и установка

  1. Python 3.6+

  2. Зависимости: Установите необходимые библиотеки с помощью pip:

    pip install -r requirements.txt

Использование

Сканирование коллекции

Перед началом работы необходимо просканировать папку с вашими картами для создания или обновления базы данных (cards.db).

python card_viewer.py --folder /путь/к/вашим/картам scan
  • --force - принудительное полное пересканирование всех файлов.
  • --quiet - минимальный вывод в консоль.

Просмотр списка карт (list)

Команда list (используется по умолчанию) позволяет просматривать вашу коллекцию.

Примеры:

  • Простой список всех карт:
    python card_viewer.py --folder /путь/к/картам
  • Сортировка по автору:
    python card_viewer.py --folder /путь/к/картам list --sort creator
  • Группировка по тегу:
    python card_viewer.py --folder /путь/к/картам list --group tag
  • Вывод в формате JSON:
    python card_viewer.py --folder /путь/к/картам list --format json

Фильтрация

Используйте флаг --filter для поиска карт. Синтаксис: "текст @автор #тег1,тег2"

  • Найти карты, содержащие "elf" в имени, от автора "anon":
    python card_viewer.py --folder /п/к/к --filter "elf @anon"
  • Найти карты с тегом "magic":
    python card_viewer.py --folder /п/к/к --filter "#magic"

Просмотр метаданных (show)

Показывает подробную информацию о карте.

  • Показать краткую информацию о конкретном файле:
    python card_viewer.py --folder /п/к/к --file "my_character.png" show
  • Показать полную информацию:
    python card_viewer.py --folder /п/к/к --file "my_character.png" show --full

Другие команды

  • export: Экспорт метаданних в .json файлы.
  • duplicate: Создание копий карт.
  • copy: Копирование карт в другую директорию.
  • delete: Безопасное удаление карт с подтверждением.
  • stats: Показать статистику по базе данных.

Структура базы данных

База данных cards.db состоит из трех основных таблиц:

  • cards: Основная таблица, содержащая всю информацию о карте.
  • tags: Таблица для хранения уникальных тегов.
  • card_tags: Связующая таблица для отношений "многие ко многим" между картами и тегами.

Планы по улучшению

  • Графический интерфейс: Создание простого GUI для более удобного взаимодействия.
  • Конфигурационный файл: Вынесение всех настроек в config.ini.
  • Автоматическое тестирование: Написание тестов для обеспечения стабильности кода.
  • Поддержка других форматов: Расширение функционала для поддержки других форматов карт (например, WebP).
  • Плагины: Архитектура плагинов для расширения функциональности.

About

Modern SillyTavern character card viewer with SQLite database, CLI interface and UTF-8 support

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages