From c19cb93a1421ffe0fae2a2ebf67d4ec1ee1c3a26 Mon Sep 17 00:00:00 2001 From: Bastian Kleineidam Date: Wed, 6 Feb 2013 22:08:36 +0100 Subject: [PATCH] Added some comics. --- doc/changelog.txt | 5 ++++- dosagelib/plugins/a.py | 8 ++++++++ dosagelib/plugins/b.py | 42 ++++++++++++++++++++++++++++++++++++++++++ dosagelib/plugins/c.py | 16 ++++++++++++++++ dosagelib/plugins/d.py | 9 +++++++++ dosagelib/plugins/s.py | 16 ++++++++++++++++ dosagelib/plugins/t.py | 35 ++++++++++++++++++++++++++++++++--- dosagelib/plugins/w.py | 16 ++++++++++++++++ 8 files changed, 143 insertions(+), 4 deletions(-) diff --git a/doc/changelog.txt b/doc/changelog.txt index 3e2a8469b..320ddb5e6 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -2,7 +2,10 @@ Dosage 1.10 (released xx.xx.2013) Features: - comics: Added comic strips SequentialArt, VampireCheerleader, - GrrlPower, Spinnerette, HijinksEnsue, Nedroid. + GrrlPower, Spinnerette, HijinksEnsue, Nedroid, Antics, ChannelAte, + ToonHole, ThisIsIndexed, WastedTalent, ChainsawSuit, ThreePanelSoul, + SpaceTrawler, ScenesFromAMultiverse, BroodHollow, BoxerHockey, + Wonderella, BadMachinery. Changes: - cmdline: Added the --continue option. diff --git a/dosagelib/plugins/a.py b/dosagelib/plugins/a.py index ef40da93a..0692130dc 100644 --- a/dosagelib/plugins/a.py +++ b/dosagelib/plugins/a.py @@ -120,6 +120,14 @@ class Angels2200(_BasicScraper): help = 'Index format: yyyy/mm/dd/part--comic-' +class Antics(_BasicScraper): + url = 'http://www.anticscomic.com/' + stripUrl = url + '?p=%s' + imageSearch = compile(tagre("img", "src", r'(http://www\.anticscomic\.com/comics/\d+-\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://www\.anticscomic\.com/\?p=\d+)', after='prev')) + help = 'Index format: number' + + class AppleGeeks(_BasicScraper): url = 'http://www.applegeeks.com/' stripUrl = url + 'comics/viewcomic.php?issue=%s' diff --git a/dosagelib/plugins/b.py b/dosagelib/plugins/b.py index f9229ff81..9a4fb146a 100644 --- a/dosagelib/plugins/b.py +++ b/dosagelib/plugins/b.py @@ -9,6 +9,14 @@ from ..scraper import _BasicScraper from ..helpers import indirectStarter +class BadMachinery(_BasicScraper): + url = 'http://scarygoround.com/' + stripUrl = url + '?date=%s' + imageSearch = compile(tagre("img", "src", r'(strips/\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(\?date=\d+)') + 'Previous') + help = 'Index format: yyyymmdd' + + class Bardsworth(_BasicScraper): url = 'http://www.bardsworth.com/' stripUrl = url + '?p=%s' @@ -106,6 +114,40 @@ class BoyOnAStickAndSlither(_BasicScraper): return pageUrl.rsplit('/')[-1] +class BoxerHockey(_BasicScraper): + url = 'http://boxerhockey.fireball20xl.com/' + stripUrl = url + '?id=%s' + imageSearch = compile(tagre("img", "src", r'(img/comic/[^"]+)', after="comicimg")) + prevSearch = compile(tagre("a", "href", r'(http://www\.boxerhockey\.com/\?id=\d+)') + + r'[^>]+Previous') + help = 'Index format: n (unpadded)' + + +class BroodHollow(_BasicScraper): + url = 'http://broodhollow.chainsawsuit.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://broodhollow\.chainsawsuit\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://broodhollow\.chainsawsuit\.com/\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + +class ButterSafe(_BasicScraper): + url = 'http://buttersafe.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://buttersafe\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://buttersafe\.com/\d+\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + +# XXX disallowed by robots.txt +class _ButtercupFestival(_BasicScraper): + url = 'http://www.buttercupfestival.com/' + stripUrl = url + '%s.html' + imageSearch = compile(tagre("img", "src", r'(http://www\.buttercupfestival\.com/\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(\d+-\d+\.html)', quote="") + "previous") + help = 'Index format: number-number' + + class ButternutSquash(_BasicScraper): url = 'http://www.butternutsquash.net/' stripUrl = url + '%s' diff --git a/dosagelib/plugins/c.py b/dosagelib/plugins/c.py index 67a220106..15d937362 100644 --- a/dosagelib/plugins/c.py +++ b/dosagelib/plugins/c.py @@ -52,6 +52,22 @@ class Catena(_BasicScraper): help = 'Index format: yyyy/mm/dd/' +class ChainsawSuit(_BasicScraper): + url = 'http://chainsawsuit.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://chainsawsuit\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://chainsawsuit\.com/\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + +class ChannelAte(_BasicScraper): + url = 'http://www.channelate.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://www\.channelate\.com/comics/\d+-\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://www\.channelate\.com/\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/name' + + class ChasingTheSunset(_BasicScraper): url = 'http://www.fantasycomic.com/' stripUrl = url + 'index.php?p=c%s' diff --git a/dosagelib/plugins/d.py b/dosagelib/plugins/d.py index d4818a38b..2c9f62498 100644 --- a/dosagelib/plugins/d.py +++ b/dosagelib/plugins/d.py @@ -166,3 +166,12 @@ class Dilbert(_BasicScraper): imageSearch = compile(tagre("img", "src", r'(/dyn/str_strip/[^"]+\.strip\.zoom\.gif)')) help = 'Index format: yyyy-mm-dd' # XXX namer + + +# XXX disallowed by robots.txt +class _DumbingOfAge(_BasicScraper): + url = 'http://www.dumbingofage.com/' + stripUrl = url + '%s/' + prevSearch = compile(tagre("a", "href", r'(http://www\.dumbingofage\.com/\d+/[^"]+)', after="prev")) + imageSearch = compile(tagre("img", "src", r'(http://www\.dumbingofage\.com/comics/\d+-\d+-\d+[^"]+)')) + help = 'Index format: yyyy/comic/book-num/seriesname/stripname' diff --git a/dosagelib/plugins/s.py b/dosagelib/plugins/s.py index f8a165190..4a88b59d7 100644 --- a/dosagelib/plugins/s.py +++ b/dosagelib/plugins/s.py @@ -41,6 +41,14 @@ class ScaryGoRound(_BasicScraper): help = 'Index format: n (unpadded)' +class ScenesFromAMultiverse(_BasicScraper): + url = 'http://amultiverse.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://amultiverse\.com/files/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://amultiverse\.com/\d+\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + class SchlockMercenary(_BasicScraper): url = 'http://www.schlockmercenary.com/' stripUrl = url + '%s' @@ -134,6 +142,14 @@ class Sorcery101(_BasicScraper): help = 'Index format: stripname' +class SpaceTrawler(_BasicScraper): + url = 'http://spacetrawler.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://spacetrawler\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://spacetrawler\.com/\d+/\d+/\d+/[^"]+)', after="navi-prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + class SpareParts(_BasicScraper): baseUrl = 'http://www.sparepartscomics.com/' url = baseUrl + 'comics/?date=20080328' diff --git a/dosagelib/plugins/t.py b/dosagelib/plugins/t.py index 5b4567fbc..db0ea98de 100644 --- a/dosagelib/plugins/t.py +++ b/dosagelib/plugins/t.py @@ -54,14 +54,27 @@ class TheWotch(_BasicScraper): help = 'Index format: yyyy-mm-dd' +class ThisIsIndexed(_BasicScraper): + url = 'http://thisisindexed.com/' + stripUrl = url + 'page/%s' + imageSearch = compile(tagre("img", "src", r'(http://thisisindexed\.com/wp-content/uploads/\d+/\d+/card[^"]+)')) + multipleImagesPerStrip = True + prevSearch = compile(tagre("div", "class", "nav-previous") + + tagre("a", "href", r'(http://thisisindexed\.com/page/\d+/)')) + help = 'Index format: number' + + class ThunderAndLightning(_BasicScraper): - baseUrl = 'http://www.talcomic.com/wp/' - url = baseUrl + '?latestcomic' - stripUrl = baseUrl + '%s/' + url = 'http://www.talcomic.com/wp/' + stripUrl = url + '%s/' prevSearch = compile(tagre("a", "href", r'(http://www\.talcomic\.com/wp/[^"]+)', after="prev")) imageSearch = compile(tagre("img", "src", r'(http://www\.talcomic\.com/wp/comics/[^"]+)')) help = 'Index format: yyyy/mm/dd/page-nn' + @classmethod + def starter(cls): + return cls.url + '?latestcomic' + class TinyKittenTeeth(_BasicScraper): url = 'http://www.tinykittenteeth.com/' @@ -71,6 +84,14 @@ class TinyKittenTeeth(_BasicScraper): help = 'Index format: yyyy/mm/dd/stripname (unpadded)' +class ToonHole(_BasicScraper): + url = 'http://www.toonhole.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://www\.toonhole\.com/comics/\d+-\d+-\d+[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://www\.toonhole\.com/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/stripname' + + # XXX disallowed by robots.txt class _TwoLumps(_BasicScraper): url = 'http://www.twolumps.net/' @@ -113,6 +134,14 @@ class TheOuterQuarter(_BasicScraper): help = 'Index format: nnn' +class ThreePanelSoul(_BasicScraper): + url = 'http://threepanelsoul.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://threepanelsoul\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://threepanelsoul\.com/\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/stripname' + + class TracyAndTristan(_BasicScraper): url = 'http://tandt.thecomicseries.com/' stripUrl = url + 'comics/%s' diff --git a/dosagelib/plugins/w.py b/dosagelib/plugins/w.py index e84fdbaab..76fb024af 100644 --- a/dosagelib/plugins/w.py +++ b/dosagelib/plugins/w.py @@ -16,6 +16,14 @@ class WayfarersMoon(_BasicScraper): help = 'Index format: nn' +class WastedTalent(_BasicScraper): + url = 'http://www.wastedtalent.ca/' + stripUrl = url + 'comic/%s' + imageSearch = compile(tagre("img", "src", r'(http://www\.wastedtalent\.ca/sites/default/files/imagecache/comic_full/comics/\d+/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(/comic/[^"]+)', after="comic_prev")) + help = 'Index format: stripname' + + class WhiteNinja(_BasicScraper): url = 'http://www.whiteninjacomics.com/comics.shtml' stripUrl = 'http://www.whiteninjacomics.com/comics/%s.shtml' @@ -49,6 +57,14 @@ class Wigu(_BasicScraper): help = 'Index format: n' +class Wonderella(_BasicScraper): + url = 'http://nonadventures.com/' + stripUrl = url + '%s/' + imageSearch = compile(tagre("img", "src", r'(http://nonadventures\.com/comics/[^"]+)')) + prevSearch = compile(tagre("a", "href", r'(http://nonadventures\.com/\d+/\d+/\d+/[^"]+)', after="prev")) + help = 'Index format: yyyy/mm/dd/name' + + class WotNow(_BasicScraper): url = 'http://shadowburn.binmode.com/wotnow/' stripUrl = url + 'comic.php?comic_id=%s'