Skip to content

Yui007/MangaForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ MangaForge

🎯 Beautiful Python CLI Manga Downloader

Plugin-based architecture supporting multiple manga sources with a gorgeous Rich-based interface

Python Version License: MIT PRs Welcome

MangaForge CLI Preview

Inspired by mangal but built in Python with modern architecture


✨ Features

🎨 Beautiful CLI πŸ”Œ Plugin System ⚑ High Performance πŸ“¦ Multiple Formats
Rich-based interface Auto-discover providers Parallel downloads CBZ, PDF, Images
Interactive menus Drop-in architecture Concurrent processing Live progress bars
Paginated tables No core modifications Smart rate limiting Beautiful output

🌟 Current Providers

Provider Status Description
Bato 🟒 βœ… Fully Working Popular manga hosting with clean interface
WeebCentral 🟒 βœ… Fully Working High-quality manga scans
MangaPark 🟒 βœ… Fully Working Large manga library
MangaBuddy 🟒 βœ… Fully Working Fast and reliable source
AsuraComic 🟒 βœ… Fully Working Premium manga hosting
WebToons 🟒 βœ… Fully Working Premium webtoon hosting
MangaKakalot 🟒 βœ… Fully Working Large manga library
VyManga 🟒 βœ… Fully Working Premium manga and webtoon hosting
Toonily 🟒 βœ… Fully Working SFW/NSFW webtoon and Manhwa hosting
KaliScan 🟒 βœ… Fully Working High-quality manga hosting with modern interface
ManhuaScan 🟒 βœ… Fully Working Rich manhua Library hosting

🟒 Fully Tested | 🟑 Basic Testing | βšͺ In Development

More providers coming soon!

πŸš€ Quick Start

1. Clone & Setup

git clone https://github.com/Yui007/MangaForge.git
cd MangaForge

# Create virtual environment (recommended)
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

2. Launch CLI

python main.py
CLI Interface

3. Search & Download

  1. Search: Choose "[1] πŸ” Search Manga by Title"
  2. Select Provider: Pick from 11 available sources
  3. Browse Results: Navigate paginated results
  4. Download: Select chapters and format (CBZ/PDF/Images)

πŸ“– Usage Examples

Search for Manga

# Launch CLI
python main.py

# Select: [1] Search Manga by Title
# Choose provider: Bato, WeebCentral, etc.
# Enter: "attack on titan"
# Browse results and select manga

Download by URL

# Select: [2] Get Manga by URL
# Enter manga URL from any supported provider
# Auto-detect provider and fetch chapters

Configuration

# Select: [3] Settings
# Configure:
# - Download directory
# - Parallel workers
# - Output format (CBZ/PDF/Images)
# - Network timeout

πŸ—οΈ Architecture

MangaForge/
β”œβ”€β”€ 🧠 core/              # Core system (locked)
β”‚   β”œβ”€β”€ base_provider.py  # Provider interface
β”‚   β”œβ”€β”€ downloader.py     # Parallel downloads
β”‚   β”œβ”€β”€ converter.py      # Format conversion
β”‚   └── config.py         # Settings management
β”œβ”€β”€ πŸ“Š models/           # Data structures
β”œβ”€β”€ πŸ”Œ providers/        # Plugin providers
β”‚   β”œβ”€β”€ bato.py         # Bato provider βœ…
β”‚   β”œβ”€β”€ weebcentral.py  # WeebCentral βœ…
β”‚   β”œβ”€β”€ mangapark.py    # MangaPark βœ…
β”‚   β”œβ”€β”€ mangabuddy.py   # MangaBuddy βœ…
β”‚   β”œβ”€β”€ asuracomic.py   # AsuraComic βœ…
β”‚   β”œβ”€β”€ webtoons.py     # Webtoons βœ…
β”‚   β”œβ”€β”€ mangakakalot.py # MangaKakalot βœ…
β”‚   β”œβ”€β”€ vymanga.py      # VyManga βœ…
β”‚   β”œβ”€β”€ toonily.py      # Toonily βœ…
β”‚   β”œβ”€β”€ kaliscan.py     # KaliScan βœ…
β”‚   └── manhuascan.py   # ManhuaScan βœ…
β”œβ”€β”€ 🎨 cli/              # Beautiful interface
β”œβ”€β”€ βš™οΈ config/           # Settings
└── πŸ“₯ downloads/        # Downloaded manga

πŸ”§ Advanced Features

Provider System

  • πŸ”Œ Plugin Architecture: Add providers without touching core code
  • πŸ” Auto-Discovery: Drop .py files in providers/ folder
  • πŸ›‘οΈ Error Handling: Robust failure recovery
  • ⚑ Performance: Optimized scraping and parsing

Download System

  • πŸ”„ Parallel Processing: Configurable workers for chapters
  • πŸ“ˆ Live Progress: Real-time progress bars
  • πŸ” Resume Support: Continue interrupted downloads
  • πŸ“Š Smart Queuing: Efficient resource utilization

Output Formats

  • πŸ“š CBZ: Comic book archive (ZIP format)
  • πŸ“„ PDF: Portable document format
  • πŸ–ΌοΈ Images: Individual image files
  • 🎯 Quality Control: Configurable image processing

πŸ› οΈ Development

Adding New Providers

Create a new file in providers/:

from core.base_provider import BaseProvider
from models import MangaSearchResult, MangaInfo, Chapter

class NewProvider(BaseProvider):
    provider_id = "newprovider"
    provider_name = "New Provider"
    base_url = "https://newprovider.com"

    def search(self, query: str, page: int = 1):
        # Implement search logic
        pass

    def get_manga_info(self, manga_id: str = None, url: str = None):
        # Implement manga info extraction
        pass

    def get_chapters(self, manga_id: str):
        # Implement chapter listing
        pass

    def get_chapter_images(self, chapter_id: str):
        # Implement image extraction
        pass

✨ Auto-discovered! No core modifications needed.

Running Tests

# Core system tests
python test_core_system.py

# CLI system tests
python test_cli_system.py

# All tests
python test.py

πŸ“‹ Requirements

  • Python: 3.10 or higher
  • Dependencies: See requirements.txt
  • Optional: Playwright browsers for some providers

Virtual Environment Setup

# Create virtual environment
python -m venv venv

# Activate (Windows)
venv\Scripts\activate

# Activate (macOS/Linux)
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Deactivate when done
deactivate

🌟 Comparison with Similar Projects

Feature MangaForge mangal
Language Python 🐍 Go πŸƒ
Interface Rich CLI 🎨 TUI
Providers 11+ (growing) πŸ“ˆ 10+
Architecture Plugin-based πŸ”Œ Built-in
Customization YAML config βš™οΈ CLI flags
Output Formats CBZ, PDF, Images πŸ“¦ CBZ only

MangaForge brings the mangal experience to Python with:

  • 🎨 Beautiful Rich-based CLI
  • πŸ”Œ True plugin architecture
  • βš™οΈ Flexible configuration
  • πŸ“¦ Multiple output formats

🀝 Contributing

Contributions are welcome! Here's how to help:

πŸš€ Quick Start for Contributors

# Fork and clone
git clone https://github.com/YOUR_USERNAME/MangaForge.git
cd MangaForge

# Setup development environment
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements.txt

# Run tests
python test.py

# Launch CLI
python main.py

πŸ“ Adding Providers

  1. Create provider file in providers/
  2. Implement 4 methods: search(), get_manga_info(), get_chapters(), get_chapter_images()
  3. Test thoroughly with real data
  4. Submit PR with provider name and description

πŸ› Reporting Issues

  • πŸ› Bugs: Use GitHub Issues with detailed error logs
  • πŸ’‘ Features: Create feature requests with use cases
  • πŸ“– Docs: Help improve documentation

πŸ“„ License

MIT License - See LICENSE file for details.


🎯 Ready to Download Manga?

# Quick setup
git clone https://github.com/Yui007/MangaForge.git
cd MangaForge
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py

🌟 Enjoy your manga collection!

GitHub Repo Python

Releases

No releases published

Packages

No packages published

Languages