# -*- coding: iso-8859-1 -*-
# Copyright (C) 2004-2005 Tristan Seligmann and Jonathan Jacobs
from re import compile
from ..scraper import _BasicScraper
from ..helpers import constStarter, bounceStarter, indirectStarter
from ..util import tagre, getQueryParams
class CalvinAndHobbes(_BasicScraper):
starter = bounceStarter('http://www.gocomics.com/calvinandhobbes/',
compile(tagre("a", "href", "(/calvinandhobbes/\d+/\d+/\d+)")+"Next feature"))
imageUrl = 'http://www.gocomics.com/calvinandhobbes/%s'
imageSearch = compile(tagre("img", "src", "(http://assets\.amuniversal\.com/[a-f0-9]+)"))
prevSearch = compile(tagre("a", "href", "(/calvinandhobbes/\d+/\d+/\d+)")+"Previous feature")
help = 'Index format: yyyy/mm/dd'
@classmethod
def namer(cls, imageUrl, pageUrl):
prefix, year, month, day = pageUrl.rsplit('/', 3)
return "%s%s%s.gif" % (year, month, day)
class CandyCartoon(_BasicScraper):
latestUrl = 'http://www.candycartoon.com/'
imageUrl = 'http://www.candycartoon.com/archives/%s.html'
imageSearch = compile(r'prev')
help = 'Index format: nnnnnn'
class CaptainSNES(_BasicScraper):
latestUrl = 'http://captainsnes.com/'
imageUrl = 'http://captainsnes.com/?date=%s'
imageSearch = compile(r'')
help = 'Index format: yyyymmdd'
class CaribbeanBlue(_BasicScraper):
latestUrl = 'http://cblue.katbox.net/'
imageUrl = 'http://cblue.katbox.net/index.php?strip_id=%s'
imageSearch = compile(r'="(.+?strips/.+?)"')
prevSearch = compile(r'.+?"(.+?)".+?Previous')
help = 'Index format: n (unpadded)'
class Catharsis(_BasicScraper):
latestUrl = 'http://catharsiscomic.com/'
imageUrl = 'http://catharsiscomic.com/archive.php?strip=%s'
imageSearch = compile(r'')
help = 'Index format: yyyy/mm/dd/strip-name'
class ChugworthAcademy(_BasicScraper):
latestUrl = 'http://chugworth.com/'
imageUrl = 'http://chugworth.com/?p=%s'
imageSearch = compile(r']+?title="Previous">')
help = 'Index format: n (unpadded)'
class ChugworthAcademyArchive(_BasicScraper):
latestUrl = 'http://chugworth.com/archive/?strip_id=422'
imageUrl = 'http://chugworth.com/archive/?strip_id=%s'
imageSearch = compile(r'&laq')
help = 'Index format: non'
class CombustibleOrange(_BasicScraper):
latestUrl = 'http://www.combustibleorange.com/'
imageUrl = 'http://www.combustibleorange.com/index.php?current=%s'
imageSearch = compile(r'')
help = 'Index format: n (unpadded)'
class Comedity(_BasicScraper):
latestUrl = 'http://www.comedity.com/'
imageUrl = 'http://www.comedity.com/index.php?strip_id=%s'
imageSearch = compile(r' *‹')
help = 'Index format: n'
class CoolCatStudio(_BasicScraper):
latestUrl = 'http://www.coolcatstudio.com/'
imageUrl = 'http://www.coolcatstudio.com/index.php?p=%s'
imageSearch = compile(r'(/comics/.+?)"')
prevSearch = compile(r"href='(.+?)'>PREV")
help = 'Index format: n'
class CourtingDisaster(_BasicScraper):
latestUrl = 'http://www.courting-disaster.com/'
imageUrl = 'http://www.courting-disaster.com/archive/%s.html'
imageSearch = compile(r'(/comics/.+?)"')
prevSearch = compile(r']+?>')
help = 'Index format: yyyymmdd'
class CrapIDrewOnMyLunchBreak(_BasicScraper):
latestUrl = 'http://crap.jinwicked.com/'
imageUrl = 'http://crap.jinwicked.com/%s'
imageSearch = compile(r'<< Previous page')
help = 'Index format: yyyymmdd'
def cloneManga(name, shortName, lastStrip=None):
baseUrl = 'http://manga.clone-army.org/%s.php' % (shortName,)
imageUrl = baseUrl + '?page=%s'
if lastStrip is None:
starter = bounceStarter(baseUrl, compile(r'◄ Previous')
help = 'Index format: n (unpadded)'
def comicsDotCom(name, section):
baseUrl = 'http://www.comics.com/%s/%s/archive/' % (section, name)
@classmethod
def namer(cls, imageUrl, pageUrl):
htmlname = pageUrl.split('/')[-1]
filename = htmlname.split('.')[0]
return filename
return type('ComicsDotCom_%s' % name,
(_BasicScraper,),
dict(
name='ComicsDotCom/' + name,
starter=indirectStarter(baseUrl, compile(r'(?:(?:'),
prevSearch=compile(r'< Previous')
help = 'Index format: n (unpadded)'
class CrimsonDark(_BasicScraper):
latestUrl = 'http://www.davidcsimon.com/crimsondark/'
imageUrl = 'http://www.davidcsimon.com/crimsondark/index.php?view=comic&strip_id=%s'
imageSearch = compile(r'src="(.+?strips/.+?)"')
prevSearch = compile(r'')
help = 'Index format: nnn'
class CowboyJedi(_BasicScraper):
latestUrl = 'http://www.cowboyjedi.com/'
imageUrl = 'http://www.cowboyjedi.com/%s'
imageSearch = compile(r'')
help = 'Index format: nnn'
class Collar6(_BasicScraper):
latestUrl = 'http://collar6.com/'
imageUrl = 'http://collar6.com/%s'
imageSearch = compile(r'src="(http://collar6.com/comics/.+?)"')
prevSearch = compile(r' href="(http://collar6.com/\d+/\S+)">◄ Previous')
help = 'Index format: yyyy/namednumber'
class Chester5000XYV(_BasicScraper):
latestUrl = 'http://jessfink.com/Chester5000XYV/'
imageUrl = 'http://jessfink.com/Chester5000XYV/?p=%s'
imageSearch = compile(r'')
help = 'Index format: nnn'
class CalamitiesOfNature(_BasicScraper):
latestUrl = 'http://www.calamitiesofnature.com/'
imageUrl = 'http://www.calamitiesofnature.com/archive/?c=%s'
imageSearch = compile(r'')
help = 'Index format: nnn'
class Champ2010(_BasicScraper):
latestUrl = 'http://www.jedcollins.com/champ2010/'
imageUrl = 'http://jedcollins.com/champ2010/?p=%s'
imageSearch = compile(r'Next>'))
imageUrl = 'http://corydoncafe.com/comic-%s.html'
imageSearch = compile(r'<Previous')
help = 'Index format: nnn'
@classmethod
def namer(cls, imageUrl, pageUrl):
return pageUrl.split('/')[-1].split('.')[0]
class CraftedFables(_BasicScraper):
latestUrl = 'http://www.craftedfables.com/'
imageUrl = 'http://www.caf-fiends.net/craftedfables/?p=%s'
imageSearch = compile(r'')
help = 'Index format: nnn'
class Currhue(_BasicScraper):
latestUrl = 'http://www.currhue.com/'
imageUrl = 'http://www.currhue.com/?p=%s'
imageSearch = compile(r'