Forwarded from Вадим КодБаза
Создание досье персонажа по имени в книге
Разбор полетов - правки сразу можно применить уже в готовом тексте
Что добавил к импорту
🛡 Защита от дублей — при повторной загрузке главы с уже существующим заголовком пропускаются (не плодятся). В ответе теперь: «Создано глав: N (дубли пропущены: M)», а если всё уже есть — «Все главы из файла уже есть в книге, дубли не создавал».
📄 Форматы — проверил и расширил:
Формат
Статус
✅ работает (проверено на файле Юрия — 29 глав)
✅ (авто-кодировка UTF-8 / Windows-1251)
✅ добавил — режет по секциям (проверил: секции → главы, заголовки и абзацы верны)
⚠️ понятный отказ: «сохраните как .docx»
⚠️ понятный отказ: «сохраните в .docx/.txt/.fb2»
Плюс лимит 25 МБ на файл и защита от кривых файлов (повреждённый zip/xml → внятная ошибка, а не пустой ответ).
Кнопка в редакторе обновлена: «Выбрать файл .txt / .docx / .fb2», подсказка про отсутствие дублей.
Итого по багу Юрия: причина была — обработчика загрузки файлов на сервере не существовало вовсе (только импорт по ссылке). Теперь есть, проверен на его рукописи (29 глав-черновиков), плюс fb2 и защита от дублей. Пусть перезаливает — разобьётся корректно.
🛡 Защита от дублей — при повторной загрузке главы с уже существующим заголовком пропускаются (не плодятся). В ответе теперь: «Создано глав: N (дубли пропущены: M)», а если всё уже есть — «Все главы из файла уже есть в книге, дубли не создавал».
📄 Форматы — проверил и расширил:
Формат
Статус
.docx✅ работает (проверено на файле Юрия — 29 глав)
.txt✅ (авто-кодировка UTF-8 / Windows-1251)
.fb2✅ добавил — режет по секциям (проверил: секции → главы, заголовки и абзацы верны)
.doc (старый)⚠️ понятный отказ: «сохраните как .docx»
.rtf/.odt/.pdf/.epub⚠️ понятный отказ: «сохраните в .docx/.txt/.fb2»
Плюс лимит 25 МБ на файл и защита от кривых файлов (повреждённый zip/xml → внятная ошибка, а не пустой ответ).
Кнопка в редакторе обновлена: «Выбрать файл .txt / .docx / .fb2», подсказка про отсутствие дублей.
Итого по багу Юрия: причина была — обработчика загрузки файлов на сервере не существовало вовсе (только импорт по ссылке). Теперь есть, проверен на его рукописи (29 глав-черновиков), плюс fb2 и защита от дублей. Пусть перезаливает — разобьётся корректно.
Что сделано
Таймер на главу: в редакторе главы поле «Выложить по расписанию» (дата + час) + «Сбросить». Глава ждёт черновиком и публикуется сама в срок. В списке глав метка «выйдет 15.07 в 18:00».
Уведомления подписчикам: при публикации (по расписанию ИЛИ вручную) уведомление летит подписчикам автора (Wo_Followers) и всем, у кого книга в библиотеке — в колокольчик и в нативный экран «Уведомления» в приложении. Дедуп, лимит 4000.
Проверено end-to-end: глава со сроком в прошлом → опубликовалась, срок снят, уведомление дошло: «Новая глава «Глава 3. Цена одного имени» в книге «Сердце хирурга»».
Работает и без крона: созревшие главы публикуются, когда кто-то открывает книгу (ленивая публикация в book_api).
Таймер на главу: в редакторе главы поле «Выложить по расписанию» (дата + час) + «Сбросить». Глава ждёт черновиком и публикуется сама в срок. В списке глав метка «выйдет 15.07 в 18:00».
Уведомления подписчикам: при публикации (по расписанию ИЛИ вручную) уведомление летит подписчикам автора (Wo_Followers) и всем, у кого книга в библиотеке — в колокольчик и в нативный экран «Уведомления» в приложении. Дедуп, лимит 4000.
Проверено end-to-end: глава со сроком в прошлом → опубликовалась, срок снят, уведомление дошло: «Новая глава «Глава 3. Цена одного имени» в книге «Сердце хирурга»».
Работает и без крона: созревшие главы публикуются, когда кто-то открывает книгу (ленивая публикация в book_api).