# SPDX-License-Identifier: MIT # Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2012-2014 Bastian Kleineidam # Copyright (C) 2015-2020 Tobias Gruetzmacher # Copyright (C) 2019-2020 Daniel Ring from re import compile from urllib.parse import urljoin from lxml import etree from ..scraper import BasicScraper, ParserScraper from ..helpers import indirectStarter from ..util import tagre from .common import ComicControlScraper, WordPressScraper, WordPressNavi class Underling(WordPressNavi): url = ('https://web.archive.org/web/20190806120425/' 'http://underlingcomic.com/') firstStripUrl = url + 'page-one/' endOfLife = True class Undertow(BasicScraper): url = 'http://undertow.dreamshards.org/' imageSearch = compile(tagre("img", "src", r'([^"]+\.jpg)')) prevSearch = compile(r'href="(.+?)".+?teynpoint') latestSearch = compile(r'href="(.+?)".+?Most recent page') starter = indirectStarter class unDivine(ComicControlScraper): url = 'https://www.undivinecomic.com/' stripUrl = url + 'comic/%s' firstStripUrl = stripUrl % 'page-1' def namer(self, imageUrl, pageUrl): # Fix inconsistent filenames filename = imageUrl.rsplit('/', 1)[-1].replace(' ', '-') filename = filename.replace('10B311D9-0992-4D74-AEB8-DAB714DA67C6', 'UD-322') filename = filename.replace('99266624-7EF7-4E99-9EC9-DDB5F59CBDFD', 'UD-311') filename = filename.replace('33C6A5A1-F703-4A0A-BCD5-DE1A09359D8E', 'UD-310') filename = filename.replace('6CE01E81-C299-43C7-A221-8DE0670EFA30', 'ch4endbonusq4') filename = filename.replace('DB66D93B-1FE5-49C7-90E0-FFF981DCD6B3', 'bipolar') if len(filename) > 15 and filename[0].isdigit() and filename[10] == '-': filename = filename[11:] return filename class UnicornJelly(BasicScraper): baseUrl = 'http://unicornjelly.com/' url = baseUrl + 'uni666.html' stripUrl = baseUrl + 'uni%s.html' firstStripUrl = stripUrl % '001' imageSearch = compile(r'(?:)?()?