2016-04-14 21:52:35 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2012-11-21 20:57:26 +00:00
|
|
|
# Copyright (C) 2004-2005 Tristan Seligmann and Jonathan Jacobs
|
2014-01-05 15:50:57 +00:00
|
|
|
# Copyright (C) 2012-2014 Bastian Kleineidam
|
2016-04-14 21:52:35 +00:00
|
|
|
# Copyright (C) 2015-2016 Tobias Gruetzmacher
|
2012-11-21 20:57:26 +00:00
|
|
|
|
2016-04-14 21:52:35 +00:00
|
|
|
from __future__ import absolute_import, division, print_function
|
|
|
|
|
|
|
|
from ..scraper import _ParserScraper
|
|
|
|
from ..helpers import indirectStarter
|
|
|
|
|
|
|
|
|
|
|
|
class _Snafu(_ParserScraper):
|
|
|
|
# Next and Previous are swapped...
|
|
|
|
prevSearch = '//a[@class="next"]'
|
|
|
|
imageSearch = '//div[@class="comicpage"]/img'
|
|
|
|
latestSearch = '//div[@id="feed"]/a'
|
|
|
|
starter = indirectStarter
|
|
|
|
|
|
|
|
@property
|
|
|
|
def name(self):
|
|
|
|
return 'SnafuComics/' + super(_Snafu, self).name
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def namer(cls, image_url, page_url):
|
|
|
|
year, month, name = image_url.rsplit('/', 3)[1:]
|
|
|
|
return "%04s_%02s_%s" % (year, month, name)
|
|
|
|
|
|
|
|
@property
|
|
|
|
def url(self):
|
|
|
|
return 'http://snafu-comics.com/swmseries/' + self.path
|
|
|
|
|
|
|
|
|
|
|
|
class Braindead(_Snafu):
|
|
|
|
path = 'braindead'
|
|
|
|
|
|
|
|
|
|
|
|
class Bunnywith(_Snafu):
|
|
|
|
path = 'bunnywith'
|
|
|
|
|
|
|
|
|
|
|
|
class DeliverUsEvil(_Snafu):
|
|
|
|
path = 'deliverusevil'
|
|
|
|
|
|
|
|
|
|
|
|
class DigitalPurgatory(_Snafu):
|
|
|
|
path = 'digital-purgatory'
|
|
|
|
|
|
|
|
|
|
|
|
class EA(_Snafu):
|
|
|
|
path = 'ea'
|
|
|
|
|
|
|
|
|
|
|
|
class FT(_Snafu):
|
|
|
|
path = 'ft'
|
|
|
|
|
|
|
|
|
|
|
|
class GrimTalesFromDownBelow(_Snafu):
|
|
|
|
path = 'grimtales'
|
|
|
|
|
|
|
|
|
|
|
|
class KOF(_Snafu):
|
|
|
|
path = 'kof'
|
|
|
|
|
|
|
|
|
|
|
|
class MyPanda(_Snafu):
|
|
|
|
path = 'mypanda'
|
|
|
|
|
|
|
|
|
|
|
|
class NarutoHeroesPath(_Snafu):
|
|
|
|
path = 'naruto'
|
|
|
|
|
|
|
|
|
|
|
|
class NewSuperMarioAdventures(_Snafu):
|
|
|
|
path = 'nsma'
|
|
|
|
|
|
|
|
|
|
|
|
class PowerPuffGirls(_Snafu):
|
|
|
|
path = 'powerpuffgirls'
|
|
|
|
|
|
|
|
|
|
|
|
class PSG2(_Snafu):
|
|
|
|
path = 'psg2'
|
|
|
|
|
|
|
|
|
|
|
|
class SatansExcrement(_Snafu):
|
|
|
|
path = 'satansexcrement'
|
|
|
|
|
|
|
|
|
|
|
|
class SF(_Snafu):
|
|
|
|
path = 'sf'
|
|
|
|
|
|
|
|
|
|
|
|
class SkullBoy(_Snafu):
|
|
|
|
path = 'skullboy'
|
|
|
|
|
|
|
|
|
|
|
|
class Snafu(_Snafu):
|
|
|
|
path = 'snafu'
|
|
|
|
|
|
|
|
|
|
|
|
class Soul(_Snafu):
|
|
|
|
path = 'soul'
|
|
|
|
|
|
|
|
|
|
|
|
class Sugar(_Snafu):
|
|
|
|
path = 'sugarbits'
|
|
|
|
|
|
|
|
|
|
|
|
class SureToBeBanD(_Snafu):
|
|
|
|
path = 'stbb'
|
|
|
|
|
|
|
|
|
|
|
|
class TheLeague(_Snafu):
|
|
|
|
path = 'league'
|
|
|
|
|
|
|
|
|
|
|
|
class Tin(_Snafu):
|
|
|
|
path = 'tin'
|
|
|
|
|
|
|
|
|
|
|
|
class Titan(_Snafu):
|
|
|
|
path = 'titan'
|
|
|
|
|
|
|
|
|
|
|
|
class TrunksAndSoto(_Snafu):
|
|
|
|
path = 'trunks-and-soto'
|
|
|
|
|
|
|
|
|
|
|
|
class TW(_Snafu):
|
|
|
|
path = 'tw'
|
|
|
|
|
|
|
|
|
|
|
|
class Zim(_Snafu):
|
|
|
|
path = 'zim'
|