The script adds a button to the site for downloading books to an FB2 file
< Valutazione su AuthorTodayExtractor
Так при сохранении выгруженной книги вы вольны назвать файл как вам угодно. Я не хотел нагружать скрипт транскрипцией русских названий книг в латинский алфавит. Тем более, что у разных людей разное именование книг в личной библиотеке. Id книги как имя файла было выбрано по причине его уникальности в пределах сайта. А что предлагаете вы?
Так я иногда десятки книг загружаю, чтобы их потом полистать. Это очень напряжно - каждой копипастить название или печатать его. Я всё же переделал ваш скрипт под свои нужды. А транслитерация не просот нужна, но и только мешать будет. Сейчас систему или читалку без поддержки unicode не найти всё равно. Зачем тогда портить название файлов бессмысленной транслитерацией?
Когда в районе года назад разговаривали по этому поводу, автор говорил, что так (номер книги) проще технически, а также вопросы удобства и т.п. и т.п. Немаловажно было и то, что писаки с АТ даже в названиях (плюс заполнение соответствующих полей на сайте - или их незаполнение) как только не изгаляются в своем соке мозга - скрипт БУДЕТ глючить...
Я забил, нашел себе BooksRenamer, с тех пор раз в месяц-два запускаю, когда действительно десяток книг за раз скачивается.
Вроде эта - https://github.com/nk2801/BooksRenamer
Так вот, Ox90, если будут вас очень просить об изменениях - ТС сейчас, да и, может, кто ещё подтянется - можно просьбу?
Итоговое имя - без всех этих дебильных подчёркиваний!
Лучше самое простое, конечно.
Иванов — Шедевр всех времен и народов.fb2
А вообще - как захотите, конечно.
Я понял вашу позицию. Дело в том, что я книги пачками не скачиваю и книги я раскладывают по названиями в строгой иерархии каталогов. Поэтому именование скрипта мне не помощник. В принципе, я согласен, что в вашем случае помощь скрипта в именовании книг может быть удобна. Поэтому на днях сяду, поразбираюсь в вопросе. Михаил, простое именование, как вы сделали у себя в скрипте - мне не подходит. Авторы, они те еще выдумщики. Нужна фильтрация символов, запрещенных в основных ФС, а также смайлов, украшательств, нужно проверять длину имени файла, регистр, и, в идеале, нужно бы нормализировать unicode символы. Да, я видел и верхний регистр, и звезды и названии книг и другую ересь.
Михаил, Иван, спасибо за мнения. Я постараюсь их учесть.
Наверное иногда и попадаются выдумщики. Не встречал пока. Но при скачивании всё равно появляется диалог предлагающий имя файла указать. Так что не вижу проблем с мусором на названии файла. Но есть сильно хочется - можно найти где-нибудь готовый санитайзер. Дел минут на 5
Реализовал формирование осмысленного имени файла. Обновление пока не выкладывал - тестирую и выправляю алгоритм. У меня вопрос: Нужно ли указывать в имени файла наличие доп.материалов при их наличии? Что-то типа: Иванов Иван. Шедевральный шедевр. +Доп.203443.fb2
На всякий случай немного опишу текущий алгоритм формирования имени: Автор1, Автор2. Имя серии [номер]. Название книги.[id книги].fb2
. При этом серия указывается только при ее наличии, а из названия книги делается попытка вырезать имя серии (сначала и в конце), но лишь в том случае, если итоговое название книги после вырезания будет достаточно большим (>= 5 символов). Затем убираются нежелательные символы для ФС и проверяется результирующая длина имени файла с обрезкой по необходимости. И еще такой нюанс: в именах убираются ведущие и завершающие символы из этого набора: =-_.,;!
а так же пробелы. Это касается полного имени серии, книги, автора. Если есть соображения по этому алгоритму, не стесняйтесь, предлагайте, желательно с аргументами и примерами.
Мне бы хотелось видеть что-то аккуратное и лаконичное. Что-то вроде "Серия [номер]. Название книги. Автор1, Автор2.fb2.zip". Это при сортировке по имени файла все книги одной серии отображает рядом и по порядку в серии. Но это именно мои предпочтения. Не берусь утверждать, что это самый лучше вариант для всех
А вместе c ID книги лучше, имхо, тогда ещё и указать на источник (author.today). Серия 5. Название книги. Автор1, Автор2[AT100500].fb2.zip
.
Оставлю здесь, вдруг пригодится: https://www.npmjs.com/package/sanitize-filename
Стоит ли вообще заморачиваться с соавторами?
Ну и, конечно, автор должен в начале стоять - безусловно. Просто фамилия, если это возможно.
А если скрипт может брать только полное ФИО и обрезать никак - тем более соавторы не нужны.
Упоминания Допов, имхо, не нужно.
Вот случайная книга с АТ, смотрите, насколько длинно получается уже, без всяких соавторов и т.п.
Автор - Калбазов Константин Георгиевич.
Серия - Бронеходчики.
Название - Бронеходчики. Сверкая блеском стали.
Вот это идеально:
Иванов(автор). Шедевры-02(серия). Шедевр(название).203443(id).fb2
Нолик только, если не трудно, предусмотрите в серии, пожалуйста. Алридер сортирует как ещё во времена раннего ВинXP, т.е. 1,10,2,3,4,5,6,7. Ну то есть по дефолту, а так, может, конечно, там есть какая-то настройка, только вот я её не встречал, ну и привык за 15 лет...
Спасибо за ваши замечания.
А вместе c ID книги лучше, имхо, тогда ещё и указать на источник (author.today).
Согласен. Префикс к Id таки полезен. Добавлю, если к наличию id в имени файла нет претензий. За ссылку спасибо - чуть позже посмотрю код внимательнее, на первый взгляд я сделал все правильно. Что касается первой вашей ссылки на вашу модификацию скрипта - вы там не учли, что у автора может быть только ник, без ФИО.
Стоит ли вообще заморачиваться с соавторами?
Сейчас думаю, что может и не стоит с ними заморачиваться. Или ограничить их количество. Та же флибуста формирует файлы только по первому автору. Две вещи, которые меня останавливали - это то, что основной автор не обязательно первый (поправьте, если не прав) и что как минимум два автора вкладываются одинаково. Тот же Дневник, что здесь упоминался (тоже могу ошибаться). Но раз второй автор на сортировку действует уже почти никак, то, думаю, можно безболезненно его убрать из имени файла.
Ну и, конечно, автор должен в начале стоять - безусловно.
Тоже склоняюсь к тому, что сортировать лучше сначала по автору, как более редкой и более глобальной сущности, к тому же именно так именует файлы флибуста. Думаю, что большинство уже привыкли. С другой стороны, можно будет попробовать реализовать какой-нибудь несложный настраиваемый шаблон для имени файла в виде сохраняемой опции.
Просто фамилия, если это возможно.
Не выйдет, по крайней мере это не просто. У AT нет явных полей с именем фамилией и отчеством, а авторы никаких общих правил не придерживаются. Видел и Иванов Иван, и Иван Иванов, и Иван Иванович Иванов, и Иванов Иван Иванович. Реально фиг угадаешь. Знаю не теоретически, сталкивался в другом моем скрипте, который это анализирует. Мало того, не всегда именно фамилия будет первой. Тут только если править имя файла руками.
Упоминания Допов, имхо, не нужно.
Ок, понял.
Вот случайная книга с АТ, смотрите, насколько длинно получается уже, без всяких соавторов и т.п.
Автор - Калбазов Константин Георгиевич.
Серия - Бронеходчики.
Название - Бронеходчики. Сверкая блеском стали.
Скрипт в этом случае урежет название книги. Нашел я эту книгу на AT. Текущая версия без правок сейчас предлагает такое имя: Калбазов Константин Георгиевич. Бронеходчики 3. Сверкая блеском стали.35372.fb2
. Здесь скрипт вырезал имя серии из имени книги. Но все равно с соавторами будет длинно, согласен.
Нолик только, если не трудно, предусмотрите в серии, пожалуйста.
Да, сам сталкивался. Нолик нужен, согласен. Добавлю.
Обновил с версией 0.13.0. Надеюсь, нигде не накосячил :)
Вроде всё нормально.
Соавторов нет, называется по первому. Нолик на месте.
Хотя, конечно, подобное раздражает - Тимур Рымжанов. ПО СЛЕДУ СУДЬБЫ 01. По следу судьбы [AT165450]
Капс и прочие изыски, которых там в недрах полно... Но ничего не сделаешь, да.
Единственное, добавьте в id тире. В смысле дефис - с двух сторон. Чисто чтобы не сливалось, да и двойным кликом проще выделять номер для копирования (здесь на сайте нормально с одним, но в Проводнике если сзади не будет второго дефиса, выделится всё, включая .fb2.
INDIGO. Фортуна дама переменчивая 11. На границе империй. Том 7. Часть 5 [AT-246508-].fb2
А еще, раз уж квадратные скобки сделали уже. Может, серии тоже ими обернуть? Просто как-то выделить, я думаю, нужно: если не скобки, так что-то другое.
Максим Гаусс. [Спасти ЧАЭС 05]. Назад в СССР 1986 Книга 5 [AT-264729-].fb2
Хотя, конечно, подобное раздражает - Тимур Рымжанов. ПО СЛЕДУ СУДЬБЫ 01. По следу судьбы [AT165450]
Название серии по первой книге в серии - это частое явление. Вторая книга обычно называется уже иначе. Блин, проверил - не в этом случае. Как так то, фантазии автору не хватило? Тут скрипту сложно принять решение стоит ли полностью удалять имя книги, поскольку не знает, что будет в следующей книги серии. Придется руками. В том числе ставить фамилию автора перед именем. Что касается капса - это я могу исправить, сделать только первую букву заглавной если все в верхнем регистре. Плохо, что имена собственные и аббревиатуры в назывании книги не определить, если они там есть.
Единственное, добавьте в id тире. В смысле дефис - с двух сторон. Чисто чтобы не сливалось, да и двойным кликом проще выделять номер для копирования
Выглядеть будет менее аккуратно, но для удобства можно сделать. Неужели это столь частая операция? Всегда думал, что id книги - это информация для избранных из категории "вдруг когда-нибудь пригодится". Если что, прямая ссылка на книгу есть в самом файле.
А еще, раз уж квадратные скобки сделали уже. Может, серии тоже ими обернуть?
Не, это уже лишнее, я считаю. Имя файла по своей сути - описание содержимого, а мы из него пытаемся сделать базу данных с полями. Id книги чужероден книги, оттого так выделен, а остальное - это микс серии с названием, а не просто отдельно серия и отдельно название. Вы же помните, что скрипт может урезать название книги если информация уже есть в названии серии? Может мне нужно поторопиться с реализацией упомянутого мною шаблона для имени файла? :)
Да вы делайте, как получается. Главное, глюков избегать. То есть, чем проще - тем лучше (раз аббревиатуры будут затронуты, значит и капс никак не исправлять, типа такого).
А насчёт дефисов в id - так просто проще. То есть если эти скобочки там вообще есть - лучше так сделать, чтобы иметь пространство для маневра (и выглядит нормально, почему нет-то?). Так-то лично я вообще убрал бы это из имени, но если, объективно, вы их уже сделали, то [AT165450] реально сливается и по сути бессмысленно. Т.е. один дефис однозначно нужен [AT-165450], ну а затем следующий логический шаг: скопировать-то один номер простейшим способом не получается в Проводнике, значит, нужен и второй дефис [AT-165450-]. Ну или один номер оставить, конечно, зачем тут вообще АТ?
Автор. Серия. Название.fb2
AT попросили добавить, но лично мне - без надобности. Возможно для того, чтобы была возможность автоматизировать выборку файлов книг по источнику, без анализа содержимого файла. Все, все, я понял. Будут вам дефисы :)
Оп, имена появились? Ещё раз большое спасибо. )))
Решил упомянуть здесь про очередное изменение в итоговом имени файла. Поскольку так получилось, что есть один повисший разделитель, я решил добавить полезную, при этом не сильно докучливую информацию. А именно - текущий статус книги в файле. Выглядеть это будет так: ... [AT-123456-X].fb2
. Где X - это статус книги, одно из этих значений: F - завершена(finished), U - не завершена (unfinished), P - выгружена лишь частично (part). Про последний статус хочу уточнить, что он назначается в случае, если при выгрузке не все главы были отмечены. Эта информация также доступна в комментариях к истории изменения скрипта.
Оп, имена появились? Ещё раз большое спасибо. )))
Вы про имя файла? Еще раз пожалуйста :) Решил выделить под это немного времени, тем более, что основная работа по скрипту практически завершена.
Новый способ именования книг при скачивания зашёл на ура - в разы лучше стало. А то тоже неудобно раньше было, что какой-то непонятный book_цифры качалось. Сейчас классно.
Скобки в названии, как и ID АТ, не самая необходимая вещь. В сборке Demagog_Silero от квадратных скобок вылетает скрипт генерации книги, к примеру. Это не сложно исправлять, как и добавить ссылку на автора, которая вероятно перестала автоматически добавляться из-за ?format=ebook в адресе.
В сборке Demagog_Silero от квадратных скобок вылетает скрипт генерации книги, к примеру.
Не могли бы вы уточнить, о какой сборке идет речь? Я об этом ничего не знаю.
Это не сложно исправлять, как и добавить ссылку на автора, которая вероятно перестала автоматически добавляться из-за ?format=ebook в адресе
Спасибо, я не знал, что оно отвалилось. Исправлю.
Скобки в названии, как и ID АТ, не самая необходимая вещь.
Мне наличие именно квадратных скобок и скобок вообще не принципиально. Думаю можно и через точку сделать. Что касается ID - тут я с вами не соглашусь. Та же флибуста их пихает в имя файла. Довольно удобно для быстрого получения ссылки, если есть только имя файла. К сожалению, до настраиваемого шаблона имени файла руки пока не доходят, нужно диалоговое окно перекраивать.
Про сборку нагуглил. Программа падает при попытке открыть файл fb2 с квадратными скобками в имени?
Сборка tonio_k. Программа не падает при открытии, но при попытке начать генерацию, после обработки словарями, вылазит окно "путь не найден". Это под вайн, с авторскими патчами для вайн. У меня попытка сообщит автору закончилась циклическим повторением процесса регистрации на юкозовском форуме.
Единственная для меня очевидная польза, какая есть от номера флибустовского файла — это возможность скачать разные версии книги, без проблем с именованием.
ps. Это при генерации моделью Silero tts происходит, если интересно повторить.
Понятно. Что касается циклического повторения процесса регистрации - я тоже на такое натыкался на другом сайте. У меня решилось заходом через chromium. Сам я пользуюсь Firefox.
Часто дело оказывается в блокировке рекламы
Закинул новую версию с реализацией шаблона для имени файла. Теперь можете настроить предлагаемое имя файла на свой вкус. Значение по умолчанию: \a.< \s \n.> \t [AT-\i-\b]
, что означает Автор. Серия номер. Название [AT-id-статус].fb2
. Значения подстановочных строк описаны в настройках скрипта в личном кабинете. Отдельно хочу сказать про угловые скобки: они означают, что если все подстановочные символы внутри скобок окажутся пустыми, то вся строка внутри скобок будет выкинута. Для шаблона из примера это означает, что если у книги нет серии, то в имени файла не будет ни лишних двух пробелов ни лишней точки.
Эту ошибку - может. Не подскажите, на какой книге и в какой момент оно это выдает?
Все, нашел и исправил в версии 0.14.1. Спасибо за репорт!
На этой - https://author.today/work/220758. В момент, когда все лог скачивания глав доходит до последней (15-ая в данной книге) сразу появляется ошибка, нажимаю ОК и потом 4 строки лога дальше, но потом лишь кнопка "закрыть" и книга не качается.
Угу, уже нашел и исправил. Обновитесь.
У автора какое-то неприятие жанра ЛитРПГ? Его либо выкидывает https://author.today/work/274529, если жанров больше чем один, либо заменяет на Сетевую литературу.
Под автором вы имели ввиду меня? К ЛитРПГ я отношусь нейтрально. Ничего специально я не выкидываю. Что касается книги по вашей ссылке, то там определились жанры humor, adventure. Из указанных по ссылке ЛитРПГ, Юмор, Приключения. ЛитРПГ - не определился, потому что в той базе, потому что я нигде не нашел корректный fb2-идентификатор для этого жанра. А для юмора и приключений он есть. Базу я брал с флибусты. Кажется на форуме флибусты до сих пор обсуждают необходимость добавления этого жанра, но я мог что-то пропустить. Если у вас есть ссылка на хоть какое-то соглашение по именованию этого жанра, что используется в fb2, то я добавлю.
Что касается сетевой литературы - этот жанр используется скриптом тогда, когда скрипт не смог определить ни один жанр, чтобы результирующий документ мог пройти верификацию.
Да всякий случай уточню: ни юмор, ни приключения, ни ЛитРПГ не являются жанрами с точки зрения fb2 документа. Кириллица в именовании жанров вообще не используется. Скрипт лишь пытается сопоставить наши названия жанров с жанрами FB2. Оригинальный список жанров для FB2 здесь: https://github.com/gribuser/fb2/blob/master/FictionBookGenres.xsd и он давно не обновлялся. Последнее обновление - 7 лет назад, когда, полагаю, жанра ЛитРПГ и в помине не было или он был не так популярен.
Самое главное - книжка-то скачивается нормально со всем текстом?
Если просто "выкидывает" жанр (из списка, надо полагать) - ну и пофиг.
Ox90
На Флибусте жанр уже давно. Вот реалпг нету (в сторону - развели говна...), а литрпг уж пару-тройку лет сделали.
Вот тут берите актуальное, если когда понадобится - https://alex80.github.io/mhl/download/genres_fb2.glst . От 2022-04-28.
ЛитРПГ в Флибусте, Либрусеке и Куллибе: sf_litrpg — https://flibusta.is/ajaxro/genre?op=getList
На флибустовском форуме обсуждалась патология в виде удаления других жанров, если есть ЛитРПГ. Сам жанр на Флибусте лет пять наверное.
Иван, спасибо за список. На днях попробую актуализировать скрипт. Странно, чуть больше года назад, когда я создал этот скрипт, такого жанра не было. Я брал дамп их БД и выдергивал их с таблицы с жанрами. А вы не знаете, откуда изначально берется этот список? Хотелось бы, чтобы жанры из этого списка распознавались если не всеми, то хотя бы популярными читалоками и библиотеками.
luiswoo, Спасибо за ответ. Хорошо, буду разбираться.
Сам жанр на Флибусте лет пять наверное.
Очень странно. И как это я сообразил так список выдернуть... В любом случае, автор, то есть я, цензурой жанров точно не занимается :)
Ox90
То, что по моей ссылке - актуализированный на 2022 год список для старенькой My Home Library. Конкретно его сделал автор форка как типа "официальную версию", а вообще в MHL (и всех аналогах) список жанров легко редактируется вручную.
Откуда - чётко из онлайн-библиотек. Логика простая - потому что они первоначальный источник. То есть Флибуста вводит что-то у себя, потом в MHL возникает жанр "неотсортированное" (оно же по сути - "без жанра"), ну и потом доводится до ума. Флибуста, Либрусек, ну и теперь АТ, Литрес и прочие. Может и не совпадать, см. ниже.
luiswoo загнул, никаких, конечно, 5 лет литрпг на Флибусте нет. А вот года три ему есть, вернее, такое мое впечатление. Так-то с год назад, о котором говорили вы, на Флибусте была война насчет альтернативной истории и попаданцев, был введен этот отдельный жанр для последних. Возможно, что и добавили литрпг тогда же.
Вот на Либрусеке литрпг ввели гораздо раньше, это точно. То ли я спутал сроки из-за этого, то ли не спутал - когда на Фл ввели фильтр по жанрам, т.е. можно из страницы обновлений выкинуть весь жанр целиком, вроде бы добавили и литрпг тогда же. И я его сразу в черный список и добавил. Короче, точную дату не назову, но всегда казалось, что года три, да.
Кстати, общая картина жанров на Флибусте и Либрусеке отличается и сейчас. Это тоже надо иметь в виду (в частности, popadanec и popadancy; но и другие жанры тоже). Я бы посоветовал для скрипта брать их все-таки с Флибусты, но тут решать вам.
С распознаванием всегда возможны глюки, вот как раз потому, что разночтение зависит от владельцев. Добавили на Флибусте другой, не такой жанр как на Либрусеке - ну и всё теперь. Для библиотеки неважно (там просто импорт при загрузке книги происходит по маске popadan т.е. если файл с Либрусека или АТ имеет жанр popadanec, на Флибусту он попадает корректно, а так она для себя его изменяет) - а вот для читалок, как вы выразились, проблема, да. Неисправляемая, например, для Алридера, он же старый, а отдельного файлика жанров у него нет (и будет стоять на латинице "Жанр: popadanec").
С каталогизаторами типа MHL все нормально, с библиотеками как таковыми тоже, ну а на читалки пофиг.
Спасибо большое за подробный ответ. Очень полезная информация. Постараюсь обновить список жанров в ближайшие дни. Кстати, вот что интересно: жанр попаданец в скрипте у меня есть, а литрпг - нет. Но это странно, если они были введены одновременно. Я уже начитаю подозревать себя в предумышленном выкидывании литрпг из распознавания скриптом год назад :)
»загнул, никаких, конечно, 5 лет литрпг на Флибусте нет.
Недогнул, в 2014-15 уже добавляли. То есть, ЛитРПГ на Флибусте уже восемь лет как минимум.
»И я его сразу в черный список и добавил
Мистер случаем не принадлежит ли к той когорте, в которой считают, что "правильная" альтистория — это про мисс кобу, а "анимешки" ничего кроме фэнтези и самиздат (лучше только самиздат) не заслуживают?
Загнул-загнул. Это недавний жанр, максимум три, минимум 1 год (тогда прям вместе с попаданцами сделали). Вот на Либрусеке значительно раньше ввели, а там потому, что, видимо, АТ как раз тогда взлетел и местные начали их просто штамповать.
Да и ты вчера сказал 5, сегодня 8, а завтра наверняка 10, ну как раз столько, сколько я на Флибусте, ага. Вижу ж его постоянно жанр этот.
Нет конечно же, не принадлежит этот господин к таким странным группам меньшинств, ты что. Я б только литрпг забанил, но нас таки большинство.
Вебархив за 2015 http://web.archive.org/web/20150701231723/http://flibusta.net/g, а за 2014 не сохранилось, но остались упоминания:
https://vk.com/wall-48785893_12659
>ЛИТНЕТ | Книги: Фантастика, ЛитРПГ, Фэнтези
8 окт 2014 · от Александра Оболкина
http://www.flibusta.net/g/sf_litrpg может кто-то, что то и для себя найдет.
В 2013 ещё нет: http://web.archive.org/web/20130805161959/http://flibusta.net/g
Однако здравствуйте... Ещё даже на .net, вот уж древность...
Блин! Сейчас посмотрел то же для Либрусека - 19 (!) штук на 9 мая 2017 года. Два года разницы или даже больше, только в обратную сторону?!
Надо ж, искренне думал, что жанр для Флибусты новый... Что с моей памятью... В смысле, я всегда от него плевался, а как фильтр ввели, так сразу и заблочил, но...
Извинения, luiswoo. Ты - прав. Молодец.
В новых обстоятельствах вопрос "какого демона ДО СИХ ПОР заливщики несут литрпг-шные книги как "киберпанк"" приобретает натурально особенный смысл, не такой, как если бы "ну, ещё не перестроились за пару-тройку лет, дело житейское". М-да.
Усе будет, камрады, не переживайте. Уже правлю! :)
Что там насчет боярки, я правильно понимаю, что такого жанра как бы и нет?
Это ж не жанр, как те же попаданцы. Кланы, магия - ну, городское фентези типа. Или там "современное фентези".
Хотя, может, вслед за АТ и другие выделят его именно как жанр, кто знает. Но явно не сейчас.
Ox90, вы там чем занимаетесь вообще? Мегакомбайн какой-то создаёте? НЕ НАДО, ну пожалуйста - пусть скрипт скачивает 100 % контента с АТ, а не танцует и кофе варит, а?..
Собственно, скрипт сохраняет же теги, они же ключевые слова. Алридер тот же их видит в инфе. Достаточно и даже очень.
Сейчас я обновляю таблицу жанров согласно свежих таблиц жанров, что вы мне дали, плюс вылавливаю косяки в алгоритме определения жанров, которые были обнаружены, когда я туда залез. Вам, возможно, на эти жанры пофиг, да и мне, пожалуй, тоже, но книги с этого скрипта грузят в ту же флибусту, а там жанры вполне себе полезны. Никаких новых фич я прямо сейчас не добавляю, да и в планах ничего такого нет. Если скрипт куда-то и лезет за контентом помимо AT, то лишь за картинками к книге, если картинки лежат на стороннем сайте. Другие сайты к этому скрипту я привязывать не собираюсь.
Что касается попаданцев - флибуста их считает за жанр, такой жанр на флибусте есть.
Процесс обновления жанров немного муторный из-за не очень простого алгоритма работы с ними, но по факту, сам алгоритм работы я почти не трогаю, только необходимые для этого алгоритма данные. Ведь небольшая оптимизация не считается, да?
Дай бог, дай бог.
Просто я тут уже давно пасусь, встречал скрипты, когда авторы начинали просто отлично, но потом начинали формировать натурально швейцарский нож - ну и с закономерным результатом.
Опять же выгорание... Когда скрипт ломался (сайт менял поведение), сил на доработку у них уже не оставалось...
Всех вам от меня добрых пожеланий. Надеюсь, что все будет хорошо.
С версии 0.15.0 скрипт чуть более осведомлен о жанрах. Теперь идентифицируется жанр ЛитРПГ и несколько других, которые ранее игнорировались. Как обычно, список изменений можно посмотреть в истории на сайте.
sf_litrpg: [ "ЛитРПГ", "litrpg", "рпг" ], — наверное сюда же можно добавить и РеалРПГ.
Общие черты у этих жанров легко прослеживаются — наличие некой "системы" и прокачки. А вот разница предельно туманна и неочевидна.
В теории ЛитРПГ — это две сущности "реал" (реальность) и "виртуал" (некая компьютерная играя, опционально с вирт капсулой), но к примеру в Kumo Desu ga, Nani ka? реал есть одна вселенная, а виртуал — параллельная созданная божеством, где оказались "попаданцы" из реала, но все атрибуты компьютерной игры, за исключением респаунов, в наличии. У "азиатов" в принципе куча макулатуры, где единственное как упоминается, если упоминается, реал — это где помер ГГ до паданства. До объяснения, что есть такое "виртуал" вообще дело может не доходить. Мир (миры)\реальность с системой прокачки как данность и всё.
В РеалРПГ так же зачастую не запариваются откуда появилась "система" — экшн важнее. Если ЛитРПГ, через запятую, не упоминается в жанрах или тегах, то это скорей всего "боярка" на 99%. Хотя в "чистокровных" литрпгешках зачастую откровенная боярка в реале — гг подымается со дна социальной лестницы до "завидного положения", так же как и в боярке. Мне разница неочевидна, но видимо не хватает хруста французской булки, раз есть те, кто облизывает боярку с элементами рпг, но хейтит литрпг.
зы На тойже Флибусте РеалРПГ указывается как ЛитРПГ.
Общие черты у этих жанров легко прослеживаются — наличие некой "системы" и прокачки.
РеалРПГ выделился из ЛитРПГ только потому, что ЛитРПГ часто полагают как [вирт-капсула]+[игровой мир]. РеалРПГ это же реальность, в которой внезапно появились статы и система, при этом ни капсулы, ни игры нету. По факту, упрощая, можно сказать, что ЛитРПГ - это где герой ПРИХОДИТ в мир игры, а РеалРПГ - это где ИГРА и СИСТЕМА приходит в мир героя. И по сути сюжет у таких книг разный, хотя общие элементы имеются.
Хотя конечно, сама фраза ЛитРПГ - литературное РПГ должна отражать сюжет любой книги, где есть элементы РПГ в реальном мире, но вот что вышло, то вышло. Хотя не удивлён, что многие не воспринимают эти жанры по отдельности, а всё относят к ЛитРПГ. Но это пока...
Хотя не удивлён, что многие не воспринимают эти жанры по отдельности, а всё относят к ЛитРПГ. Но это пока...
Блин, передернуло. Зачем же так угрожать?!
Всё надеюсь, что эта мутнейшая волна схлынет. Оцифровка силы, ловкости, харизмы - оцифровка (!) my ass. Чёртовы корейцы, всему миру такую свинищу подложили, целый Сехримнир, чтоб его.
Ведь схлынет же?..
Ox90, на Флибусте этого жанра нет, и на Либрусеке тоже. Но если в будущем и добавят, сомнительно, что можно придумать нечто иное, чем sf_realrpg.
И, кстати, раз уж зашел такой разговор, то охвачены ли китайские сянся/уся и фанфики? sf_cultivator - а что? было бы забавно.
»что ЛитРПГ - это где герой ПРИХОДИТ в мир игры, а РеалРПГ - это где ИГРА и СИСТЕМА приходит в мир героя.
Тут как бы подразумевается, что первый вариант добровольно, а второй — нет. ГГ, часть мира с ГГ, как и целую планету в случае РеалРПГ, могут придти насильно без обратного хода. Тем более часто в РеалРПГ это для землян СИСТЕМА — суровая РЕАЛЬНОСТЬ, а для алиенов её сделавших — ИГРА. Разница получается только в масштабе.
Разница получается только в масштабе.
Нет, не только. В самом фундаментальном понятии, что из ЛитРПГ в основном система в мир не приходит, там всегда локализация есть - реальный мир, виртуальный. Кстати по факту, развитие ЛитРПГ таких сюжетов и породило РеалРПГ, где сюжет развивался до того момента, как игра стала реальностью (логичное желание авторов растянуть историю и поднять ставки), врезаясь и меняя наш мир. Вот это сюжетная линия и вывелась в РеалРПГ, где просто упростили предысторию до базовой - в мир пришла система. Но в любом случае, в РеалРПГ уже нету разграничения - реальный мир и виртуал с системой. Остаётся только Реальный мир с системой.
Так или иначе, эта дискуссия не тема обсуждения в данной ветке. Тут обсуждалось добавление тегов, а не "это_вот_всё", на что мы нафлудили. Оставим подобное.
Лучше автору-Ox90 напомню на моё сообщение про скрипт чёрного списка, там есть ошибка наложения с использованием скрипта. А то вдруг пропустил, давненько его не было.
»Остаётся только Реальный мир с системой.
То есть пример с алиенами — это литрпг, а если алиенов не упоминать, то реларпг, так?
Вы тут так много всего написали... В общем, сначала проясню - изначально жанры я делал почти для галочки, поскольку в самой книге я на жанр особо не смотрю - раз уж есть в моей библиотеке, то неспроста. Вторая причина - было желание, чтобы результат работы скрипта, то есть файл, проходил валидацию, ибо я стараюсь не нарушать стандарты без необходимости. При этом для меня нет никакой трудности добавить определение того или иного жанра. Я понимаю, что библиотеки могут тупить годами, решая что делать с очередным жанром, поэтому допускаю добавление жанра при его реальной необходимости без принятия стандарта де-факто библиотеками, тем более, что валидация по жанрам библиотеками, похоже, не проводится, они просто откидывают неизвестные им жанры (нужно проверить).
Так что жанры буду добавлять если:
Сам я анализировать эту кучу жанров не возьмусь просто потому, что я практически в них не разбираюсь. На скорость работы и на алгоритм скрипта это не влияет. Цена вопроса - одна строчка в таблице жарнов. Сунуть РеалРПГ в ЛитРПГ? Да хоть сейчас. Отдельно? Не жалко, тем более, что есть реально предсказуемый идентификатор. Санься... Точно надо? А ид для него есть? В общем, я открыт для предложений.
p.s. Сорри за сумбурное изложение.
Ox90, всё понятно и логично, полностью согласен.
Но РеалПГ, раз уж заморочились с литрпг, всё-таки добавьте. Именно отдельно - на АТ знаете сколько этого добра? 2 164 книги. Да уж, представлен "широко" - мягко говоря... https://author.today/work/genre/realrpg
Насчет саньси то я пошутил. Пока серьезных книг, не фанфиков, в наших палестинах десятка два наберется, народ еще не распробовал. То есть смысла бежать впереди паровоза просто нет. А шутка - ну добавят же через годик-другой унылейшую sf_xianxia. А вот если бы уже сложилась культура (хе-хе) употребления sf_cultivator, можно было бы заявлять о праве первородства. В конце концов даже дебильнейшая "бояр-аниме" прижилась, почему тут потенциальные ругательства на тему бензиновый ли культиватор или вовсе мото- хуже?
Забавно (нет), что https://author.today/work/genre/boyar-anime 1541 книга, а только реалрпг 2164... Ужас...
Добавил жанр РеалРПГ в версии 0.15.1
Уже не в первый раз (как тут https://author.today/work/270335 — ~100мб с картинками...) жалуется на неизвестный тэг, с последующей ошибкой генерации глав.
На всё же скачанный Elib2Ebook файл, FBE жалуется на ошибку схемы тэгирования, но читалки это переваривают.
Ага, подтверждаю, очень много "Найден неизвестный тег: I" - и в конце "Формирование глав... ошибка!"
Проблема исправлена в версии 0.15.3
p.s. Книга 146 метров. Жесть!
Отлично скачалась, а потом FBE на удивление шустро её открыл.
Всё нормально.
Только, Ox90, а ТОЧНО 146 Мб у вас?
У меня получилась 111 Мб. 117 337 962 байт.
Если вы правильно назвали цифру - у меня какие-то картинки не загрузились? Но скрипт не писал ошибок в процессе.
На самом деле 143Мб (149914743 байт). Это несжатый fb2. Почему так - не знаю. Полагаю, что разным клиентам сайт отдает картинки разного разрешения или браузер как-то чудит, пережимая полученные данные. У меня в итоговом файле 205 картинок + обложка. А еще возможно, что вы выгружали в мобильной версии сайта. За все картинки не скажу, но когда я тестировал скрипт обложка там давалась меньшего размера.
Посмотрел, сейчас обложки в обоих режимах отдаются одинакового размера. Не знаю, что и сказать. Могу куда-нибудь книжку сбросить, если интересно. Скрипт сам ничего не изменяет и не пережимает. Что получил от сайта через браузер, то и складирует в итоговый файл. Ну разве что отказывается от webp подменяя запрос.
Если бы картинки не загрузились, скрипт бы сообщил об этом и предложил бы использовать заглушку. Только что проверил, так и есть.
Однако...
Штатно, десктоп, не мобильно. Как всегда, короче.
Незалогинен: Яндекс.Браузер - 117 337 962 байт.
Файрфокс (и качал заметно медленнее) - 151 404 804 байт.
Залогинен: Опера - браузер, не скрипт, тормознул на последних картинках после сотой главы, написав "недостаточно памяти". И так несколько раз.
Картинок вроде 205 в обоих файлах + обложка.
Завтра буду гонять по всем вариантам, а также проверю через FBE размеры, там наглядно в список выводится. А еще сейчас сижу через полу-впн (вся система, не только браузеры), вообще не должно иметь значения, но кто его знает, завтра тоже посмотрю на обычном инете.
У меня Firefox. Сообщите, плиз, если нароете в чем там дело. Думаю пережимает картинки для разных клиентов, как с webp: Всем webp кроме Firefox.
Через хром файл 110 МБ (116 254 566 байт) качается.
Однако...
Вчера скачались два варианта, выше говорил. Уже ночью, под конец работы, с полным кэшем и вот это вот всё. Сегодня, на свежезагруженной системе, Яндекс.Браузер скачивать отказался, автоматом "вкладка была перезагружена из-за нехватки памяти". И это притом, что вчера, когда он смог скачать, я еще и кино досматривал на соседней вкладке... Опера - как и вчера. И это я все вкладки позакрывал и жрущие расширения типа Адблока отключил. А вот Файрфокс скачал. Файлы получаются одинаковыми с логином и без, вчера и сегодня - 151 404 804 байт.
Проблемой ситуация не является - если будет нужно, ну скачай полкниги, а потом остаток.
Далее. Сбой идёт в самом конце, поэтому я убрал последние три главы, т.е. скачано ВСЁ, кроме Эпилога и двух доп.глав. Всего 97 глав. Одинаково в списке, но неодинаково в итоге:
1. Опера - 121 507 871 байт.
2. Яндекс - 130 339 671 байт.
3. Лис - 113 722 537 байт.
Теперь что у них внутри. Экспорт через FBE, т.е. htm-файл + картинки.
Shatarn. Египтус 01. Сила крови [AT-270335-P].htm - одинаковый во всех трех случаях и равен 3 569 709 байт.
Количество картинок - 176 штук. 12 штук jpg, остальные png. Одинаково во всех трех случаях.
Общий размер:
1. Опера - 88 492 775 байт.
2. Яндекс - 95 116 623 байт.
3. Лис - 82 653 771 байт.
Собственно FBE, служебная вкладка. Все теги, жанры, прочие поля совпадают, отличается список картинок. Только размеры, с шириной/высотой различий нет. Скринить не буду, громоздко получится, да и смысл? image110.png - 553998 и 553998 в хромиумах, и 400124 байт в Файрфоксе. Что-то совпадает, что-то отличается. В случайном порядке. В jpg качество вроде везде одинаково - 75, но размеры отличаются, для png такое не посмотреть.
Короче.
Всё понятно, текст на месте, одинаковый, а с картинками каждый браузер работает по-своему.
Единственно, что смутило - почему Файрфокс вчера полный файл 151 404 804 байт в противовес Яндексу 117 337 962 байт, а вот сегодня у каждого 97 глав и разница, наоборот, в другую сторону: 113 722 537 байт против 130 339 671 байт (причем существенно так).
Спасибо. Я примерно так и предполагал. Сохранил картинки под фоксом и хромиумом, у фокса на 47% больше. Немного проанализировал картинку, походу разным браузерам сайт отдает картинки с разной степенью сжатия основываясь на заголовках UserAgent и Accept в HTTP-запросе. Это тип и версия браузера и тип распознаваемых браузером данных, в том числе формат картинок. Думаю это можно забороть путем подмены сих заголовков, если браузер позволит.
Что касается вашего смущения по поводу поведения фокса - возможно в промежутке вам прилетело обновление, которое добавило поддержку какого-нибудь типа сжатия. Но это не точно. Чуть позже поиграюсь с cURL-запросами, используя разное значение заголовков.
По поводу поведение яндекс браузера - тут дело не в свободной у вас на компьютере памяти, а, подозреваю, в лимите памяти на одну вкладку. Скрипт выкачивает контент в память, затем, в момент нажатия на кнопку сохранить, конвертирует сохраненные данные в xml документ. Тоже в память, которая затем высвобождается. Вся остальная память должна высвобождаться после закрытия диалога. Но, видимо, для яндекс браузера этот объем данных тяжеловат. Я сильно сомневаюсь, что дело в самом скрипте, тем не менее я еще раз посмотрю, что там можно наоптимизировать в сторону памяти, тем более, что подобную оптимизацию я уже проводил буквально в прошлой версии. Не подскажите, на каком именно этапе в логе он отваливается? Последняя строчка в логе будет достаточно информативной.
Обновлений самого Лиса точно не было, а вот какое-нибудь расширение втихаря могло апдейтнуться. Вряд ли, конечно...
Что именно нужно? Из .har-файла? В Лисе я помню, как для вас консоль смотреть, но Лис-то как раз качает и не сбрасывает.
Что в хромиумах? Лог я сохранил. Или нужно что-то другое?
------------
Опера, кстати, скачала. Три браузера запущено, музыка играет, вкладки открыты, свободной памяти мегабайт 100 - а она взяла и скачала. 106 834 830 байт, если что (все 100 глав). Я вообще ничего не понял, почему такое случайное поведение.
Ну хоть Яндекс не подвёл - перезагрузил автоматом, пожаловавшись на нехватку памяти. Из него и сохранил .har.
Не, меня устроит лог выгрузки, тот, что показывает сам скрипт в диалоговом окне сразу после того, как возникает ошибка с памятью. То есть на каком именно этапе закончилась память. Или в момент ошибки вкладка закрывается? Если не получится - не страшно: отряхну от пыли виртуалку с видной и поставлю туда Яндекс браузер и сам посмотрю. Что касается рандомности такого поведения - думаю проблема может быть в самом сайте. Родные AJAX скрипты на сайте подтекают. Я понимаю как это выглядит, мол это не я, а они. Возможно и я. Но скрипты сайта текут точно. Это можно наблюдать режиме разработки сайта, если переходить по страницам сайта в пределах одного автора (страница не перегружается полностью). Если интересно, могу расписать как именно за этим можно следить. В общем так: перед началом выгрузки попробуйте открыть книгу в новой вкладке.
А, ну это просто: никакой ошибки, никаких надписей, просто на 100-й главе 2 или 3 картинки доходят до 100% (именно так - не 99%; картинок там много, это приложение, а не глава, все они после бегущих циферок подсвечиваются зеленым "ок", а вот 2 или 3 штуки - висит пару секунд 100 % и затем перезагруз с потерей всего), после чего Яндекс автоматом перезагружает вкладку. Успеваю заметить, что скрипт точно ничего не пишет, никаких ошибок красным и т.п. Автоматическая перезагрузка у Яндекса, а вот Опера вчера на этом же самом этапе открывала свою заглушку-вкладку "недостаточно памяти" с кнопкой "перезагрузить". Адрес в строке не менялся.
97 глав без трех последних качает без вопросов.
Пять последних глав отдельно тоже качает без вопросов.
Понятно. Спасибо.
Добавил ограничение на максимальное количество потоков загрузки фотографий. Возможно, это поможет.
И помогло.
По 5 штук?
Яндекс скачал 126 Мб, Опера не запнулась - 123 Мб, Лис качал и раньше, но проверил на новой версии и его - и вот тут внезапно 101 Мб, а не 150. Однако...
Ну да - всё работает, по факту починка состоялась, отлично, спасибо!
------
Ага, в Истории сейчас посмотрел - по 5. Так-то глазами считал, быстро пробегали.
Да, по пять штук. По факту, это мне нужно было сразу так сделать, с ограничением. Но я понадеялся, что это будет разруливать браузер, главное ему задач накидать. Оказывается нет. Буду знать. Спасибо за полезную информацию.
Так-то глазами считал, быстро пробегали.
Красиво жить не запретишь :-D
Спасибо, отличный скрипт! Минус только в том, что названия файла совсем бессмысленные. Ни автора, ни серии, ни названия. Только айдишки бесполезные