dosage/dosagelib/plugins/wrongside.py
2022-03-26 00:38:06 -07:00

75 lines
2.8 KiB
Python

# SPDX-License-Identifier: MIT
# Copyright (C) 2019-2020 Tobias Gruetzmacher
# Copyright (C) 2019-2022 Daniel Ring
from ..scraper import _ParserScraper
from ..helpers import indirectStarter
class Wrongside(_ParserScraper):
baseUrl = 'http://ayzewi.com/maingallery3/'
url = baseUrl + 'index.php?/category/5'
stripUrl = baseUrl + 'picture.php?%s'
firstStripUrl = stripUrl % '/175/category/21'
imageSearch = '//img[@id="theMainImage"]/@src'
prevSearch = '//a[contains(@title, "Previous :")]'
def starter(self):
archivePage = self.getPage(self.url)
chapterUrls = archivePage.xpath('//ul[@class="albThumbs"]//a/@href')
self.archive = []
for chapterUrl in chapterUrls:
chapterPage = self.getPage(chapterUrl)
self.archive.append(chapterPage.xpath('(//ul[@id="thumbnails"]//a/@href)[last()]')[0])
return self.archive[0]
def getPrevUrl(self, url, data):
if data.xpath(self.prevSearch) == [] and len(self.archive) > 0:
return self.archive.pop()
return super(Wrongside, self).getPrevUrl(url, data)
def namer(self, imageUrl, pageUrl):
page = self.getPage(pageUrl)
title = page.xpath('//div[@class="browsePath"]/h2/text()')[0]
return title.replace('"', '') + '.' + imageUrl.rsplit('.', 1)[-1]
class WrongsideBeginnings(Wrongside):
name = 'Wrongside/Beginnings'
baseUrl = 'http://ayzewi.com/maingallery3/'
url = baseUrl + 'index.php?/category/4'
stripUrl = baseUrl + 'picture.php?%s'
firstStripUrl = stripUrl % '/2/category/18'
class WrongsideSideStories(_ParserScraper):
baseUrl = 'http://ayzewi.com/maingallery3/'
stripUrl = baseUrl + 'picture.php?%s'
imageSearch = '//img[@id="theMainImage"]/@src'
prevSearch = '//a[contains(@title, "Previous :")]'
latestSearch = '(//ul[@id="thumbnails"]//a/@href)[last()]'
starter = indirectStarter
def __init__(self, name, category, first, last=None):
super().__init__('Wrongside/' + name)
self.url = self.baseUrl + 'index.php?/category/' + category
self.firstStripUrl = self.stripUrl % ('/' + first + '/category/' + category)
if last:
self.endOfLife = True
@classmethod
def getmodules(cls):
return (
cls('AnarkisRising', '7', '302'),
cls('CommonsDreams', '9', '324'),
cls('Faith', '11', '349'),
cls('Sarah', '10', '337'),
cls('ThereAreNoAviansHere', '8', '313'),
cls('TheScientificProphet', '13', '358'),
cls('TheStrangers', '12', '361'),
)
def namer(self, imageUrl, pageUrl):
page = self.getPage(pageUrl)
title = page.xpath('//div[@class="browsePath"]/h2/text()')[0]
return title.replace('"', '') + '.' + imageUrl.rsplit('.', 1)[-1]