bc755d09a3
This was previously only the "previous link modifier", now it can also modify "next" and "latest" links. Additionally, the modifier is given the current URL, so those cases can be distinguished.
130 lines
5.5 KiB
Python
130 lines
5.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
|
|
# Copyright (C) 2012-2014 Bastian Kleineidam
|
|
# Copyright (C) 2015-2016 Tobias Gruetzmacher
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
|
|
from re import compile
|
|
|
|
from ..scraper import _BasicScraper
|
|
from ..util import tagre
|
|
|
|
# Comicgenesis has a lot of comics, but most of them are disallowed by
|
|
# robots.txt
|
|
|
|
|
|
class ComicGenesis(_BasicScraper):
|
|
imageSearch = compile(tagre("img", "src", r'([^"]*/comics/[^"]+)'))
|
|
prevSearch = compile(tagre("a", "href", r'([^"]*/d/\d{8}\.html)') +
|
|
'(?:Previous comic' + '|' +
|
|
tagre("img", "alt", "Previous comic") + '|' +
|
|
tagre("img", "src", "images/back\.gif") +
|
|
')')
|
|
multipleImagesPerStrip = True
|
|
help = 'Index format: yyyymmdd'
|
|
|
|
def link_modifier(self, fromurl, tourl):
|
|
return tourl.replace(
|
|
"keenspace.com", "comicgenesis.com").replace(
|
|
"keenspot.com", "comicgenesis.com").replace(
|
|
"toonspace.com", "comicgenesis.com").replace(
|
|
"comicgen.com", "comicgenesis.com")
|
|
|
|
def __init__(self, name, sub=None, last=None, baseUrl=None):
|
|
super(ComicGenesis, self).__init__('ComicGenesis/' + name)
|
|
|
|
if sub:
|
|
baseUrl = 'http://%s.comicgenesis.com/' % sub
|
|
|
|
self.stripUrl = baseUrl + 'd/%s.html'
|
|
if last:
|
|
self.url = self.stripUrl % last
|
|
self.endOfLife = True
|
|
else:
|
|
self.url = baseUrl
|
|
|
|
@classmethod
|
|
def getmodules(cls):
|
|
return [
|
|
# do not edit anything below since these entries are generated from
|
|
# scripts/update_plugins.sh
|
|
# START AUTOUPDATE
|
|
cls('AAAAA', 'aaaaa'),
|
|
cls('AdventuresofKiltman', 'kiltman'),
|
|
cls('AmorModerno', 'amormoderno'),
|
|
cls('AnythingButRealLife', 'anythingbutreallife'),
|
|
cls('Ardra', 'ardra'),
|
|
cls('Artwork', 'artwork'),
|
|
cls('BabeintheWoods', 'babeinthewoods'),
|
|
cls('BackwaterPlanet', 'bobthespirit'),
|
|
cls('BendyStrawVampires', 'bsvampires'),
|
|
cls('BlindSight', 'blindsight'),
|
|
cls('BreakingtheDoldrum', 'breakingthedoldrum'),
|
|
cls('Candi', baseUrl='http://candicomics.com/'),
|
|
cls('CorporateLife', 'corporatelife'),
|
|
cls('DarkWelkin', 'darkwelkin'),
|
|
cls('DemonEater', 'demoneater'),
|
|
cls('DoodleDiaries', 'doodlediaries'),
|
|
cls('DormSweetDorm', 'dormsweetdorm'),
|
|
cls('DoubleyouTeeEff', 'doubleyouteeeff'),
|
|
cls('DragonsBane', 'jasonwhitewaterz'),
|
|
cls('Dreamaniac', 'dreamaniaccomic'),
|
|
cls('ElnifiChronicles', 'elnifichronicles'),
|
|
cls('EvesApple', 'evesapple'),
|
|
cls('FancyThat', 'fancythat'),
|
|
cls('FantasyQwest', 'creatorauthorman'),
|
|
cls('Fantazine', 'fantazin'),
|
|
cls('Flounderville', 'flounderville'),
|
|
cls('GEM', 'keltzy'),
|
|
cls('Gonefor300days', 'g4300d'),
|
|
cls('IBlameDanny', 'vileterror'),
|
|
cls('ImpendingDoom', 'impending'),
|
|
cls('InANutshell', 'nutshellcomics'),
|
|
cls('KernyMantisComics', 'kernymantis'),
|
|
cls('KitsuneJewel', 'kitsunejewel'),
|
|
cls('KittyCattyGames', 'kittycattygames'),
|
|
cls('KiwiDayN', 'kiwidayn'),
|
|
cls('KungFounded', 'kungfounded'),
|
|
cls('LabBratz', 'labbratz'),
|
|
cls('Laserwing', 'laserwing'),
|
|
cls('LumiasKingdom', 'lumia'),
|
|
cls('Majestic7', 'majestic7'),
|
|
cls('MaximumWhimsy', 'maximumwhimsy'),
|
|
cls('MenschunsererZeitGerman', 'muz'),
|
|
cls('MoonCrest24', 'mooncrest', last='20121117'),
|
|
cls('Mushian', 'tentoumushi'),
|
|
cls('NightwolfCentral', 'nightwolfcentral'),
|
|
cls('NoTimeForLife', 'randyraven'),
|
|
cls('NoneMoreComic', 'nonemore'),
|
|
cls('ODCKS', 'odcks'),
|
|
cls('OfDoom', 'ofdoom'),
|
|
cls('OpportunityofaLifetime', 'carpathia'),
|
|
cls('Orbz', 'orbz'),
|
|
cls('OwMySanity', 'owmysanity'),
|
|
cls('PhantomThesis', 'phantomthesis'),
|
|
cls('ProfessorSaltinesAstrodynamicDirigible', 'drsaltine'),
|
|
cls('PsychicDyslexiaInstitute', 'pdi'),
|
|
cls('PublicidadeEnganosa', 'publicidadeenganosa'),
|
|
cls('RandomAxeOfKindness', 'randomaxe'),
|
|
cls('SalemUncommons', 'salemuncommons'),
|
|
cls('SamandElisAdventures', 'sameliadv'),
|
|
cls('SarahZero', 'plughead'),
|
|
cls('SixByNineCollege', 'sixbyninecollege'),
|
|
cls('SpoononHighandFireontheMountian', 'spoon'),
|
|
cls('SynapticMisfires', 'synapticmisfires'),
|
|
cls('TakingStock', 'mapaghimagsik'),
|
|
cls('TemplarArizona', 'templaraz'),
|
|
cls('TheAdventuresofKaniraBaxter', 'kanirabaxter'),
|
|
cls('TheAdventuresofVindibuddSuperheroInTraining', 'vindibudd', last='20070720'),
|
|
cls('TheEasyBreather', 'easybreather'),
|
|
cls('TheMisadventuresofOkk', 'okk'),
|
|
cls('ThePath', 'thepath'),
|
|
cls('TheTalesofKalduras', 'kalduras'),
|
|
cls('Unconventional', 'unconventional'),
|
|
cls('WarMageNC17', 'warmage'),
|
|
cls('WebcomicTheWebcomicWebcomicWebcomicWebcomic', 'dannormnsanidey'),
|
|
cls('WhatYouDontSee', 'phantomlady4'),
|
|
cls('Wierdman', 'asa'),
|
|
# END AUTOUPDATE
|
|
]
|