mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
config: allow custom config.yaml settings for automatic collections.
settings in config.yaml are merged with collection-specific settings, which take precedence (before, the config.yaml settings were being overwritten) #103
This commit is contained in:
parent
d2763004dd
commit
557f26b852
@ -1,6 +1,7 @@
|
|||||||
import pkgutil
|
import pkgutil
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import time
|
import time
|
||||||
|
import logging
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@ -144,6 +145,7 @@ class WBHandler(SearchPageWbUrlHandler):
|
|||||||
def resolve_refs(self, handler_dict):
|
def resolve_refs(self, handler_dict):
|
||||||
if self.fallback_name:
|
if self.fallback_name:
|
||||||
self.fallback_handler = handler_dict.get(self.fallback_name)
|
self.fallback_handler = handler_dict.get(self.fallback_name)
|
||||||
|
logging.debug('Fallback Handler: ' + self.fallback_name)
|
||||||
|
|
||||||
def handle_request(self, wbrequest):
|
def handle_request(self, wbrequest):
|
||||||
cdx_lines, output = self.index_reader.load_for_request(wbrequest)
|
cdx_lines, output = self.index_reader.load_for_request(wbrequest)
|
||||||
|
@ -124,8 +124,9 @@ def create_cdx_server_app(passed_config):
|
|||||||
# collections based on file system
|
# collections based on file system
|
||||||
if config.get('enable_auto_colls', True):
|
if config.get('enable_auto_colls', True):
|
||||||
colls_loader_cls = config.get('colls_loader_cls', DirectoryCollsLoader)
|
colls_loader_cls = config.get('colls_loader_cls', DirectoryCollsLoader)
|
||||||
dir_loader = colls_loader_cls(config, static_routes)
|
dir_loader = colls_loader_cls(config, static_routes, collections)
|
||||||
collections.update(dir_loader())
|
dir_loader()
|
||||||
|
#collections.update(dir_loader())
|
||||||
|
|
||||||
routes = []
|
routes = []
|
||||||
|
|
||||||
@ -142,12 +143,13 @@ def create_cdx_server_app(passed_config):
|
|||||||
|
|
||||||
#=================================================================
|
#=================================================================
|
||||||
class DirectoryCollsLoader(object):
|
class DirectoryCollsLoader(object):
|
||||||
def __init__(self, config, static_routes):
|
def __init__(self, config, static_routes, colls):
|
||||||
self.config = config
|
self.config = config
|
||||||
self.static_routes = static_routes
|
self.static_routes = static_routes
|
||||||
|
self.colls = colls
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
colls = {}
|
colls = self.colls
|
||||||
|
|
||||||
static_dir = self.config.get('paths')['static_path']
|
static_dir = self.config.get('paths')['static_path']
|
||||||
static_shared_prefix = self.config.get('static_shared_prefix')
|
static_shared_prefix = self.config.get('static_shared_prefix')
|
||||||
@ -167,7 +169,11 @@ class DirectoryCollsLoader(object):
|
|||||||
|
|
||||||
coll_config = self.load_coll_dir(full, name)
|
coll_config = self.load_coll_dir(full, name)
|
||||||
if coll_config:
|
if coll_config:
|
||||||
colls[name] = coll_config
|
# if already exists, override existing config with coll specific
|
||||||
|
if name in colls:
|
||||||
|
colls[name].update(coll_config)
|
||||||
|
else:
|
||||||
|
colls[name] = coll_config
|
||||||
|
|
||||||
return colls
|
return colls
|
||||||
|
|
||||||
@ -263,8 +269,9 @@ def create_wb_router(passed_config=None):
|
|||||||
# collections based on file system
|
# collections based on file system
|
||||||
if config.get('enable_auto_colls', True):
|
if config.get('enable_auto_colls', True):
|
||||||
colls_loader_cls = config.get('colls_loader_cls', DirectoryCollsLoader)
|
colls_loader_cls = config.get('colls_loader_cls', DirectoryCollsLoader)
|
||||||
dir_loader = colls_loader_cls(config, static_routes)
|
dir_loader = colls_loader_cls(config, static_routes, collections)
|
||||||
collections.update(dir_loader())
|
dir_loader()
|
||||||
|
#collections.update(dir_loader())
|
||||||
|
|
||||||
if config.get('enable_memento', False):
|
if config.get('enable_memento', False):
|
||||||
request_class = MementoRequest
|
request_class = MementoRequest
|
||||||
|
Loading…
x
Reference in New Issue
Block a user