Giter Site home page Giter Site logo

elib2ebook's Introduction

Elib2Ebook

GitHub License GitHub Stars GitHub forks GitHub tag GitHub downloads

Инструмент для сохранения любой доступной книги со следующих сайтов в форматах epub, fb2, cbz:

* http://samlib.ru/
* https://acomics.ru/
* https://author.today/
* https://bigliba.com/
* https://bookinbook.ru/
* https://bookhamster.ru/
* https://bookinist.pw/
* https://booknet.com/
* https://booknet.ua/
* https://bookriver.ru/
* https://bookstab.ru/
* https://bookstime.ru/
* https://bookuruk.com/
* https://dark-novels.ru/
* https://desu.me/
* https://dreame.com/
* https://erolate.com/
* https://eznovels.com/
* https://fb2.top/
* https://ficbook.net/
* https://fictionbook.ru/
* https://hentailib.me/
* https://hogwartsnet.ru/
* https://hotnovelpub.com/
* https://hub-book.com/
* https://i-gram.ru/
* https://ifreedom.su/
* https://jaomix.ru/
* https://ladylib.top/
* https://lanovels.com/
* https://libbox.ru/
* https://libst.ru/
* https://lightnoveldaily.com/
* https://litgorod.ru/
* https://litmarket.ru/
* https://litmir.me/
* https://litnet.com/
* https://litres.ru/
* https://litsovet.ru/
* https://manga.ovh/
* https://mangalib.me/
* https://mangamammy.ru/
* https://mir-knig.com/
* https://mlate.ru/
* https://mybook.ru/
* https://neobook.org/
* https://noveltranslate.com/
* https://novelxo.com/
* https://online-knigi.com.ua/
* https://prodaman.ru/
* https://ranobe-novels.ru/
* https://ranobe.ovh/
* https://ranobehub.org/
* https://ranobelib.me/
* https://ranobes.com/
* https://readli.net/
* https://readmanga.live/
* https://remanga.org/
* https://renovels.org/
* https://romfant.ru/
* https://royalroad.com/
* https://ru.novelxo.com/
* https://tl.rulate.ru/
* https://topliba.com/
* https://twilightrussia.ru/
* https://wattpad.com/
* https://wuxiaworld.ru/
* https://yaoilib.me/
* https://younettranslate.com/
* https://ранобэ.рф/

Последняя версия доступна по ссылке

Portable версии запускаются без установленного NET Runtime. За настройку сборки Portalbe версий большая благодарность @alfeg

Для запуска не Portable версии необходим установленный NET Runtime версии 7 или выше, который можно скачать с сайта Microsoft здесь (на английском)

Пример вызова

Elib2Ebook.exe -u https://author.today/work/212721 -f epub

Пример вызова для генерации книги в нескольких форматах

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2

Пример вызова для генерации книги с указанием начальной главы

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 --start 3

Пример вызова для генерации книги с указанием конечной главы

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 --end 10

Пример вызова для генерации книги с указанием начальной и конечной главы

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 --start 3 --end 10

Пример вызова для генерации книги с указанием индекса начиная с конца (в книге будут 3 последних главы)

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 --start -3

Пример вызова для генерации книги с указанием индекса начиная с конца (в книге будет только предпоследняя глава)

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 --start -2 --end -1

Пример вызова c указанием логина и пароля для скачивания платных книг

Elib2Ebook.exe -u https://author.today/work/212721 -f epub,fb2 -l vasya -p pupkin

Полный список опций

Команда Описание
-u, --url Обязательное. Ссылка на книгу
-f, --format Обязательное. Формат для сохранения книги. Допустимые значения: epub, fb2, cbz, json, txt
-l, --login Логин от системы
-p, --password Пароль от системы
--proxy Прокси в формате (http or socks4 or socks5)://host:port/
-s, --save Директория для сохранения книги
-c, --cover Сохранить обложку книги в отдельный файл
-t, --timeout (По-умолчанию: 5) Timeout для запросов в секундах
--no-image Не загружать картинки
--temp Директория для хранения временных файлов
--save-temp Не удалять временную директорию
--start Стартовый номер главы
--end Конечный номер главы

elib2ebook's People

Contributors

alfeg avatar onlyfart avatar redbuld avatar rider21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elib2ebook's Issues

httpx.HTTPStatusError: Client error '429 Too Many Requests' for url 'https://author.today/reader/149497/chapter?id=1257445'

Running example.py for purchased book 149497 fails:

$ python example.py
Authorized as XXX

Traceback (most recent call last):
  File "D:\src\AuthorTodayToFB2Converter\example.py", line 68, in <module>
    asyncio.get_event_loop().run_until_complete(main())
  File "C:\Python39\lib\asyncio\base_events.py", line 642, in run_until_complete
    return future.result()
  File "D:\src\AuthorTodayToFB2Converter\example.py", line 27, in main
    await book.GetBookFromUrl("work/149497")
  File "D:\src\AuthorTodayToFB2Converter\Classes\Book.py", line 25, in GetBookFromUrl
    await self.GetBookChapters()
  File "D:\src\AuthorTodayToFB2Converter\Classes\Book.py", line 31, in GetBookChapters
    await self.getMultipleChapters(user)
  File "D:\src\AuthorTodayToFB2Converter\Classes\Book.py", line 49, in getMultipleChapters
    await task
  File "D:\src\AuthorTodayToFB2Converter\Classes\Book.py", line 69, in GetBookChapter
    await chapter.GetChapterFromUrl(url)
  File "D:\src\AuthorTodayToFB2Converter\Classes\Chapter.py", line 27, in GetChapterFromUrl
    chapterResponse.raise_for_status()
  File "D:\src\AuthorTodayToFB2Converter\venv\lib\site-packages\httpx\_models.py", line 1507, in raise_for_status
    raise HTTPStatusError(message, request=request, response=self)
httpx.HTTPStatusError: Client error '429 Too Many Requests' for url 'https://author.today/reader/149497/chapter?id=1257445'
For more information check: https://httpstatuses.com/429

не скачивает с сайта **remanga.org**

Версия Elib2Ebook 1.30.23 не скачивает с сайта remanga.org:

Начинаю генерацию книги "https://remanga.org/manga/a-infinite-wizard"
Загружена картинка https://remanga.org/media/titles/a-infinite-wizard/98a7d1dcb086de927833b07335b8bc55.jpg
Загружаю главу "Том 1. Глава 1"
Генерация книги https://remanga.org/manga/a-infinite-wizard завершилась с ошибкой. The JSON value could not be converted to Elib2Ebook.Types.Renovels.RenovelsPage. Path: $.content.pages[0] | LineNumber: 0 | BytePositionInLine: 555.

Начинаю генерацию книги "https://remanga.org/manga/dark-summoner"
Загружена картинка https://remanga.org/media/titles/dark-summoner/39a75e8b730560c4dd40865e4c39bc97.jpg
Загружаю главу "Том 1. Глава 0"
Генерация книги https://remanga.org/manga/dark-summoner завершилась с ошибкой. The JSON value couldnot be converted to Elib2Ebook.Types.Renovels.RenovelsPage. Path: $.content.pages[0] | LineNumber: 0 | BytePositionInLine: 956.

Начинаю генерацию книги "https://remanga.org/manga/reincarnation-plan"
Загружена картинка https://remanga.org/media/titles/reincarnation-plan/540948e6326b29834c7dbaa487edd4ae.jpg
Загружаю главу "Том 1. Глава 1"
Генерация книги https://remanga.org/manga/reincarnation-plan завершилась с ошибкой. The JSON value could not be converted to Elib2Ebook.Types.Renovels.RenovelsPage. Path: $.content.pages[0] | LineNumber: 0 | BytePositionInLine: 565.

Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.

Hi, after a recent dotnet upgrade to 6.0.21 I'm now having this error (linux x64):

Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at OnlineLib2Ebook.Extensions.HttpClientExtensions.GetHtmlDocWithTriesAsync(HttpClient client, Uri url) in /home/alex/src/OnlineLib2Ebook/OnlineLib2Ebook/Extensions/HttpClientExtensions.cs:line 56
   at OnlineLib2Ebook.Logic.Getters.AuthorTodayGetter.Authorize() in /home/alex/src/OnlineLib2Ebook/OnlineLib2Ebook/Logic/Getters/AuthorTodayGetter.cs:line 82
   at OnlineLib2Ebook.Logic.Getters.AuthorTodayGetter.Get(Uri url) in /home/alex/src/OnlineLib2Ebook/OnlineLib2Ebook/Logic/Getters/AuthorTodayGetter.cs:line 41
   at OnlineLib2Ebook.Program.<>c.<<Main>b__0_0>d.MoveNext() in /home/alex/src/OnlineLib2Ebook/OnlineLib2Ebook/Program.cs:line 40
--- End of stack trace from previous location ---
   at CommandLine.ParserResultExtensions.WithParsedAsync[T](ParserResult`1 result, Func`2 action)
   at OnlineLib2Ebook.Program.Main(String[] args) in /home/alex/src/OnlineLib2Ebook/OnlineLib2Ebook/Program.cs:line 21
   at OnlineLib2Ebook.Program.<Main>(String[] args)
Aborted (core dumped)

Thanks

Ошибка скачивания с readli.net

Книга «Стоп. Снято! Фотограф СССР» Токсик Саша.
Строка на странице 42:
«<p><strong>История попаданца<strikethrough> в жопу ещё более глубокую... </strikethrough>в ещё больший медвежий угол, чем мой фотограф, причём в 1970 год.</strong></p>»
качается в виде:
«<p><strong>История попаданца<p> в жопу ещё более глубокую... </p>в ещё больший медвежий угол, чем мой фотограф, причём в 1970 год.</strong></p>»

Фьючэ рэквест #01: resize images in fb2|epub

  1. возможность задать размер наибольшей стороны у каждого изображения в fb2|epub (типа --max-image-size=600)
  2. возможность задать размер наименьшей стороны у каждого изображения в fb2|epub (типа --min-image-size=300)
  3. если одна из сторон изображения меньше, чем --min-image-size, то оно выдаётся как есть (без редактирования/уменьшения)

Добавить в `Elib2Ebook` параметр `-f json-dev`

В отличие от -f json имеются следующие изменения:

  1. JSON.parse(book.json).Cover
  {
    Cover : <EDIT: тут url вместо изображения в base64>
  }
  1. JSON.parse(book.json).Chapters[i].Images
  {
    Chapters: [
                i : {
                      Images : [
                                 {
                                   Content : <EDIT: тут url вместо изображения в base64>
                                   Headers : <NEW : тут новое свойство с headers, относящихся к url из свойства выше>
                                 }
                                 ...
                               ]
                    }
                ...
              ]
  }
  1. В stdout
    • сначала идут логи (Начинаю генерацию книги "https://...)
    • затем, после Книга "book.json" успешно сохранена, идет разделитель (например, \n<JSON-DEV>\n)
    • и в конце идёт json-dev (файл book.json-dev не создаётся, а выводится в stdout)
      (всё равно для логов надо stdout через stream считывать - заодно и данные через него же получать... тем более, когда вместо base64 будут url с headers содержимое выводимого файла самое большее 3MB будет весить и RAM сильно жрать не будет даже при параллельной работе Elib2Ebook в нескольких потоках)

P.S. :
На мой взгляд, надо только определиться с разделителем (любой бесполезный набор символов подойдёт).

@OnlyFart

Бот на телеге закрылся

Доброе время суток! Можешь подсказать новый бот для скачивания на телеге, если он есть. А то старый закрыли((( Заранее спасибо

Ficbook error

Генерация любой книги вызывает ошибку.

Object reference not set to an instance of an Object.

(ficbook.net)

dark-novels.ru

не качает книги с dark-novels.ru
Unhandled exception. System.Text.Json.JsonException: 'e' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: 'e' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& , ExceptionResource , Byte , ReadOnlySpan1 ) at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte ) at System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte ) at System.Text.Json.Utf8JsonReader.ReadSingleSegment() at System.Text.Json.Utf8JsonReader.Read() at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& , JsonSerializerOptions , ReadStack& )
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& , JsonReaderException )
at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& , JsonSerializerOptions , ReadStack& ) at System.Text.Json.JsonSerializer.ReadCore[TValue](JsonConverter , Utf8JsonReader& , JsonSerializerOptions , ReadStack& ) at System.Text.Json.JsonSerializer.ReadCore[TValue](JsonReaderState& , Boolean , ReadOnlySpan1 , JsonSerializerOptions , ReadStack& , JsonConverter )
at System.Text.Json.JsonSerializer.ContinueDeserialize[TValue](ReadBufferState& , JsonReaderState& , ReadStack& , JsonConverter , JsonSerializerOptions )
at System.Text.Json.JsonSerializer.ReadAllAsync[TValue](Stream , JsonTypeInfo , CancellationToken )
at System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsyncCore[T](HttpContent , Encoding , JsonSerializerOptions , CancellationToken )
at Elib2Ebook.Logic.Getters.DarkNovelsGetter.Authorize() in D:\a\Elib2Ebook\Elib2Ebook\Elib2Ebook\Logic\Getters\DarkNovelsGetter.cs:line 50
at Elib2Ebook.Program.<>c.<

b__0_0>d.MoveNext() in D:\a\Elib2Ebook\Elib2Ebook\Elib2Ebook\Program.cs:line 49
--- End of stack trace from previous location ---
at CommandLine.ParserResultExtensions.WithParsedAsync[T](ParserResult1 result, Func2 action)
at Elib2Ebook.Program.Main(String[] args) in D:\a\Elib2Ebook\Elib2Ebook\Elib2Ebook\Program.cs:line 23
at Elib2Ebook.Program.(String[] args)

Поддержка feisovet.ru

Оглавление

Если скачать только определённые главы, то в оглавлении всё равно отображается с единицы.
То бишь 601 глава отображается как первая, а 750 как 150-ая. (было бы лучше если бы отображалось не 1-150, а индекс главы, как те что указывали в параметрах --start --end)
Ну а также было бы неплохо, если в оглавление отображалось название самой главы.

Проблемы со скачкой с ranobelib.me

Некоторые книги не качает, например:

Генерация книги https://ranobelib.me/lonely-attack-on-the-different-world/v0/c1 завершилась с ошибкой. Исключение Object reference not set to an instance of an object.

mangalib.me - > 2й сервер

  1. Можно ли сделать так, чтоб прога качала с "второго" сервера странички, вместо "сжатого"? А то при скачивании веб манхв, там качество сильно шакалится, а на "втором" на глаз лучше чем на "первом", и намного лучше чем в "сжатом".

  2. и раньше можно было не только с mangalib.me но и hentailib.me качать, а теперь только с мангалиба ибо только там можно пароль не вводить и тянуть, можно и это как-то сделать? Типо в проге вбиваешь:

C:\Portable\Elib2Ebook-Windows\Elib2Ebook.exe -u https://hentailib.me/ -f cbz -l Vasya -p Pupkin

а он будет этот логг/пасс вводить уже в lib.social на который перебрасывают сайты, авторизовать там, и тянуть странички уже откуда надо.

Ошибка загрузки с ranobelib.me

Не скачивает некоторые книги, выдает данную ошибку.

Начинаю генерацию книги "https://ranobelib.me/the-earth-is-online"

Загружена картинка https://ranobelib.me/uploads/cover/the-earth-is-online/cover/8KaJCmE68G5X_250x350.jpg
Загружаю главу Том 1 Глава 1 Дин Дон! 15 ноября, 2017 – Земля вышла онлайн
Генерация книги https://ranobelib.me/the-earth-is-online завершилась с ошибкой. Object reference not set to an instance of an object.

Можно ТГ?

На @okoloskov пишет, что такого пользователя нет.

Поддержка ranobes.net

Привет, можешь сделать поддержку ranobes.net. Это ж вроде тоже самое что и ranobes.com(или нет)

dark-novels не скачивает

ошибка после начала генерации книги.
Object reference not set to an instance of an object.

скачивал последнюю(1.30.29) версию где был исправлен этот сайт.

Выборка глав

Можете добавить возможность скачивать отрезок глав?

Например --start 10 --end 20
Если end не указывается, то скачивается до конца, а если start, то скачивается от первой главы.

С учётом возможных глав которые вместо номера содержат только имя, тогда указывается path.
Например из URL https://dark-novels.ru/read/722/427960 будет --start "304239" --end "427966", что будет с 1й по 7ю главу.

Ждать пока скачается 100500 прочитанных глав такое себе удовольствие как для меня так и для сервиса который отдает контент.

Доп. материалы на author.today

Возможно ли скачивать содержимое вкладки Доп. материалы (картинки, доки, etc.) с сайта author.today в отдельную папку рядом с книгой?
Или вывести список url этих файлов в лог.
И ещё косметика. Нельзя ли выводить название книги перед началом скачивания, а не в конце.

Фьючэ рэквест #03 (это уже не наглость, а что-то большее)))

Помимо говнокодеров (прошу меня к ним не причислять, ибо ещё не дорос),
есть ещё и говнописатели, действующие по алгоритму:
- "А возьму-ка я, да под конец книги, перепишу-ка первые 5 глав..."
Понятно, что адекватный читатель спокойно скажет:
- "Вот сука!!!"
и не будет ни хрена перечитывать...

Моё видение "консенсуса в подобных высерах" следующее:

  1. прога качает и отдает не только fb2|epub, но и html поглавно (без всякой обработки) (для будущего сравнения "а не подосрал ли нам говнописатель")
  2. при задании, например, аргумента -O - прога сначала отдаёт в stdout html поглавно
  3. а уже затем в stdout книгу целиком в формате fb2|epub
  4. каким маркеромstdout) отмечать разделение между html-главами, а каким между html и fb2|epub - вопрос открытый
    (
      как вариант:
        - html поглавно можно писать в stdout,
        - книгу в формате fb2|epub в stderr,
        - а ошибку возвращать через exit code + <Название книги.err.log>
      ...
      божечки, какой ужас я тут предлагаю :(
      да, библиотекой было бы шикарно, но попка может слипнуться :D
    )
  5. а дальше уже в своём коде можно будет делать md5 для html-глав и сохранять в базу (html + md5)

P.S.: Очень не хочется гонять туда-сюда данные в файлах:

  • сначала html поглавно в файлы
  • потом fb2|epub в файл
  • потом всё это считывать в Readable Stream, по кусочкам загоняя в базу, словно "Кощей" трясясь над "златом"/RAM

Выбор переводчика на ranobelib.me

./Elib2Ebook --version
Elib2Ebook 1.10.3

Пример книги:
https://ranobelib.me/ascendance-of-a-bookworm-novel

Выбираю перевод от Lunar group
Ссылка https://ranobelib.me/ascendance-of-a-bookworm-novel?bid=264&section=chapters
Начинаю скачивать:

./Elib2Ebook --url "https://ranobelib.me/ascendance-of-a-bookworm-novel?bid=264&section=chapters"  --format epub
Основной домен https://ranobelib.me/ доступен. Работаю через него
Начинаю генерацию книги "https://ranobelib.me/ascendance-of-a-bookworm-novel?bid=264&section=chapters"
Загружаю картинку "https://ranobelib.me/uploads/cover/ascendance-of-a-bookworm-novel/cover/v5vlHg0ThhJB_250x350.jpg"
Загружаю главу Том 1 Глава 1.0 Пролог
Загружаю главу Том 1 Глава 2.0 Новая жизнь
Загружаю главу Том 1 Глава 3.0 Исследование моего дома

Это названия глав от перевода Rulate Project YM, то есть программа игнорирует параметр ?bid=264 в ссылке и скачивает первый перевод по порядку.
Можно ли добавить поддержку выбора переводчика?

jaomix: Object reference not set to an instance of an object.

Ни одна из книг не генерируется. Постоянно ошибка "Object reference not set to an instance of an object." сразу после "Генерация книги {url} завершилась с ошибкой".

Для чайников

Джруже, обьясни для хлебушка куда и что писать , я уже пол часа по вкладкам бегаю .
Тут что то скачать надо? Или онлайн писать .
Обьясни пожалуйста. Заранее благодарю.

Фьючэ рэквест #02 (наглеть так наглеть :D)

Хотелось бы подключать всю эту хрень в качестве библиотеки.
Я понятия не имею, как я это буду подключать к node.js... но очень хочется))

Если вдруг "хрен тебе, золотая рыбка", то хотелось хотя бы иметь возможность: не "прога херачит в файл (fb2|epub)", а "прога выдаёт Readable Stream".

Если и тут "хрен тебе, перетопчешься", то хотя бы типа такого:

const   cp    = require('node:child_process')
cp.spawn( 'dotnet',
          [
            'Elib2Ebook.dll',
            '-u', 'https://author.today/reader/1',
            '-f', 'fb2',
            '-O', '-'   // на худой конец вывод чистого fb2 в stdout (а не логи)
                        // без всех этих "Загружаю главу "Пролог. За два дня до описываемых событий."
                        // эту хрень (логи) можно выводить в stderr (когда '-O -' задано)
          ]
        );

Ошибки формата

При скачивании книги https://readli.net/deadushka-2/ на странице https://readli.net/chitat-online/?b=1185260&pg=36 строка выглядит:
«

(Не обязательная глава с эротической порнографической сценой. Чисто в виде бонуса для моих любимых читателей.)

».
А в файл скачивается в виде:
«

»
«

(Не обязательная глава с

эротической

порнографической сценой. Чисто в виде бонуса для моих любимых читателей.)

»
«

».
Не сложно ли поправить?

Скачивание с RanobeLib не работает

Возникает ошибка

Начинаю генерацию книги "https://ranobelib.me/violet-evergarden-novel"
Загружаю картинку "https://staticlib.me/uploads/cover/violet-evergarden-novel/cover/eS8s0RCZus3v_250x350.jpg"
Загружаю главу Том 1 Глава 0 Пролог
Генерация книги https://ranobelib.me/violet-evergarden-novel завершилась с ошибкой. Исключение:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Elib2Ebook.Extensions.HttpClientExtensions.GetHtmlDocWithTriesAsync(HttpClient client, Uri url) in \Elib2Ebook\Extensions\HttpClientExtensions.cs:line 83
   at Elib2Ebook.Logic.Getters.RanobeLibGetter.GetChapter(Uri url) in \Elib2Ebook\Logic\Getters\RanobeLibGetter.cs:line 95
   at Elib2Ebook.Logic.Getters.RanobeLibGetter.FillChapters(WindowData data, Uri url) in \Elib2Ebook\Logic\Getters\RanobeLibGetter.cs:line 83
   at Elib2Ebook.Logic.Getters.RanobeLibGetter.Get(Uri url) in \Elib2Ebook\Logic\Getters\RanobeLibGetter.cs:line 56
   at Elib2Ebook.Program.<>c.<<Main>b__0_0>d.MoveNext() in \Elib2Ebook\Program.cs:line 48

[ranobelib.me] изображения не добавляются в .epub

Команда: ./Elib2Ebook --url https://ranobelib.me/kagerou-daze --format epub
Версия dotnet: 6.0.102
Версия программы - последняя релизная - 1.3
os: Linux arch 5.17.5-arch1-1

Получившаяся в результате книжка - https://disk.yandex.ru/d/9gehp_xEtz83wA
Из файла видно, что из картинок только обложка, хотя, судя по выводу программы - она скачивает все изображения, но, почему-то, не добавляет в html файлы к тексту:
image

тэги <u> и цветной текст на author.today

На странице «Государь» строка
«<p><span><span>[3]</span></span><span><span style="color:black"> </span></span><span><span style="color:black">Шерстяные</span></span><span><span style="color:black"> </span></span><span><span style="color:black">и полушерстяные</span></span><span><span style="color:black"> женские </span></span><span><span style="color:black">платки</span></span><span style="color:black">,<span> </span><span>украшенные</span><span> </span><span>традиционным</span><span> </span><span>красочным</span><span> </span><span>набивным</span><span> </span><span>орнаментом</span>,<span> </span><span>возникшим</span><span> </span><span>в подмосковном</span><span> </span><span>городе</span><span> </span></span><span><u><span>Павловский</span></u></span><span><u><span> </span></u></span><span><u><span>Посад</span></u></span></p>»
выводится в виде
«<p>[3] Шерстяные и полушерстяные женские платки, украшенные традиционным красочным набивным орнаментом, возникшим в подмосковном городе <p>Павловский</p><p> </p><p>Посад</p></p>»,
т.е. тэги <u> отрабатываются неверно.

Кроме того строки вида: «<p><span style="color:red">— Ступай.</span></p>»
желательно выводить в форме «<p style="color:red">— Ступай.</p>», а не «<p>— Ступай.</p>», как сейчас делается.

На странице «Покоривший СТЕНУ»
также есть цветные фрагменты вида «<span style="color: rgb(0, 176, 240)">…</span>» и «<span style="color: rgb(255, 80, 80)">…</span>».

Поддержка ranobe-novels.ru

Типичный клон wuxiaworld.ru, но без бана ботов. Зашел на клоне старенького онлайн прокси (tedforcum.com/proxy.php), и успешно заработало.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.