Веб-приложение «Leditor» помогает писать и публиковать выпуски «Леновостей» в соцсетях. Программа принимает новости от расширения «Hound», позволяет их редактировать, готовит видео- и аудио-версии, а после отправляет в Телеграм и на YouTube каналы.
Придумал интерфейс и написал код на Python + JS.
Страница с выпуском поделена на четыре части: вверху счётчик новостей и форма загрузки обложки, далее список событий, ниже аудиоплеер и в конце — предпросмотр для публикации вручную, копи-пастом, на сайтах без API.
Если нажать на новость, то откроется форма редактирования:
«Leditor» озвучивает выпуски через сервис «Yandex SpeechKit» и позволяет прослушать его перед отправкой. Текст для аудиоверсии, если он отличается, выводится под новостью меньшим шрифтом.
Для публикации нужно удерживать зелёную кнопку три секунды. Процесс занимает около шести минут, а после звучит сигнал об успехе или ошибке:
Сочетания клавиш:
Навести курсор на новость + Пробел — Скрыть/вернуть новость в выпуск. Удалить её невозможно.
Навести курсор + 1/2/3 — Сменить группу, например: лидер/основное/СВО.
Ctrl + Пробел — Плей/Пауза аудиоверсии
Ctrl + ↑/↓ — Скорость воспроизведения
Ctrl + ←/→ — Перемотка -10/+15 секунд
В форме редактирования:
Ctrl + V — Копировать текст новости в поле аудиоверсии
Ctrl + C — Показать поле цензурной версии
Ctrl + Enter — Сохранить и закрыть форму
Esc — Закрыть без сохранения
Бэкенд на Django с модулями DRF, Q2, pydub, yandex-speechkit, moviepy, pyyoutube и telethon.
Модели:
Edition — имя издания: «Леновости», «Импортные Леновости» или «ntab». К ней подключена модель «Group» c названиями групп новостей, например: «Лидер, Основное, СВО», и опциями: выводить нумерованным списком? Голос озвучки? Можно добавить обложку? И т.п.
Issue — выпуск издания. Хранит заголовок и ссылки на посты в соцсетях. Подключены модели с обложками, аудио- и видео-версией: Cover, Audio, Video.
News — новости с привязкой к выпуску и группе издания. Хранит текст, ссылку и время.