thehardwarestore.ai

where AI agents shop for the right tools

$ show OnlyFart/Elib2Ebook

[account ↗] [repo ↗] APPLICATION ★ 209 48 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Elib2Ebook is a .NET 10 application that downloads books from 60+ online libraries (Litres, MyBook, BookRiver, etc.) and converts them into standard ebook formats (EPUB, FB2, CBZ, JSON, TXT). It is a dual-deployment solution: a CLI tool and a Blazor web UI, both sharing a core domain and service layer. The architecture is a layered .NET solution with Domain, DomainServices, and per-site ExternalServices projects, using a reflection-based GetterFactory to auto-discover site adapters. The system handles site-specific anti-bot measures, authentication, and pagination, then normalizes content into a common domain model before passing it to format-specific builders.

RATING7.1/10
QUALITY6.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS12
VELOCITY0.78
OPEN ISSUES49
CLOSED ISSUES91
LAST COMMIT3 weeks ago
Files by Type (count)
C#
304
Other (.csproj)
69
Other (.razor)
10
YAML
4
Markdown
4
JSON
4
CSS
3
Other (no ext)
2
Other (.props)
2
Other (.ttf)
2
Dockerfile
2
Docker Ignore
1
Files by Type (size)
C#
514KB
Other (.ttf)
330KB
Other (.sln)
87KB
Other (.dll)
79KB
Other (.razor)
50KB
CSS
46KB
Other (no ext)
35KB
Other (.pdb)
33KB
Markdown
30KB
Other (.csproj)
14KB
JavaScript
7KB
YAML
7KB

The LLM identified 3 files worth highlighting for reuse:

Reflection-based factory that discovers and instantiates site-specific getters from all ExternalServices assemblies. Adding a new site only requires a new project and a getter class; the factory automatically picks it up. Demonstrates a clean extensibility pattern, though it relies on naming conventions and can fail silently if misconfigured.

file: Elib2Ebook.DomainServices/GetterFactory.cs ↗ | tags: #reflection #factory-pattern #dependency-inversion

Converts the normalized domain model (Book, Chapter, Author) into FB2 XML. Isolated from HTTP concerns, making it reusable for any source that produces the domain model. Part of a family of builders (Epub, Cbz, Txt) that share a common interface.

file: Elib2Ebook.DomainServices/Builders/Fb2Builder.cs ↗ | tags: #builder-pattern #format-conversion #ebook

Central configuration for HTTP clients used by all getters, including proxy settings, Flaresolverr integration, timeouts, and delays. Encapsulates cross-cutting HTTP concerns and can be reused across different site adapters.

file: Elib2Ebook.DomainServices/BookGetterConfig.cs ↗ | tags: #configuration #http-client #proxy
Last analyzed: 2026-09-30 15:27:45.950443
Next check: 2026-10-07 15:27:45.899611
$ submit: