Make easy to add addition testX.com adapters for multi-site testing.

This commit is contained in:
Jim Miller 2021-02-09 14:18:33 -06:00
parent 3f43e5b929
commit f8bfc49ea8
3 changed files with 54 additions and 25 deletions

View file

@ -1177,7 +1177,9 @@ windows_eol: true
[test1.com]
use_basic_cache:true
slow_down_sleep_time:2
## slow_down_sleep_time now applied to test1 chapters (with 0.5-1.5
## random fudge)
#slow_down_sleep_time:2
extratags: FanFiction,Testing
# extracategories:Fafner

View file

@ -88,7 +88,7 @@ class TestSiteAdapter(BaseSiteAdapter):
return
if idnum >= 700 and idnum <= 710:
self._setURL('http://test1.com?sid=%s'%(idnum+100))
self._setURL('http://'+self.getSiteDomain()+'?sid=%s'%(idnum+100))
self.story.setMetadata('storyId',self.parsedUrl.query.split('=',)[1])
idstr = self.story.getMetadata('storyId')
idnum = int(idstr)
@ -112,12 +112,13 @@ class TestSiteAdapter(BaseSiteAdapter):
if idstr == '668' and self.username != "Me" :
raise exceptions.FailedToLogin(self.url,self.username)
prefix = self.getSiteDomain() if self.getSiteDomain() != 'test1.com' else ""
if idstr == '664':
self.story.setMetadata(u'title',"Test Story Title "+idstr+self.crazystring+"&nbsp;&nbsp;")
self.story.setMetadata('author','Test Author aa bare amp(&) quote(&#39;) amp(&amp;)')
self.story.setMetadata(u'title',prefix+"Test Story Title "+idstr+self.crazystring+"&nbsp;&nbsp;")
self.story.setMetadata('author',prefix+'Test Author aa bare amp(&) quote(&#39;) amp(&amp;)')
else:
self.story.setMetadata(u'title',"Test Story Title "+idstr)
self.story.setMetadata('author','Test Author aa')
self.story.setMetadata(u'title',prefix+"Test Story Title "+idstr)
self.story.setMetadata('author',prefix+'Test Author aa')
self.setDescription(self.url,u'<div>Description '+self.crazystring+u''' Done
<p>
Some more longer description. "I suck at summaries!" "Better than it sounds!" "My first fic"
@ -146,13 +147,13 @@ Some more longer description. "I suck at summaries!" "Better than it sounds!"
}
self.story.setMetadata('language',langs[idnum%len(langs)])
self.setSeries('The Great Test',idnum)
self.story.setMetadata('seriesUrl','http://test1.com/seriesid=1')
self.story.setMetadata('seriesUrl','http://'+self.getSiteDomain()+'/seriesid=1')
elif idnum < 20:
self.setSeries('魔法少女まどか★マギカ',idnum)
self.story.setMetadata('seriesUrl','http://test1.com/seriesid=1')
self.story.setMetadata('seriesUrl','http://'+self.getSiteDomain()+'/seriesid=1')
if idnum == 0:
self.setSeries("A Nook Hyphen Test "+self.story.getMetadata('dateCreated'),idnum)
self.story.setMetadata('seriesUrl','http://test1.com/seriesid=0')
self.story.setMetadata('seriesUrl','http://'+self.getSiteDomain()+'/seriesid=0')
self.story.setMetadata('rating','Tweenie')
@ -317,9 +318,14 @@ Some more longer description. "I suck at summaries!" "Better than it sounds!"
def getChapterText(self, url):
logger.debug('Getting chapter text from: %s' % url)
if self.story.getMetadata('storyId').startswith('670') or \
self.story.getMetadata('storyId').startswith('672'):
time.sleep(1.0)
if( self.getConfig('slow_down_sleep_time',False)
or self.story.getMetadata('storyId').startswith('670')
or self.story.getMetadata('storyId').startswith('672') ):
import random
t = float(self.getConfig('slow_down_sleep_time',1.0))
rt = random.uniform(t*0.5, t*1.5)
logger.debug("random sleep(%0.2f-%0.2f):%0.2f"%(t*0.5, t*1.5,rt))
time.sleep(rt)
if "chapter=1" in url :
text=u'''
@ -358,7 +364,7 @@ Some more longer description. "I suck at summaries!" "Better than it sounds!"
'''
elif self.story.getMetadata('storyId') == '667' and "chapter=2" in url:
raise exceptions.FailedToDownload("Error downloading Chapter: %s!" % url)
elif 'test1.com' not in url:
elif self.getSiteDomain() not in url:
## for chapter_urls setting.
origurl = url
(data,url) = self.get_request_redirected(url)
@ -437,7 +443,7 @@ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
return self.utf8FromSoup(url,soup)
def get_urls_from_page(self,url,normalize):
logger.debug("Fake series test1.com")
logger.debug("Fake series "+self.getSiteDomain())
'''
This method is to make it easier for adapters to detect a
series URL, pick out the series metadata and list of storyUrls
@ -447,19 +453,38 @@ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
## easiest way to get all the weird URL possibilities and stay
## up to date with future changes.
return {'name':'The Great Test',
'desc':'<div>The Great Test Series of test1.com!</div>',
'urllist':['http://test1.com?sid=1',
'http://test1.com?sid=2',
'http://test1.com?sid=3',
'http://test1.com?sid=4',
'http://test1.com?sid=5',
'http://test1.com?sid=6',
'http://test1.com?sid=7',
'http://test1.com?sid=8',
'http://test1.com?sid=9',]
'desc':'<div>The Great Test Series of '+self.getSiteDomain()+'!</div>',
'urllist':['http://'+self.getSiteDomain()+'?sid=1',
'http://'+self.getSiteDomain()+'?sid=2',
'http://'+self.getSiteDomain()+'?sid=3',
'http://'+self.getSiteDomain()+'?sid=4',
'http://'+self.getSiteDomain()+'?sid=5',
'http://'+self.getSiteDomain()+'?sid=6',
'http://'+self.getSiteDomain()+'?sid=7',
'http://'+self.getSiteDomain()+'?sid=8',
'http://'+self.getSiteDomain()+'?sid=9',]
}
def getClass():
return TestSiteAdapter
'''
from __future__ import absolute_import
import logging
logger = logging.getLogger(__name__)
from .adapter_test1 import TestSiteAdapter
class Test2SiteAdapter(TestSiteAdapter):
def __init__(self, config, url):
TestSiteAdapter.__init__(self, config, url)
@staticmethod
def getSiteDomain():
return 'test2.com'
def getClass():
return Test2SiteAdapter
'''

View file

@ -1208,7 +1208,9 @@ windows_eol: true
[test1.com]
use_basic_cache:true
slow_down_sleep_time:2
## slow_down_sleep_time now applied to test1 chapters (with 0.5-1.5
## random fudge)
#slow_down_sleep_time:2
extratags: FanFiction,Testing
# extracategories:Fafner