https://github.com/yui007/mangaforge
Plugin-based architecture supporting multiple manga sources with a gorgeous Rich-based interface
https://github.com/yui007/mangaforge
batoto cli manga manga-downloader manga-reader manga-scraper mangabuddy mangapark manhua-scraper manhwa manhwa-downloader manhwa-scraper pdf python scraper webtoons weebcentral windows
Last synced: 8 months ago
JSON representation
Plugin-based architecture supporting multiple manga sources with a gorgeous Rich-based interface
- Host: GitHub
- URL: https://github.com/yui007/mangaforge
- Owner: Yui007
- License: mit
- Created: 2025-10-03T19:59:30.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-08T06:21:58.000Z (8 months ago)
- Last Synced: 2025-10-08T08:25:29.122Z (8 months ago)
- Topics: batoto, cli, manga, manga-downloader, manga-reader, manga-scraper, mangabuddy, mangapark, manhua-scraper, manhwa, manhwa-downloader, manhwa-scraper, pdf, python, scraper, webtoons, weebcentral, windows
- Language: Python
- Homepage:
- Size: 128 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🚀 MangaForge
🎯 Beautiful Python CLI Manga Downloader
Plugin-based architecture supporting multiple manga sources with a gorgeous Rich-based interface
[](https://python.org)
[](https://opensource.org/licenses/MIT)
[](https://github.com/Yui007/MangaForge/pulls)

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**
```bash
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**
```bash
python main.py
```
### 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
```bash
# 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
```bash
# Select: [2] Get Manga by URL
# Enter manga URL from any supported provider
# Auto-detect provider and fetch chapters
```
### Configuration
```bash
# 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/`:
```python
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
```bash
# 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
```bash
# 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
```bash
# 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](LICENSE) file for details.
---
## 🎯 Ready to Download Manga?
```bash
# 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!**
[](https://github.com/Yui007/MangaForge)
[](https://python.org)