Skip to content
itd-sdkPublic

About

Скриншотер постов в ИТД и тд

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

itdshot

Скриншотер ИТД.

Пример готового скриншота

Установка

uv tool install itdshot

Скриншоты делаются в Chromium через Playwright, его нужно скачать один раз:

playwright install chromium

В будущем будет добавлена поддержка .exe (через pyinstaller).

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

itdshot [ссылка на пост или id]

При первом запуске itd-sdk предложит войти: по почте и паролю (капча решится сама в окне браузера Camoufox) или по QR-коду. Сессия сохраняется, дальше вход автоматический. Перед первым входом скачайте браузер для капчи:

camoufox fetch

Это отдельная сессия: не используйте refresh-токен из браузера — он одноразовый, и если им пользуются и браузер, и скрипт, сервер отзывает сессию (разлогинивает).

Без интерактивного ввода (например, на сервере) можно задать переменные окружения itd-sdk: ITD_AUTH_METHOD=login, ITD_LOGIN, ITD_PASSWORD.

Если в посте (или в репостнутом посте) есть видео, на выходе будет GIF: видео накладывается на скриншот поста кадр за кадром. Для этого нужен ffmpeg — он ставится вместе с пакетом imageio-ffmpeg, отдельно устанавливать не нужно.

Опции:

  • -d / --no-dark — тёмная или светлая тема (по умолчанию тёмная)
  • -w / --width — ширина поста в пикселях (по умолчанию 650, как на сайте)
  • -s / --scale — масштаб (2 — картинка в два раза чётче), по умолчанию 1
  • --static — сохранить PNG, даже если в посте есть видео
  • --fps — частота кадров GIF (по умолчанию 20)
  • --max-duration — максимальная длина GIF в секундах (по умолчанию 10)
  • --offline — не проверять сайт, взять встроенные классы и стили

Поддерживаются посты-тетрадки (клетка и линейка), замазка корректором и правки красной ручкой — как на сайте, пока они не истекли.

Обновление стилей сайта

Сайт собран через vite + CSS modules, поэтому после каждого обновления ИТД хешированные имена классов меняются. itdshot определяет их сам: при запуске смотрит, какой бандл сейчас на сайте, и если он новый — скачивает его и находит нужные CSS-модули по их ключам (postInner, originalPostMedia и т.д.), которые от сборки к сборке не меняются. Результат кешируется в ~/.cache/itdshot/site, так что после обновления сайта это происходит один раз.

Если сайт недоступен или бандл поменялся слишком сильно, используются встроенные itdshot/templates/site.css и itdshot/templates/classes.json (флаг --offline включает их принудительно). Обновить встроенные файлы:

python scripts/update_site.py

Roadmap

  • Посты
    • Вложения
      • Фото
      • Видео (GIF)
    • Форматирование текста
    • Тетрадка
    • Корректор и красная ручка
    • Опросы
    • Оригинальный пост
      • Вложения
    • Несколько постов
  • Пользователи
  • Комментарии
    • Ответы
    • Вложения
      • Фото
      • Видео
      • Голосовые

About

Скриншотер постов в ИТД и тд

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages