dosage/dosagelib/plugins/f.py

181 lines
6.4 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
2016-10-28 22:21:41 +00:00
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
2014-01-05 15:50:57 +00:00
# Copyright (C) 2012-2014 Bastian Kleineidam
# Copyright (C) 2015-2019 Tobias Gruetzmacher
2012-11-21 20:57:26 +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
from ..helpers import indirectStarter, joinPathPartsNamer, xpath_class
2017-02-13 21:41:17 +00:00
from .common import _WPNaviIn, _WordPressScraper
2012-06-20 19:58:13 +00:00
class FalconTwin(_BasicScraper):
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'
class Faneurysm(_WPNaviIn):
url = 'http://hijinksensue.com/comic/think-only-tree/'
firstStripUrl = 'http://hijinksensue.com/comic/captains-prerogative/'
endOfLife = True
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)
latestSearch = compile(r'<a href="(manga/.+?)"><img src="preview.jpg"', IGNORECASE)
2013-03-06 19:21:10 +00:00
help = 'Index format: nnn'
starter = indirectStarter
2013-03-06 19:21:10 +00:00
2016-09-29 22:15:45 +00:00
class FauxPas(_ParserScraper):
url = 'http://www.ozfoxes.net/cgi/pl-fp1.cgi'
stripUrl = url + '?%s'
2013-04-10 21:57:09 +00:00
firstStripUrl = stripUrl % '1'
2016-09-29 22:15:45 +00:00
imageSearch = '//img[@name]'
prevSearch = '//a[img[@alt="Previous"]]'
2012-06-20 19:58:13 +00:00
help = 'Index format: nnn'
2016-05-02 20:32:14 +00:00
class FireflyCross(_WordPressScraper):
url = 'http://www.fireflycross.pensandtales.com/'
firstStripUrl = url + '?comic=05062002'
2013-02-06 21:27:40 +00:00
class FirstWorldProblems(_BasicScraper):
url = 'http://bradcolbow.com/archive/C5/'
stripUrl = url + '%s/'
firstStripUrl = stripUrl % 'P10'
2019-11-03 23:16:25 +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"))
2013-02-06 21:27:40 +00:00
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):
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)') +
tagre("img", "src", r'/images/previous_day\.jpg'))
2012-12-08 20:30:51 +00:00
help = 'Index format: yyyymmdd'
2019-07-05 03:04:27 +00:00
class Flipside(_ParserScraper):
url = 'http://flipside.keenspot.com/comic.php'
stripUrl = url + '?i=%s'
2013-04-10 21:57:09 +00:00
firstStripUrl = stripUrl % '1'
2019-07-05 03:04:27 +00:00
imageSearch = '//img[contains(@src, "comic/")]'
prevSearch = '//a[@rel="prev"]'
2012-06-20 19:58:13 +00:00
help = 'Index format: nnnn'
2016-05-06 23:50:10 +00:00
class FonFlatter(_ParserScraper):
2016-05-16 21:16:29 +00:00
url = 'https://www.fonflatter.de/'
2013-03-12 19:49:46 +00:00
stripUrl = url + '%s/'
2016-05-16 21:16:29 +00:00
firstStripUrl = url + '2005/09/20/01-begegnung-mit-batman/'
2013-03-12 19:49:46 +00:00
lang = 'de'
2016-05-06 23:50:10 +00:00
imageSearch = r'//img[re:test(@src, "/fred_\d+")]'
prevSearch = '//a[@rel="prev"]'
2013-03-12 19:49:46 +00:00
help = 'Index format: yyyy/mm/dd/number-stripname'
def shouldSkipUrl(self, url, data):
2013-03-13 17:31:58 +00:00
return url in (
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",
)
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'
2019-07-03 07:14:22 +00:00
class FoxTails(_ParserScraper):
stripUrl = 'http://foxtails.magickitsune.com/strips/%s.html'
url = stripUrl % 'current'
firstStripUrl = stripUrl % '20041024'
imageSearch = '//img[contains(@src, "img/2")]'
prevSearch = '//a[./img[contains(@src, "prev")]]'
endOfLife = True
def getPrevUrl(self, url, data):
# Include pre-reboot archive
if url == self.stripUrl % '20090906':
return self.stripUrl % '20090704'
return super(FoxTails, self).getPrevUrl(url, data)
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
2016-09-29 22:15:45 +00:00
class FredoAndPidjin(_ParserScraper):
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'
2016-09-29 22:15:45 +00:00
imageSearch = '//div[%s]//img' % xpath_class("episode")
2012-12-04 06:02:40 +00:00
multipleImagesPerStrip = True
2016-09-29 22:15:45 +00:00
prevSearch = '//span[%s]/a' % xpath_class("prev")
latestSearch = '//section[%s]//a' % xpath_class("latest")
starter = indirectStarter
namer = joinPathPartsNamer((0, 1, 2))
2013-03-11 21:45:30 +00:00
2019-11-03 23:16:25 +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/'
rurl = escape(url)
2013-03-11 21:45:30 +00:00
stripUrl = url + '?p=%s'
firstStripUrl = stripUrl % '6'
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)'