diff --git a/doc/changelog.txt b/doc/changelog.txt index da6ed029f..840316866 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -3,9 +3,11 @@ Dosage 1.14 (released xx.xx.2013) Features: - comics: Added KeenSpot comic strips and enable ComicGenesis comic strips -- comics: Added CucumberQuest, DemolitionSquad, DerFlix, DogHouseDiaries, - FonFlatter, FullFrontalNerdity, GeeksNextDoor, Katzenfuttergeleespritzer, - KickInTheHead, MyCartoons, OrnerBoy, ParallelUniversum, Ruthe, SandraAndWooGerman. +- comics: Added CucumberQuest, DasLebenIstKeinPonyHof, DemolitionSquad, + DerFlix, DerTodUndDasMaedchen, DogHouseDiaries, FonFlatter, + FullFrontalNerdity, GeeksNextDoor, Hipsters, KatzenfutterGeleespritzer, + KickInTheHead, MyCartoons, OrnerBoy, ParallelUniversum, Ruthe, + SandraAndWooGerman, WormWorldSaga. Closes: GH bug #15, #19 Changes: diff --git a/dosagelib/plugins/c.py b/dosagelib/plugins/c.py index 68b136596..dfc2a33f0 100644 --- a/dosagelib/plugins/c.py +++ b/dosagelib/plugins/c.py @@ -329,9 +329,9 @@ class CraftedFables(_BasicScraper): class CucumberQuest(_BasicScraper): url = 'http://cucumber.gigidigi.com/' - stripUrl = url + 'archive/page-%s/' + stripUrl = url + 'archive/%s/' starter = indirectStarter(url + 'recent.html', compile(r'window\.location="(/archive/page-\d+/)"')) - imageSearch = compile(tagre("img", "src", r'(http://cucumber\.gigidigi\.com/wp-content/webcomic/cq/\d+[^"]+)')) - prevSearch = compile(tagre("a", "href", r'(http://cucumber\.gigidigi\.com/archive/page-\d+/)', after="previous")) - help = 'Index format: number' + imageSearch = compile(tagre("img", "src", r'(http://cucumber\.gigidigi\.com/wp-content/webcomic/cq/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://cucumber\.gigidigi\.com/archive/[^"]+/)', after="previous")) + help = 'Index format: stripname' diff --git a/dosagelib/plugins/d.py b/dosagelib/plugins/d.py index 8ff5d2f6d..9ba51e1b7 100644 --- a/dosagelib/plugins/d.py +++ b/dosagelib/plugins/d.py @@ -54,6 +54,16 @@ class DarkWings(_BasicScraper): help = 'Index format: yyyy/mm/dd/page-nn-mm' +class DasLebenIstKeinPonyhof(_BasicScraper): + url = 'http://sarahburrini.com/wordpress/' + stripUrl = url + 'comic/%s/' + firstStripUrl = stripUrl % 'mein-erster-webcomic' + imageSearch = compile(tagre("img", "src", r'(http://sarahburrini\.com/wordpress/wp-content/uploads/\d+/\d+/\d+-\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://sarahburrini\.com/wordpress/comic/[^"]+)', after="navi-prev")) + help = 'Index format: stripname' + lang = 'de' + + class DeadWinter(_BasicScraper): url = 'http://deadwinter.cc/' stripUrl = url + 'page/%s' @@ -107,6 +117,16 @@ class DerFlix(_BasicScraper): help = 'Index format: number' +class DerTodUndDasMaedchen(_BasicScraper): + url = 'http://www.cartoontomb.de/deutsch/tod2.php' + stripUrl = url + '?bild=%s.jpg' + firstStripUrl = stripUrl % '00_01_01' + imageSearch = compile(tagre("img", "src", r"(\.\./images/tod/teil2/[^']+)", quote="'")) + prevSearch = compile(tagre("a", "href", r"(/deutsch/tod2\.php\?bild=[^']+)", quote="'") + "zurück") + help = 'Index format: nn_nn_nn' + lang = 'de' + + class DieselSweeties(_BasicScraper): url = 'http://www.dieselsweeties.com/' stripUrl = url + 'archive/%s' diff --git a/dosagelib/plugins/h.py b/dosagelib/plugins/h.py index a592fdd66..818d1592a 100644 --- a/dosagelib/plugins/h.py +++ b/dosagelib/plugins/h.py @@ -33,6 +33,15 @@ class HijinksEnsue(_BasicScraper): help = 'Index format: yyyy/mm/dd/name' +class Hipsters(_BasicScraper): + url = 'http://www.hipsters-comic.com/' + stripUrl = url + '%s/' + firstStripUrl = stripUrl % '2010/08/hip01' + imageSearch = compile(tagre("img", "src", r'(http://www\.hipsters-comic\.com/comics/\d+-\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://www\.hipsters-comic\.com/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/dd/stripname' + + class HorribleVille(_BasicScraper): url = 'http://horribleville.com/' stripUrl = url + 'd/%s.html' diff --git a/dosagelib/plugins/k.py b/dosagelib/plugins/k.py index 2b0a44118..c171225bb 100644 --- a/dosagelib/plugins/k.py +++ b/dosagelib/plugins/k.py @@ -6,7 +6,7 @@ from re import compile, IGNORECASE from ..scraper import _BasicScraper from ..util import tagre -class Katzenfuttergeleespritzer(_BasicScraper): +class KatzenfutterGeleespritzer(_BasicScraper): url = 'http://www.katzenfuttergeleespritzer.de/' stripUrl = url + 'comic/%s/' firstStripUrl = stripUrl % 'dont-drink-and-drive' diff --git a/dosagelib/plugins/w.py b/dosagelib/plugins/w.py index a25c0ffd1..bde454da5 100644 --- a/dosagelib/plugins/w.py +++ b/dosagelib/plugins/w.py @@ -107,6 +107,42 @@ class WorldOfMrToast(_BasicScraper): return None +class WormWorldSaga(_BasicScraper): + url = 'http://www.wormworldsaga.com/' + stripUrl = url + 'chapters/%s/index.php' + firstStripUrl = stripUrl % 'chapter01/EN' + imageSearch = ( + compile(tagre("img", "src", r'(images/CH\d+_\d+\.[^"]+)')), + compile(tagre("img", "src", r'(panels/CH\d+_[^"]+)')), + ) + latestChapter = 4 + multipleImagesPerStrip = True + + def starter(cls): + return '%schapters/chapter%02d/%s/index.php' % ( + cls.url, cls.latestChapter, cls.lang.upper()) + + def getPrevUrl(self, url, data, baseUrl): + """Find previous URL.""" + if 'chapter04' in url: + return url.replace('chapter04', 'chapter03') + if 'chapter03' in url: + return url.replace('chapter03', 'chapter02') + if 'chapter02' in url: + return url.replace('chapter02', 'chapter01') + return None + + +class WormWorldSagaGerman(WormWorldSaga): + lang = 'de' + +class WormWorldSagaSpanish(WormWorldSaga): + lang = 'es' + +class WormWorldSagaFrench(WormWorldSaga): + lang = 'fr' + + class WotNow(_BasicScraper): url = 'http://shadowburn.binmode.com/wotnow/' stripUrl = url + 'comic.php?comic_id=%s'