2016-03-31 21:13:54 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2012-06-20 20:41:04 +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-03-31 21:13:54 +00:00
|
|
|
# Copyright (C) 2015-2016 Tobias Gruetzmacher
|
2012-11-21 20:57:26 +00:00
|
|
|
|
2016-03-31 21:13:54 +00:00
|
|
|
from __future__ import absolute_import, division, print_function
|
2013-11-12 17:33:14 +00:00
|
|
|
from re import compile, escape, IGNORECASE
|
2012-06-20 19:58:13 +00:00
|
|
|
|
2012-10-11 10:03:12 +00:00
|
|
|
from ..util import tagre
|
2015-05-31 11:16:12 +00:00
|
|
|
from ..scraper import _BasicScraper, _ParserScraper
|
2012-10-11 10:03:12 +00:00
|
|
|
from ..helpers import indirectStarter
|
2012-06-20 19:58:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
class FalconTwin(_BasicScraper):
|
2013-02-04 20:00:26 +00:00
|
|
|
url = 'http://www.falcontwin.com/'
|
|
|
|
stripUrl = url + 'index.html?strip=%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '0'
|
2012-06-20 19:58:13 +00:00
|
|
|
imageSearch = compile(r'"(strips/.+?)"')
|
|
|
|
prevSearch = compile(r'"prev"><a href="(index.+?)"')
|
|
|
|
help = 'Index format: nnn'
|
|
|
|
|
|
|
|
|
2013-03-06 19:21:10 +00:00
|
|
|
class FantasyRealms(_BasicScraper):
|
|
|
|
url = 'http://www.fantasyrealmsonline.com/'
|
|
|
|
stripUrl = url + 'manga/%s.php'
|
|
|
|
imageSearch = compile(r'<img src="(\d{1,4}.\w{3,4})" width="540"', IGNORECASE)
|
|
|
|
prevSearch = compile(r'<a href="(.+?)"><img src="../images/nav-back.gif"', IGNORECASE)
|
2016-04-12 21:11:39 +00:00
|
|
|
latestSearch = compile(r'<a href="(manga/.+?)"><img src="preview.jpg"', IGNORECASE)
|
2013-03-06 19:21:10 +00:00
|
|
|
help = 'Index format: nnn'
|
2016-04-13 18:01:51 +00:00
|
|
|
starter = indirectStarter
|
2013-03-06 19:21:10 +00:00
|
|
|
|
|
|
|
|
2012-06-20 19:58:13 +00:00
|
|
|
class FauxPas(_BasicScraper):
|
2013-02-04 20:00:26 +00:00
|
|
|
url = 'http://www.ozfoxes.net/cgi/pl-fp1.cgi'
|
|
|
|
stripUrl = url + '?%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '1'
|
2012-06-20 19:58:13 +00:00
|
|
|
imageSearch = compile(r'<img .*src="(.*fp/fp.*(png|jpg|gif))"')
|
|
|
|
prevSearch = compile(r'<a href="(pl-fp1\.cgi\?\d+)">Previous Strip')
|
|
|
|
help = 'Index format: nnn'
|
|
|
|
|
|
|
|
|
|
|
|
class FilibusterCartoons(_BasicScraper):
|
2013-02-04 20:00:26 +00:00
|
|
|
url = 'http://www.filibustercartoons.com/'
|
2013-04-10 16:19:11 +00:00
|
|
|
rurl = escape(url)
|
2013-02-04 20:00:26 +00:00
|
|
|
stripUrl = url + 'index.php/%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '2001/06/28/poor-jean'
|
2013-04-10 16:19:11 +00:00
|
|
|
imageSearch = compile(tagre("img", "src", r'(%scomics/[^"]+)' % rurl))
|
|
|
|
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
|
2012-06-20 19:58:13 +00:00
|
|
|
help = 'Index format: yyyy/mm/dd/name'
|
|
|
|
|
|
|
|
|
2013-02-06 21:27:40 +00:00
|
|
|
class FirstWorldProblems(_BasicScraper):
|
|
|
|
url = 'http://bradcolbow.com/archive/C5/'
|
2013-03-06 19:00:30 +00:00
|
|
|
stripUrl = url + '%s/'
|
|
|
|
firstStripUrl = stripUrl % 'P10'
|
2013-02-06 21:27:40 +00:00
|
|
|
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'
|
|
|
|
|
|
|
|
|
2012-06-20 19:58:13 +00:00
|
|
|
class FlakyPastry(_BasicScraper):
|
2013-04-13 18:58:00 +00:00
|
|
|
baseUrl = 'http://flakypastry.runningwithpencils.com/'
|
|
|
|
url = baseUrl + 'index.php'
|
|
|
|
stripUrl = baseUrl + 'comic.php?strip_id=%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '0'
|
2012-06-20 19:58:13 +00:00
|
|
|
imageSearch = compile(r'<img src="(comics/.+?)"')
|
|
|
|
prevSearch = compile(r'<a href="(.+?)".+?btn_back')
|
|
|
|
help = 'Index format: nnnn'
|
|
|
|
|
2012-12-04 06:02:40 +00:00
|
|
|
|
2012-12-08 20:30:51 +00:00
|
|
|
class Flemcomics(_BasicScraper):
|
2013-02-04 20:00:26 +00:00
|
|
|
url = 'http://www.flemcomics.com/'
|
|
|
|
stripUrl = url + 'd/%s.html'
|
2012-12-08 20:30:51 +00:00
|
|
|
imageSearch = compile(tagre("img", "src", r'(/comics/[^"]+)'))
|
|
|
|
prevSearch = compile(tagre("a", "href", r'(/d/\d+\.html)') +
|
2016-03-31 21:13:54 +00:00
|
|
|
tagre("img", "src", r'/images/previous_day\.jpg'))
|
2012-12-08 20:30:51 +00:00
|
|
|
help = 'Index format: yyyymmdd'
|
|
|
|
|
|
|
|
|
2012-06-20 19:58:13 +00:00
|
|
|
class Flipside(_BasicScraper):
|
2013-02-04 20:00:26 +00:00
|
|
|
url = 'http://flipside.keenspot.com/comic.php'
|
2013-04-10 16:19:11 +00:00
|
|
|
rurl = escape(url)
|
2013-02-04 20:00:26 +00:00
|
|
|
stripUrl = url + '?i=%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '1'
|
2012-12-04 06:02:40 +00:00
|
|
|
imageSearch = compile(tagre("img", "src", r'(http://cdn\.flipside\.keenspot\.com/comic/[^"]+)'))
|
2016-03-31 21:13:54 +00:00
|
|
|
prevSearch = compile(tagre("a", "href", r'(%s\?i=\d+)' % rurl,
|
|
|
|
after="prev"))
|
2012-06-20 19:58:13 +00:00
|
|
|
help = 'Index format: nnnn'
|
|
|
|
|
|
|
|
|
2013-03-12 19:49:46 +00:00
|
|
|
class FonFlatter(_BasicScraper):
|
|
|
|
url = 'http://www.fonflatter.de/'
|
2013-04-10 16:19:11 +00:00
|
|
|
rurl = escape(url)
|
2013-03-12 19:49:46 +00:00
|
|
|
stripUrl = url + '%s/'
|
|
|
|
firstStripUrl = stripUrl % '2005/09/20/01-begegnung-mit-batman'
|
|
|
|
lang = 'de'
|
2013-04-10 16:19:11 +00:00
|
|
|
imageSearch = compile(r'src="(%s\d+/fred_\d+-\d+-\d+[^"]+)' % rurl)
|
|
|
|
prevSearch = compile(tagre("a", "href", r'(%s[^"]+)' % rurl, after="prev"))
|
2013-03-12 19:49:46 +00:00
|
|
|
help = 'Index format: yyyy/mm/dd/number-stripname'
|
|
|
|
|
2014-02-10 20:58:09 +00:00
|
|
|
def shouldSkipUrl(self, url, data):
|
2013-03-13 17:31:58 +00:00
|
|
|
return url in (
|
2013-04-10 16:19:11 +00:00
|
|
|
self.stripUrl % "2006/11/30/adventskalender",
|
|
|
|
self.stripUrl % "2006/09/21/danke",
|
|
|
|
self.stripUrl % "2006/08/23/zgf-zuweilen-gestellte-fragen",
|
|
|
|
self.stripUrl % "2005/10/19/naq-never-asked-questions",
|
2016-04-01 22:14:31 +00:00
|
|
|
)
|
2013-03-13 17:31:58 +00:00
|
|
|
|
2013-03-12 19:49:46 +00:00
|
|
|
|
2013-04-10 16:20:39 +00:00
|
|
|
class ForLackOfABetterComic(_BasicScraper):
|
|
|
|
url = 'http://forlackofabettercomic.com/'
|
2013-11-27 19:49:35 +00:00
|
|
|
rurl = r'http://(?:www\.)?forlackofabettercomic\.com/'
|
2013-04-10 16:20:39 +00:00
|
|
|
stripUrl = url + '?id=%s'
|
|
|
|
firstStripUrl = stripUrl % '1'
|
|
|
|
imageSearch = compile(tagre("img", "src", r'(%simg/comic/\d+[^"]+)' % rurl, after="comicimg"))
|
|
|
|
prevSearch = compile(tagre("a", "href", r'(%s\?id\=\d+)' % rurl) + r'Prev')
|
|
|
|
help = 'Index format: number'
|
|
|
|
|
|
|
|
|
2015-08-07 11:37:10 +00:00
|
|
|
class Fragile(_ParserScraper):
|
|
|
|
url = 'http://www.fragilestory.com/'
|
2016-01-03 01:08:49 +00:00
|
|
|
imageSearch = '//div[@id="comic_strip"]/a[@class="nobg"]/img'
|
|
|
|
prevSearch = '//div[@id="nav_comic_a"]/a[2]'
|
|
|
|
firstStripUrl = url + 'strips/chapter_01'
|
2015-08-07 11:37:10 +00:00
|
|
|
|
|
|
|
|
2012-09-27 19:55:16 +00:00
|
|
|
class FredoAndPidjin(_BasicScraper):
|
2013-02-05 18:51:46 +00:00
|
|
|
url = 'http://www.pidjin.net/'
|
2013-04-10 21:57:09 +00:00
|
|
|
stripUrl = url + '%s/'
|
|
|
|
firstStripUrl = stripUrl % '2006/02/19/goofy-monday'
|
2014-02-06 18:57:56 +00:00
|
|
|
help = 'Index format: yyyy/mm/dd/number-index'
|
|
|
|
imageSearch = (
|
|
|
|
compile(tagre('img', 'src', '(http://cdn\.pidjin\.net/wp-content/uploads/\d+/\d+/\d+[^"]+\.[a-z]+)')),
|
|
|
|
compile(tagre('img', 'src', '(http://cdn\.pidjin\.net/wp-content/uploads/old/[^"]+\.[a-z]+)')),
|
|
|
|
)
|
2012-12-04 06:02:40 +00:00
|
|
|
multipleImagesPerStrip = True
|
2016-04-01 22:14:31 +00:00
|
|
|
prevSearch = compile(tagre('a', 'href', '([^"]+)') + "Prev</a>")
|
2016-04-12 21:11:39 +00:00
|
|
|
latestSearch = compile(tagre('a', 'href', "(" + url +
|
|
|
|
r'\d\d\d\d/\d\d/\d\d/[^"]+/)'))
|
2016-04-13 18:01:51 +00:00
|
|
|
starter = indirectStarter
|
2013-03-11 21:45:30 +00:00
|
|
|
|
|
|
|
|
2016-03-31 21:13:54 +00:00
|
|
|
class Freefall(_BasicScraper):
|
|
|
|
url = 'http://freefall.purrsia.com/default.htm'
|
|
|
|
stripUrl = 'http://freefall.purrsia.com/ff%s/fc%s.htm'
|
|
|
|
imageSearch = compile(r'<img src="(/ff\d+/.+?.\w{3,4})"')
|
|
|
|
prevSearch = compile(r'<A HREF="(/ff\d+/.+?.htm)">Previous</A>')
|
|
|
|
help = 'Index format: nnnn/nnnnn'
|
|
|
|
|
|
|
|
|
2013-03-11 21:45:30 +00:00
|
|
|
class FullFrontalNerdity(_BasicScraper):
|
|
|
|
url = 'http://ffn.nodwick.com/'
|
2013-04-10 16:19:11 +00:00
|
|
|
rurl = escape(url)
|
2013-03-11 21:45:30 +00:00
|
|
|
stripUrl = url + '?p=%s'
|
|
|
|
firstStripUrl = stripUrl % '6'
|
2013-04-10 16:19:11 +00:00
|
|
|
imageSearch = compile(tagre("img", "src", r'(%sffnstrips/\d+-\d+-\d+\.[^"]+)' % rurl))
|
|
|
|
prevSearch = compile(tagre("a", "href", r'(%s\?p=\d+)' % rurl, after="prev"))
|
2013-03-11 21:45:30 +00:00
|
|
|
help = 'Index format: number'
|
|
|
|
|
|
|
|
|
|
|
|
class FunInJammies(_BasicScraper):
|
|
|
|
url = 'http://www.funinjammies.com/'
|
|
|
|
stripUrl = url + 'comic.php?issue=%s'
|
2013-04-10 21:57:09 +00:00
|
|
|
firstStripUrl = stripUrl % '1'
|
2013-03-11 21:45:30 +00:00
|
|
|
imageSearch = compile(r'(/comics/.+?)"')
|
|
|
|
prevSearch = compile(r'(/comic.php.+?)" id.+?prev')
|
|
|
|
help = 'Index format: n (unpadded)'
|