Greasy Fork is available in English.

AuthorTodayExtractor

The script adds a button to the site for downloading books to an FB2 file

< Feedback on AuthorTodayExtractor

Review: Good - script works

§
Posted: 2022-04-06
Edited: 2022-04-06

Доброго времени. Возникла та же проблема с зависанием, что здесь уже обсуждалась, но не с обложкой, а вроде бы с иллюстрацией. Получение глав дошло до шестой, затем появилась надпись "Загрузка изображения...", на чём дело и застопорилось. Вот книга:

https://author.today/work/109580

Баузер "Хром", расширения "Тампермонки" и "Вайолентмонки".

§
Posted: 2022-04-06
Edited: 2022-04-06

Лог консоли, извините, как тут прятать простыни под спойлер, не знаю:

vk.com/rtrg?p=VK-RTRG-120420-dQOLo:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
connect.facebook.net/en_US/fbevents.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
/account/trackLastActivity:1 Failed to load resource: the server responded with a status of 429 ()
bundle?v=YWYJQK69wHw5kldCkiqCuVnWTp-QVafL6lF3KFkNc1g1:1 {
"code": "TooManyRequests",
"rateLimit": 1,
"period": "Second",
"retryAfter": 25,
"message": "Too many requests! You or your provider's network neighbours are making too many requests, so we are sorry but have to limit your IP."
}

n.handleError @ bundle?v=YWYJQK69wHw5kldCkiqCuVnWTp-QVafL6lF3KFkNc1g1:1
cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
www.google-analytics.com/analytics.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
media7.kinotree.ru/files/s1/ty/jg/prometej.jpg:1 Failed to load resource: net::ERR_CONNECTION_TIMED_OUT
userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314 Uncaught (in promise) TypeError: Failed to fetch
at afetch (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314:17)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:597:4)
at new Promise ()
at loadImage (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:596:10)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:369:6)
at new Promise ()
at elementToFragment (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361:10)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441:13)
at Array.map ()
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440:23)
userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314 GET https://media7.kinotree.ru/files/s1/ty/jg/prometej.jpg net::ERR_CONNECTION_TIMED_OUT
afetch @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:597
loadImage @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:596
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:369
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
parseChapterContent @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:336
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:299
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:297
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:317
extractChapters @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:314
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1146
Promise.then (async)
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1143
userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314 Uncaught (in promise) TypeError: Failed to fetch
at afetch (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314:17)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:597:4)
at new Promise ()
at loadImage (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:596:10)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:369:6)
at new Promise ()
at elementToFragment (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361:10)
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441:13)
at Array.map ()
at eval (userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440:23)
afetch @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1314
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:597
loadImage @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:596
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:369
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
parseChapterContent @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:336
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:299
Promise.then (async)
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:607
loadImage @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:596
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:369
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:441
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:440
elementToFragment @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:361
parseChapterContent @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:336
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:299
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:297
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:304
Promise.then (async)
requestsRunner @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:300
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:317
extractChapters @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:314
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1146
Promise.then (async)
eval @ userscript.html?name=AuthorTodayExtractor.user.js&id=4b56bc24-a0cc-45b8-9ec7-721ee8688333:1143

Ox90Author
§
Posted: 2022-04-06

Добрый день! Очень показательное произведение. Иллюстрации со стороннего сайта, а дальше, через главу, еще хуже - картинка вообще не грузятся (удалена?). Спасибо за репорт. Буду думать.

Спасибо большое. :) Есть ещё книга, где скрипт тоже буксует, но уже из-за нераспознаваемого отрывка текста - там какая-то непонятная кракозябра в квадратных скобках. Я такого раньше даже не видел, кажется. Книга:

https://author.today/work/79973

Лог консоли:

vk.com/rtrg?p=VK-RTRG-120420-dQOLo:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
connect.facebook.net/en_US/fbevents.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
www.google-analytics.com/analytics.js:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
AuthorTodayExtractor.user.js:1157 Error: Неизвестный тип фрагмента: unknown | undefined
at addContentFragment (AuthorTodayExtractor.user.js:823:12)
at AuthorTodayExtractor.user.js:826:5
at Array.forEach ()
at addContentFragment (AuthorTodayExtractor.user.js:825:43)
at documentAddContentFragment (AuthorTodayExtractor.user.js:830:3)
at AuthorTodayExtractor.user.js:846:4
at Array.forEach ()
at documentAddChapters (AuthorTodayExtractor.user.js:845:12)
at documentStart (AuthorTodayExtractor.user.js:933:4)
at AuthorTodayExtractor.user.js:1151:11
(anonymous) @ AuthorTodayExtractor.user.js:1157
Promise.catch (async)
(anonymous) @ AuthorTodayExtractor.user.js:1154
AuthorTodayExtractor.user.js:1157 Error: Неизвестный тип фрагмента: unknown | undefined
at addContentFragment (AuthorTodayExtractor.user.js:823:12)
at AuthorTodayExtractor.user.js:826:5
at Array.forEach ()
at addContentFragment (AuthorTodayExtractor.user.js:825:43)
at documentAddContentFragment (AuthorTodayExtractor.user.js:830:3)
at AuthorTodayExtractor.user.js:846:4
at Array.forEach ()
at documentAddChapters (AuthorTodayExtractor.user.js:845:12)
at documentStart (AuthorTodayExtractor.user.js:933:4)
at AuthorTodayExtractor.user.js:1151:11
(anonymous) @ AuthorTodayExtractor.user.js:1157
Promise.catch (async)
(anonymous) @ AuthorTodayExtractor.user.js:1154

Ox90Author
§
Posted: 2022-04-06

Спасибо, я посмотрю в чем там проблема.

Ox90Author
§
Posted: 2022-04-06

Вторую проблему я исправил, все должно нормально работать с версии 0.6.1, а первую, с картинками, решу позже.

Оки, спасибо. :)

Ox90Author
§
Posted: 2022-04-08

Исправил загрузку картинок. Теперь должно грузить картинки с любого ресурса, хотя tampermonkey потребует подтверждения загрузки. Что касается книги по первой вашей ссылке - там есть шесть картинок, которые сейчас недоступны. Для них будет предложено использовать заглушку.

Принято, спасибо! )))

Доброго времени. Скрипт прекрасно работает, ещё раз спасибо большое. :) Очень и очень помогает. Однако возник один момент - у нас из-за творящегося кавардака очень неважно с интернетом, и кроме того, мне, к примеру, целый эшелон иллюстраций-кадров из сериалов в тексте некоторых книг(фанфиков) попросту не нужен. Зато скачивание это нагромождение ненужных картинок тормозит сильно, или же скрипт вообще подвисает из-за слабой сети на загрузке изображений. В связи с чем у меня вопрос - нельзя ли добавить фунцию, которая заранее исключает загрузку изображений? Что-то вроде кнопки "Грузить только текст".

Ox90Author
§
Posted: 2022-12-15

Добрый день. Извините за поздний ответ. Не вижу никаких препятствий для добавления такой опции. Если размещу еще одну галку ниже галки о добавлении аннотации, нормально будет? Что-нибудь ставить вместо изображений или ну его нафиг?

p.s. Рад что скрипт помогает, значит не зря сюда выложил.

§
Posted: 2022-12-15
Edited: 2022-12-15

Скрипт лучший в своем классе вообще-то!
Еще раз спасибо за него и доработки!!!

Если можно вставить свои 5 копеек?
Сделать эту галку в самом низу, назвать максимально однозначно и наглядно типа "Загрузить БЕЗ картинок" - и чтобы по дефолту эта галка не стояла, т.е. юзер должен руками выбирать вариант без картинок каждый раз.
Мне кажется, что великого смысла запоминать эту опцию нет, потому что, во-первых, количество книг с картинками внутри мизерно в отношении тех, что вообще без картинок или с "дополнительными материалами", а во-вторых, если человеку нужна такая опция, он совершенно точно не будет качать сотню книг за раз, ведь это друг другу наглухо противоречит - а единично раз даже в день, пусть ставит галку. Зато мы, подавляющее большинство, не запутается.
И, безусловно, в тексте как-то помечать "здесь была картинка, но мы ее сознательно не скачивали".

Кстати.
А возможно, чтобы скрипт выкачивал картинки из "дополнительных материалов"? Идеально помещая внутрь книги, но даже если просто рядом с файлом будет класть, то тоже хорошо?

Ox90Author
§
Posted: 2022-12-15

Хорошо, постараюсь на днях добавить опцию. Может даже завтра. Что касается картинок в дополнительных материалах: мы это уже обсуждали здесь: https://greasyfork.org/ru/scripts/441304-authortodayextractor/discussions/124442 Т.е. отдельными файлами не получится без действия пользователя (безопасность на уровне браузеров), а в книгу пихать - может получится ооочень жирно. Может у вас уже есть пример реализации подобного в других скриптах? Я умею идеи тырить, эээ, заимствовать.

Что обсуждали, я, конечно, помню, однако тогда посчитал (и думал до сих пор), что от идеи вы отказались, т.к. там был ряд объективных. сложностей. Именно что затрагивающих какие-то браузерные ограничения на всякие секьюрити и т.п.
Разве дело ТОЛЬКО в размере итогового фб2?
Если эти ограничения в наличии, - тогда идей, к сожалению, нет. Варианта ж ровно два: рядом положить, что браузер не дает, или внутрь - т.е. на общих основаниях с уже реализованным.

Но если все упирается исключительно в размер - так ведь сущностной разницы вообще же тогда нет. Автор просто ленится размещать свои иллюстрации в каких-то конкретных местах глав, а чохом сваливает все подряд в "дополнительные материалы". То есть если не поленится и таки разместит - скрипт скачает ТО ЖЕ САМОЕ того же объема. Были вон примеры книг за 60-70 мегабайт и вроде даже около 100. Не поленились они, особенно какая-то девушка, не пережавшая картинки от оригиналов в 10 мегабайт каждая и за 5000 пикселов. Скачалось и открылось потом, кстати, без проблем, пусть и с тормозами некоторыми.
То есть, если дело только в итоговом объеме, - никаких же препятствий нет? Особенно с новой кнопкой отказа от картинок?
Получаем: скрипт качает книгу, потом смотрит, если существуют "доп. материалы", и если да, то берет затем их и размещает тупо в конце всей книги. Можно даже, если получится, каждую картинку сделать под своим фб2-разделом, т.е. одна "глава" - одна картинка.

Ox90Author
§
Posted: 2022-12-16
Edited: 2022-12-16

Добавил функцию исключения загрузки картинок внутри глав. Обложка все равно будет грузится. Потестировал, вроде бы все хорошо. А еще я запустил загрузку ранее упомянутой вами книжки Гранд-адмирал идентификация, вместе с картинками. Теперь я понимаю зачем вы попросили эту опцию. Блин, оно до сих пор у меня грузится. Автор, походу, большой фанат картинок :)

added: Доп.материалы пока не делал. Позже займусь.

§
Posted: 2022-12-16
Edited: 2022-12-16

Вот эта? https://author.today/work/162582
Ровно минута, файл в итоге 45,5 Мб. Нормально.

added: Доп.материалы пока не делал. Позже займусь.

Ура!!!

Ox90Author
§
Posted: 2022-12-16

Да, эта книга. Минута не отключая картинки? Без картинок и у меня быстро загрузилось. Я тестировал оба режима, на всякий случай.

Ox90Author
§
Posted: 2022-12-17

Еще такой вопрос: часто нужны эти доп.материалы? Галочку по умолчанию ставить, как для примечаний автора, или нет?

Не, я даже не пробовал без картинок, мне такая опция не нужна. С картинками, да - ровно минута, может, 65 секунд, засекал по циферблату винды. И полагаю, что так только потому, что картинок много штук, и, конечно, самих глав.
45,5 Мб итоговый файл - если бы было 10 глав и 5 картинок (каждая по 10 Мб), загрузилось бы секунд за 15. Ну примерно как и происходило до этого апгрейда скрипта. Всё всегда работало быстро на типичных книгах, а конкретно тут это же Модус такой особенный - 100 глав и дофига иллюстраций, причем в основном никому не упавшей техники во всех ее занудных модификациях. А так практически никто на АТ не делает, вот реально, их же по пальцам пересчитать подобных можно.

Думаю, что по умолчанию должна стоять. Это фактически те самые иллюстрации, которые типичный автор должен помещать в текст, но ленится, сваливая их сюда в раздельчик без всякой системы. Например, очень редкие авторы их вообще называют/подписывают.
Основному контингенту нас, читателей, иллюстрации нужны обязательно, т.е. галка по умолчанию стоит. А кому не надо, то он нажимает без проблем "скачать БЕЗ картинок" и тут же рядом "скачать БЕЗ доп.материалов".
Идеально, если они будут помещены в конец книги, но каждая под свою "главу", т.е. можно будет в читалке быстро перелистывать на картинку и возвращаться обратно. Но даже если и не получится, т.е. это непросто из-за каких-нибудь АТшных ограничений, то просто в конец книги поместить тоже неплохо, в конце концов, картинок практически никогда не бывает больше 20, ну самый типичный максимум 30 штук. И нажать Энд, перелистать чуть вверх, потом вернуться к чтению не сложно.

Ox90Author
§
Posted: 2022-12-18

Добавил возможность грузить доп.материалы начиная с версии 0.12.0. Подписи тоже добавляются, если они есть.

Попробовал на Седрике, он известен "доп.материалами".
Два фика, СинДорай и Небесный демон - все картинки есть. Расположены в конце файла с подписями к ним, галки стоят (не стоят) как и положено, скорость скачки меньше или равно 10 секундам.
Протестировано. Результат - идеально.

[Яростно жмёт руку]
Ну вы всё давно сами и так знаете.
Вы - просто боженька.
СПАСИБИЩЕ!!!

Ox90Author
§
Posted: 2022-12-18

Ну и отлично! Вы на мою скорость особо не ориентируйтесь - у меня интернет не очень хороший, да еще и Автор.Тудей у меня заворачивается через Тор, что также замедляет выгрузку. А тестировать я всегда стараюсь на самых, хм, непростых авторах, на которых велика вероятность вылезания багов и тормозов. Удачи и хороших вам книг!

Спасибо огромное! Вот, только сейчас насилу вышел в сеть, перебои со светом. То, что надо. ))) А то валят в текст лишние мегабайты, они же даже уменьшать картинки не умеют. Или не хотят.

Ox90Author
§
Posted: 2022-12-23

Пожалуйста. Что касается размера картинок - это прям бич какой-то, ага.

Кстати, в течение часа выложу обновление, которое позволяет видеть прогресс загрузки картинок, чтобы различать оно подвисло или таки что-то грузится. В принципе такое можно даже для текста прикрутить.

Разве "бич"? Ну то есть я, конечно, не считал - выписывая каждый случай и собирая в систему - но по сложившемуся довольно абстрактно представлению, основная масса (вообще основная масса в принципе без картинок; где они есть - это процентов 15 книг?), если картинки есть, это все-таки обычные пожатые джипеги. И только единичные случаи - это 3000-5000 пикселов и 7-10+ Мб. 2-3 случая на 100 раз? Да пренебречь и всё.
Могу ошибаться, но впечатление такое.

Как по мне - избыточная функция. Что для глав, что для картинок. Обсуждавшийся выше Модус - уникальный случай - так это все равно ровно минута на 100 глав и сколько там картинок на 45.5 Мб итогового файла. Все остальные авторы - они даже рядом не стояли. Ну и остановка скрипта всегда наглядна - если он за 10 секунд не отмер (а такого НИКОГДА НЕ БЫЛО у меня), то значит сбойнул. Зачем тут прогресс-бар? Обновляем страницу и поехали опять.
Главное, чтобы в погоне за улучшалками основной функционал не сломать! Нужен этот прогресс-бар сейчас, когда есть две галки "не загружать"? Если новый код вы втисните безболезненно - да ради бога; но если он на что-то повлияет в худшую сторону - может, не надо? Следует понимать, что сейчас скрипт буквально идеален и делает абсолютно всё, что нужно (ну, разве что требует логина, конечно; скачивал бы без него, тогда - точно вообще).
Такое вот мое мнение. Не испортить то, что уже есть!

Не заметил, что обновилось-то - уже.
Так.
Та же самая книга выше - а чего менять то, что работает?
Я фактически не видел циферок - всегда "ок". Только на доп.материалах проценты таки визуально побежали. Очень быстро, правда.
Итоговый результат - 70 секунд. Файл - 64 Мб (+ доп материалы, в отличие от прошлого раза).
Ничего не изменилось, полет отличный.
Спасибо!

Ox90Author
§
Posted: 2022-12-24
Edited: 2022-12-24

Разве "бич"?

Как бы странно это не звучало, будучи автором этого скрипта, сам я с АТ читаю не часто, посему оценить объемы произвола с картинками не могу, доверяю вашей оценке. Тем более, что я тестирую обычно на самых тяжелых книгах как в плане разметки, так и в плане объема картинок. Да бич я упомянул скорее в отношении интернета в целом, сайтов и форумов, где один логотип сайта может весить несколько мегабайт.

Как по мне - избыточная функция. ... Зачем тут прогресс-бар?

Тут я скорее ориентировался на себя. У меня и интернет не очень хороший. Вот вы пишите про 10 секунд. У меня некоторые картинки могут и минуту грузиться. Я по индикатору трафика на виджете вижу, что скрипт работает, но когда скрипт процентики показывает - мне почему-то спокойнее.

Нужен этот прогресс-бар сейчас, когда есть две галки "не загружать"?

Нужен в случае если интернет медленный, а картинки хочется. Вы никогда не замечали в инструментах разработчика браузеров функцию ограничения скорости загрузки? Удобная штука, и, к сожалению, насущная.

Если новый код вы втисните безболезненно - да ради бога;

Так уже. Там немного получилось. Глобальные изменения я стараюсь не делать. Конечно протестировал.

Итоговый результат - 70 секунд.

Вот хорошо вам! Тот самый Модус у меня грузился более 10 минут. Точно не засекал, но довольно долго. Это одна из книг, на которой я тестирую скрипт, хотя и не всегда.

ну, разве что требует логина, конечно; скачивал бы без него, тогда - точно вообще

Скрипт логина не требует, вообще-то. Я тестирую его в двух браузерах, один из них без логина, все ок. Логин нужен только если сайт не позволяет читать без логина, например платная книга.

Та же самая книга выше - а чего менять то, что работает?

Вот прямо сейчас у меня на компьютере лежит исправление (я его еще не загружал на сервер), которое исправляет итоговый файл книги, чтобы пройти валидацию на некоторых библиотеках. Для обычных читателей ничего не меняет - ридеры такое легко проглотят; а для тех, кто будет загружать такие файлы на онлайн библиотеки - удобно и полезно. Нужно такое? Думаю, нужно.

Ox90Author
§
Posted: 2022-12-24
Edited: 2022-12-24

На счет логина. Открою вам случайную фичу, которую я не упомянул в описании скрипта: он позволяет сгружать книги 18+ без регистрации, хотя сам сайт на страницу книги пускает, но читать не дает.

Ужаснулся 10+минутной скачке Модуса. Как же вы там... И это еще он картинки все-таки жмёт...
Обрадовался насчет валидации - лучше когда есть, чем нет.
Удивился ненужности логина. Похоже, я совсем запутался в 4-х браузерах, причем не во всех них есть Тамперманки, а также параллельно и приватных окнах, когда нужно иногда посмотреть что-то, не залогинившись - и, конечно, расширение Тамперманки в инкогнито тоже не загружается.
Отлично, если так! Тогда, как и было сказано выше: "тогда - точно вообще".

Post reply

Sign in to post a reply.