Closes #261 , Closes #220 , Closes #290 and also closes #247

- Added a 5 second wait while downloading whole chapter from RCO as suggested in #261 [2021.09.05]
- Fixed #220 [2021.09.05]
- Added support for readcomicsonline.ru [Fix for #290] [2021.09.05]
- Updated ReadMe to include "execution" on windows [2021.09.05]
- Removed setup2.py file [2021.09.05]
- Checking for existing CBZ/PDF files before downloading them again [Fix for #247] [2021.09.05]
master
Xonshiz 2021-09-05 15:58:49 +05:30
parent b9ffd54efd
commit d236e75377
16 changed files with 1238 additions and 673 deletions

View File

@ -117,4 +117,10 @@
- PR Merge for #199 [2018.11.27]
- All PRs Merged [2019.05.26]
- All PRs Merged [2021.06.13]
- Fixing import levels
- Fixing import levels [2021.09.04]
- Added a 5 second wait while downloading whole chapter from RCO as suggested in #261 [2021.09.05]
- Fixed #220 [2021.09.05]
- Added support for readcomicsonline.ru [Fix for #290] [2021.09.05]
- Updated ReadMe to include "execution" on windows [2021.09.05]
- Removed setup2.py file [2021.09.05]
- Checking for existing CBZ/PDF files before downloading them again [Fix for #247] [2021.09.05]

View File

@ -55,36 +55,6 @@ If you're on Fedora, CentOS/RHEL, openSUSE, Arch Linux, then you simply need to
If this still doesn't work, then you'll manually need to install pip. Doing so is an easy one time job and you can follow [`THIS TUTORIAL`](https://pip.pypa.io/en/stable/installing/) to do so.
We need `PhantomJS` to access some websites. So, after all this, we'll install PhantomJS.
First, make sure your system is updated :
```
sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
```
Grab Dependencies for PhantomJS (most important) :
```
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev
```
Grab the suitable `tar.bz2` file from this [link](http://phantomjs.org/download.html)
Extract the contents of this `tar.bz2` file you just downloaded. Open a terminal and follow the commands.
* Don't forget the change the name of the file(s) mentioned here with the ones that you downloaded.There might be a newer version when you download
```
cd /Name/of_the/directory/that/contains/the/tar_bz2/file
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
sudo tar xvjf $PHANTOM_JS.tar.bz2
```
Once downloaded, move Phantomjs folder to /usr/local/share/ and create a symlink:
```
sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
```
If none of these commands gave error(s), PhantomJS should be installed in your Linux/Debian systems just fine. You can check it by entering this command in any terminal :
```
phantomjs --version
```
### Windows :
If you're on windows, then it is recommended to download the [`windows binary`](https://github.com/Xonshiz/comic-dl#windows-binary) for this script. If you use the windows binary, you don't need to install anything, except Node.js. But, if for some weird reason you want to use Python script instead, then follow these steps :
@ -97,7 +67,6 @@ If you're on windows, then it is recommended to download the [`windows binary`](
pip install -r requirements.txt
```
* It should install the required external libraries.
* Download PhantomJS : http://phantomjs.org/download.html
Now, install Node.Js as well and make sure it's in your path.
@ -107,7 +76,6 @@ Well, if everything came up good without any error(s), then you're good to go!
Mac OS X users will have to fetch their version of `Python` and `Pip`.
* Python installation guide : http://docs.python-guide.org/en/latest/starting/install/osx/
* Pip installation guide : http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x
* PhantomJS Mac Binary : http://phantomjs.org/download.html (Download the latest build for your OS)
After downloading and installing these, you need to add PIP & Python in your path. Follow [`THIS LITTLE GUIDE`](http://www.pyladies.com/blog/Get-Your-Mac-Ready-for-Python-Programming/) to install both, Python & pip successfully.
@ -169,11 +137,17 @@ It is recommended that windows users use this binary to save both, your head and
You need to download and install [Node.js](https://nodejs.org/en/) and make sure it is in your Windows path (watch out for the tick box during install).
You also need to download [PhantomJS](http://phantomjs.org/download.html) and keep it in the same directory as that of this windows binary file or you need to have PhantomJS in your path. PhantomJS is required for some websites, which you can check in the [list of supported sites](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md).
If you already have it, then you can download this binary and start using the script right off the bat :
* `Binary (x86)` : [Click Here](https://github.com/Xonshiz/comic-dl/releases/latest)
**`NOTE:`** This is a `COMMAND LINE TOOL` and will `NOT` work when you double click it. So, download this `.exe` file and put it in some folder (Not in windows or some other restricted folder) and then hold down `SHIFT KEY` and right click anywhere on the screen and select "`Open Command Window here`". It'll open a CMD window for you. Now, you need to execute it and pass arguments to it like:
```
comic_dl.exe -i "https://readcomicsonline.ru/comic/irredeemable-omnibus-2012"
```
Read which argument does what in [List of Arguments](#list-of-arguments) section.
## List of Arguments
Currently, the script supports these arguments :

View File

@ -1,12 +1,13 @@
# List of Supported Websites
* [Mangafox.me](http://fanfox.net/)
~* [YoManga](http://yomanga.co/)~
~* [GoManga](http://gomanga.co/)~
~* [Batoto](http://bato.to/)~
* ~~[YoManga](http://yomanga.co/)~~
* ~~[GoManga](http://gomanga.co/)~~
* ~~[Batoto](http://bato.to/)~~
* [Comic Naver](http://comic.naver.com/index.nhn)
* [Readcomiconline.li](http://readcomiconline.li/)
~* [Readcomiconline.to](http://readcomiconline.to/)~
* [Readcomiconline.ru](http://readcomiconline.ru/)
* ~~[Readcomiconline.to](http://readcomiconline.to/)~~
* [mangahere.co](http://mangahere.co/)
* [raw.senmanga](http://raw.senmanga.com/)
* [omgbeaupeep.com](http://www.omgbeaupeep.com/)
@ -14,8 +15,11 @@
* [striputopija.blogspot.si](http://striputopija.blogspot.si/)
* [mangareader.net](http://www.mangareader.net/)
* [readcomicbooksonline.net](http://readcomicbooksonline.net/)
~* [readcomics.website](http://www.readcomics.website/)~
* [manganelo.com](https://manganelo.com/) * [mangakakalot.com](https://mangakakalot.com/) * [manganato.com](https://manganato.com/) * [readmanganato.com](https://readmanganato.com/)
* ~~[readcomics.website](http://www.readcomics.website/)~~
* [manganelo.com](https://manganelo.com/)
* [mangakakalot.com](https://mangakakalot.com/)
* [manganato.com](https://manganato.com/)
* [readmanganato.com](https://readmanganato.com/)
* [hqbr.com.br](https://hqbr.com.br/home)
* [comicextra.com](http://www.comicextra.com)
* [readcomics.io](https://www.readcomics.io/)

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__version__ = "2021.09.04.3"
__version__ = "2021.09.05"

View File

@ -28,7 +28,13 @@ def easySlug(string, repl="-", directory=False):
return re.sub("^\.|\.+$", "", easySlug(string, directory=False))
else:
return re.sub("[\\\\/:*?\"<>\|]|\ $", repl, string)
def merge_two_dicts(x, y):
z = x.copy() # start with keys and values of x
z.update(y) # modifies z with keys and values of y
return z
class GlobalFunctions(object):
def page_downloader(self, manga_url, scrapper_delay=5, **kwargs):
@ -39,6 +45,8 @@ class GlobalFunctions(object):
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
'Accept-Encoding': 'gzip, deflate'
}
if kwargs.get('append_headers'):
headers = merge_two_dicts(headers, dict(kwargs.get('append_headers')))
sess = requests.session()
sess = cloudscraper.create_scraper(sess, delay=scrapper_delay)
@ -78,6 +86,8 @@ class GlobalFunctions(object):
'Accept-Encoding': 'gzip, deflate',
'Referer': referer
}
if kwargs.get('append_headers'):
headers = merge_two_dicts(headers, dict(kwargs.get('append_headers')))
sess = requests.session()
sess = cloudscraper.create_scraper(sess)
@ -212,7 +222,7 @@ class GlobalFunctions(object):
return str(current_chapter_value).zfill(max_digits)
def multithread_download(self, chapter_number, comic_name, comic_url, directory_path, file_names, links, log_flag,
pool_size=4):
pool_size=4, **kwargs):
"""
:param chapter_number: string used for the progress bar
:param comic_name: string used for the progress bar
@ -230,7 +240,7 @@ class GlobalFunctions(object):
try:
worker_item = in_queue.get()
self.downloader(referer=comic_url, directory_path=directory_path, pbar=pbar, log_flag=log_flag,
image_and_name=worker_item)
image_and_name=worker_item, **kwargs)
in_queue.task_done()
except queue.Empty as ex1:
logging.info(ex1)

View File

@ -91,7 +91,7 @@ class Honcho(object):
chapter_range=chapter_range, conversion=kwargs.get("conversion"),
keep_files=kwargs.get("keep_files"))
return 0
elif domain in ["www.readcomiconline.li", "readcomiconline.li"]:
elif domain in ["www.readcomiconline.li", "readcomiconline.li", "www.readcomicsonline.ru", "readcomicsonline.ru"]:
readcomicOnlineli.ReadComicOnlineLi(manga_url=comic_url, logger=logging,
current_directory=current_directory, sorting_order=sorting,
log_flag=log_flag, download_directory=download_directory,

View File

@ -5,6 +5,7 @@ from comic_dl import globalFunctions
import re
import os
import logging
import jsbeautifier
class MangaFox(object):
@ -35,48 +36,47 @@ class MangaFox(object):
return manga_name
def single_chapter(self, comic_url, comic_name, download_directory, conversion, keep_files):
# https://fanfox.net/manga/dagashi_kashi/v08/c141/1.html
# https://fanfox.net/manga/dagashi_kashi/v08/c141/chapterfun.ashx?cid=587020&page=1&key=
source, cookies_main = globalFunctions.GlobalFunctions().page_downloader(manga_url=comic_url)
current_chapter_volume = str(re.search(r"current_chapter=\"(.*?)\";", str(source)).group(1))
chapter_number = re.search(r"c(\d+(\.\d+)?)", current_chapter_volume).group(1)
series_code = str(re.search(r"series_code=\"(.*?)\";", str(source)).group(1))
current_page_number = int(str(re.search(r'current_page=(.*?)\;', str(source)).group(1)).strip())
last_page_number = int(str(re.search(r'total_pages=(.*?)\;', str(source)).group(1)).strip())
url_split = str(comic_url).split('/')
current_chapter_volume = url_split[-3]
chapter_number = url_split[-2]
series_code = url_split[-4]
chapter_id = int(str(re.search(r'chapterid\s?=\s?(.*?);', str(source)).group(1)).strip())
current_page_number = int(str(re.search(r'imagepage\s?=\s?(.*?);', str(source)).group(1)).strip())
last_page_number = int(str(re.search(r'imagecount\s?=\s?(.*?);', str(source)).group(1)).strip())
file_directory = globalFunctions.GlobalFunctions().create_file_directory(chapter_number, comic_name)
# directory_path = os.path.realpath(file_directory)
directory_path = os.path.realpath(str(download_directory) + "/" + str(file_directory))
if not os.path.exists(directory_path):
os.makedirs(directory_path)
links = []
file_names = []
links = {}
appended_headers = {
'referer': comic_url
}
for file_name in range(current_page_number, last_page_number + 1):
# print("Actual file_name : {0}".format(file_name))
# http://mangafox.me/manga/colette_wa_shinu_koto_ni_shita/v03/c019/2.html
chapter_url = "http://fanfox.net/manga/" + str(series_code) + "/" + str(
current_chapter_volume) + "/%s.html" % str(file_name)
logging.debug("Chapter Url : %s" % chapter_url)
source_new, cookies_new = globalFunctions.GlobalFunctions().page_downloader(manga_url=chapter_url,
cookies=cookies_main)
image_link_finder = source_new.findAll('div', {'class': 'read_img'})
for current_chapter, link in enumerate(image_link_finder):
x = link.findAll('img')
for a in x:
image_link = a['src']
logging.debug("Image Link : %s" % image_link)
current_chapter += 1
file_name_custom = str(
globalFunctions.GlobalFunctions().prepend_zeroes(file_name, last_page_number + 1)) + ".jpg"
file_names.append(file_name_custom)
links.append(image_link)
script_url = "https://fanfox.net/manga/{0}/{1}/{2}/chapterfun.ashx?cid={3}&page={4}&key=".format(series_code,
current_chapter_volume,
chapter_number,
chapter_id, file_name)
script_source, cookies_main = globalFunctions.GlobalFunctions().page_downloader(manga_url=script_url,
cookies=cookies_main,
append_headers=appended_headers)
if not script_source:
return False # Couldn't fetch script to find CDN network name and image file info
beautified_script = jsbeautifier.beautify(script_source.text)
pix_url = str(re.search(r'pix\s+=\s+"(.*?)";', str(beautified_script)).group(1).strip())
p_values = re.search(r'pvalue = \[(.*?)\];', str(beautified_script)).group(1).strip().replace('"', '').split(',')
if len(p_values) > 0:
file_name_custom = str(globalFunctions.GlobalFunctions().prepend_zeroes(file_name, last_page_number + 1)) + ".jpg"
image_url = "https:{0}{1}".format(pix_url, p_values[0].strip())
links[file_name_custom] = image_url
globalFunctions.GlobalFunctions().multithread_download(chapter_number, comic_name, comic_url, directory_path,
file_names, links, self.logging)
list(links.keys()), list(links.values()), self.logging, append_headers=appended_headers)
globalFunctions.GlobalFunctions().conversion(directory_path, conversion, keep_files, comic_name,
chapter_number)
@ -90,8 +90,8 @@ class MangaFox(object):
source, cookies = globalFunctions.GlobalFunctions().page_downloader(manga_url=rss_url)
# all_links = re.findall(r"href=\"(.*?)\" title=\"Thanks for", str(source))
all_links_temp = re.findall(r"<link/>(.*?).html", str(source))
all_links = ["http:" + str(link) + ".html" for link in all_links_temp]
all_links_temp = re.findall(r"/manga/(.*?).html", str(source))
all_links = ["https://fanfox.net/manga/{0}.html".format(link) for link in all_links_temp]
logging.debug("All Links : %s" % all_links)

View File

@ -5,6 +5,7 @@ from comic_dl import globalFunctions
import re
import os
import logging
import time
class ReadComicOnlineLi(object):
@ -38,27 +39,46 @@ class ReadComicOnlineLi(object):
def single_chapter(self, comic_url, comic_name, download_directory, conversion, keep_files):
# print("Received Comic Url : {0}".format(comic_url))
print("Fooling CloudFlare...Please Wait...")
appended_headers = {
'referer': comic_url,
'Accept': "*/*",
'Cache-Control': 'no-cache'
}
chapter_number = str(comic_url).split("/")[5].split("?")[0].replace("-", " - ")
source, cookies = globalFunctions.GlobalFunctions().page_downloader(manga_url=comic_url, scrapper_delay=10)
img_list = re.findall(r"lstImages.push\(\"(.*?)\"\);", str(source))
file_directory = globalFunctions.GlobalFunctions().create_file_directory(chapter_number, comic_name)
# directory_path = os.path.realpath(file_directory)
directory_path = os.path.realpath(str(download_directory) + "/" + str(file_directory))
if not os.path.exists(directory_path):
os.makedirs(directory_path)
# image_len = len(image_list)
main_directory = str(directory_path).split(os.sep)
main_directory.pop()
converted_file_directory = str(os.sep.join(main_directory)) + os.sep
# For https://github.com/Xonshiz/comic-dl/issues/247
if str(conversion) != "None":
base_file_name = str(converted_file_directory) + "{0} - Ch {1}".format(globalFunctions.easySlug(comic_name), chapter_number)
if os.path.isfile("{0}.cbz".format(base_file_name)) or os.path.isfile("{0}.pdf".format(base_file_name)):
print('Converted File already exists. Skipping.')
return 0
source, cookies = globalFunctions.GlobalFunctions().page_downloader(manga_url=comic_url, scrapper_delay=10, append_headers=appended_headers)
img_list = re.findall(r"lstImages.push\(\"(.*?)\"\);", str(source))
if len(img_list) == 0:
data_src = re.findall(r'data-src="(.*?)"', str(source))
if len(data_src) > 0:
img_list = data_src
if str(self.image_quality).lower().strip() in ["low", "worst", "bad", "cancer", "mobile"]:
print("Downloading In Low Quality...")
links = []
file_names = []
for current_chapter, image_link in enumerate(img_list):
image_link = image_link.replace("\\", "")
image_link = str(image_link).strip().replace("\\", "")
logging.debug("Image Link : %s" % image_link)
image_link = image_link.replace("=s1600", "=s0").replace("/s1600", "/s0") # Change low quality to best.
@ -141,6 +161,7 @@ class ReadComicOnlineLi(object):
try:
self.single_chapter(comic_url=chap_link, comic_name=comic_name, download_directory=download_directory,
conversion=conversion, keep_files=keep_files)
time.sleep(5) # 5 second wait before downloading next chapter. Suggestion in #261
except Exception as ex:
logging.error("Error downloading : %s" % chap_link)
break # break to continue processing other mangas
@ -155,6 +176,7 @@ class ReadComicOnlineLi(object):
try:
self.single_chapter(comic_url=chap_link, comic_name=comic_name, download_directory=download_directory,
conversion=conversion, keep_files=keep_files)
time.sleep(5) # 5 second wait before downloading next chapter. Suggestion in #261
except Exception as ex:
logging.error("Error downloading : %s" % chap_link)
break # break to continue processing other mangas

View File

@ -117,4 +117,10 @@
- PR Merge for #199 [2018.11.27]
- All PRs Merged [2019.05.26]
- All PRs Merged [2021.06.13]
- Fixing import levels
- Fixing import levels [2021.09.04]
- Added a 5 second wait while downloading whole chapter from RCO as suggested in #261 [2021.09.05]
- Fixed #220 [2021.09.05]
- Added support for readcomicsonline.ru [Fix for #290] [2021.09.05]
- Updated ReadMe to include "execution" on windows [2021.09.05]
- Removed setup2.py file [2021.09.05]
- Checking for existing CBZ/PDF files before downloading them again [Fix for #247] [2021.09.05]

421
docs/ReadMe.html Normal file
View File

@ -0,0 +1,421 @@
<p><a href="https://github.com/Xonshiz/comic-dl"><img
src="https://raw.githubusercontent.com/Xonshiz/comic-dl/master/Images/Icon.png" alt="N|Solid"/></a> # Comic-DL |
<a href="https://travis-ci.com/Xonshiz/comic-dl">
<embed src="https://travis-ci.com/Xonshiz/comic-dl.svg?branch=master"/>
</a> <a href="http://comic-dl.readthedocs.io/en/latest/?badge=latest"><img
src="https://readthedocs.org/projects/comic-dl/badge/?version=latest" alt="Documentation Status"/></a> | <a
href="https://www.paypal.me/xonshiz"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg"
alt="Donate"/></a> | <a
href="https://github.com/xonshiz/comic-dl/releases/latest">
<embed src="https://img.shields.io/github/release/xonshiz/comic-dl.svg?style=flat-square"/>
</a> | <a href="https://github.com/xonshiz/comic-dl/releases">
<embed src="https://img.shields.io/github/downloads/xonshiz/comic-dl/total.svg?style=flat-square"/>
</a></p>
<p>Comic-dl is a command line tool to download Comics and Manga from various Manga and Comic sites easily. You can
search Manga from this tool as well. Idea from <a href="https://github.com/rg3/youtube-dl">youtube-dl</a>.</p>
<p>If you're looking for an application, or a UI for this, please move to : <a
href="https://github.com/Xonshiz/CoManga">CoManga</a></p>
<blockquote>
<p>Don't overuse this script. Support the developers of those websites by disabling your adblock on their site.
Advertisments pay for the website servers.</p>
</blockquote>
<blockquote>
<p>Searching and downloading that manga is supported via MangaEden's API : http://www.mangaeden.com/api/</p>
</blockquote>
<h2 id="table-of-content">Table of Content</h2>
<ul>
<li><a href="https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md">Supported Sites</a></li>
<li><a href="#dependencies-installation">Dependencies Installation</a>
<ul>
<li><a href="#linuxdebian-">Linux/Debian</a></li>
<li><a href="#windows-">Windows</a></li>
<li><a href="#mac-os-x-">Mac OS X</a></li>
</ul>
</li>
<li><a href="#installation">Installation</a>
<ul>
<li><a href="#docker">Docker</a></li>
</ul>
</li>
<li><a href="#python-support">Python Support</a></li>
<li><a href="#windows-binary">Windows Binary</a></li>
<li><a href="#list-of-arguments">List of Arguments</a></li>
<li><a href="#language-codes">Language Codes</a></li>
<li><a href="#using-the-search">Using The Search</a></li>
<li><a href="https://www.youtube.com/watch?v=TmQYhLHEZxA">Youtube Tutorial</a></li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#windows">Windows</a></li>
<li><a href="#linuxdebian">Linux/Debian</a></li>
</ul>
</li>
<li><a href="#auto-download">Auto Download</a></li>
<li><a href="#features">Features</a></li>
<li><a href="https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md">Changelog</a></li>
<li><a href="#opening-an-issuerequesting-a-site">Opening An Issue/Requesting A Site</a>
<ul>
<li><a href="#reporting-issues">Reporting Issues</a></li>
<li><a href="#suggesting-a-feature">Suggesting A Feature</a></li>
</ul>
</li>
<li><a href="https://github.com/Xonshiz/comic-dl/blob/master/Contributors.md">Contributors</a></li>
<li><a href="#notes">Notes</a></li>
<li><a href="#donations">Donations</a></li>
</ul>
<h2 id="supported-websites">Supported Websites</h2>
<p>You can check the list of supported websites <a
href="https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md"><strong><code>HERE</code></strong></a>.
</p>
<h2 id="dependencies-installation">Dependencies Installation</h2>
<p>This script can run on multiple Operating Systems. You need <code>Node.js</code> in your system's path for this
script to work (You need this on each and every Operating System, even on WINDOWS :/). Download the
<code>Node.Js</code> from <a href="https://nodejs.org/en/">Node.js official website</a>. Doesn't matter which
operating system you're on, this is a must. Follow the instructions mentioned below, according to your OS.</p>
<h3 id="linuxdebian">Linux/Debian :</h3>
<p>Since most (if not all) Linux/Debian OS come with python pre-installed, you don't have to install python manually.
Make sure you're using python &gt;= 2.7.x though.</p>
<p>We need <code>pip</code> to install any external dependenc(ies). So, open any terminal and type in <code>pip
list</code> and if it shows some data, then it is fine. But, if it shows error, like <code>pip not found</code> or
something along this line, then you need to install <code>pip</code>. Just type this command in terminal :</p>
<p><code>sudo apt-get install python-pip</code></p>
<p>If you're on Fedora, CentOS/RHEL, openSUSE, Arch Linux, then you simply need to follow <a
href="https://packaging.python.org/install_requirements_linux/"><code>THIS TUTORIAL</code></a> to install <code>pip</code>.
</p>
<p>If this still doesn't work, then you'll manually need to install pip. Doing so is an easy one time job and you can
follow <a href="https://pip.pypa.io/en/stable/installing/"><code>THIS TUTORIAL</code></a> to do so.</p>
<h3 id="windows">Windows :</h3>
<p>If you're on windows, then it is recommended to download the <a
href="https://github.com/Xonshiz/comic-dl#windows-binary"><code>windows binary</code></a> for this script. If
you use the windows binary, you don't need to install anything, except Node.js. But, if for some weird reason you
want to use Python script instead, then follow these steps :</p>
<ul>
<li>Install Python &gt; 2.7.6. Download the desired installer from <a
href="https://www.python.org/downloads/">here</a>.
</li>
<li><a href="http://superuser.com/questions/143119/how-to-add-python-to-the-windows-path">Add it in the system
path</a> (if not already added).
</li>
<li>If you're using python &gt;2.7.9, you don't need to install <code>PIP</code>. However, if you don't have pip
installed and added in windows path, then do so by following <a href="http://stackoverflow.com/a/12476379">this
little tutorial</a>.
</li>
<li>Download <a href="https://github.com/Xonshiz/comic-dl/blob/master/requirements.txt">this <code>text</code></a>
file and put it in some directory/folder.
</li>
<li><p>Open Command Prompt and browse to the directory where you downloaded your requiremenets.txt file and run this
command :</p>
<pre><code>pip install -r requirements.txt</code></pre>
</li>
<li><p>It should install the required external libraries.</p></li>
</ul>
<p>Now, install Node.Js as well and make sure it's in your path.</p>
<p>Well, if everything came up good without any error(s), then you're good to go!</p>
<h3 id="mac-os-x">Mac OS X :</h3>
<p>Mac OS X users will have to fetch their version of <code>Python</code> and <code>Pip</code>. * Python installation
guide : http://docs.python-guide.org/en/latest/starting/install/osx/ * Pip installation guide :
http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x</p>
<p>After downloading and installing these, you need to add PIP &amp; Python in your path. Follow <a
href="http://www.pyladies.com/blog/Get-Your-Mac-Ready-for-Python-Programming/"><code>THIS LITTLE
GUIDE</code></a> to install both, Python &amp; pip successfully.</p>
<h2 id="installation">Installation</h2>
<p>After installing and setting up all the dependencies in your Operating System, you're good to go and use this script.
The instructions for all the OS would remain same. Download <a
href="https://github.com/Xonshiz/comic-dl/archive/master.zip"><code>THIS REPOSITORY</code></a> and put it
somewhere in your system. Move over to the <code>comic_dl</code> folder.</p>
<p><strong>Windows users</strong>, it's better to not place it places where it requires administrator privileges. Good
example would be <code>C:\Windows</code>. This goes for both, the Python script and the windows binary file (.exe).
</p>
<p><strong>Linux/Debian</strong> users make sure that this script is executable.just run this command, if you run into
problem(s) :</p>
<p><code>chmod +x __main__.py</code></p>
<p>and then, execute with this :</p>
<p><code>./__main__.py</code></p>
<h3 id="docker">Docker</h3>
<p>With docker you can get the whole dependencies enclosed in a container and use the <code>comic_dl</code> from your
system.</p>
<p>You need an up and running Docker client running, follow the <a href="https://docs.docker.com/install/">Docker
Documentation</a>.</p>
<p>A minimal example is here, you can change each step as you wish.</p>
<ol style="list-style-type: decimal">
<li><p>Clone this repo with <code>git clone [REPOSITORY URL.git]</code></p></li>
<li><p>Build the image and give a name and a tag in the format <code>name:tag</code>. Here we are using <code>python:3.6.5-stretch</code>
as base image, hence he tag.</p></li>
</ol>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">docker</span> build -t comic-dl:py3.6.5-stretch .</code></pre>
<ol start="3" style="list-style-type: decimal">
<li>Define an handy alias on your system with some docker tricks. This mounts the local directory under <code>/directory</code>
in the container. This works on *NIX sistem, maybe also under Windows Linux subsystem (we need to Check).
</li>
</ol>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">alias</span> comic_dl=<span class="st">&quot;docker run -it --rm -v </span><span
class="ot">$(</span><span class="kw">pwd</span><span class="ot">)</span><span class="st">:/directory -w /directory comic-dl:py3.6.5-stretch comic_dl -dd /directory&quot;</span></code></pre>
<ol start="4" style="list-style-type: decimal">
<li>Run it on your system. This actually starts a container on request and stop&amp;delete it when finish.</li>
</ol>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">usage</span>: comicdl [-h] [--version] [-s SORTING] [-a] [-c]
[<span class="kw">-dd</span> DOWNLOAD_DIRECTORY] [-rn RANGE] [--convert CONVERT]
[<span class="kw">--keep</span> KEEP] [--quality QUALITY] [-i INPUT] [--comic]
[<span class="kw">-comic-search</span> SEARCH_COMIC] [-comic-info COMIC_INFO]
[<span class="kw">--update</span> UPDATE] [--print-index] [-find SEARCH]
[<span class="kw">-ml</span> MANGA_LANGUAGE] [-sc SKIP_CACHE] [-cid CHAPTER_ID]
[<span class="kw">-pid</span> PAGE_ID] [-fd] [-p PASSWORD] [-u USERNAME] [-v]
[<span class="kw">...</span>]</code></pre>
<h2 id="python-support">Python Support</h2>
<p>This script supports python 3. You can run this on python 2 as well, as long as you have all the dependencies
installed.</p>
<h2 id="windows-binary">Windows Binary</h2>
<p>It is recommended that windows users use this binary to save both, your head and time from installing all the
dependencies.</p>
<p>You need to download and install <a href="https://nodejs.org/en/">Node.js</a> and make sure it is in your Windows
path (watch out for the tick box during install).</p>
<p>If you already have it, then you can download this binary and start using the script right off the bat : * <code>Binary
(x86)</code> : <a href="https://github.com/Xonshiz/comic-dl/releases/latest">Click Here</a></p>
<p><strong><code>NOTE:</code></strong> This is a <code>COMMAND LINE TOOL</code> and will <code>NOT</code> work when you
double click it. So, download this <code>.exe</code> file and put it in some folder (Not in windows or some other
restricted folder) and then hold down <code>SHIFT KEY</code> and right click anywhere on the screen and select
&quot;<code>Open Command Window here</code>&quot;. It'll open a CMD window for you. Now, you need to execute it and
pass arguments to it like:</p>
<pre><code>comic_dl.exe -i &quot;https://readcomicsonline.ru/comic/irredeemable-omnibus-2012&quot;</code></pre>
<p>Read which argument does what in <a href="#list-of-arguments">List of Arguments</a> section.</p>
<h2 id="list-of-arguments">List of Arguments</h2>
<p>Currently, the script supports these arguments :</p>
<pre><code>-h, --help Prints the basic help menu of the script and exits.
-i,--input Defines the input link to the comic/manga.
--print-index Prints the range index for links in the input URL
-V,--version Prints the VERSION and exits.
-u,--username Indicates username for a website.
-p,--password Indicates password for a website.
-v,--verbose Enables Verbose logging.
--sorting Sorts the download order.(VALUES = asc, ascending,old,new,desc,descending,latest,new)
-a, --auto Download new chapters automatically (needs config file!)
-c, --config Generates config file for autodownload function
-dd,--download-directory Specifies custom download location for the comics/manga.
-rn,--range Selects the range of Chapters to download (Default = All) [ Ex : --range 1-10 (This will download first 10 episodes of a series)]
--convert Tells the script to convert the downloaded Images to PDF or anything else. (Supported Values : pdf, cbz) (Default : No) [By default, script will not convert anything.]
--keep Tells the script whether to keep the files after conversion or not. (Supported : No, False) (Default : Yes/True) [By default, images will be kept even after conversion.]
--quality Tells the script about the image quality you want to download. (Supported Values : low/bad/worst/mobile/cancer) [By default, images will be downloaded in Highest Quality Available. No need to provide any option.]
-find, --search Searches for a manga through the Manga Eden Database.
-ml, --manga-language Selects the language for manga. 0 is English (Default) and 1 is Italian.
-sc, --skip-cache Forces to skip cache checking.
-cid, --chapter-id Takes the Chapter ID to list all the chapters in a Manga.
-fd, --force-download Forces download of chapters, when using comic-dl&#39;s search function.
-pid, --page-id Takes the Page ID to download a particular &quot;chapter number&quot; of a manga.
--comic Add this after -i if you are inputting a comic id or the EXACT comic name.
[ Ex : -i &quot;Deadpool Classic&quot; --comic ]
-comic-search, --search-comic Searches for a comic through the scraped data from ReadComicOnline.to
[ Ex : -comic-search &quot;Deadpool&quot; ]
-comic-info, --comic-info Lists all the information about the given comic (argument can be either comic id or the exact comic name).
[ Ex : -comic-info &quot;Deadpool Classic&quot; ] or [ Ex : -comic-info 3865 ]
--update Updates the comic database for the given argument.
[ Ex: --update &quot;Deadpool Classic&quot; ] or [ Ex: --update &quot;https://readcomiconline.li/Comic/Deadpool-Classic&quot; ]</code></pre>
<h2 id="language-codes">Language Codes:</h2>
<p>These codes correspond to the languages. So, just pass in these language codes, to download Manga/Comic in that
language (only supported by few sites).</p>
<h2 id="language-code----language">Language Code --&gt; Language</h2>
<pre><code>0 --&gt; English
1 --&gt; Italian
2 --&gt; Spanish
3 --&gt; French
4 --&gt; German
5 --&gt; Portuguese
6 --&gt; Turkish
7 --&gt; Indonesian
8 --&gt; Greek
9 --&gt; Filipino
10 --&gt; Polish
11 --&gt; Thai
12 --&gt; Malay
13 --&gt; Hungarian
14 --&gt; Romanian
15 --&gt; Arabic
16 --&gt; Hebrew
17 --&gt; Russian
18 --&gt; Vietnamese
19 --&gt; Dutch
20 --&gt; Bengali
21 --&gt; Persian
22 --&gt; Czech
23 --&gt; Brazilian
24 --&gt; Bulgarian
25 --&gt; Danish
26 --&gt; Esperanto
27 --&gt; Swedish
28 --&gt; Lithuanian
29 --&gt; Other</code></pre>
<h4 id="note">Note :</h4>
<p>1.) Some websites like bato.to don't let you view some pages if you're not logged in. You'll have to create an
account and pass the login information to the script via <code>-p</code> and <code>-u</code> arguments.</p>
<p>2.) Since omgbeaupeep is uh... well, you just need to pass the absolute chapter numbers in the range section for
that. For eg : Check out <a href="http://www.omgbeaupeep.com/comics/Richie_Rich/647/">Richie Rich</a>. If you want
to download first 600 episodes, you would pass : --range 001-600. Just check the URLs for those chapters and pass
accordingly.</p>
<h2 id="using-the-search">Using The Search</h2>
<p>In the updated of version 2017.12.28, searching is also available. This is a rather confusing approach though, so
carefully read this section.</p>
<p>When you search via this tool, you will get the list of Manga and their respective unique IDs, that you will later
use to download those Manga. Firstly, you will search for a Manga, it'll show it's unique ID, which you will copy
and then pass into the tool again, it will list all the chapters listed in that particular Manga. The tool will then
ask whether you want to download all the chapters belonging to that Manga. You can type in &quot;Yes&quot;, &quot;Y&quot;,
&quot;N&quot; or &quot;No&quot; accordingly.</p>
<h3 id="how-to-find-a-manga">How To Find A Manga:</h3>
<p>To search for a Manga, you need to use <code>-find</code> or <code>--search</code> argument followed by Manga Name.
</p>
<pre><code>Windows Binary Command : `comic_dl.exe -find &quot;&lt;name_of_manga&gt;&quot;`
Python Command : `__main__.py -find &quot;&lt;name_of_manga&gt;&quot;`</code></pre>
<p>For Example : If we wish to search for &quot;One Piece&quot;, we wil use this : <code>comic_dl.exe -find &quot;One
Piece&quot;</code></p>
<p>This will show something like this :</p>
<pre><code>Manga Name --&gt; Manga ID
------------------------
One Piece: Wanted! --&gt; 4e70ea60c092255ef7006726
One Piece (Databook) --&gt; 5218b0ef45b9ef8b83731b00
One Piece x Toriko --&gt; 4e70ea75c092255ef7006ee2
One Piece dj - Boukyaku Countdown --&gt; 55a19e2b719a1609004ad1f3
One Piece --&gt; 4e70ea10c092255ef7004aa2
One Piece Party --&gt; 566d9611719a1697dd8cf79a
One Piece dj - Tears Will Surely Turn into Strength --&gt; 55a19e31719a1609004ad1f7
One Piece dj - Lotus Maker --&gt; 55a19e2e719a1609004ad1f5
One Piece dj - Three Days of Extreme Extravagance --&gt; 55a19e34719a1609004ad1f9</code></pre>
<p>As you can see, all the Manga matching the name show up, along with their unique IDs. You need to note these IDs
down, if you want to download any of these Manga. Here, for sake of an example, we'll take &quot;One Piece&quot;
Manga and its ID is : &quot;4e70ea10c092255ef7004aa2&quot;. #### Note : * When ever you search/find a Manga,
comic_dl makes a &quot;Manga_Eden_Data.json&quot; file, which more or less serves as a Cache. It'll always reference
the cache file for the next 24 hours. However, if you don't want it to use that cache file, just pass <code>--skip-cache</code>
argument along with your command, and it will ignore the cache completely and fetch fresh resources and overwrite
the older cache to update it. * By default, the tool searches for only Manga translated in English Language. But, if
you want to search for Manga translated in Italian, you can pass this argument : <code>--manga-language 1</code>.
</p>
<h3 id="getting-list-of-chapters-for-a-manga">Getting List Of Chapters For A Manga:</h3>
<p>So, now that you have the Manga's unique ID (mentioned above), you can now use that ID to get list of all the
chapters for that Manga, or can even download those chapters directly. So, to list all the chapters of &quot;One
Piece&quot;, we will pass its ID with the argument <code>--chapter-id</code>. The command will be:</p>
<pre><code>Windows Binary Command : `comic_dl.exe --chapter-id &quot;&lt;unique_id_of_manga&gt;&quot;`
Python Command : `__main__.py --chapter-id &quot;&lt;unique_id_of_manga&gt;&quot;`</code></pre>
<p>Our example command for One Piece would be : <code>comic_dl.exe --chapter-id
&quot;4e70ea10c092255ef7004aa2&quot;</code></p>
<p>This will return all the chapters, along with their unique IDs, which can be later used to download a separate
chapter.</p>
<pre><code>Chapter Number --&gt; Chapter ID
-----------------------------
761.5 --&gt; 54ad50d045b9ef961eeeda2e
714.5 --&gt; 5552a262719a163d21dc7125
2 --&gt; 4efe1d2ac0922504a300001a
127.5 --&gt; 54ad15c445b9ef961eee798b
4 --&gt; 4efe1d20c092250492000014
379.5 --&gt; 5372485a45b9ef6a97744417
217.5 --&gt; 54ad1f3245b9ef961eee826b</code></pre>
<h4 id="note-1">Note:</h4>
<ul>
<li>If you use this command, it'll just list the chapters and then ask whether you want to download the chapters or
not. If you wish to download the chapters without asking, just pass <code>--force-download</code> option along
with the main command line. Script will NOT ask you anything. It'll list the chapters and start downloading
them.
</li>
<li>If you wish to download only a few chapters in a range, you can do so by giving the good old
<code>--range</code> command. If you pass this argument, the script will not ask you whether you want to
download the chapters or not. You will not need <code>--force-download</code> option, if you are using <code>--range</code>
already.
</li>
<li>Sorting is NOT supported in this, yet. YET!</li>
</ul>
<h3 id="download-a-chapter">Download A Chapter:</h3>
<p>You can download all the chapters of a Manga, as stated in the previous step. But, if you wish to download a
particular chapter, then you need to get the unique ID of the chapter (mentioned above) and then download that
chapter separately. You need to use <code>--page-id &quot;&lt;unique_id_of_chapter&gt;&quot;</code> argument.</p>
<pre><code>Windows Binary Command : `comic_dl.exe --page-id &quot;&lt;unique_id_of_chapter&gt;&quot;`
Python Command : `__main__.py --page-id &quot;&lt;unique_id_of_chapter&gt;&quot;`</code></pre>
<p>Our example command for One Piece, chapter 2 would be : <code>comic_dl.exe --page-id &quot;4efe1d2ac0922504a300001a&quot;</code>
#### Note: * If you download the chapter separately, you will need to provide the <code>Manga Name</code> and <code>Chapter
Number</code> yourself. Because MangaEden's API doesn't list those values in their JSON reply (weird).</p>
<h2 id="youtube-tutorial">Youtube Tutorial</h2>
<p><a href="https://www.youtube.com/watch?v=TmQYhLHEZxA"><img src="https://img.youtube.com/vi/TmQYhLHEZxA/0.jpg"
alt="Check The YouTube Tutorial"/></a></p>
<h2 id="usage">Usage</h2>
<p>With this script, you have to pass arguments in order to be able to download anything. Passing arguments in a script
is pretty easy. Since the script is pretty basic, it doesn't have too many arguments. Go check the <a
href="https://github.com/Xonshiz/comic-dl#list-of-arguments"><code>ARGUMENTS SECTION</code></a> to know more
about which arguments the script offers.</p>
<p>Follow the instructions according to your OS :</p>
<h3 id="windows-1">Windows</h3>
<p>After you've saved this script in a directory/folder, you need to open <code>command prompt</code> and browse to that
directory and then execute the script. Let's do it step by step : * Open the folder where you've downloaded the
files of this repository. * Hold down the <strong><code>SHIFT</code></strong> key and while holding down the SHIFT
key, <strong><code>RIGHT CLICK</code></strong> and select <code>Open Command Prompt Here</code> from the options
that show up. * Now, in the command prompt, type this :</p>
<p><em>If you're using the windows binary :</em></p>
<p><code>comic_dl.exe -i &lt;URL TO THE COMIC&gt;</code></p>
<p><em>If you're using the Python Script :</em></p>
<p><code>__main__.py -i &lt;URL TO THE COMIC&gt;</code></p>
<p>URL can be any URL of the <a href="https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md">supported
websites</a>.</p>
<h3 id="linuxdebian-1">Linux/Debian</h3>
<p>After you've saved this script in a directory/folder, you need to open <code>command prompt</code> and browse to that
directory and then execute the script. Let's do it step by step : * Open a terminal, <code>Ctrl + Alt + T</code> is
the shortcut to do so (if you didn't know). * Now, change the current working directory of the terminal to the one
where you've downloaded this repository. * Now, in the Terminal, type this :</p>
<p><code>__main__.py -i &lt;URL TO THE COMIC&gt;</code></p>
<p>URL can be any URL of the <a href="https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md">supported
websites</a>.</p>
<h2 id="auto-download">Auto Download</h2>
<p>You can autodownload the new chapters of your favorite comics by creating a config file in json format.</p>
<p>To generate the config file run the comand below and follow the instructions</p>
<pre><code>python __main__.py --config</code></pre>
<p>or with the binary</p>
<pre><code>comic_dl.exe --config</code></pre>
<p>This commands supports the creation of the config file, the addition and remove of series and the edition of the
common download configuration.</p>
<p>Once the config file is generated you can download automatically the new chapters available for your selected comics
by running the command bellow. The command will automatically update the config file to the lastest chapter
downloaded, so in the next run it'll download just the new ones.</p>
<pre><code>python __main__.py --auto</code></pre>
<p>or with the binary</p>
<pre><code>comic_dl.exe --auto</code></pre>
<p><em>Note: It's not necesary to keep the comic files to download the next chapters.</em></p>
<h2 id="features">Features</h2>
<p>This is a very basic and small sript, so at the moment it only have a few features. * Downloads a Single Chapter and
puts in a directory with the comic name, volume and chapter. * Downloads all the chapters available for a series. *
Skip if the file has already been downloaded. * Show human readable error(s) in most places.</p>
<h2 id="changelog">Changelog</h2>
<p>You can check the changelog <a
href="https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md"><strong><code>HERE</code></strong></a>.</p>
<h2 id="opening-an-issuerequesting-a-site">Opening An Issue/Requesting A Site</h2>
<p>If your're planning to open an issue for the script or ask for a new feature or anything that requires opening an
Issue, then please do keep these things in mind.</p>
<h3 id="reporting-issues">Reporting Issues</h3>
<p>If you're going to report an issue, then please run the script again with the &quot;-v or --verbose&quot; argument.
It should generate a file in the same directory, with the name &quot;Error Log.log&quot;. Copy that log file's data
and post it on a <a href="https://gist.github.com/">Gist</a> and share that gist's link while reporting the issue
here. Make sure you <strong>EDIT OUT YOUR USERNAME AND PASSWORD</strong>, if supplied within the command.</p>
<p>If you don't include the verbose log, there are chances it'll take time to fix the issue(s) you're having. Please
follow this syntax :</p>
<p><strong>Command You Gave</strong> : What was the command that you used to invoke the script?</p>
<p><strong>Expected Behaviour</strong> : After giving the above command, what did you expect shoud've happened?</p>
<p><strong>Actual Behaviour</strong> : What actually happened?</p>
<p><strong>Link To Gist</strong> : As mentioned earlier, post the error log in a gist and share that link here.</p>
<p>P.S : Just attaching a screenshot will NOT tell or anyone else what happened behind the scenes. So, Error Log is
mandatory.</p>
<h3 id="suggesting-a-feature">Suggesting A Feature</h3>
<p>If you're here to make suggestions, please follow the basic syntax to post a request :</p>
<p><strong>Subject</strong> : Something that briefly tells us about the feature.</p>
<p><strong>Long Explanation</strong> : Describe in details what you want and how you want.</p>
<p>This should be enough, but it'll be great if you can add more ;)</p>
<h1 id="notes">Notes</h1>
<ul>
<li><p>comic.naver.com has korean characters and some OS won't handle those characters. So, instead of naming the
file folder with the series name in korean, the script will download and name the folder with the comic's ID
instead.</p></li>
<li><p>Bato.to requires you to &quot;log in&quot; to read some chapters. So, to be on a safe side, provide the
username/password combination to the script via &quot;-p&quot; and &quot;-u&quot; arguments.</p></li>
<li><p>Bato.to also has comics for various languages. You need to pass the language code via &quot;-ml&quot;
argument. Read the <a href="#language-codes">Language Codes</a> section to find out the language codes.</p></li>
<li><p>Bato.to only supports custom language downloads in &quot;Batch&quot; mode.</p></li>
<li><p>URLs with special characters are tricky to work with, because of &quot;Character Encoding&quot;. If you wish
to download such a comic/manga, you will need to use Python 3 (If on python) and also, you need to set your
terminal's character encoding to &quot;utf-8&quot; or &quot;latin-1&quot;. #95 is the same issue.</p></li>
</ul>
<h1 id="donations">Donations</h1>
<p>You can always send some money over from this :</p>
<p>Paypal : <a href="https://www.paypal.me/xonshiz"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg"
alt="Donate"/></a></p>
<p>Patreon Link : https://www.patreon.com/xonshiz</p>
<p>Any amount is appreciated :)</p>

696
docs/ReadMe.rst Normal file
View File

@ -0,0 +1,696 @@
|N\|Solid|
Comic-DL \| |Build Status| |Documentation Status| \| |Donate| \| |GitHub release| \| |Github All Releases|
==========================================================================================================
Comic-dl is a command line tool to download Comics and Manga from
various Manga and Comic sites easily. You can search Manga from this
tool as well. Idea from
`youtube-dl <https://github.com/rg3/youtube-dl>`__.
If you're looking for an application, or a UI for this, please move to :
`CoManga <https://github.com/Xonshiz/CoManga>`__
| Don't overuse this script. Support the developers of those
websites by disabling your adblock on their site.
| Advertisments pay for the website servers.
Searching and downloading that manga is supported via MangaEden's
API : http://www.mangaeden.com/api/
Table of Content
----------------
- `Supported
Sites <https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md>`__
- `Dependencies Installation <#dependencies-installation>`__
- `Linux/Debian <#linuxdebian->`__
- `Windows <#windows->`__
- `Mac OS X <#mac-os-x->`__
- `Installation <#installation>`__
- `Docker <#docker>`__
- `Python Support <#python-support>`__
- `Windows Binary <#windows-binary>`__
- `List of Arguments <#list-of-arguments>`__
- `Language Codes <#language-codes>`__
- `Using The Search <#using-the-search>`__
- `Youtube Tutorial <https://www.youtube.com/watch?v=TmQYhLHEZxA>`__
- `Usage <#usage>`__
- `Windows <#windows>`__
- `Linux/Debian <#linuxdebian>`__
- `Auto Download <#auto-download>`__
- `Features <#features>`__
- `Changelog <https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md>`__
- `Opening An Issue/Requesting A
Site <#opening-an-issuerequesting-a-site>`__
- `Reporting Issues <#reporting-issues>`__
- `Suggesting A Feature <#suggesting-a-feature>`__
- `Contributors <https://github.com/Xonshiz/comic-dl/blob/master/Contributors.md>`__
- `Notes <#notes>`__
- `Donations <#donations>`__
Supported Websites
------------------
You can check the list of supported websites
`**``HERE``** <https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md>`__.
Dependencies Installation
-------------------------
This script can run on multiple Operating Systems. You need ``Node.js``
in your system's path for this script to work (You need this on each and
every Operating System, even on WINDOWS :/). Download the ``Node.Js``
from `Node.js official website <https://nodejs.org/en/>`__. Doesn't
matter which operating system you're on, this is a must. Follow the
instructions mentioned below, according to your OS.
Linux/Debian :
~~~~~~~~~~~~~~
Since most (if not all) Linux/Debian OS come with python pre-installed,
you don't have to install python manually. Make sure you're using python
>= 2.7.x though.
We need ``pip`` to install any external dependenc(ies). So, open any
terminal and type in ``pip list`` and if it shows some data, then it is
fine. But, if it shows error, like ``pip not found`` or something along
this line, then you need to install ``pip``. Just type this command in
terminal :
``sudo apt-get install python-pip``
If you're on Fedora, CentOS/RHEL, openSUSE, Arch Linux, then you simply
need to follow
```THIS TUTORIAL`` <https://packaging.python.org/install_requirements_linux/>`__
to install ``pip``.
If this still doesn't work, then you'll manually need to install pip.
Doing so is an easy one time job and you can follow
```THIS TUTORIAL`` <https://pip.pypa.io/en/stable/installing/>`__ to do
so.
Windows :
~~~~~~~~~
If you're on windows, then it is recommended to download the
```windows binary`` <https://github.com/Xonshiz/comic-dl#windows-binary>`__
for this script. If you use the windows binary, you don't need to
install anything, except Node.js. But, if for some weird reason you want
to use Python script instead, then follow these steps :
- Install Python > 2.7.6. Download the desired installer from
`here <https://www.python.org/downloads/>`__.
- `Add it in the system
path <http://superuser.com/questions/143119/how-to-add-python-to-the-windows-path>`__
(if not already added).
- If you're using python >2.7.9, you don't need to install ``PIP``.
However, if you don't have pip installed and added in windows path,
then do so by following `this little
tutorial <http://stackoverflow.com/a/12476379>`__.
- Download `this
``text`` <https://github.com/Xonshiz/comic-dl/blob/master/requirements.txt>`__
file and put it in some directory/folder.
- Open Command Prompt and browse to the directory where you downloaded
your requiremenets.txt file and run this command :
::
pip install -r requirements.txt
- It should install the required external libraries.
Now, install Node.Js as well and make sure it's in your path.
Well, if everything came up good without any error(s), then you're good
to go!
Mac OS X :
~~~~~~~~~~
Mac OS X users will have to fetch their version of ``Python`` and
``Pip``.
- Python installation guide :
http://docs.python-guide.org/en/latest/starting/install/osx/
- Pip installation guide :
http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x
After downloading and installing these, you need to add PIP & Python in
your path. Follow
```THIS LITTLE GUIDE`` <http://www.pyladies.com/blog/Get-Your-Mac-Ready-for-Python-Programming/>`__
to install both, Python & pip successfully.
Installation
------------
| After installing and setting up all the dependencies in your Operating
System, you're good to go and use this script.
| The instructions for all the OS would remain same. Download
```THIS REPOSITORY`` <https://github.com/Xonshiz/comic-dl/archive/master.zip>`__
and put it somewhere in your system. Move over to the ``comic_dl``
folder.
**Windows users**, it's better to not place it places where it requires
administrator privileges. Good example would be ``C:\Windows``. This
goes for both, the Python script and the windows binary file (.exe).
**Linux/Debian** users make sure that this script is executable.just run
this command, if you run into problem(s) :
``chmod +x __main__.py``
and then, execute with this :
``./__main__.py``
Docker
~~~~~~
With docker you can get the whole dependencies enclosed in a container
and use the ``comic_dl`` from your system.
You need an up and running Docker client running, follow the `Docker
Documentation <https://docs.docker.com/install/>`__.
A minimal example is here, you can change each step as you wish.
#. Clone this repo with ``git clone [REPOSITORY URL.git]``
#. Build the image and give a name and a tag in the format ``name:tag``.
Here we are using ``python:3.6.5-stretch`` as base image, hence he
tag.
.. code:: bash
docker build -t comic-dl:py3.6.5-stretch .
#. Define an handy alias on your system with some docker tricks. This
mounts the local directory under ``/directory`` in the container.
This works on \*NIX sistem, maybe also under Windows Linux subsystem
(we need to Check).
.. code:: bash
alias comic_dl="docker run -it --rm -v $(pwd):/directory -w /directory comic-dl:py3.6.5-stretch comic_dl -dd /directory"
#. Run it on your system. This actually starts a container on request
and stop&delete it when finish.
.. code:: bash
usage: comicdl [-h] [--version] [-s SORTING] [-a] [-c]
[-dd DOWNLOAD_DIRECTORY] [-rn RANGE] [--convert CONVERT]
[--keep KEEP] [--quality QUALITY] [-i INPUT] [--comic]
[-comic-search SEARCH_COMIC] [-comic-info COMIC_INFO]
[--update UPDATE] [--print-index] [-find SEARCH]
[-ml MANGA_LANGUAGE] [-sc SKIP_CACHE] [-cid CHAPTER_ID]
[-pid PAGE_ID] [-fd] [-p PASSWORD] [-u USERNAME] [-v]
[...]
Python Support
--------------
This script supports python 3. You can run this on python 2 as well, as
long as you have all the dependencies installed.
Windows Binary
--------------
It is recommended that windows users use this binary to save both, your
head and time from installing all the dependencies.
You need to download and install `Node.js <https://nodejs.org/en/>`__
and make sure it is in your Windows path (watch out for the tick box
during install).
If you already have it, then you can download this binary and start
using the script right off the bat :
- ``Binary (x86)`` : `Click
Here <https://github.com/Xonshiz/comic-dl/releases/latest>`__
**``NOTE:``** This is a ``COMMAND LINE TOOL`` and will ``NOT`` work when
you double click it. So, download this ``.exe`` file and put it in some
folder (Not in windows or some other restricted folder) and then hold
down ``SHIFT KEY`` and right click anywhere on the screen and select
"``Open Command Window here``\ ". It'll open a CMD window for you. Now,
you need to execute it and pass arguments to it like:
::
comic_dl.exe -i "https://readcomicsonline.ru/comic/irredeemable-omnibus-2012"
Read which argument does what in `List of
Arguments <#list-of-arguments>`__ section.
List of Arguments
-----------------
Currently, the script supports these arguments :
::
-h, --help Prints the basic help menu of the script and exits.
-i,--input Defines the input link to the comic/manga.
--print-index Prints the range index for links in the input URL
-V,--version Prints the VERSION and exits.
-u,--username Indicates username for a website.
-p,--password Indicates password for a website.
-v,--verbose Enables Verbose logging.
--sorting Sorts the download order.(VALUES = asc, ascending,old,new,desc,descending,latest,new)
-a, --auto Download new chapters automatically (needs config file!)
-c, --config Generates config file for autodownload function
-dd,--download-directory Specifies custom download location for the comics/manga.
-rn,--range Selects the range of Chapters to download (Default = All) [ Ex : --range 1-10 (This will download first 10 episodes of a series)]
--convert Tells the script to convert the downloaded Images to PDF or anything else. (Supported Values : pdf, cbz) (Default : No) [By default, script will not convert anything.]
--keep Tells the script whether to keep the files after conversion or not. (Supported : No, False) (Default : Yes/True) [By default, images will be kept even after conversion.]
--quality Tells the script about the image quality you want to download. (Supported Values : low/bad/worst/mobile/cancer) [By default, images will be downloaded in Highest Quality Available. No need to provide any option.]
-find, --search Searches for a manga through the Manga Eden Database.
-ml, --manga-language Selects the language for manga. 0 is English (Default) and 1 is Italian.
-sc, --skip-cache Forces to skip cache checking.
-cid, --chapter-id Takes the Chapter ID to list all the chapters in a Manga.
-fd, --force-download Forces download of chapters, when using comic-dl's search function.
-pid, --page-id Takes the Page ID to download a particular "chapter number" of a manga.
--comic Add this after -i if you are inputting a comic id or the EXACT comic name.
[ Ex : -i "Deadpool Classic" --comic ]
-comic-search, --search-comic Searches for a comic through the scraped data from ReadComicOnline.to
[ Ex : -comic-search "Deadpool" ]
-comic-info, --comic-info Lists all the information about the given comic (argument can be either comic id or the exact comic name).
[ Ex : -comic-info "Deadpool Classic" ] or [ Ex : -comic-info 3865 ]
--update Updates the comic database for the given argument.
[ Ex: --update "Deadpool Classic" ] or [ Ex: --update "https://readcomiconline.li/Comic/Deadpool-Classic" ]
Language Codes:
---------------
These codes correspond to the languages. So, just pass in these language
codes, to download Manga/Comic in that language (only supported by few
sites).
Language Code --> Language
--------------------------
::
0 --> English
1 --> Italian
2 --> Spanish
3 --> French
4 --> German
5 --> Portuguese
6 --> Turkish
7 --> Indonesian
8 --> Greek
9 --> Filipino
10 --> Polish
11 --> Thai
12 --> Malay
13 --> Hungarian
14 --> Romanian
15 --> Arabic
16 --> Hebrew
17 --> Russian
18 --> Vietnamese
19 --> Dutch
20 --> Bengali
21 --> Persian
22 --> Czech
23 --> Brazilian
24 --> Bulgarian
25 --> Danish
26 --> Esperanto
27 --> Swedish
28 --> Lithuanian
29 --> Other
Note :
^^^^^^
1.) Some websites like bato.to don't let you view some pages if you're
not logged in. You'll have to create an account and pass the login
information to the script via ``-p`` and ``-u`` arguments.
2.) Since omgbeaupeep is uh... well, you just need to pass the absolute
chapter numbers in the range section for that. For eg : Check out
`Richie Rich <http://www.omgbeaupeep.com/comics/Richie_Rich/647/>`__. If
you want to download first 600 episodes, you would pass : --range
001-600. Just check the URLs for those chapters and pass accordingly.
Using The Search
----------------
In the updated of version 2017.12.28, searching is also available. This
is a rather confusing approach though, so carefully read this section.
When you search via this tool, you will get the list of Manga and their
respective unique IDs, that you will later use to download those Manga.
Firstly, you will search for a Manga, it'll show it's unique ID, which
you will copy and then pass into the tool again, it will list all the
chapters listed in that particular Manga. The tool will then ask whether
you want to download all the chapters belonging to that Manga. You can
type in "Yes", "Y", "N" or "No" accordingly.
How To Find A Manga:
~~~~~~~~~~~~~~~~~~~~
To search for a Manga, you need to use ``-find`` or ``--search``
argument followed by Manga Name.
::
Windows Binary Command : `comic_dl.exe -find "<name_of_manga>"`
Python Command : `__main__.py -find "<name_of_manga>"`
For Example : If we wish to search for "One Piece", we wil use this :
``comic_dl.exe -find "One Piece"``
This will show something like this :
::
Manga Name --> Manga ID
------------------------
One Piece: Wanted! --> 4e70ea60c092255ef7006726
One Piece (Databook) --> 5218b0ef45b9ef8b83731b00
One Piece x Toriko --> 4e70ea75c092255ef7006ee2
One Piece dj - Boukyaku Countdown --> 55a19e2b719a1609004ad1f3
One Piece --> 4e70ea10c092255ef7004aa2
One Piece Party --> 566d9611719a1697dd8cf79a
One Piece dj - Tears Will Surely Turn into Strength --> 55a19e31719a1609004ad1f7
One Piece dj - Lotus Maker --> 55a19e2e719a1609004ad1f5
One Piece dj - Three Days of Extreme Extravagance --> 55a19e34719a1609004ad1f9
| As you can see, all the Manga matching the name show up, along with
their unique IDs. You need to note these IDs down, if you want to
download any of these Manga.
| Here, for sake of an example, we'll take "One Piece" Manga and its ID
is : "4e70ea10c092255ef7004aa2".
Note :
^^^^^^
- When ever you search/find a Manga, comic\_dl makes a
"Manga\_Eden\_Data.json" file, which more or less serves as a Cache.
It'll always reference the cache file for the next 24 hours. However,
if you don't want it to use that cache file, just pass
``--skip-cache`` argument along with your command, and it will ignore
the cache completely and fetch fresh resources and overwrite the
older cache to update it.
- By default, the tool searches for only Manga translated in English
Language. But, if you want to search for Manga translated in Italian,
you can pass this argument : ``--manga-language 1``.
Getting List Of Chapters For A Manga:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| So, now that you have the Manga's unique ID (mentioned above), you can
now use that ID to get list of all the chapters for that Manga, or can
even download those chapters directly.
| So, to list all the chapters of "One Piece", we will pass its ID with
the argument ``--chapter-id``. The command will be:
::
Windows Binary Command : `comic_dl.exe --chapter-id "<unique_id_of_manga>"`
Python Command : `__main__.py --chapter-id "<unique_id_of_manga>"`
Our example command for One Piece would be :
``comic_dl.exe --chapter-id "4e70ea10c092255ef7004aa2"``
This will return all the chapters, along with their unique IDs, which
can be later used to download a separate chapter.
::
Chapter Number --> Chapter ID
-----------------------------
761.5 --> 54ad50d045b9ef961eeeda2e
714.5 --> 5552a262719a163d21dc7125
2 --> 4efe1d2ac0922504a300001a
127.5 --> 54ad15c445b9ef961eee798b
4 --> 4efe1d20c092250492000014
379.5 --> 5372485a45b9ef6a97744417
217.5 --> 54ad1f3245b9ef961eee826b
Note:
^^^^^
- If you use this command, it'll just list the chapters and then ask
whether you want to download the chapters or not. If you wish to
download the chapters without asking, just pass ``--force-download``
option along with the main command line. Script will NOT ask you
anything. It'll list the chapters and start downloading them.
- If you wish to download only a few chapters in a range, you can do so
by giving the good old ``--range`` command. If you pass this
argument, the script will not ask you whether you want to download
the chapters or not. You will not need ``--force-download`` option,
if you are using ``--range`` already.
- Sorting is NOT supported in this, yet. YET!
Download A Chapter:
~~~~~~~~~~~~~~~~~~~
| You can download all the chapters of a Manga, as stated in the
previous step. But, if you wish to download a particular chapter, then
you need to get the unique ID of the chapter (mentioned above) and then
download that chapter separately.
| You need to use ``--page-id "<unique_id_of_chapter>"`` argument.
::
Windows Binary Command : `comic_dl.exe --page-id "<unique_id_of_chapter>"`
Python Command : `__main__.py --page-id "<unique_id_of_chapter>"`
Our example command for One Piece, chapter 2 would be :
``comic_dl.exe --page-id "4efe1d2ac0922504a300001a"``
Note:
^^^^^
- If you download the chapter separately, you will need to provide the
``Manga Name`` and ``Chapter Number`` yourself. Because MangaEden's
API doesn't list those values in their JSON reply (weird).
Youtube Tutorial
----------------
|Check The YouTube Tutorial|
Usage
-----
With this script, you have to pass arguments in order to be able to
download anything. Passing arguments in a script is pretty easy. Since
the script is pretty basic, it doesn't have too many arguments. Go check
the
```ARGUMENTS SECTION`` <https://github.com/Xonshiz/comic-dl#list-of-arguments>`__
to know more about which arguments the script offers.
Follow the instructions according to your OS :
Windows
~~~~~~~
After you've saved this script in a directory/folder, you need to open
``command prompt`` and browse to that directory and then execute the
script. Let's do it step by step :
- Open the folder where you've downloaded the files of this repository.
- Hold down the **``SHIFT``** key and while holding down the SHIFT key,
**``RIGHT CLICK``** and select ``Open Command Prompt Here`` from the
options that show up.
- Now, in the command prompt, type this :
*If you're using the windows binary :*
``comic_dl.exe -i <URL TO THE COMIC>``
*If you're using the Python Script :*
``__main__.py -i <URL TO THE COMIC>``
URL can be any URL of the `supported
websites <https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md>`__.
Linux/Debian
~~~~~~~~~~~~
After you've saved this script in a directory/folder, you need to open
``command prompt`` and browse to that directory and then execute the
script. Let's do it step by step :
- Open a terminal, ``Ctrl + Alt + T`` is the shortcut to do so (if you
didn't know).
- Now, change the current working directory of the terminal to the one
where you've downloaded this repository.
- Now, in the Terminal, type this :
``__main__.py -i <URL TO THE COMIC>``
URL can be any URL of the `supported
websites <https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md>`__.
Auto Download
-------------
You can autodownload the new chapters of your favorite comics by
creating a config file in json format.
To generate the config file run the comand below and follow the
instructions
::
python __main__.py --config
or with the binary
::
comic_dl.exe --config
This commands supports the creation of the config file, the addition and
remove of series and the edition of the common download configuration.
Once the config file is generated you can download automatically the new
chapters available for your selected comics by running the command
bellow. The command will automatically update the config file to the
lastest chapter downloaded, so in the next run it'll download just the
new ones.
::
python __main__.py --auto
or with the binary
::
comic_dl.exe --auto
*Note: It's not necesary to keep the comic files to download the next
chapters.*
Features
--------
This is a very basic and small sript, so at the moment it only have a
few features.
- Downloads a Single Chapter and puts in a directory with the comic
name, volume and chapter.
- Downloads all the chapters available for a series.
- Skip if the file has already been downloaded.
- Show human readable error(s) in most places.
Changelog
---------
You can check the changelog
`**``HERE``** <https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md>`__.
Opening An Issue/Requesting A Site
----------------------------------
If your're planning to open an issue for the script or ask for a new
feature or anything that requires opening an Issue, then please do keep
these things in mind.
Reporting Issues
~~~~~~~~~~~~~~~~
If you're going to report an issue, then please run the script again
with the "-v or --verbose" argument. It should generate a file in the
same directory, with the name "Error Log.log". Copy that log file's data
and post it on a `Gist <https://gist.github.com/>`__ and share that
gist's link while reporting the issue here. Make sure you **EDIT OUT
YOUR USERNAME AND PASSWORD**, if supplied within the command.
If you don't include the verbose log, there are chances it'll take time
to fix the issue(s) you're having. Please follow this syntax :
**Command You Gave** : What was the command that you used to invoke the
script?
**Expected Behaviour** : After giving the above command, what did you
expect shoud've happened?
**Actual Behaviour** : What actually happened?
**Link To Gist** : As mentioned earlier, post the error log in a gist
and share that link here.
P.S : Just attaching a screenshot will NOT tell or anyone else what
happened behind the scenes. So, Error Log is mandatory.
Suggesting A Feature
~~~~~~~~~~~~~~~~~~~~
If you're here to make suggestions, please follow the basic syntax to
post a request :
**Subject** : Something that briefly tells us about the feature.
**Long Explanation** : Describe in details what you want and how you
want.
This should be enough, but it'll be great if you can add more ;)
Notes
=====
- comic.naver.com has korean characters and some OS won't handle those
characters. So, instead of naming the file folder with the series
name in korean, the script will download and name the folder with the
comic's ID instead.
- Bato.to requires you to "log in" to read some chapters. So, to be on
a safe side, provide the username/password combination to the script
via "-p" and "-u" arguments.
- Bato.to also has comics for various languages. You need to pass the
language code via "-ml" argument. Read the `Language
Codes <#language-codes>`__ section to find out the language codes.
- Bato.to only supports custom language downloads in "Batch" mode.
- URLs with special characters are tricky to work with, because of
"Character Encoding". If you wish to download such a comic/manga, you
will need to use Python 3 (If on python) and also, you need to set
your terminal's character encoding to "utf-8" or "latin-1". #95 is
the same issue.
Donations
=========
You can always send some money over from this :
Paypal : |Donate|
Patreon Link : https://www.patreon.com/xonshiz
Any amount is appreciated :)
.. |N\|Solid| image:: https://raw.githubusercontent.com/Xonshiz/comic-dl/master/Images/Icon.png
:target: https://github.com/Xonshiz/comic-dl
.. |Build Status| image:: https://travis-ci.com/Xonshiz/comic-dl.svg?branch=master
:target: https://travis-ci.com/Xonshiz/comic-dl
.. |Documentation Status| image:: https://readthedocs.org/projects/comic-dl/badge/?version=latest
:target: http://comic-dl.readthedocs.io/en/latest/?badge=latest
.. |Donate| image:: https://img.shields.io/badge/Donate-PayPal-green.svg
:target: https://www.paypal.me/xonshiz
.. |GitHub release| image:: https://img.shields.io/github/release/xonshiz/comic-dl.svg?style=flat-square
:target: https://github.com/xonshiz/comic-dl/releases/latest
.. |Github All Releases| image:: https://img.shields.io/github/downloads/xonshiz/comic-dl/total.svg?style=flat-square
:target: https://github.com/xonshiz/comic-dl/releases
.. |Check The YouTube Tutorial| image:: https://img.youtube.com/vi/TmQYhLHEZxA/0.jpg
:target: https://www.youtube.com/watch?v=TmQYhLHEZxA

View File

@ -1,12 +1,13 @@
# List of Supported Websites
* [Mangafox.me](http://fanfox.net/)
~* [YoManga](http://yomanga.co/)~
~* [GoManga](http://gomanga.co/)~
~* [Batoto](http://bato.to/)~
* ~~[YoManga](http://yomanga.co/)~~
* ~~[GoManga](http://gomanga.co/)~~
* ~~[Batoto](http://bato.to/)~~
* [Comic Naver](http://comic.naver.com/index.nhn)
* [Readcomiconline.li](http://readcomiconline.li/)
~* [Readcomiconline.to](http://readcomiconline.to/)~
* [Readcomiconline.ru](http://readcomiconline.ru/)
* ~~[Readcomiconline.to](http://readcomiconline.to/)~~
* [mangahere.co](http://mangahere.co/)
* [raw.senmanga](http://raw.senmanga.com/)
* [omgbeaupeep.com](http://www.omgbeaupeep.com/)
@ -14,8 +15,11 @@
* [striputopija.blogspot.si](http://striputopija.blogspot.si/)
* [mangareader.net](http://www.mangareader.net/)
* [readcomicbooksonline.net](http://readcomicbooksonline.net/)
~* [readcomics.website](http://www.readcomics.website/)~
* [manganelo.com](https://manganelo.com/) * [mangakakalot.com](https://mangakakalot.com/) * [manganato.com](https://manganato.com/) * [readmanganato.com](https://readmanganato.com/)
* ~~[readcomics.website](http://www.readcomics.website/)~~
* [manganelo.com](https://manganelo.com/)
* [mangakakalot.com](https://mangakakalot.com/)
* [manganato.com](https://manganato.com/)
* [readmanganato.com](https://readmanganato.com/)
* [hqbr.com.br](https://hqbr.com.br/home)
* [comicextra.com](http://www.comicextra.com)
* [readcomics.io](https://www.readcomics.io/)

View File

@ -1,128 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Comic-dl</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/Highlight-Blue.css">
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body class="text-center" style="background-color: #2c3134;">
<div style="background-image: url(&quot;assets/img/BG-holder.svg&quot;);display: flex;justify-content: center;padding-top: 5%;padding-right: 5%;padding-left: 5%;"><img src="assets/img/ss.jpg" style="width: 100%;object-fit: contain;"></div>
<div class="highlight-blue" style="background-color: rgba(30,106,221,0);box-shadow: 0 45px 4rem rgb(0,0,0);margin: 2%;margin-top: 5%;margin-bottom: 5%;">
<div class="container">
<div class="intro">
<h2 class="text-center">Comic-dl</h2>
</div>
<p class="text-center" style="font-size: 20px;margin: 1%;padding: 1%;">Comic-dl is a feature-rich command line tool to download Comics and Manga from various Manga and Comic sites easily. You can search Manga from this tool as well.<br></p>
<div class="buttons"></div><a class="btn btn-outline-primary" role="button" style="margin: 1%;width: 30%;" href="https://github.com/Xonshiz/comic-dl/releases">Download</a><a class="btn btn-outline-primary" role="button" style="margin: 1%;width: 30%;" href="https://github.com/Xonshiz/comic-dl">Learn more</a></div>
</div>
<h1 style="padding: 5%;color: #ffffff;">Supported Websites:</h1>
<div class="carousel slide" data-ride="carousel" data-interval="5000" id="carousel-1">
<div class="carousel-inner" role="listbox">
<div class="carousel-item active">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://readcomiconline.li/">Readcomicsonline.li</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://readcomicbooksonline.net/">readcomicbooksonline.net</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://www.comicextra.com/">comicextra.com</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="https://www.readcomics.io/">readcomics.io</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://fanfox.net/">Mangafox.me</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://comic.naver.com/index.nhn">Comic Navier</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://mangahere.co/">mangahere.co</a></h1>
</div>
</div>
</div>
<div><a class="carousel-control-prev" href="#carousel-1" role="button" data-slide="prev"><span class="carousel-control-prev-icon"></span><span class="sr-only">Previous</span></a><a class="carousel-control-next" href="#carousel-1" role="button" data-slide="next"><span class="carousel-control-next-icon"></span><span class="sr-only">Next</span></a></div>
<ol
class="carousel-indicators">
<li data-target="#carousel-1" data-slide-to="0" class="active"></li>
<li data-target="#carousel-1" data-slide-to="1"></li>
<li data-target="#carousel-1" data-slide-to="2"></li>
<li data-target="#carousel-1" data-slide-to="3"></li>
<li data-target="#carousel-1" data-slide-to="4"></li>
<li data-target="#carousel-1" data-slide-to="5"></li>
<li data-target="#carousel-1" data-slide-to="6"></li>
</ol>
</div>
<div class="carousel slide" data-ride="carousel" data-interval="5000" id="carousel-1" style="margin-bottom: 10%;">
<div class="carousel-inner" role="listbox">
<div class="carousel-item active">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://raw.senmanga.com/">raw.senmanga</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://www.omgbeaupeep.com/">omgbeaupeep.com</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://ac.qq.com/">ac.qq.com</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://www.mangareader.net/">mangareader.net</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="https://mangarock.com/">mangarock.com</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="http://www.otakusmash.com/">otakumash.com</a></h1>
</div>
</div>
<div class="carousel-item">
<div class="text-center" style="padding-top: 5%;padding-bottom: 5%;">
<h1 style="color: #ffffff;"><a href="https://mangarock.com/">mangarock.com</a></h1>
</div>
</div>
</div>
<div><a class="carousel-control-prev" href="#carousel-1" role="button" data-slide="prev"><span class="carousel-control-prev-icon"></span><span class="sr-only">Previous</span></a><a class="carousel-control-next" href="#carousel-1" role="button" data-slide="next"><span class="carousel-control-next-icon"></span><span class="sr-only">Next</span></a></div>
<ol
class="carousel-indicators">
<li data-target="#carousel-1" data-slide-to="0" class="active"></li>
<li data-target="#carousel-1" data-slide-to="1"></li>
<li data-target="#carousel-1" data-slide-to="2"></li>
<li data-target="#carousel-1" data-slide-to="3"></li>
<li data-target="#carousel-1" data-slide-to="4"></li>
<li data-target="#carousel-1" data-slide-to="5"></li>
<li data-target="#carousel-1" data-slide-to="6"></li>
</ol>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,384 +0,0 @@
[![N|Solid](https://raw.githubusercontent.com/Xonshiz/comic-dl/master/Images/Icon.png)](https://github.com/Xonshiz/comic-dl)
# Comic-DL | [![Build Status](https://travis-ci.com/Xonshiz/comic-dl.svg?branch=master)](https://travis-ci.com/Xonshiz/comic-dl) [![Documentation Status](https://readthedocs.org/projects/comic-dl/badge/?version=latest)](http://comic-dl.readthedocs.io/en/latest/?badge=latest) | [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/xonshiz) | [![GitHub release](https://img.shields.io/github/release/xonshiz/comic-dl.svg?style=flat-square)](https://github.com/xonshiz/comic-dl/releases/latest) | [![Github All Releases](https://img.shields.io/github/downloads/xonshiz/comic-dl/total.svg?style=flat-square)](https://github.com/xonshiz/comic-dl/releases)
Comic-dl is a command line tool to download Comics and Manga from various Manga and Comic sites easily. You can search Manga from this tool as well. Idea from [youtube-dl](https://github.com/rg3/youtube-dl).
If you're looking for an application, or a UI for this, please move to : [CoManga](https://github.com/Xonshiz/CoManga)
> Don't overuse this script. Support the developers of those websites by disabling your adblock on their site.
>Advertisments pay for the website servers.
> Searching and downloading that manga is supported via MangaEden's API : http://www.mangaeden.com/api/
## Table of Content
* [Supported Sites](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md)
* [Dependencies Installation](#dependencies-installation)
* [Linux/Debian](#linuxdebian-)
* [Windows](#windows-)
* [Mac OS X](#mac-os-x-)
* [Installation](#installation)
* [Python Support](#python-support)
* [Windows Binary](#windows-binary)
* [List of Arguments](#list-of-arguments)
* [Language Codes](#language-codes)
* [Using The Search](#using-the-search)
* [Youtube Tutorial](https://www.youtube.com/watch?v=TmQYhLHEZxA)
* [Usage](#usage)
* [Windows](#windows)
* [Linux/Debian](#linuxdebian)
* [Auto Download](#auto-download)
* [Features](#features)
* [Changelog](https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md)
* [Opening An Issue/Requesting A Site](#opening-an-issuerequesting-a-site)
* [Reporting Issues](#reporting-issues)
* [Suggesting A Feature](#suggesting-a-feature)
* [Contributors](https://github.com/Xonshiz/comic-dl/blob/master/Contributors.md)
* [Notes](#notes)
* [Donations](#donations)
## Supported Websites
You can check the list of supported websites [**`HERE`**](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md).
## Dependencies Installation
This script can run on multiple Operating Systems. You need `Node.js` in your system's path for this script to work (You need this on each and every Operating System, even on WINDOWS :/). Download the `Node.Js` from [Node.js official website](https://nodejs.org/en/). Doesn't matter which operating system you're on, this is a must. Follow the instructions mentioned below, according to your OS.
### Linux/Debian :
Since most (if not all) Linux/Debian OS come with python pre-installed, you don't have to install python manually. Make sure you're using python >= 2.7.x though.
We need `pip` to install any external dependenc(ies). So, open any terminal and type in `pip list` and if it shows some data, then it is fine. But, if it shows error, like `pip not found` or something along this line, then you need to install `pip`. Just type this command in terminal :
`sudo apt-get install python-pip`
If you're on Fedora, CentOS/RHEL, openSUSE, Arch Linux, then you simply need to follow [`THIS TUTORIAL`](https://packaging.python.org/install_requirements_linux/) to install `pip`.
If this still doesn't work, then you'll manually need to install pip. Doing so is an easy one time job and you can follow [`THIS TUTORIAL`](https://pip.pypa.io/en/stable/installing/) to do so.
We need `PhantomJS` to access some websites. So, after all this, we'll install PhantomJS.
First, make sure your system is updated :
```
sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
```
Grab Dependencies for PhantomJS (most important) :
```
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev
```
Grab the suitable `tar.bz2` file from this [link](http://phantomjs.org/download.html)
Extract the contents of this `tar.bz2` file you just downloaded. Open a terminal and follow the commands.
* Don't forget the change the name of the file(s) mentioned here with the ones that you downloaded.There might be a newer version when you download
```
cd /Name/of_the/directory/that/contains/the/tar_bz2/file
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
sudo tar xvjf $PHANTOM_JS.tar.bz2
```
Once downloaded, move Phantomjs folder to /usr/local/share/ and create a symlink:
```
sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
```
If none of these commands gave error(s), PhantomJS should be installed in your Linux/Debian systems just fine. You can check it by entering this command in any terminal :
```
phantomjs --version
```
### Windows :
If you're on windows, then it is recommended to download the [`windows binary`](https://github.com/Xonshiz/comic-dl#windows-binary) for this script. If you use the windows binary, you don't need to install anything, except Node.js. But, if for some weird reason you want to use Python script instead, then follow these steps :
* Install Python > 2.7.6. Download the desired installer from [here](https://www.python.org/downloads/).
* [Add it in the system path](http://superuser.com/questions/143119/how-to-add-python-to-the-windows-path) (if not already added).
* If you're using python >2.7.9, you don't need to install `PIP`. However, if you don't have pip installed and added in windows path, then do so by following [this little tutorial](http://stackoverflow.com/a/12476379).
* Download [this `text`]() file and put it in some directory/folder.
* Open Command Prompt and browse to the directory where you downloaded your requiremenets.txt file and run this command :
```
pip install -r requirements.txt
```
* It should install the required external libraries.
* Download PhantomJS : http://phantomjs.org/download.html
Now, install Node.Js as well and make sure it's in your path.
Well, if everything came up good without any error(s), then you're good to go!
### Mac OS X :
Mac OS X users will have to fetch their version of `Python` and `Pip`.
* Python installation guide : http://docs.python-guide.org/en/latest/starting/install/osx/
* Pip installation guide : http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x
* PhantomJS Mac Binary : http://phantomjs.org/download.html (Download the latest build for your OS)
After downloading and installing these, you need to add PIP & Python in your path. Follow [`THIS LITTLE GUIDE`](http://www.pyladies.com/blog/Get-Your-Mac-Ready-for-Python-Programming/) to install both, Python & pip successfully.
## Installation
After installing and setting up all the dependencies in your Operating System, you're good to go and use this script.
The instructions for all the OS would remain same. Download [`THIS REPOSITORY`](https://github.com/Xonshiz/comic-dl/archive/master.zip) and put it somewhere in your system. Move over to the `comic_dl` folder.
**Windows users**, it's better to not place it places where it requires administrator privileges. Good example would be `C:\Windows`. This goes for both, the Python script and the windows binary file (.exe).
**Linux/Debian** users make sure that this script is executable.just run this command, if you run into problem(s) :
`chmod +x __main__.py`
and then, execute with this :
`./__main__.py`
## Python Support
This script supports python 3. You can run this on python 2 as well, as long as you have all the dependencies installed.
## Windows Binary
It is recommended that windows users use this binary to save both, your head and time from installing all the dependencies.
You need to download and install [Node.js](https://nodejs.org/en/) and make sure it is in your Windows path (watch out for the tick box during install).
You also need to download [PhantomJS](http://phantomjs.org/download.html) and keep it in the same directory as that of this windows binary file or you need to have PhantomJS in your path. PhantomJS is required for some websites, which you can check in the [list of supported sites](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md).
If you already have it, then you can download this binary and start using the script right off the bat :
* `Binary (x86)` : [Click Here](https://github.com/Xonshiz/comic-dl/releases/latest)
## List of Arguments
Currently, the script supports these arguments :
```
-h, --help Prints the basic help menu of the script and exits.
-i,--input Defines the input link to the comic/manga.
-V,--version Prints the VERSION and exits.
-u,--username Indicates username for a website.
-p,--password Indicates password for a website.
-v,--verbose Enables Verbose logging.
--sorting Sorts the download order.(VALUES = asc, ascending,old,new,desc,descending,latest,new)
-a, --auto Download new chapters automatically (needs config file!)
-c, --config Generates config file for autodownload function
-dd,--download-directory Specifies custom download location for the comics/manga.
-rn,--range Selects the range of Chapters to download (Default = All) [ Ex : --range 1-10 (This will download first 10 episodes of a series)]
--convert Tells the script to convert the downloaded Images to PDF or anything else. (Supported Values : pdf, cbz) (Default : No) [By default, script will not convert anything.]
--keep Tells the script whether to keep the files after conversion or not. (Supported : No, False) (Default : Yes/True) [By default, images will be kept even after conversion.]
--quality Tells the script about the image quality you want to download. (Supported Values : low/bad/worst/mobile/cancer) [By default, images will be downloaded in Highest Quality Available. No need to provide any option.]
-find, --search Searches for a manga through the Manga Eden Database.
-ml, --manga-language Selects the language for manga. 0 is English (Default) and 1 is Italian.
-sc, --skip-cache Forces to skip cache checking.
-cid, --chapter-id Takes the Chapter ID to list all the chapters in a Manga.
-fd, --force-download Forces download of chapters, when using comic-dl's search function.
-pid, --page-id Takes the Page ID to download a particular "chapter number" of a manga.
```
## Language Codes:
These codes correspond to the languages. So, just pass in these language codes, to download Manga/Comic in that language (only supported by few sites).
Language Code --> Language
--------------------------
```
0 --> English
1 --> Italian
2 --> Spanish
3 --> French
4 --> German
5 --> Portuguese
6 --> Turkish
7 --> Indonesian
8 --> Greek
9 --> Filipino
10 --> Polish
11 --> Thai
12 --> Malay
13 --> Hungarian
14 --> Romanian
15 --> Arabic
16 --> Hebrew
17 --> Russian
18 --> Vietnamese
19 --> Dutch
20 --> Bengali
21 --> Persian
22 --> Czech
23 --> Brazilian
24 --> Bulgarian
25 --> Danish
26 --> Esperanto
27 --> Swedish
28 --> Lithuanian
29 --> Other
```
#### Note :
1.) Some websites like bato.to don't let you view some pages if you're not logged in. You'll have to create an account and pass the login information to the script via `-p` and `-u` arguments.
2.) Since omgbeaupeep is uh... well, you just need to pass the absolute chapter numbers in the range section for that. For eg : Check out [Richie Rich](http://www.omgbeaupeep.com/comics/Richie_Rich/647/). If you want to download first 600 episodes, you would pass : --range 001-600. Just check the URLs for those chapters and pass accordingly.
## Using The Search
In the updated of version 2017.12.28, searching is also available. This is a rather confusing approach though, so carefully read this section.
When you search via this tool, you will get the list of Manga and their respective unique IDs, that you will later use to download those Manga. Firstly, you will search for a Manga, it'll show it's unique ID, which you will copy and then pass into the tool again, it will list all the chapters listed in that particular Manga. The tool will then ask whether you want to download all the chapters belonging to that Manga. You can type in "Yes", "Y", "N" or "No" accordingly.
### How To Find A Manga:
To search for a Manga, you need to use `-find` or `--search` argument followed by Manga Name.
```
Windows Binary Command : `comic_dl.exe -find "<name_of_manga>"`
Python Command : `__main__.py -find "<name_of_manga>"`
```
For Example : If we wish to search for "One Piece", we wil use this : `comic_dl.exe -find "One Piece"`
This will show something like this :
```
Manga Name --> Manga ID
------------------------
One Piece: Wanted! --> 4e70ea60c092255ef7006726
One Piece (Databook) --> 5218b0ef45b9ef8b83731b00
One Piece x Toriko --> 4e70ea75c092255ef7006ee2
One Piece dj - Boukyaku Countdown --> 55a19e2b719a1609004ad1f3
One Piece --> 4e70ea10c092255ef7004aa2
One Piece Party --> 566d9611719a1697dd8cf79a
One Piece dj - Tears Will Surely Turn into Strength --> 55a19e31719a1609004ad1f7
One Piece dj - Lotus Maker --> 55a19e2e719a1609004ad1f5
One Piece dj - Three Days of Extreme Extravagance --> 55a19e34719a1609004ad1f9
```
As you can see, all the Manga matching the name show up, along with their unique IDs. You need to note these IDs down, if you want to download any of these Manga.
Here, for sake of an example, we'll take "One Piece" Manga and its ID is : "4e70ea10c092255ef7004aa2".
#### Note :
* When ever you search/find a Manga, comic_dl makes a "Manga_Eden_Data.json" file, which more or less serves as a Cache. It'll always reference the cache file for the next 24 hours. However, if you don't want it to use that cache file, just pass `--skip-cache` argument along with your command, and it will ignore the cache completely and fetch fresh resources and overwrite the older cache to update it.
* By default, the tool searches for only Manga translated in English Language. But, if you want to search for Manga translated in Italian, you can pass this argument : `--manga-language 1`.
### Getting List Of Chapters For A Manga:
So, now that you have the Manga's unique ID (mentioned above), you can now use that ID to get list of all the chapters for that Manga, or can even download those chapters directly.
So, to list all the chapters of "One Piece", we will pass its ID with the argument `--chapter-id`. The command will be:
```
Windows Binary Command : `comic_dl.exe --chapter-id "<unique_id_of_manga>"`
Python Command : `__main__.py --chapter-id "<unique_id_of_manga>"`
```
Our example command for One Piece would be : `comic_dl.exe --chapter-id "4e70ea10c092255ef7004aa2"`
This will return all the chapters, along with their unique IDs, which can be later used to download a separate chapter.
```
Chapter Number --> Chapter ID
-----------------------------
761.5 --> 54ad50d045b9ef961eeeda2e
714.5 --> 5552a262719a163d21dc7125
2 --> 4efe1d2ac0922504a300001a
127.5 --> 54ad15c445b9ef961eee798b
4 --> 4efe1d20c092250492000014
379.5 --> 5372485a45b9ef6a97744417
217.5 --> 54ad1f3245b9ef961eee826b
```
#### Note:
* If you use this command, it'll just list the chapters and then ask whether you want to download the chapters or not. If you wish to download the chapters without asking, just pass `--force-download` option along with the main command line. Script will NOT ask you anything. It'll list the chapters and start downloading them.
* If you wish to download only a few chapters in a range, you can do so by giving the good old `--range` command. If you pass this argument, the script will not ask you whether you want to download the chapters or not. You will not need `--force-download` option, if you are using `--range` already.
* Sorting is NOT supported in this, yet. YET!
### Download A Chapter:
You can download all the chapters of a Manga, as stated in the previous step. But, if you wish to download a particular chapter, then you need to get the unique ID of the chapter (mentioned above) and then download that chapter separately.
You need to use `--page-id "<unique_id_of_chapter>"` argument.
```
Windows Binary Command : `comic_dl.exe --page-id "<unique_id_of_chapter>"`
Python Command : `__main__.py --page-id "<unique_id_of_chapter>"`
```
Our example command for One Piece, chapter 2 would be : `comic_dl.exe --page-id "4efe1d2ac0922504a300001a"`
#### Note:
* If you download the chapter separately, you will need to provide the `Manga Name` and `Chapter Number` yourself. Because MangaEden's API doesn't list those values in their JSON reply (weird).
## Youtube Tutorial
[![Check The YouTube Tutorial](https://img.youtube.com/vi/TmQYhLHEZxA/0.jpg)](https://www.youtube.com/watch?v=TmQYhLHEZxA)
## Usage
With this script, you have to pass arguments in order to be able to download anything. Passing arguments in a script is pretty easy. Since the script is pretty basic, it doesn't have too many arguments. Go check the [`ARGUMENTS SECTION`](https://github.com/Xonshiz/comic-dl#list-of-arguments) to know more about which arguments the script offers.
Follow the instructions according to your OS :
### Windows
After you've saved this script in a directory/folder, you need to open `command prompt` and browse to that directory and then execute the script. Let's do it step by step :
* Open the folder where you've downloaded the files of this repository.
* Hold down the **`SHIFT`** key and while holding down the SHIFT key, **`RIGHT CLICK`** and select `Open Command Prompt Here` from the options that show up.
* Now, in the command prompt, type this :
*If you're using the windows binary :*
`comic_dl.exe -i <URL TO THE COMIC>`
*If you're using the Python Script :*
`__main__.py -i <URL TO THE COMIC>`
URL can be any URL of the [supported websites](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md).
### Linux/Debian
After you've saved this script in a directory/folder, you need to open `command prompt` and browse to that directory and then execute the script. Let's do it step by step :
* Open a terminal, `Ctrl + Alt + T` is the shortcut to do so (if you didn't know).
* Now, change the current working directory of the terminal to the one where you've downloaded this repository.
* Now, in the Terminal, type this :
`__main__.py -i <URL TO THE COMIC>`
URL can be any URL of the [supported websites](https://github.com/Xonshiz/comic-dl/blob/master/Supported_Sites.md).
## Auto Download
You can autodownload the new chapters of your favorite comics by creating a config file in json format(currently is a manual process see [`config.json.example`](https://github.com/Xonshiz/comic-dl/blob/master/comic_dl/config.json.example).
To generate the config file run the comand below and follow the instructions
```__main__.py --config```
Once the config file is generated you can download automatically the new chapters available for your selected comics by running the command bellow. The command will automatically update the config file to the lastest chapter downloaded, so in the next run it'll download just the new ones.
```__main__.py --auto```
_Note: It's not necesary to keep the comic files to download the next chapters._
## Features
This is a very basic and small sript, so at the moment it only have a few features.
* Downloads a Single Chapter and puts in a directory with the comic name, volume and chapter.
* Downloads all the chapters available for a series.
* Skip if the file has already been downloaded.
* Show human readable error(s) in most places.
## Changelog
You can check the changelog [**`HERE`**](https://github.com/Xonshiz/comic-dl/blob/master/Changelog.md).
## Opening An Issue/Requesting A Site
If your're planning to open an issue for the script or ask for a new feature or anything that requires opening an Issue, then please do keep these things in mind.
### Reporting Issues
If you're going to report an issue, then please run the script again with the "-v or --verbose" argument. It should generate a file in the same directory, with the name "Error Log.log". Copy that log file's data and post it on a [Gist](https://gist.github.com/) and share that gist's link while reporting the issue here. Make sure you **EDIT OUT YOUR USERNAME AND PASSWORD**, if supplied within the command.
If you don't include the verbose log, there are chances it'll take time to fix the issue(s) you're having. Please follow this syntax :
**Command You Gave** : What was the command that you used to invoke the script?
**Expected Behaviour** : After giving the above command, what did you expect shoud've happened?
**Actual Behaviour** : What actually happened?
**Link To Gist** : As mentioned earlier, post the error log in a gist and share that link here.
P.S : Just attaching a screenshot will NOT tell or anyone else what happened behind the scenes. So, Error Log is mandatory.
### Suggesting A Feature
If you're here to make suggestions, please follow the basic syntax to post a request :
**Subject** : Something that briefly tells us about the feature.
**Long Explanation** : Describe in details what you want and how you want.
This should be enough, but it'll be great if you can add more ;)
# Notes
* comic.naver.com has korean characters and some OS won't handle those characters. So, instead of naming the file folder with the series name in korean, the script will download and name the folder with the comic's ID instead.
* Bato.to requires you to "log in" to read some chapters. So, to be on a safe side, provide the username/password combination to the script via "-p" and "-u" arguments.
* Bato.to also has comics for various languages. You need to pass the language code via "-ml" argument. Read the [Language Codes](#language-codes) section to find out the language codes.
* Bato.to only supports custom language downloads in "Batch" mode.
* URLs with special characters are tricky to work with, because of "Character Encoding". If you wish to download such a comic/manga, you will need to use Python 3 (If on python) and also, you need to set your terminal's character encoding to "utf-8" or "latin-1". #95 is the same issue.
# Donations
You can always send some money over from this :
Paypal : [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/xonshiz)
Patreon Link : https://www.patreon.com/xonshiz
Any amount is appreciated :)

View File

@ -5,4 +5,5 @@ clint
img2pdf
future
colorama
cloudscraper
cloudscraper
jsbeautifier

View File

@ -1,67 +0,0 @@
#!/usr/bin/env python
# coding: utf-8
import os
import sys
import comic_dl
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
if sys.argv[-1] == 'publish':
os.system('python setup.py sdist upload')
sys.exit()
readme = open('ReadMe.md').read()
history = open('Changelog.md').read()
exec(compile(open('comic_dl/version.py').read(),
'comic_dl/version.py', 'exec'))
setup(
name='comic-dl',
version=__version__,
description='Comic-dl is a command line tool to download Comics and Manga from various Manga and Comic sites easily.',
long_description=readme + '\n\n' + history,
author='Xonshiz',
author_email='xonshiz@psychoticelites.com',
url='https://github.com/Xonshiz/comic-dl',
packages=[
'comic_dl',
'comic_dl.sites',
],
package_dir={'comic_dl': 'comic_dl'},
include_package_data=True,
install_requires=["clint",
"requests",
"cloudscraper",
"bs4"
],
entry_points={
'console_scripts': [
'comic_dl = comic_dl:comic_dl'
],
},
license="MIT Licence",
zip_safe=False,
keywords = ['comic-dl', 'cli', 'comic downloader','manga downloader','mangafox','batoto','kissmanga','readcomiconline.li'],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Intended Audience :: End Users/Desktop',
'License :: Public Domain',
'Natural Language :: English',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Operating System :: OS Independent',
'Topic :: Multimedia :: Graphics'
],
#test_suite='tests',
)