# -*- coding: iso-8859-1 -*- # Copyright (C) 2004-2005 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2012-2013 Bastian Kleineidam from re import compile, IGNORECASE, MULTILINE from ..util import tagre from ..scraper import _BasicScraper from ..helpers import indirectStarter class FalconTwin(_BasicScraper): url = 'http://www.falcontwin.com/' stripUrl = url + 'index.html?strip=%s' imageSearch = compile(r'"(strips/.+?)"') prevSearch = compile(r'"prev">Previous Strip') help = 'Index format: nnn' class FeyWinds(_BasicScraper): url = 'http://kitsune.rydia.net/index.html' stripUrl = 'http://kitsune.rydia.net/comic/page.php?id=%s' imageSearch = compile(r"(../comic/pages//.+?)'") prevSearch = compile(r"(page.php\?id=.+?)'.+?navprevious.png") help = 'Index format: n (unpadded)' starter = indirectStarter(url, compile(r'(comic/page.php\?id.+?)"')) class FilibusterCartoons(_BasicScraper): url = 'http://www.filibustercartoons.com/' stripUrl = url + 'index.php/%s' imageSearch = compile(tagre("img", "src", r'(http://www\.filibustercartoons\.com/comics/[^"]+)')) prevSearch = compile(tagre("a", "href", r'(http://www\.filibustercartoons\.com/[^"]+)', after="prev")) help = 'Index format: yyyy/mm/dd/name' class FirstWorldProblems(_BasicScraper): url = 'http://bradcolbow.com/archive/C5/' stripUrl = url + '%s' imageSearch = compile(tagre("img", "src", r'(http://(?:fwpcomics\.s3\.amazonaws\.com|s3\.amazonaws\.com/fwpcomics)/s1-[^"]+)')) prevSearch = compile(tagre("a", "href", r'(http://bradcolbow\.com/archive/C5/[^"]+)', before="prev")) multipleImagesPerStrip = True help = 'Index format: a letter and a number' class FlakyPastry(_BasicScraper): url = 'http://flakypastry.runningwithpencils.com/index.php' stripUrl = 'http://flakypastry.runningwithpencils.com/comic.php?strip_id=%s' imageSearch = compile(r']).+?(/footloose/.+?)".+?(?:prev)') help = 'Index format: n (unpadded)' class Freefall(_BasicScraper): url = 'http://freefall.purrsia.com/default.htm' stripUrl = 'http://freefall.purrsia.com/ff%s/fc%s.htm' imageSearch = compile(r'Previous') help = 'Index format: nnnn/nnnnn' class FantasyRealms(_BasicScraper): url = 'http://www.fantasyrealmsonline.com/' stripUrl = url + 'manga/%s.php' imageSearch = compile(r'Back', IGNORECASE) help = 'Index format: nn-m (comicNumber-partNumber)' starter = indirectStarter(url, compile(r'\(NEW \d{2}/\d{2}/\d{2}\)\s*\n*\s*\d+', MULTILINE)) @classmethod def namer(cls, imageUrl, pageUrl): num = pageUrl.split('/')[-1].split('-')[0] part = pageUrl.split('-')[-1].split('.')[0] return '%s-%s' % (part, num) def setStrip(self, index): index, part = index.split('-') self.currentUrl = self.stripUrl % (part, index, part) class FredoAndPidjin(_BasicScraper): url = 'http://www.pidjin.net/' stripUrl = None help = 'Index format: yyyy/mm/dd/name' imageSearch = compile(tagre('img', 'src', '(http://cdn\.pidjin\.net/wp-content/uploads/\d+/\d+/[^"]+\.png)')) multipleImagesPerStrip = True prevSearch = compile(tagre('a', 'href', '([^"]+)')+"Prev") starter = indirectStarter(url, compile(tagre('a', 'href', "("+url+r'\d\d\d\d/\d\d/\d\d/[^"]+/)')))