Xonshiz / comic-dl

Comic-dl is a command line tool to download manga and comics from various comic and manga sites. Supported sites : readcomiconline.to, mangafox.me, comic naver and many more.
https://github.com/Xonshiz/comic-dl
MIT License
545 stars 68 forks source link

suggestion - time delay between chapters #261

Closed MatevzKu closed 3 years ago

MatevzKu commented 4 years ago

Short version - http://readcomiconline.to/ is very quick to put you on a temporary block list when downloading a full series (after 5-6 chapters as far as I have experienced). Introducing a delay command that would mean - download one chapter then wait X seconds before moving to the next one, would help resolve this.

Long version: I'm a voracious reader and your script was a godsend for me, since it opened a gateway to a whole bunch of new series for me. Unfortunately the main source (http://readcomiconline.to/) tries to keep a very strong control over people trying to download complete series from them. After a few issues you are quickly hit with a ban that lasts somewhere between 12 hours and 2 days in my experience. So I'm looking into avoiding this. so far I've come up with 1 working solution and 2 ideas: 1.) I need to manually download each chapter, and wait 4 minutes in between. This is a pain when dealing with 200+ issue series as you can imagine. But it works.

2.) I can try to automate this by creating a script that would parse search results of your script, queue them and insert a delay in between. Here I have two problems - I'm a Windows user, so I found that i miss a lot of Linux command line tricks, and have not yet managed to correctly wrap my script around yours. Suggestions welcome! (In essence I'm asking if there is a way to give a link to the series to your script and first just get a list of chapters from it)

3.) My feature suggestion for you - basically the same as 2,) - to add a delay command when parsing a chapter list, so that we can if needed wait a few seconds in between and thus avoid getting a ban...

Keep up the good work!

MatevzKu commented 4 years ago

An example of what I had in mind from comic_dl import ComicDL import sites import manga_eden import sys import depo from time import sleep

core = "https://readcomiconline.to" series = "/Comic/Druuna"

if name == "main": arg = ["test"] arg.append("-i") arg.append(core+series) arg.append("--print-index") print(arg) sys.argv=arg ComicDL(sys.argv[1:]) print("Tule naj bi bili linki") print(depo.vsiLinki) if len(depo.vsiLinki) != 0: for issue in depo.vsiLinki: arg = ["test"] arg.append("-i") arg.append(core+issue) arg.append("--convert") arg.append("cbz") arg.append("-dd") arg.append("d:/Stripoteka/") sys.argv=arg ComicDL(sys.argv[1:]) sleep(240)

Note1 : I added a "depo" module that stores the all_links variable from readcomiconlineto.py module. Note2 : I modified your comic_dl.py module by changing sys.exit(0) to return None, so that the above example works, otherwise I'd have to prepare things by hand. Note3: The example only works for readcomicsonline.to since I only modified that one. For the others I use your original code.

MatevzKu commented 4 years ago

Sorry about closing the issue, clicked the wrong button, newbie on git :D

acgonzales commented 4 years ago

Since you already have an idea on how to do it. You should fork this repo then commit your changes and when you're done, you can submit a pull request and wait for the maintainer to merge it.

Xonshiz commented 3 years ago

Good idea and I was thinking of doing this... hmm I'll put a note in my TO-DO List and see if it's doable without causing too many issues to people. Thanks for the suggestion! <3

Xonshiz commented 3 years ago

Closing, as added with latest commit.