Skip to content

Latest commit

 

History

History
78 lines (62 loc) · 7.54 KB

README.md

File metadata and controls

78 lines (62 loc) · 7.54 KB

Предыстория

Однажды наш тёплый ламповый Аниме-фест Yuki no Odori решил переехать на убер-крутую платформу для организации Аниме-фестов Cosplay2. Мы начали принимать заявки, а потом выяснилось, что программа Генератор слайдов, которая по идее призвана скачивать файлы участников не очень то работает... А еще, очень очень хотелось иметь все данные заявок данные в одной базе данных, чтобы писать к ней SQL-запросы и генерировать всякие полезные списки (встроенная генерилка списков гибкостью не блещет). Так и родился этот репозиторий.

Основные скрипты

  • backup-data.py
    • Резервное копирование данных фестиваля
    • Автоматическая валидация частых ошибок
    • Запускается через cron каждый день
  • get-data.py
    • Загрузка всех данных из всех заявок на фестиваль.
    • Генерация базы данных SQLite из этих данных.
  • get-scene-files.py, get-exhibition-fotos.py
    • Загрузка всех файлов из всех заявок.
    • Для каждой номинации своя папка
    • Для сбора всех файлов в одну папку для FestEngine, применяется скрипт extract-files.py
    • Имена файлов составляются из номера заявки и названия карточки. Если у вас нет названий карточек, сгенерируйте их или нагородите LEFT JOIN'ов в SQL (не рекомендуется, но вот пример).
  • image_list_gen.py
    • Генерилка списка путей к картинкам для вставки в CSV файл, который используется для определения переменных фотошопе при генерации задников.
    • Если вы ничего не поняли, начните отсюда. Или не начинайте, а сразу переходите на InDesign.
  • mktex.py
    • Открытая часть нашего с @Oreolek секретного проекта для фотовыставки.
    • Пишите в Gitter за подробностями.

Папка etc

Тут хранятся легаси и ad-hoc скрипты для специфических задач.

  • gimp-scripts -- попытки привнести в GIMP работу с переменными данными. Использовалось только на одном фесте, а потом я узнал про переменные в фотошопе. А потом, про InDesign.
  • checker.py -- скрипт, проверяющий все ли файлы на месте (обязательно перепровертье вручную в самом конце, это архи-важно. Я два феста подряд просерал AMV-шки из за пренебрежения ручной проверкой. А в последнее время всё гладко). Возможно легаси, вроде бы там сейчас на каждом шагу проверки и в основных скриптах.
  • compare_folders.py -- скрипт сверки папок, можете заменить на meld или обычный diff. А можете, нет.
  • regex_renamer.py -- переименователь по регэкспам, можно заменить на GNU reanme. Но не нужно.
  • sql_query.py -- выполняет SQL-запрос в указанной базе SQLite. Там есть одна очень полезная фича -- делать плоские тексты с длинными полями, для пожеланий по стаффу волонтёрам и светосценариев.
  • csv_renamer.py -- для фестов, которые не через к2. Делает имена файлов для FestEngine из таблицы
  • festival_plan-parser.py -- скрипт для парсинга файла festival_plan.xls из планировщика расписания и выгрузки текста, готового к публикации, а также чистого CSV исключительно с номерами. Подробнее.
  • tickets-gen.py -- Генератор кодов, похожих на коды электронных билетов для использования в бумажных билетах.
  • SQL-скрипты на все случаи жизни
  • Много легаси, которое давно не используется
  • Много полезного, о чём тут не написано

Virtual Environment

python3 -m venv .venv
. .venv/bin/activate
pip install --upgrade PyYAML tabulate youtube-dl vk

Как запускать

  • Cкопировать config.yml.example в config.yml и отредактировать под себя. Там есть комментарии.
  • Создать папку домен_фестиваля, указать её в конфиге
  • Запустить python3 get_data.py
  • Проверить, что всё в порядке.

Если стрёмно хранить пароль админа без шифрования, можно его не вводить в конфиге, тогда программа будет сама спрашивать (не чаще 1 раза в ~10 минут).

Благодарности

  • Евгений Политов за создание и посильную поддержку сайта Cosplay2. Всегда донатьте ему до и после феста по мере масштабов и окупаемости.
  • @Oreolek за вклад в автоматизацию на фестах и конвентах!

Смежные проекты

  • FestEngine
    • Устали от "звукач говно"?
    • Работаете в режиме одного монитора и зрители видят вашу мышку?
    • Надоело путать и терять треки во время шоу?
    • У нас есть решение!