diff --git a/dosagelib/plugins/a.py b/dosagelib/plugins/a.py
index e097eddbc..1404871bc 100644
--- a/dosagelib/plugins/a.py
+++ b/dosagelib/plugins/a.py
@@ -74,9 +74,12 @@ class AetheriaEpics(_BasicScraper):
class AfterStrife(_BasicScraper):
- url = 'http://afterstrife.com/?p=262'
- stripUrl = 'http://afterstrife.com/?p=%s'
- imageSearch = compile(r'")
help = 'Index format: yyyy/mm/strip-name'
@@ -199,16 +205,17 @@ class AlsoBagels(_BasicScraper):
class Altermeta(_BasicScraper):
url = 'http://altermeta.net/'
+ rurl = escape(url)
stripUrl = url + 'archive.php?comic=%s'
firstStripUrl = stripUrl % '0'
imageSearch = compile(r'')
- prevSearch = compile(r'Back')
@@ -227,6 +234,7 @@ class Amya(_BasicScraper):
url = 'http://www.amyachronicles.com/'
rurl = escape(url)
stripUrl = url + 'archives/%s'
+ firstStripUrl = stripUrl % '117'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%sarchives/\d+)' % rurl, after="Previous"))
help = 'Index format: n'
@@ -250,10 +258,12 @@ class Angels2200(_BasicScraper):
class Annyseed(_BasicScraper):
- url = 'http://www.colourofivy.com/annyseed_webcomic_latest.htm'
- stripUrl = 'http://www.colourofivy.com/annyseed_webcomic%s.htm'
+ baseurl = 'http://www.colourofivy.com/'
+ rurl = escape(baseurl)
+ url = baseurl + 'annyseed_webcomic_latest.htm'
+ stripUrl = baseurl + 'annyseed_webcomic%s.htm'
imageSearch = compile(tagre("img", "src", r'(Annyseed[^"]+)'))
- prevSearch = compile(r'')
help = 'Index format: yyyy-mm-dd'
@@ -181,10 +182,11 @@ class BobWhite(_BasicScraper):
class BookOfBiff(_BasicScraper):
url = 'http://www.thebookofbiff.com/'
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2006/01/02/4'
imageSearch = compile(tagre("img", "src", r'([^"]+/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'([^"]+)', after="Previous"))
- help = 'Index format: yyyy/mm/dd/stripnum-strip-name'
+ help = 'Index format: yyyy/mm/dd/stripnum-stripname'
class BoredAndEvil(_BasicScraper):
@@ -287,6 +289,7 @@ class Brink(_BasicScraper):
url = 'http://paperfangs.com/brink/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '5'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: number'
diff --git a/dosagelib/plugins/c.py b/dosagelib/plugins/c.py
index 3179c4957..45deec972 100644
--- a/dosagelib/plugins/c.py
+++ b/dosagelib/plugins/c.py
@@ -23,6 +23,7 @@ class CaptainSNES(_BasicScraper):
url = 'http://www.captainsnes.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2001/07/10/the-mistake'
imageSearch = compile(tagre("img", "src", r"(%scomics/[^']+)" % rurl, quote="'"))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl) + tagre("span", "class", "prev"))
multipleImagesPerStrip = True
@@ -61,16 +62,20 @@ class Catalyst(_BasicScraper):
class CatAndGirl(_BasicScraper):
url = 'http://catandgirl.com/'
+ rurl = escape(url)
stripUrl = url + '?p=%s'
- imageSearch = compile(tagre("img", "src", r'(http://catandgirl\.com/archive/[^"]+)'))
+ firstStripUrl = stripUrl % '1602'
+ imageSearch = compile(tagre("img", "src", r'(%sarchive/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'([^"]+)')+r"[^<]+Previous")
help = 'Index format: n (unpadded)'
class Catena(_BasicScraper):
url = 'http://catenamanor.com/'
- stripUrl = url + '%s'
- imageSearch = compile(tagre("img", "src", r'(http://catenamanor\.com/comics/[^"]+)'))
+ rurl = escape(url)
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2003/06/17/the-start-of-it-all'
+ imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'([^"]+)', after='rel="prev"'))
help = 'Index format: yyyy/mm/dd/'
@@ -89,6 +94,7 @@ class ChainsawSuit(_BasicScraper):
url = 'http://chainsawsuit.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2008/03/12/strip-338'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\d+/\d+/\d+/[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/stripname'
@@ -100,6 +106,7 @@ class Champ2010(_BasicScraper):
# the latest URL is hard coded since the comic is discontinued
url = baseurl + 'champ-12-30-10.html'
stripUrl = baseurl + '%s.html'
+ firstStripUrl = stripUrl % 'champ1-1-10-fuck'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="Previous"))
help = 'Index format: yy-dd-mm'
@@ -117,6 +124,7 @@ class ChannelAte(_BasicScraper):
class ChasingTheSunset(_BasicScraper):
url = 'http://www.fantasycomic.com/'
stripUrl = url + 'index.php?p=c%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'(/cmsimg/.+?)".+?comic-img')
prevSearch = compile(r']+/images/(?:nav_02|previous_day)\.gif")
help='Index format: yyyymmdd'
@@ -133,6 +142,7 @@ class CheckerboardNightmare(_BasicScraper):
class Chester5000XYV(_BasicScraper):
url = 'http://jessfink.com/Chester5000XYV/'
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '34'
imageSearch = compile(tagre("img", "src", r'(http://jessfink\.com/Chester5000XYV/comics/[^"]+)'))
prevSearch = compile(r'')
help = 'Index format: nnn'
@@ -140,7 +150,8 @@ class Chester5000XYV(_BasicScraper):
class Chisuji(_BasicScraper):
url = 'http://www.chisuji.com/'
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2009/05/02/chisujiposter01'
imageSearch = compile(r'')
help = 'Index format: yyyy/mm/dd/strip-name'
@@ -152,6 +163,7 @@ class Chucklebrain(_BasicScraper):
compile(tagre("a", "href", r'(/main\.php\?img\=\d+)', quote="'") +
tagre("img", "src", r'/images/last\.jpg', quote="'")))
stripUrl = url + '?img=%s'
+ firstStripUrl = stripUrl % '19'
imageSearch = compile(tagre("img", "src", r'(/images/strip[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/main\.php\?img\=\d+)', quote="'") +
tagre("img", "src", r'/images/previous\.jpg', quote="'"))
@@ -161,6 +173,7 @@ class Chucklebrain(_BasicScraper):
class ChugworthAcademy(_BasicScraper):
url = 'http://chugworth.com/'
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '12'
imageSearch = compile(r']+?title="Previous">')
help = 'Index format: n (unpadded)'
@@ -169,6 +182,7 @@ class ChugworthAcademy(_BasicScraper):
class ChugworthAcademyArchive(_BasicScraper):
url = 'http://chugworth.com/archive/?strip_id=422'
stripUrl = 'http://chugworth.com/archive/?strip_id=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(r' *')
+ baseurl = 'http://www.caf-fiends.net/'
+ rurl = escape(baseurl)
+ stripUrl = baseurl + 'craftedfables/?p=%s'
+ imageSearch = compile(tagre("img", "src", r'(%scraftedfables/comics/[^"]+)' % rurl))
+ prevSearch = compile(tagre("a", "href", r'(%scraftedfables/[^"]+)' % rurl) +
+ tagre("span", "class", r"prev"))
help = 'Index format: nnn'
@@ -320,6 +347,7 @@ class CucumberQuest(_BasicScraper):
class Curvy(_BasicScraper):
url = 'http://www.c.urvy.org/'
stripUrl = url + '?date=%s'
+ firstStripUrl = stripUrl % '20080329'
imageSearch = compile(tagre("img", "src", r'(/c/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/\?date=\d+)') +
tagre("img", "src", "/nav/prev\.png"))
@@ -339,6 +367,7 @@ class CyanideAndHappiness(_BasicScraper):
url = 'http://www.explosm.net/comics/'
starter = bounceStarter(url, compile(tagre("a", "href", r"(/comics/\d+/)", before="next")))
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '15'
imageSearch = compile(tagre("img", "src", r'(http://(?:www\.)?explosm\.net/db/files/[^"]+)', before="a daily webcomic"))
prevSearch = compile(tagre("a", "href", r'(/comics/\d+/)', before="prev"))
help = 'Index format: n (unpadded)'
diff --git a/dosagelib/plugins/d.py b/dosagelib/plugins/d.py
index fd356ae32..9fbefbaee 100644
--- a/dosagelib/plugins/d.py
+++ b/dosagelib/plugins/d.py
@@ -44,6 +44,7 @@ class DamnLol(_BasicScraper):
class Damonk(_BasicScraper):
url = 'http://www.damonk.com/'
stripUrl = url + 'd/%s.html'
+ firstStripUrl = stripUrl % '20060522'
imageSearch = compile(tagre("img", "src", r'(/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/d/\d+\.html)') +
tagre("img", "src", r'/images/previous_day\.gif'))
@@ -63,6 +64,7 @@ class _DandyAndCompany(_BasicScraper):
class DangerouslyChloe(_BasicScraper):
url = 'http://www.dangerouslychloe.com/'
stripUrl = url + 'strips-dc/%s'
+ firstStripUrl = stripUrl % 'chapter_1_-_that_damned_girl'
imageSearch = compile(tagre("img", "src", r'([^"]*/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'([^"]*/strips-dc/[^"]+)', before="cn[id]prevt"))
help = 'Index format: name'
@@ -71,7 +73,8 @@ class DangerouslyChloe(_BasicScraper):
class DarkWings(_BasicScraper):
url = 'http://www.flowerlarkstudios.com/dark-wings/'
rurl = escape(url)
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2008/05/31/page-i'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="navi-prev"))
help = 'Index format: yyyy/mm/dd/page-nn-mm'
@@ -101,6 +104,7 @@ class DeadWinter(_BasicScraper):
class DeathToTheExtremist(_BasicScraper):
url = 'http://www.dtecomic.com/'
stripUrl = url + '?n=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'"(comics/.*?)"')
prevSearch = compile(r' <.+?/aprev.gif"')
help = 'Index format: nnn'
@@ -109,10 +113,11 @@ class DeathToTheExtremist(_BasicScraper):
class DeepFried(_BasicScraper):
url = 'http://www.whatisdeepfried.com/'
rurl = escape(url)
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2001/09/16/new-world-out-of-order'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
- help = 'Index format: non'
+ help = 'Index format: none'
class DemolitionSquad(_BasicScraper):
@@ -145,6 +150,7 @@ class DerTodUndDasMaedchen(_BasicScraper):
class DieselSweeties(_BasicScraper):
url = 'http://www.dieselsweeties.com/'
stripUrl = url + 'archive/%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(/hstrips/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/archive/\d+)') +
tagre("img", "src", r'(?:http://www\.dieselsweeties\.com/ximages/blackbackarrow160.png|/ximages/prev\.gif)'))
@@ -176,6 +182,7 @@ class Dilbert(_BasicScraper):
class DMFA(_BasicScraper):
url = 'http://www.missmab.com/'
stripUrl = url + 'Comics/Vol_%s.php'
+ firstStripUrl = stripUrl % '001'
imageSearch = compile(tagre("img", "src", r'((?:Comics/|Vol)[^"]+)'))
multipleImagesPerStrip = True
prevSearch = compile(tagre("a", "href", r'((?:Comics/)?Vol[^"]+)')+
@@ -195,6 +202,7 @@ class DogHouseDiaries(_BasicScraper):
url = 'http://thedoghousediaries.com/'
rurl = escape(url)
stripUrl = url + '%s'
+ firstStripUrl = stripUrl % '4827'
prevSearch = compile(tagre("a", "href", r'(%s\d+)' % rurl, after="previous-comic"))
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
help = 'Index format: number'
@@ -203,6 +211,7 @@ class DogHouseDiaries(_BasicScraper):
class DominicDeegan(_BasicScraper):
url = 'http://www.dominic-deegan.com/'
stripUrl = url + 'view.php?date=%s'
+ firstStripUrl = stripUrl % '2002-05-21'
imageSearch = compile(tagre("img", "src", r'(comics/[^"]+)'))
prevSearch = compile(r'"(view.php\?date=[^"]+)".+?prev21')
help = 'Index format: yyyy-mm-dd'
@@ -212,24 +221,16 @@ class DorkTower(_BasicScraper):
url = 'http://www.dorktower.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '1997/01/01/shadis-magazine-strip-1'
imageSearch = compile(tagre("img", "src", r'(%sfiles/\d+/\d+/DorkTower[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl)+"Previous")
help = 'Index format: yyyy/mm/dd/stripname-dd-mm-yy'
-class DrFun(_BasicScraper):
- baseurl = 'http://www.ibiblio.org/Dave/'
- url = baseurl + 'ar00502.htm'
- stripUrl = baseurl + 'ar%s.htm'
- imageSearch = compile(r'')
- multipleImagesPerStrip = True
- prevSearch = compile(r'Previous Week,')
- help = 'Index format: nnnnn'
-
-
class Dracula(_BasicScraper):
url = 'http://draculacomic.net/'
stripUrl = url + 'comic.php?comicID=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(tagre("img", "src", r'(comics/[^"]+)'))
prevSearch = compile(r' « Prev')
help = 'Index format: nnn'
@@ -247,12 +248,25 @@ class DresdenCodak(_BasicScraper):
url = 'http://dresdencodak.com/'
rurl = escape(url)
stripUrl = None
+ firstStripUrl = url + '2007/02/08/pom/'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
- prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl) + tagre("img", "src", r"%sm_prev\.png" % rurl))
+ prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl) +
+ tagre("img", "src", r"%sm_prev2?\.png" % rurl))
starter = indirectStarter(url, compile(tagre("div", "id", "preview") +
tagre("a", "href", r'(%s\d+/\d+/\d+/[^"]+)' % rurl)))
+class DrFun(_BasicScraper):
+ baseurl = 'http://www.ibiblio.org/Dave/'
+ url = baseurl + 'ar00502.htm'
+ stripUrl = baseurl + 'ar%s.htm'
+ firstStripUrl = stripUrl % '00001'
+ imageSearch = compile(tagre("a", "href", r'(Dr-Fun/df\d+/df[^"]+)'))
+ multipleImagesPerStrip = True
+ prevSearch = compile(tagre("a", "href", r'([^"]+)') + 'Previous Week,')
+ help = 'Index format: nnnnn'
+
+
class DrMcNinja(_BasicScraper):
url = 'http://drmcninja.com/'
rurl = escape(url)
@@ -266,6 +280,7 @@ class DrMcNinja(_BasicScraper):
class Drowtales(_BasicScraper):
url = 'http://www.drowtales.com/mainarchive.php'
stripUrl = url + '?sid=%s'
+ firstStripUrl = stripUrl % '4192'
imageSearch = compile(tagre("img", "src", r'(http://www\.drowtales\.com/mainarchive/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(\?sid=\d+)', before="link_prev_top"))
help = 'Index format: number'
diff --git a/dosagelib/plugins/e.py b/dosagelib/plugins/e.py
index e2219992f..0c56cb3b7 100644
--- a/dosagelib/plugins/e.py
+++ b/dosagelib/plugins/e.py
@@ -13,6 +13,7 @@ class EarthsongSaga(_BasicScraper):
url = 'http://www.earthsongsaga.com/'
starter = indirectStarter(url, compile(tagre("a", "href", r'([^"]+)') + tagre("img", "src", r'[^"]+current\.jpg')))
stripUrl = None
+ firstStripUrl = url + 'vol1/vol1cover.html'
imageSearch = compile(tagre("img", "src", r'((?:\.\./)?images/vol\d+/ch\d+/\d+\.\w+)'))
prevSearch = compile(tagre("a", "href", r'([^"]+)', after="Previous"))
@@ -25,6 +26,7 @@ class EarthsongSaga(_BasicScraper):
class EdibleDirt(_BasicScraper):
url = 'http://eddirt.frozenreality.co.uk/'
stripUrl = url + 'index.php?id=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(tagre("img", "src", r'(strips/[^"]+)'))
prevSearch = compile(tagre("a", "href", r"(index\.php\?id=\d+)")+"Previous")
help = 'Index format: number'
@@ -50,6 +52,7 @@ class Eriadan(_BasicScraper):
class ElfOnlyInn(_BasicScraper):
url = 'http://www.elfonlyinn.net/'
stripUrl = url + 'd/%s.html'
+ firstStripUrl = stripUrl % '20020523'
imageSearch = compile(tagre("img", "src", r'(/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/d/\d+\.html)') +
tagre("img", "src", r'/images/previous_day\.gif'))
@@ -78,6 +81,7 @@ class Ellerbisms(_BasicScraper):
url = 'http://www.ellerbisms.com/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '15'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: nnn'
@@ -86,6 +90,7 @@ class Ellerbisms(_BasicScraper):
class EmergencyExit(_BasicScraper):
url = 'http://www.eecomics.net/'
stripUrl = url + "?strip_id=%s"
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'"(comics/.+?)"')
prevSearch = compile(tagre("a", "href", r'(\?strip_id=\d+)') + tagre("img", "alt", r"Prior"))
help = 'Index format: n'
@@ -100,17 +105,10 @@ class _ErrantStory(_BasicScraper):
help = 'Index format: yyyy-mm-dd/num'
-class Evercrest(_BasicScraper):
- url = 'http://www.evercrest.com/archives/20030308'
- stripUrl = 'http://www.evercrest.com/archives/%s'
- imageSearch = compile(r'< Previous')
- help = 'Index format: yyyymmdd'
-
-
class EverybodyLovesEricRaymond(_BasicScraper):
url = 'http://geekz.co.uk/lovesraymond/'
stripUrl = url + 'archive/%s'
+ firstStripUrl = stripUrl % 'slashdotted'
imageSearch = compile(r'')
help = 'Index format: name-of-old-comic'
@@ -130,13 +128,16 @@ class EverydayBlues(_BasicScraper):
class EvilDiva(_BasicScraper):
url = 'http://www.evildivacomics.com/'
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '145'
imageSearch = compile(r'(/comics/.+?)"')
prevSearch = compile(r'http.+?com/(.+?)".+?"prev')
help = 'Index format: n (unpadded)'
+
class EvilInc(_BasicScraper):
url = 'http://www.evil-comic.com/'
stripUrl = url + 'archive/%s.html'
+ firstStripUrl = stripUrl % '20050530'
imageSearch = compile(tagre("img", "src", r'(/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'([^"]+)') + tagre("img", "src", r'/images/previous\.gif'))
help = 'Index format: yyyymmdd'
@@ -146,6 +147,7 @@ class Exiern(_BasicScraper):
url = 'http://www.exiern.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2005/09/06/so-far'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/stripname'
@@ -155,6 +157,7 @@ class ExploitationNow(_BasicScraper):
url = 'http://www.exploitationnow.com/'
rurl = escape(url)
stripUrl = url + '%s'
+ firstStripUrl = stripUrl % '2000-07-07/9'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="navi-prev"))
help = 'Index format: yyyy-mm-dd/num'
diff --git a/dosagelib/plugins/f.py b/dosagelib/plugins/f.py
index 4b34e7d86..f664649dd 100644
--- a/dosagelib/plugins/f.py
+++ b/dosagelib/plugins/f.py
@@ -12,6 +12,7 @@ from ..helpers import indirectStarter
class FalconTwin(_BasicScraper):
url = 'http://www.falcontwin.com/'
stripUrl = url + 'index.html?strip=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(r'"(strips/.+?)"')
prevSearch = compile(r'"prev">Previous Strip')
help = 'Index format: nnn'
@@ -70,6 +72,7 @@ class FilibusterCartoons(_BasicScraper):
url = 'http://www.filibustercartoons.com/'
rurl = escape(url)
stripUrl = url + 'index.php/%s'
+ firstStripUrl = stripUrl % '2001/06/28/poor-jean'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/name'
@@ -89,6 +92,7 @@ class FlakyPastry(_BasicScraper):
baseurl = 'http://flakypastry.runningwithpencils.com/'
url = baseurl + 'index.php'
stripUrl = baseurl + 'comic.php?strip_id=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(r']).+?(/footloose/.+?)".+?(?:prev)')
help = 'Index format: n (unpadded)'
@@ -160,7 +166,8 @@ class Freefall(_BasicScraper):
class FredoAndPidjin(_BasicScraper):
url = 'http://www.pidjin.net/'
- stripUrl = None
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2006/02/19/goofy-monday'
help = 'Index format: yyyy/mm/dd/name'
imageSearch = compile(tagre('img', 'src', '(http://cdn\.pidjin\.net/wp-content/uploads/\d+/\d+/[^"]+\.png)'))
multipleImagesPerStrip = True
@@ -182,6 +189,7 @@ class FullFrontalNerdity(_BasicScraper):
class FunInJammies(_BasicScraper):
url = 'http://www.funinjammies.com/'
stripUrl = url + 'comic.php?issue=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'(/comics/.+?)"')
prevSearch = compile(r'(/comic.php.+?)" id.+?prev')
help = 'Index format: n (unpadded)'
diff --git a/dosagelib/plugins/g.py b/dosagelib/plugins/g.py
index 706497bf7..bc4399639 100644
--- a/dosagelib/plugins/g.py
+++ b/dosagelib/plugins/g.py
@@ -13,6 +13,7 @@ class Galaxion(_BasicScraper):
url = 'http://galaxioncomics.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '1-comic/the-story-so-far/the-story-so-far'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: n-comic/book-n/chapter-n/title-nnn'
@@ -27,12 +28,13 @@ class Garanos(_BasicScraper):
stripUrl = baseurl + 'pages/page-%s'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%spages/[^"]+)' % rurl, after="prev"))
- help = 'Index format: n (unpadded)'
+ help = 'Index format: n (unpadded)'
class GastroPhobia(_BasicScraper):
url = 'http://www.gastrophobia.com/'
stripUrl = url + 'index.php?date=%s'
+ firstStripUrl = stripUrl % '2008-07-30'
imageSearch = compile(r']*>(?!
)')
prevSearch = compile(r'« Previous')
help = 'Index format: nnn'
@@ -49,6 +52,7 @@ class Geeks(_BasicScraper):
class GeeksNextDoor(_BasicScraper):
url = 'http://www.geeksnextcomic.com/'
stripUrl = url + '%s.html'
+ firstStripUrl = stripUrl % '2010-10-04'
imageSearch = compile(tagre("img", "src", r'(images/GND\d+[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(\d+-\d+-\d+\.html)') +
tagre("img", "src", r'images/nav_prev\.png'))
@@ -57,15 +61,21 @@ class GeeksNextDoor(_BasicScraper):
class GirlsWithSlingshots(_BasicScraper):
url = 'http://www.girlswithslingshots.com/'
- stripUrl = url + 'comic/gws-%s/'
- imageSearch = compile(tagre("img", "src", r'(http://(?:www|cdn)\.girlswithslingshots\.com/comics/[^"]+)'))
- prevSearch = compile(tagre("a", "href", r'(http://www\.girlswithslingshots\.com/comic/[^"]+)', after="prev"))
+ rurl = escape(url)
+ stripUrl = url + 'comic/gws%s/'
+ firstStripUrl = stripUrl % '1'
+ imageSearch = (
+ compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl)),
+ compile(tagre("img", "src", r'(http://cdn\.girlswithslingshots\.com/comics/[^"]+)')),
+ )
+ prevSearch = compile(tagre("a", "href", r'(%s/comic/[^"]+)' % rurl, after="prev"))
help = 'Index format: nnn'
class GlassHalfEmpty(_BasicScraper):
url = 'http://www.defectivity.com/ghe/index.php'
stripUrl = url + '?strip_id=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(r'src="(comics/.+?)"')
prevSearch = compile(tagre("a", "href", r'(\?strip_id=\d+)') + tagre("img", "src", r'\.\./images/arrowbuttons/onback\.jpg'))
help = 'Index format: nnn'
@@ -75,6 +85,7 @@ class GleefulNihilism(_BasicScraper):
url = 'http://gleefulnihilism.com/'
rurl = escape(url)
stripUrl = url + 'comics/%s/'
+ firstStripUrl = stripUrl % '2008/10/20/amoeba'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%scomics/[^"]+)' % rurl) + 'Previous')
help = 'Index format: yyyy/mm/dd/stripname'
@@ -83,6 +94,7 @@ class GleefulNihilism(_BasicScraper):
class Goats(_BasicScraper):
url = 'http://www.goats.com/'
stripUrl = url + 'archive/%s.html'
+ firstStripUrl = stripUrl % '970401'
imageSearch = compile(r'')
help = 'Index format: yymmdd'
@@ -103,6 +115,7 @@ class GoneWithTheBlastwave(_BasicScraper):
starter = indirectStarter(url,
compile(r'href="(index.php\?p=comic&nro=\d+)">')
prevSearch = compile(r'Previous ')
help = 'Index format: nnn'
@@ -53,6 +57,7 @@ class IrregularWebcomic(_BasicScraper):
class ItsWalky(_BasicScraper):
url = 'http://www.itswalky.com/'
stripUrl = url + 'd/%s.html'
+ firstStripUrl = stripUrl % '19970908'
imageSearch = compile(tagre("img", "src", r'(/comic[s|/][^"]+)'))
prevSearch = compile(tagre("a", "href", r'[^"]*(/d/\d+\.s?html)')+r"[^>]+/images/(?:nav_02|previous_day)\.gif")
help = 'Index format: yyyymmdd'
diff --git a/dosagelib/plugins/j.py b/dosagelib/plugins/j.py
index 9175341a4..e94fcf7d0 100644
--- a/dosagelib/plugins/j.py
+++ b/dosagelib/plugins/j.py
@@ -11,6 +11,7 @@ class JackCannon(_BasicScraper):
url = 'http://fancyadventures.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2008/07/07/2008-07-08'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/page-nnn'
@@ -19,6 +20,7 @@ class JackCannon(_BasicScraper):
class JerkCity(_BasicScraper):
url = 'http://www.jerkcity.com/'
stripUrl = url + '_jerkcity%s.html'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(/jerkcity[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/_jerkcity[^"]+)') + r'<<Previous')
help = 'Index format: n'
@@ -35,6 +37,7 @@ class JoeAndMonkey(_BasicScraper):
class JohnnyWander(_BasicScraper):
url = 'http://www.johnnywander.com/'
stripUrl = url + 'comics/%s'
+ firstStripUrl = stripUrl % '423'
imageSearch = compile(tagre("img", "src", r'(http://www\.johnnywander\.com/files/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/comics/\d+)') + r'prev')
help = 'Index format: nnn'
diff --git a/dosagelib/plugins/k.py b/dosagelib/plugins/k.py
index cab762695..a38eaaea5 100644
--- a/dosagelib/plugins/k.py
+++ b/dosagelib/plugins/k.py
@@ -73,6 +73,7 @@ class _Kofightclub(_BasicScraper):
class Krakow(_BasicScraper):
url = 'http://www.krakow.krakowstudios.com/'
stripUrl = url + 'archive.php?date=%s'
+ firstStripUrl = stripUrl % '20081111'
imageSearch = compile(r'')
help = 'Index format: yyyy/mm/dd/num-name'
@@ -41,6 +43,7 @@ class Lint(_BasicScraper):
class LittleGamers(_BasicScraper):
url = 'http://www.little-gamers.com/'
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2000/12/01/99'
imageSearch = compile(tagre("img", "src", r'(http://little-gamers\.com/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(http://www\.little-gamers\.com/[^"]+)', before="comic-nav-prev-link"))
help = 'Index format: yyyy/mm/dd/name'
@@ -60,8 +63,10 @@ class LookingForGroup(_BasicScraper):
url = 'http://www.lfgcomic.com/'
rurl = escape(url)
stripUrl = url + 'page/%s/'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(http://cdn\.lfgcomic\.com/wp-content/uploads/[^"]+)'))
- prevSearch = compile(tagre("a", "href", r'(%spage/\d+/)' % rurl, after="navtop-prev"))
- starter = indirectStarter(url, compile(tagre("a", "href", r'(%spage/\d+/)' % rurl, after="feature-previous")))
- nameSearch = compile(r'/page/(\d+)/')
+ prevSearch = compile(tagre("a", "href", r'(%spage/[-0-9]+/)' % rurl, after="navtop-prev"))
+ starter = indirectStarter(url,
+ compile(tagre("a", "href", r'(%spage/[-0-9]+/)' % rurl, after="feature-previous")))
+ nameSearch = compile(r'/page/([-0-9]+)/')
help = 'Index format: nnn'
diff --git a/dosagelib/plugins/m.py b/dosagelib/plugins/m.py
index 4d1e5b02d..ed0f5cbc3 100644
--- a/dosagelib/plugins/m.py
+++ b/dosagelib/plugins/m.py
@@ -8,6 +8,15 @@ from ..scraper import _BasicScraper
from ..util import tagre
+class MacHall(_BasicScraper):
+ url = 'http://www.machall.com/'
+ stripUrl = url + 'view.php?date=%s'
+ firstStripUrl = stripUrl % '2000-11-07'
+ imageSearch = compile(r']+?src=\'drop_shadow/previous.gif\'>')
+ help = 'Index format: yyyy-mm-dd'
+
+
# broken links - disable for now
class _MadamAndEve(_BasicScraper):
url = 'http://www.madamandeve.co.za/week_of_cartns.php'
@@ -19,6 +28,7 @@ class _MadamAndEve(_BasicScraper):
class MagickChicks(_BasicScraper):
url = 'http://www.magickchicks.com/'
stripUrl = url + 'strips-mc/%s'
+ firstStripUrl = stripUrl % 'tis_but_a_trifle'
imageSearch = compile(tagre("img", "src", r'([^"]*/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'([^"]*/strips-mc/[^"]+)', before="cn[id]prevt"))
help = 'Index format: name'
@@ -28,6 +38,7 @@ class ManlyGuysDoingManlyThings(_BasicScraper):
url = 'http://thepunchlineismachismo.com/'
rurl = escape(url)
stripUrl = url + 'archives/comic/%s'
+ firstStripUrl = stripUrl % '02222010'
imageSearch = compile(tagre("img", "src", r'(%swp-content/uploads/\d+/\d+/\d+-\d+-\d+[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%sarchives/comic/[^"]+)' % rurl, after="previous"))
help = 'Index format: ddmmyyyy'
@@ -36,6 +47,7 @@ class ManlyGuysDoingManlyThings(_BasicScraper):
class Marilith(_BasicScraper):
url = 'http://www.marilith.com/'
stripUrl = url + 'archive.php?date=%s'
+ firstStripUrl = stripUrl % '20041215'
imageSearch = compile(r'Prev')
help = 'Index format: nnnn'
@@ -69,19 +83,12 @@ class Meiosis(_BasicScraper):
url = 'http://meiosiswebcomic.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2006/10/10142006'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="navi-prev"))
help = 'Index format: yyyy/mm/ddmmyyyy'
-class MacHall(_BasicScraper):
- url = 'http://www.machall.com/'
- stripUrl = url + 'view.php?date=%s'
- imageSearch = compile(r']+?src=\'drop_shadow/previous.gif\'>')
- help = 'Index format: yyyy-mm-dd'
-
-
class MenageA3(_BasicScraper):
adult = True
url = 'http://www.ma3comic.com/'
@@ -95,6 +102,7 @@ class Melonpool(_BasicScraper):
url = 'http://www.melonpool.com/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '41'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="prev"))
help = 'Index format: n'
@@ -103,6 +111,7 @@ class Melonpool(_BasicScraper):
class Misfile(_BasicScraper):
url = 'http://www.misfile.com/'
stripUrl = url + '?date=%s'
+ firstStripUrl = stripUrl % '2004-02-22'
imageSearch = compile(tagre("img", "src", r"(comics/[^']+)", quote="'"))
prevSearch = compile(tagre("link", "href", r"([^']+)", quote="'", before="Previous"))
help = 'Index format: yyyy-mm-dd'
@@ -124,6 +133,7 @@ class MyCartoons(_BasicScraper):
class MysteriesOfTheArcana(_BasicScraper):
url = 'http://mysteriesofthearcana.com/'
stripUrl = url + 'index.php?action=comics&cid=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(image\.php\?type=com&i=[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(index\.php[^"]+)', after="navprevious"))
help = 'Index format: n (unpadded)'
diff --git a/dosagelib/plugins/n.py b/dosagelib/plugins/n.py
index fbc4f8c99..949dda60d 100644
--- a/dosagelib/plugins/n.py
+++ b/dosagelib/plugins/n.py
@@ -10,7 +10,8 @@ from ..util import tagre
class Namesake(_BasicScraper):
url = 'http://namesakecomic.com/'
- stripUrl = url + 'comic/%s'
+ stripUrl = url + 'comic/%s/'
+ firstStripUrl = stripUrl % 'prologue-cover-3'
imageSearch = compile(tagre("img", "src", r'([^"]*/wp-content/uploads/[^"]+)', after='title='))
prevSearch = compile(tagre("a", "href", r'([^"]*/comic/[^"]+)', after='navi-prev'))
help = 'Index format: name'
@@ -25,6 +26,7 @@ class NamirDeiter(_BasicScraper):
url = 'http://www.namirdeiter.com/'
rurl = escape(url)
stripUrl = url + 'comics/index.php?date=%s'
+ firstStripUrl = stripUrl % '19991128'
imageSearch = compile(tagre("img", "src", r"'?(%scomics/\d+\.jpg)'?" % rurl, quote=""))
prevSearch = compile(tagre("a", "href", r'(%scomics/index\.php\?date=\d+)' % rurl, quote="'")+"Previous")
help = 'Index format: yyyymmdd'
@@ -34,6 +36,7 @@ class Nedroid(_BasicScraper):
url = 'http://nedroid.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2005/09/2210-whee'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\d+/\d+/[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/name'
@@ -42,6 +45,7 @@ class Nedroid(_BasicScraper):
class NeoEarth(_BasicScraper):
url = 'http://www.neo-earth.com/NE/'
stripUrl = url + 'index.php?date=%s'
+ firstStripUrl = stripUrl % '2007-03-23'
imageSearch = compile(r'Previous')
help = 'Index format: yyyy-mm-dd'
@@ -56,7 +60,8 @@ class NewAdventuresOfBobbin(_BasicScraper):
class NewWorld(_BasicScraper):
url = 'http://www.tfsnewworld.com/'
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2007/08/30/63'
imageSearch = compile(r'')
help = 'Index format: yyyy/mm/dd/stripn'
@@ -66,6 +71,7 @@ class Nicky510(_BasicScraper):
url = 'http://www.nickyitis.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % 'close-enough'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%scomic/[^"]+)' % rurl, after="Previous"))
help = 'Index format: stripname'
@@ -74,6 +80,7 @@ class Nicky510(_BasicScraper):
class NekkoAndJoruba(_BasicScraper):
url = 'http://www.nekkoandjoruba.com/'
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '7'
imageSearch = compile(r'‹')
help = 'Index format: nnn'
@@ -83,6 +90,7 @@ class NekoTheKitty(_BasicScraper):
url = 'http://www.nekothekitty.net/'
rurl = escape(url)
stripUrl = url + 'comics/%s'
+ firstStripUrl = stripUrl % '936393/001-video-games'
starter = bounceStarter(url, compile(tagre("a", "href", r'(%scomics/[^"]+)' % rurl) +
tagre("img", "src", r'%sfiles/smallnext\.png' % rurl)))
imageSearch = compile(tagre("img", "src", r'(http://(?:img\d+|www)\.smackjeeves\.com/images/uploaded/comics/[^"]+)'))
@@ -125,6 +133,7 @@ class NobodyScores(_BasicScraper):
url = 'http://nobodyscores.loosenutstudio.com/'
rurl = escape(url)
stripUrl = url + 'index.php?id=%s'
+ firstStripUrl = stripUrl % '4'
imageSearch = compile(tagre("img", "src", r'(%scomix/[^"]+)' % rurl))
multipleImagesPerStrip = True
prevSearch = compile(r'the one before ' % rurl)
@@ -144,6 +153,7 @@ class NoNeedForBushido(_BasicScraper):
class Nukees(_BasicScraper):
url = 'http://www.nukees.com/'
stripUrl = url + 'd/%s'
+ firstStripUrl = stripUrl % '19970121'
imageSearch = compile(r'"comic".+?"(/comics/.+?)"')
prevSearch = compile(r'"(/d/.+?)".+?previous')
help = 'Index format: yyyymmdd.html'
diff --git a/dosagelib/plugins/o.py b/dosagelib/plugins/o.py
index 1db13cc93..c0720036f 100644
--- a/dosagelib/plugins/o.py
+++ b/dosagelib/plugins/o.py
@@ -14,7 +14,8 @@ class OctopusPie(_BasicScraper):
starter = indirectStarter(url,
compile(tagre("a", "href", r'(%s[^"]+)' % rurl) +
tagre("img", "src", r'%sjunk/latest\.png' % rurl)))
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2007-05-14/001-pea-wiggle'
imageSearch = compile(tagre("img", "src", r'(%sstrippy/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy-mm-dd/nnn-strip-name'
@@ -24,6 +25,7 @@ class OddFish(_BasicScraper):
url = 'http://www.odd-fish.net/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % 'tv-tentacles'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="navi-prev"))
help = 'Index format: stripname'
@@ -49,6 +51,7 @@ class OkCancel(_BasicScraper):
url = 'http://okcancel.com/'
rurl = escape(url)
stripUrl = url + 'comic/%s.html'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(%sstrips/okcancel\d{8}\.gif)' % rurl))
prevSearch = compile(tagre("div", "class", "previous") + tagre("a", "href", r'(%scomic/\d{1,4}\.html)' % rurl))
starter = indirectStarter(url, prevSearch)
@@ -58,7 +61,8 @@ class OkCancel(_BasicScraper):
class OmakeTheater(_BasicScraper):
url = 'http://omaketheater.com/'
rurl = escape(url)
- stripUrl = url + 'comic/%s'
+ stripUrl = url + 'comic/%s/'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(http://media\.omaketheater\.com/4koma/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(%scomic/\d+/)' % rurl, after="prev"))
starter = indirectStarter(url,
@@ -69,7 +73,8 @@ class OmakeTheater(_BasicScraper):
class OnTheEdge(_BasicScraper):
url = 'http://ontheedgecomics.com/'
rurl = escape(url)
- stripUrl = url + 'comic/%s'
+ stripUrl = url + 'comic/%s/'
+ firstStripUrl = stripUrl % 'ote0001'
imageSearch = compile(r'')
help = 'Index format: nnn (unpadded)'
@@ -78,6 +83,7 @@ class OnTheEdge(_BasicScraper):
class OneQuestion(_BasicScraper):
url = 'http://onequestioncomic.com/'
stripUrl = url + 'comic.php?strip_id=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'((?:\.\./)?istrip_files/strips/\d+\.jpg)'))
prevSearch = compile(tagre("a", "href", r'(comic\.php\?strip_id=\d+)') + tagre("img", "src", r'img/arrow_prev\.jpg'))
help = 'Index format: n (unpadded)'
@@ -97,6 +103,7 @@ class OrnerBoy(_BasicScraper):
class OurHomePlanet(_BasicScraper):
url = 'http://gdk.gd-kun.net/'
stripUrl = url + '%s.html'
+ firstStripUrl = stripUrl % '01'
imageSearch = compile(r']+?> \<\- ')
help = 'Index format: yyyymmdd'
diff --git a/dosagelib/plugins/p.py b/dosagelib/plugins/p.py
index c4b08864b..0b07cf972 100644
--- a/dosagelib/plugins/p.py
+++ b/dosagelib/plugins/p.py
@@ -12,6 +12,7 @@ class PandyLand(_BasicScraper):
url = 'http://pandyland.net/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\d+/)' % rurl, after="prev"))
help = 'Index format: number'
@@ -42,6 +43,7 @@ class PartiallyClips(_BasicScraper):
url = 'http://partiallyclips.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2001/10/28/screaming-woman'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/stripname'
@@ -51,6 +53,7 @@ class PastelDefender(_BasicScraper):
baseurl = 'http://www.pasteldefender.com/'
url = baseurl + 'coverbackcover.html'
stripUrl = baseurl + '%s.html'
+ firstStripUrl = stripUrl % 'cover'
imageSearch = compile(r''))
stripUrl = url + '?comicid=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(http://www\.phdcomics\.com/comics/archive/phd\d+s?\.gif)', quote=""))
prevSearch = compile(r'')
help = 'Index format: n (unpadded)'
@@ -143,6 +151,7 @@ class PiledHigherAndDeeper(_BasicScraper):
class Pimpette(_BasicScraper):
url = 'http://pimpette.ca/'
stripUrl = url + 'index.php?date=%s'
+ firstStripUrl = stripUrl % '20030905'
imageSearch = compile(tagre("img", "src", r'(strips/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(index\.php\?date=\d+)') + "Previous")
help = 'Index format: yyyymmdd'
@@ -189,6 +198,7 @@ class Precocious(_BasicScraper):
class ProperBarn(_BasicScraper):
url = 'http://www.nitrocosm.com/go/gag/'
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(http://content\.nitrocosm\.com/gag/\d+\.[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(http://www\.nitrocosm\.com/go/gag/\d+/)', after="nav_btn_previous"))
help = 'Index format: nnn'
@@ -198,6 +208,7 @@ class PunksAndNerds(_BasicScraper):
url = 'http://www.punksandnerds.com/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '15'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="navi-prev"))
help = 'Index format: nnn'
diff --git a/dosagelib/plugins/q.py b/dosagelib/plugins/q.py
index 7111d09ba..921d56757 100644
--- a/dosagelib/plugins/q.py
+++ b/dosagelib/plugins/q.py
@@ -10,6 +10,7 @@ from ..util import tagre
class QuestionableContent(_BasicScraper):
url = 'http://www.questionablecontent.net/'
stripUrl = url + 'view.php?comic=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'([^"]+/comics/[^"]+)', before="strip"))
prevSearch = compile(tagre("a", "href", r'(view\.php\?comic=\d+)') + 'Previous')
help = 'Index format: n (unpadded)'
@@ -20,6 +21,7 @@ class Qwantz(_BasicScraper):
url = baseurl + 'index.php'
rurl = escape(baseurl)
stripUrl = url + '?comic=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(%s/comics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%sindex\.php\?comic=\d+)' % rurl, before="prev"))
help = 'Index format: n'
diff --git a/dosagelib/plugins/r.py b/dosagelib/plugins/r.py
index e31c45751..5665fe87b 100644
--- a/dosagelib/plugins/r.py
+++ b/dosagelib/plugins/r.py
@@ -19,6 +19,7 @@ class RadioactivePanda(_BasicScraper):
class RealLife(_BasicScraper):
url = 'http://www.reallifecomics.com/'
stripUrl = url + 'archive/%s.html'
+ firstStripUrl = stripUrl % '991115'
imageSearch = compile(tagre("img", "src", r'(/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/archive/\d+.html)') + tagre("img", "src", r'/images/nav_prev\.png'))
help = 'Index format: yymmdd)'
@@ -38,6 +39,7 @@ class RedMeat(_BasicScraper):
url = baseurl + 'current/index.html'
starter = bounceStarter(url, compile(r'next'))
stripUrl = baseurl + '%s/index.html'
+ firstStripUrl = stripUrl % '1996-06-10'
imageSearch = compile(r']*>')
prevSearch = compile(r'previous')
help = 'Index format: yyyy-mm-dd'
@@ -50,6 +52,7 @@ class RedMeat(_BasicScraper):
class RedString(_BasicScraper):
url = 'http://www.redstring.strawberrycomics.com/'
stripUrl = url + 'index.php?id=%s'
+ firstStripUrl = stripUrl % '434'
imageSearch = compile(tagre("img", "src", r'(comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/index\.php\?id=\d+)', after="prev"))
help = 'Index format: nnn'
@@ -58,6 +61,7 @@ class RedString(_BasicScraper):
class Roza(_BasicScraper):
url = 'http://www.junglestudio.com/roza/index.php'
stripUrl = url + '?date=%s'
+ firstStripUrl = stripUrl % '2007-05-01'
imageSearch = compile(r'[^>].+?navtable_01.gif')
help = 'Index format: yyyy-mm-dd'
diff --git a/dosagelib/plugins/s.py b/dosagelib/plugins/s.py
index 8770a5ac6..98ee64e1e 100644
--- a/dosagelib/plugins/s.py
+++ b/dosagelib/plugins/s.py
@@ -13,6 +13,7 @@ class SailorsunOrg(_BasicScraper):
url = 'http://sailorsun.org/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '21'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
rurl = escape(url)
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="prev"))
@@ -22,6 +23,7 @@ class SailorsunOrg(_BasicScraper):
class SamAndFuzzy(_BasicScraper):
url = 'http://www.samandfuzzy.com/'
stripUrl = 'http://samandfuzzy.com/%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'(/comics/.+?)" alt')
prevSearch = compile(r'">')
prevSearch = compile(r'131,13,216,84"\n\s+href="(.+?)#comic"\n>', MULTILINE)
help = 'Index format: nnnn'
@@ -289,6 +301,7 @@ class SodiumEyes(_BasicScraper):
url = 'http://sodiumeyes.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2007/11/08/damning-evidence'
imageSearch = compile(tagre("img", "src", r'(%scomic/[^ ]+)' % rurl, quote=""))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/stripname'
@@ -308,6 +321,7 @@ class SpaceTrawler(_BasicScraper):
url = 'http://spacetrawler.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2010/01/01/spacetrawler-4'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\d+/\d+/\d+/[^"]+)' % rurl, after="navi-prev"))
help = 'Index format: yyyy/mm/dd/stripname'
@@ -327,6 +341,7 @@ class SpareParts(_BasicScraper):
baseUrl = 'http://www.sparepartscomics.com/'
url = baseUrl + 'comics/?date=20080328'
stripUrl = baseUrl + 'comics/index.php?date=%s'
+ firstStripUrl = stripUrl % '20031022'
imageSearch = compile(tagre("img", "src", r'(http://www\.sparepartscomics\.com/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(index\.php\?date=\d+)', quote="'") + "Previous Comic")
help = 'Index format: yyyymmdd'
@@ -336,6 +351,7 @@ class Spinnerette(_BasicScraper):
url = 'http://www.spinnyverse.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2010/02/09/02092010'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, before="Previous Comic"))
help = 'Index format: number'
@@ -345,6 +361,7 @@ class SPQRBlues(_BasicScraper):
url = 'http://spqrblues.com/IV/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '1467'
imageSearch = compile(tagre("img", "src", r'(%scomics/\d+\.png)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="prev"))
help = 'Index format: number'
@@ -364,6 +381,7 @@ class _StationV3(_BasicScraper):
class StickyDillyBuns(_BasicScraper):
url = 'http://www.stickydillybuns.com/'
stripUrl = url + 'strips-sdb/%s'
+ firstStripUrl = stripUrl % 'awesome_leading_man'
imageSearch = compile(tagre("img", "src", r'([^"]*/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'([^"]*/strips-sdb/[^"]+)', before="cn[id]prev"))
help = 'Index format: name'
@@ -373,6 +391,7 @@ class Stubble(_BasicScraper):
url = 'http://stubblecomics.com/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '4'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="navi-prev"))
help = 'Index format: number'
@@ -441,10 +460,13 @@ class SomethingPositive(_BasicScraper):
class StarCrossdDestiny(_BasicScraper):
- url = 'http://www.starcrossd.net/comic.html'
- stripUrl = 'http://www.starcrossd.net/archives/%s.html'
- imageSearch = compile(tagre("img", "src", r'(http://www\.starcrossd\.net/(?:ch1|strips|book2)/[^"]+)'))
- prevSearch = compile(r']*"[^"]*"[^>]*>prev', IGNORECASE)
+ baseurl = 'http://www.starcrossd.net/'
+ rurl = escape(baseurl)
+ url = baseurl + 'comic.html'
+ stripUrl = baseurl + 'archives/%s.html'
+ firstStripUrl = stripUrl % '00000001'
+ imageSearch = compile(tagre("img", "src", r'(%s(?:ch1|strips|book2)/[^"]+)' % rurl))
+ prevSearch = compile(r']*"[^"]*"[^>]*>prev' % rurl, IGNORECASE)
help = 'Index format: nnnnnnnn'
@classmethod
@@ -472,6 +494,7 @@ class SupernormalStep(_BasicScraper):
url = 'http://supernormalstep.com/'
rurl = escape(url)
stripUrl = url + '?p=%s'
+ firstStripUrl = stripUrl % '8'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="prev"))
help = 'Index format: number'
diff --git a/dosagelib/plugins/t.py b/dosagelib/plugins/t.py
index 977b3490a..32a8bbfe6 100644
--- a/dosagelib/plugins/t.py
+++ b/dosagelib/plugins/t.py
@@ -10,7 +10,8 @@ from ..util import tagre
class TheBrads(_BasicScraper):
url = 'http://bradcolbow.com/archive/C4/'
- stripUrl = url + '%s'
+ stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % 'P125'
imageSearch = compile(tagre("img", "src", r'(http://s3\.amazonaws\.com/the_brads/the-?brads[-_][^"]+)'))
prevSearch = compile(tagre("a", "href", r'(http://bradcolbow\.com/archive/C4/[^"]+)', before="prev"))
multipleImagesPerStrip = True
@@ -20,6 +21,7 @@ class TheBrads(_BasicScraper):
class TheDevilsPanties(_BasicScraper):
url = 'http://thedevilspanties.com/'
stripUrl = url + 'archives/%s'
+ firstStripUrl = stripUrl % '300'
imageSearch = compile(tagre("img", "src", r'(http://cdn\.thedevilspanties\.com/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(/archives/\d+)', after="Previous"))
help = 'Index format: number'
@@ -28,6 +30,7 @@ class TheDevilsPanties(_BasicScraper):
class TheNoob(_BasicScraper):
url = 'http://www.thenoobcomic.com/index.php'
stripUrl = url + '?pos=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(tagre("img", "src", r'(/headquarters/comics/[^"]+)'))
prevSearch = compile(tagre("a", "href", r'(\?pos=\d+)', before="comic_nav_previous_button"))
help = 'Index format: nnnn'
@@ -37,6 +40,7 @@ class TheOrderOfTheStick(_BasicScraper):
baseurl = 'http://www.giantitp.com/'
url = baseurl + 'comics/oots0863.html'
stripUrl = baseurl + 'comics/oots%s.html'
+ firstStripUrl = stripUrl % '0001'
imageSearch = compile(r'')
prevSearch = compile(r'')
multipleImagesPerStrip = True
prevSearch = compile(r'\d{4} -\s+\d{4}')
@@ -60,6 +65,7 @@ class TheParkingLotIsFull(_BasicScraper):
class TheWotch(_BasicScraper):
url = 'http://www.thewotch.com/'
stripUrl = url + '?date=%s'
+ firstStripUrl = stripUrl % '2002-11-21'
imageSearch = compile(r"')
help = 'Index format: nnn'
@@ -160,6 +170,7 @@ class ThreePanelSoul(_BasicScraper):
url = 'http://threepanelsoul.com/'
rurl = escape(url)
stripUrl = url + '%s/'
+ firstStripUrl = stripUrl % '2006/05/11/a-test-comic'
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
prevSearch = compile(tagre("a", "href", r'(%s\d+/\d+/\d+/[^"]+)' % rurl, after="prev"))
help = 'Index format: yyyy/mm/dd/stripname'
diff --git a/dosagelib/plugins/u.py b/dosagelib/plugins/u.py
index c251c7a56..dc3271a0b 100644
--- a/dosagelib/plugins/u.py
+++ b/dosagelib/plugins/u.py
@@ -20,8 +20,10 @@ class Undertow(_BasicScraper):
class UnicornJelly(_BasicScraper):
- url = 'http://unicornjelly.com/uni666.html'
- stripUrl = 'http://unicornjelly.com/uni%s.html'
+ baseurl = 'http://unicornjelly.com/'
+ url = baseurl + 'uni666.html'
+ stripUrl = baseurl + 'uni%s.html'
+ firstStripUrl = stripUrl % '001'
imageSearch = compile(r'(?:)?()?]+?>Previous')
help = 'Index format: stripname'
@@ -21,6 +22,7 @@ class WapsiSquare(_BasicScraper):
class WastedTalent(_BasicScraper):
url = 'http://www.wastedtalent.ca/'
stripUrl = url + 'comic/%s'
+ firstStripUrl = stripUrl % 'anime-crack'
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'
@@ -29,6 +31,7 @@ class WastedTalent(_BasicScraper):
class WayfarersMoon(_BasicScraper):
url = 'http://www.wayfarersmoon.com/'
stripUrl = url + 'index.php?page=%s'
+ firstStripUrl = stripUrl % '0'
imageSearch = compile(r'')
help = 'Index format: nnn'
@@ -199,6 +207,7 @@ class WormWorldSagaFrench(WormWorldSaga):
class WotNow(_BasicScraper):
url = 'http://shadowburn.binmode.com/wotnow/'
stripUrl = url + 'comic.php?comic_id=%s'
+ firstStripUrl = stripUrl % '1'
imageSearch = compile(r'