mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2026-05-09 05:21:13 +02:00
Refactor set_sleep(_override) a bit better.
This commit is contained in:
parent
8ba5d2c423
commit
0c0534ea74
3 changed files with 16 additions and 26 deletions
|
|
@ -1312,7 +1312,7 @@ class FanFicFarePlugin(InterfaceAction):
|
|||
b = minslp - m
|
||||
slp = min(maxslp,m*float(options['ffnetcount'])+b)
|
||||
#print("m:%s b:%s = %s"%(m,b,slp))
|
||||
configuration.set_sleep(slp)
|
||||
configuration.set_sleep_override(slp)
|
||||
|
||||
if not bgmeta:
|
||||
story = self.get_story_metadata_only(adapter)
|
||||
|
|
|
|||
|
|
@ -538,6 +538,7 @@ class Configuration(ConfigParser):
|
|||
ConfigParser.__init__(self)
|
||||
|
||||
self.fetcher = None # the network layer for getting pages the
|
||||
self.sleeper = None
|
||||
# caching layer for getting pages, created now for
|
||||
# get_empty_pagecache() etc.
|
||||
self.cache = fetcher.BasicCache()
|
||||
|
|
@ -964,15 +965,16 @@ class Configuration(ConfigParser):
|
|||
self.getConfigList)
|
||||
|
||||
########################################################
|
||||
## Adding fetcher decorators. Order matters--last in,
|
||||
## Adding fetcher decorators. Order matters--last added,
|
||||
## first called. If ProgressBarDecorator is added before
|
||||
## Cache, it's never called for cache hits, for example.
|
||||
|
||||
fetcher.SleepDecorator().decorate_fetcher(self.fetcher)
|
||||
## doesn't sleep when fromcache==True
|
||||
## saved for set_sleep
|
||||
self.sleeper = fetcher.SleepDecorator()
|
||||
self.sleeper.decorate_fetcher(self.fetcher)
|
||||
|
||||
# cache decorator terminates the chain when found. Cache
|
||||
# created in __init__ because of get_empty_pagecache()
|
||||
# etc, but not used until now.
|
||||
## cache decorator terminates the chain when found.
|
||||
logger.debug("use_pagecache:%s"%self.getConfig('use_pagecache'))
|
||||
if self.getConfig('use_pagecache'):
|
||||
fetcher.BasicCacheDecorator(self.cache).decorate_fetcher(self.fetcher)
|
||||
|
|
@ -986,8 +988,8 @@ class Configuration(ConfigParser):
|
|||
## Or Fetcher
|
||||
|
||||
## used by plugin to change time for ffnet.
|
||||
def set_sleep(self,val):
|
||||
return self.get_fetcher().set_sleep(val)
|
||||
def set_sleep_override(self,val):
|
||||
return self.sleeper.set_sleep_override(val)
|
||||
|
||||
def get_cookiejar(self,filename=None):
|
||||
return self.get_fetcher().get_cookiejar(filename)
|
||||
|
|
|
|||
|
|
@ -108,21 +108,15 @@ class ProgressBarDecorator(FetcherDecorator):
|
|||
class SleepDecorator(FetcherDecorator):
|
||||
def __init__(self):
|
||||
super(SleepDecorator,self).__init__()
|
||||
self.override_sleep = None
|
||||
self.sleep_override = None
|
||||
|
||||
def decorate_fetcher(self,fetcher):
|
||||
super(SleepDecorator,self).decorate_fetcher(fetcher)
|
||||
fetcher.set_sleep = partial(self.fetcher_set_sleep,
|
||||
fetcher,
|
||||
fetcher.set_sleep)
|
||||
|
||||
def fetcher_set_sleep(self,
|
||||
fetcher,
|
||||
chainfn,
|
||||
val):
|
||||
## used by plugin for ffnet variable timing
|
||||
def set_sleep_override(self,val):
|
||||
logger.debug("\n===========\n set sleep time %s\n==========="%val)
|
||||
self.override_sleep = val
|
||||
return chainfn(val)
|
||||
self.sleep_override = val
|
||||
|
||||
def fetcher_do_request(self,
|
||||
fetcher,
|
||||
|
|
@ -149,9 +143,8 @@ class SleepDecorator(FetcherDecorator):
|
|||
if extrasleep:
|
||||
logger.debug("extra sleep:%s"%extrasleep)
|
||||
time.sleep(float(extrasleep))
|
||||
t = None
|
||||
if self.override_sleep:
|
||||
t = float(self.override_sleep)
|
||||
if self.sleep_override:
|
||||
t = float(self.sleep_override)
|
||||
elif fetcher.getConfig('slow_down_sleep_time'):
|
||||
t = float(fetcher.getConfig('slow_down_sleep_time'))
|
||||
## sleep randomly between 0.5 time and 1.5 time.
|
||||
|
|
@ -296,11 +289,6 @@ class Fetcher(object):
|
|||
ignore_discard=True,
|
||||
ignore_expires=True)
|
||||
|
||||
# used by plugin for ffnet variable timing
|
||||
## this will need to be moved. XXX
|
||||
def set_sleep(self,val):
|
||||
pass
|
||||
|
||||
def make_headers(self,url,referer=None):
|
||||
headers = {}
|
||||
headers['User-Agent']=self.getConfig('user_agent')
|
||||
|
|
|
|||
Loading…
Reference in a new issue