pywb 2.7.2__tar.gz → 2.7.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pywb-2.7.2 → pywb-2.7.4}/CHANGES.rst +16 -0
- {pywb-2.7.2/pywb.egg-info → pywb-2.7.4}/PKG-INFO +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/build-vue-ui.sh +1 -0
- {pywb-2.7.2 → pywb-2.7.4}/config.yaml +1 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/vue-ui.rst +15 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/frontendapp.py +2 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/rewriterapp.py +2 -2
- pywb-2.7.4/pywb/git_hash.py +1 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/indexer/cdxindexer.py +9 -2
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/manager.py +10 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rules.yaml +14 -2
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/query.js +3 -3
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/search.js +23 -6
- pywb-2.7.4/pywb/static/vue/vueui.js +15007 -0
- pywb-2.7.4/pywb/static/wombat.js +21 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/wombatProxyMode.js +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/wombatWorkers.js +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/frame_insert.html +1 -1
- pywb-2.7.4/pywb/templates/instructions.html +216 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/query.html +5 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/search.html +34 -32
- {pywb-2.7.2 → pywb-2.7.4}/pywb/version.py +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/fuzzymatcher.py +16 -8
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_fuzzymatcher.py +7 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_handlers.py +4 -2
- {pywb-2.7.2 → pywb-2.7.4/pywb.egg-info}/PKG-INFO +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/SOURCES.txt +1 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_live_rewriter.py +2 -1
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_range.py +1 -1
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_socks.py +2 -0
- pywb-2.7.2/pywb/git_hash.py +0 -1
- pywb-2.7.2/pywb/static/vue/vueui.js +0 -14996
- pywb-2.7.2/pywb/static/wombat.js +0 -21
- {pywb-2.7.2 → pywb-2.7.4}/.dockerignore +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/.gitmodules +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/.travis.yml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/Dockerfile +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/INSTALL.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/LICENSE +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/MANIFEST.in +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/NOTICE +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/README.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/Vagrantfile +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/appveyor.disabled.yml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/build-wombat.sh +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docker-compose.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docker-entrypoint.sh +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/Makefile +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.apps.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.indexer.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.manager.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.recorder.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.rewrite.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.utils.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.warcserver.index.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.warcserver.resource.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/code/pywb.warcserver.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/conf.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/index.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/make.bat +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/access-control.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/apis.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/apps.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/architecture.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/cdxserver_api.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/configuring.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/indexing.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/localization.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/memento.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/migrating-cdx.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/outbackcdx.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/owb-pywb-terms.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/owb-to-pywb-config.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/owb-to-pywb-deploy.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/owb-to-pywb-exclusions.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/owb-transition.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/recorder.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/rewriter.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/template-guide.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/ui-customization.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/ui-guide.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/usage.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/docs/manual/warcserver.rst +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/extra_requirements.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/cli.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/live.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/static_handler.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/test/test_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/test/test_wbrequestresponse.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/warcserverapp.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/wayback.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/apps/wbrequestresponse.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/default_config.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/indexer/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/indexer/archiveindexer.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/indexer/test/test_indexing.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/aclmanager.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/autoindex.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/locmanager.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/manager/migrate.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/filters.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/multifilewarcwriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/recorderapp.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/redisindexer.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/test/rec.ini +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/test/simplerec.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/recorder/test/test_recorder.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/content_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/cookie_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/cookies.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/default_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/header_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/html_insert_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/html_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/jsonp_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/regex_rewriters.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/rewrite_amf.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/rewrite_dash.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/rewrite_hls.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/rewrite_js_workers.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/rewriteinputreq.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/templateview.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_content_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_cookie_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_header_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_html_insert_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_html_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_jsonp_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_regex_rewriters.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_url_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/test/test_wburl.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/url_rewriter.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/rewrite/wburl.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/autoFetchWorker.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/calendar-icon.png +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/calendar.svg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/css/base.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/css/bootstrap.min.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/css/font-awesome.min.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/css/query.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/flowplayer/flowplayer-3.2.18.swf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/flowplayer/flowplayer.audio-3.2.11.swf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/flowplayer/flowplayer.controls-3.2.16.swf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/flowplayer/flowplayer.pseudostreaming-3.2.13.swf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/flowplayer/toolbox.flashembed.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-brands-400.eot +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-brands-400.svg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-brands-400.ttf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-brands-400.woff +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-brands-400.woff2 +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-regular-400.eot +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-regular-400.svg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-regular-400.ttf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-regular-400.woff +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-regular-400.woff2 +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-solid-900.eot +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-solid-900.svg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-solid-900.ttf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-solid-900.woff +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/font-awesome/fa-solid-900.woff2 +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/glyphicons-halflings-regular.eot +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/glyphicons-halflings-regular.svg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/glyphicons-halflings-regular.woff +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/js/bootstrap.min.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/js/jquery-latest.min.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/js/url-polyfill.min.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/loading-spinner/loading-spinner.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/loading-spinner/test.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/pywb-logo-sm.png +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/pywb-logo.png +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/queryWorker.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/scroll-webkit.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/timeline-icon.png +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/transclusions.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/vidrw.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/vue_banner.css +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/wb_frame.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/static/zoom-out-icon-333316.png +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/banner.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/base.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/bootstrap_jquery.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/collinfo.json +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/custom_banner.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/error.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/footer.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/head.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/head_insert.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/header.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/index.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/not_found.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/proxy_cert_download.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/proxy_select.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/templates/vue_loc.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/README.md +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/binsearch.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/canonicalize.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/format.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/geventserver.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/io.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/loaders.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/memento.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/merge.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/test/test_binsearch.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/test/test_loaders.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/utils/wbexception.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/vueui/src/cdx-simulator/README.md +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/access_checker.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/amf.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/basewarcserver.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/handlers.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/http.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/aggregator.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/cdxobject.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/cdxops.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/indexsource.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/query.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_cdxobject.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_cdxops.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_dir_agg.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_indexsource.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_lazy_ops.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_memento_agg.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_redis_agg.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_timeouts.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_xmlquery_indexsource.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/test/test_zipnum.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/index/zipnum.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/inputrequest.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/blockrecordloader.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/pathresolvers.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/resolvingloader.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/responseloader.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/test/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/test/test_loading.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/resource/test/test_pathresolvers.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/live.ini +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_access.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_amf.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_inputreq.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_upstream.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_warcserver.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/test_warcserver_config.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/test/testutils.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/upstreamindexsource.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb/warcserver/warcserver.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/dependency_links.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/entry_points.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/not-zip-safe +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/requires.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/pywb.egg-info/top_level.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/requirements.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/run-gunicorn.sh +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/run-tests.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/run-uwsgi.sh +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/allows.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/blocks.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/list1.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/list2.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/pywb.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/access/single-line.aclj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/bad.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/dupes.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/example-arc-test.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/example-extra.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/example.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/httpbin-resource.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/iana.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/missing-status-text.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/post-test.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdx/url-agnost-example.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/dupes.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/example-no-digest.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/example.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/example2.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/iana.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/post-test.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/cdxj/url-agnost-example.cdxj +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/non-surt-cdx/example-non-surt.cdx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/link_headers.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/pathindex.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/quickfox_repeated.compressed +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample_dash.mpd +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample_hls.m3u8 +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample_no_head.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample_no_head_2.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/sample_unclosed_script.html +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/text_content/toptest.js +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/bad.arc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/dupes.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-bad.warc.gz.bad +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-extra.warc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-url-agnostic-orig.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-url-agnostic-revisit.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-wget-1-14.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example-wpull.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example.arc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example.arc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example.warc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/example2.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/httpbin-resource.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/iana.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/missing-status-text.warc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/warcs/post-test.warc.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/zipcdx/zipnum-bad.idx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/zipcdx/zipnum-bad.loc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/zipcdx/zipnum-sample.cdx.gz +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/zipcdx/zipnum-sample.idx +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/sample_archive/zipcdx/zipnum-sample.loc +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/setup.cfg +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/setup.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/test_requirements.txt +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/__init__.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/base_config_test.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_access.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_cert_req.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_loc.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_record.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_record_dedup.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_redirect_classic.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/config_test_root_coll.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/i18n-data/l337/LC_MESSAGES/messages.po +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/memento_fixture.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_acl.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_acl_manager.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_auto_colls.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_cdx_server_app.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_cert_req.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_cli.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_embargo.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_force_https.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_integration.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_locales.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_memento.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_prefer_header.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_prefixed_deploy.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_proxy.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_record_dedup.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_record_replay.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_redirect_classic.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_redirect_revisits.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_redirects.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_root_coll.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests/test_zipnum_auto_dir.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/fixture.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/live.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/perms_fixture.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/server_mock.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/server_thread.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_cdxserver.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_frames.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_memento.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_proxy_http_cookie.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_proxy_https_cookie.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_proxy_ip.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_proxy_ip_redis.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_proxy_no_banner.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_config_root_coll.yaml +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_live_proxy.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_memento.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_perms.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_perms_app.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_http_auth.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_http_cookie.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_http_ip.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_http_ip_redis.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_http_no_banner.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_proxy_https_cookie.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/tests_disabled/test_rewrite_content.py +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/update-tag.sh +0 -0
- {pywb-2.7.2 → pywb-2.7.4}/uwsgi.ini +0 -0
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
pywb 2.7.3 changelist
|
|
2
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
3
|
+
|
|
4
|
+
* issue_792 catch warcio exception by @oskarhek in https://github.com/webrecorder/pywb/pull/793
|
|
5
|
+
* Add ui.logo_home_url as config.yaml option by @tw4l in https://github.com/webrecorder/pywb/pull/791
|
|
6
|
+
* [#795] Show error when adding duplicate warc file by @kuechensofa in https://github.com/webrecorder/pywb/pull/797
|
|
7
|
+
* Make search page more intuitive by @krakan in https://github.com/webrecorder/pywb/pull/794
|
|
8
|
+
* Modify search template buttons by @tw4l in https://github.com/webrecorder/pywb/pull/801
|
|
9
|
+
* [#804] Use default_locale when lang not set in the request by @krakan in https://github.com/webrecorder/pywb/pull/805
|
|
10
|
+
* feat: regex substitution on surt rules match by @mijho in https://github.com/webrecorder/pywb/pull/780
|
|
11
|
+
* Bump minimatch from 3.0.4 to 3.1.2 in /pywb/vueui by @dependabot in https://github.com/webrecorder/pywb/pull/777
|
|
12
|
+
* Bump decode-uri-component from 0.2.0 to 0.2.2 in /pywb/vueui by @dependabot in https://github.com/webrecorder/pywb/pull/786
|
|
13
|
+
* rules: add 'debugNoBatch' rewrite for fb and insta by @ikreymer in https://github.com/webrecorder/pywb/pull/806
|
|
14
|
+
* Vue main order by @tw4l in https://github.com/webrecorder/pywb/pull/809
|
|
15
|
+
* wombat: bump to 3.4.4 https://github.com/webrecorder/pywb/pull/808
|
|
16
|
+
|
|
1
17
|
pywb 2.7.2 changelist
|
|
2
18
|
~~~~~~~~~~~~~~~~~~~~~
|
|
3
19
|
|
|
@@ -53,6 +53,21 @@ For example, to use the file ``./static/my-logo.png`` as the logo, set:
|
|
|
53
53
|
logo: my-logo.png
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
Logo URL
|
|
57
|
+
^^^^^^^^
|
|
58
|
+
|
|
59
|
+
It is possible to configure the logo to link to any URL by setting ``ui.logo_home_url`` in ``config.yml`` to the URL of your choice.
|
|
60
|
+
|
|
61
|
+
If omitted, the logo will not link to any page.
|
|
62
|
+
|
|
63
|
+
For example, to have the logo redirect to ``https://example.com/web-archive-landing-page``, set:
|
|
64
|
+
|
|
65
|
+
.. code:: yaml
|
|
66
|
+
|
|
67
|
+
ui:
|
|
68
|
+
logo_home_url: https://example.com/web-archive-landing-page
|
|
69
|
+
|
|
70
|
+
|
|
56
71
|
Banner Colors
|
|
57
72
|
^^^^^^^^^^^^^
|
|
58
73
|
|
|
@@ -108,6 +108,7 @@ class FrontEndApp(object):
|
|
|
108
108
|
self.templates_dir = config.get('templates_dir', 'templates')
|
|
109
109
|
self.static_dir = config.get('static_dir', 'static')
|
|
110
110
|
self.static_prefix = config.get('static_prefix', 'static')
|
|
111
|
+
self.default_locale = config.get('default_locale', '')
|
|
111
112
|
|
|
112
113
|
metadata_templ = os.path.join(self.warcserver.root_dir, '{coll}', 'metadata.yaml')
|
|
113
114
|
self.metadata_cache = MetadataCache(metadata_templ)
|
|
@@ -662,7 +663,7 @@ class FrontEndApp(object):
|
|
|
662
663
|
# store original script_name (original prefix) before modifications are made
|
|
663
664
|
environ['ORIG_SCRIPT_NAME'] = environ.get('SCRIPT_NAME')
|
|
664
665
|
|
|
665
|
-
lang = args.pop('lang',
|
|
666
|
+
lang = args.pop('lang', self.default_locale)
|
|
666
667
|
if lang:
|
|
667
668
|
pop_path_info(environ)
|
|
668
669
|
environ['pywb_lang'] = lang
|
|
@@ -248,8 +248,8 @@ class RewriterApp(object):
|
|
|
248
248
|
range_start = start
|
|
249
249
|
range_end = end
|
|
250
250
|
|
|
251
|
-
# if start with 0, load from upstream
|
|
252
|
-
if start == 0:
|
|
251
|
+
# if start with 0 and no end, load from upstream
|
|
252
|
+
if start == 0 and not end:
|
|
253
253
|
del inputreq.env['HTTP_RANGE']
|
|
254
254
|
else:
|
|
255
255
|
skip_record = True
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
git_hash = "b7ea9af8"
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import logging
|
|
1
2
|
import os
|
|
2
3
|
import sys
|
|
4
|
+
import traceback
|
|
5
|
+
|
|
6
|
+
import warcio
|
|
3
7
|
|
|
4
8
|
# Use ujson if available
|
|
5
9
|
try:
|
|
@@ -298,8 +302,11 @@ def write_multi_cdx_index(output, inputs, **options):
|
|
|
298
302
|
with open(fullpath, 'rb') as infile:
|
|
299
303
|
entry_iter = record_iter(infile)
|
|
300
304
|
|
|
301
|
-
|
|
302
|
-
|
|
305
|
+
try:
|
|
306
|
+
for entry in entry_iter:
|
|
307
|
+
writer.write(entry, filename)
|
|
308
|
+
except warcio.exceptions.ArchiveLoadFailed:
|
|
309
|
+
logging.error('Error while indexing file %s, %s',filename,traceback.format_exc())
|
|
303
310
|
|
|
304
311
|
return writer
|
|
305
312
|
|
|
@@ -121,14 +121,24 @@ directory structure expected by pywb
|
|
|
121
121
|
format(self.archive_dir))
|
|
122
122
|
|
|
123
123
|
full_paths = []
|
|
124
|
+
duplicate_warcs = []
|
|
124
125
|
for filename in warcs:
|
|
125
126
|
filename = os.path.abspath(filename)
|
|
127
|
+
|
|
128
|
+
# don't overwrite existing warcs with duplicate names
|
|
129
|
+
if os.path.exists(os.path.join(self.archive_dir, os.path.basename(filename))):
|
|
130
|
+
duplicate_warcs.append(filename)
|
|
131
|
+
continue
|
|
132
|
+
|
|
126
133
|
shutil.copy2(filename, self.archive_dir)
|
|
127
134
|
full_paths.append(os.path.join(self.archive_dir, filename))
|
|
128
135
|
logging.info('Copied ' + filename + ' to ' + self.archive_dir)
|
|
129
136
|
|
|
130
137
|
self._index_merge_warcs(full_paths, self.DEF_INDEX_FILE)
|
|
131
138
|
|
|
139
|
+
if duplicate_warcs:
|
|
140
|
+
logging.warning(f'Warcs {", ".join(duplicate_warcs)} weren\'t added because of duplicate names.')
|
|
141
|
+
|
|
132
142
|
def reindex(self):
|
|
133
143
|
cdx_file = os.path.join(self.indexes_dir, self.DEF_INDEX_FILE)
|
|
134
144
|
logging.info('Indexing ' + self.archive_dir + ' to ' + cdx_file)
|
|
@@ -110,7 +110,7 @@ rules:
|
|
|
110
110
|
|
|
111
111
|
fuzzy_lookup:
|
|
112
112
|
match: '("(?:cursor|cursorindex)":["\d\w]+)'
|
|
113
|
-
|
|
113
|
+
re_type: findall
|
|
114
114
|
|
|
115
115
|
- url_prefix: 'com,facebook)/ajax/pagelet/generic.php/profiletimeline'
|
|
116
116
|
fuzzy_lookup: 'com,facebook\)/.*[?&](__adt=[^&]+).*[&]data=(?:.*?(?:[&]|(profile_id|pagelet_token)[^,]+))'
|
|
@@ -175,7 +175,7 @@ rules:
|
|
|
175
175
|
|
|
176
176
|
fuzzy_lookup:
|
|
177
177
|
match: '("q[\d]+":|after:\\"[^"]+)'
|
|
178
|
-
|
|
178
|
+
re_type: findall
|
|
179
179
|
|
|
180
180
|
- url_prefix: 'com,facebook)/pages_reaction_units/more'
|
|
181
181
|
|
|
@@ -196,6 +196,9 @@ rules:
|
|
|
196
196
|
group: 1
|
|
197
197
|
function: 'pywb.rewrite.rewrite_dash:rewrite_fb_dash'
|
|
198
198
|
|
|
199
|
+
- match: '"debugNoBatching\s?":(?:false|0)'
|
|
200
|
+
replace: '"debugNoBatching":true'
|
|
201
|
+
|
|
199
202
|
parse_comments: true
|
|
200
203
|
|
|
201
204
|
- url_prefix: 'com,facebook'
|
|
@@ -227,6 +230,9 @@ rules:
|
|
|
227
230
|
- match: '"is_dash_eligible":true'
|
|
228
231
|
replace: '"is_dash_eligible":false'
|
|
229
232
|
|
|
233
|
+
- match: '"debugNoBatching\s?":(?:false|0)'
|
|
234
|
+
replace: '"debugNoBatching":true'
|
|
235
|
+
|
|
230
236
|
fuzzy_lookup: '()'
|
|
231
237
|
|
|
232
238
|
|
|
@@ -538,6 +544,12 @@ rules:
|
|
|
538
544
|
rewrite:
|
|
539
545
|
js_rewrite_location: urls
|
|
540
546
|
|
|
547
|
+
- url_prefix: 'com,example)/matched'
|
|
548
|
+
fuzzy_lookup:
|
|
549
|
+
re_type: sub
|
|
550
|
+
match: 'matched'
|
|
551
|
+
replace: 'replaced'
|
|
552
|
+
|
|
541
553
|
# all domain rules -- fallback to this dataset
|
|
542
554
|
#=================================================================
|
|
543
555
|
# Applies to all urls -- should be last
|
|
@@ -956,11 +956,11 @@ RenderCalendar.prototype.niceDateRange = function() {
|
|
|
956
956
|
var from = this.queryInfo.searchParams.from;
|
|
957
957
|
var to = this.queryInfo.searchParams.to;
|
|
958
958
|
if (from && to) {
|
|
959
|
-
return
|
|
959
|
+
return [text.from, from, text.until, to].join(' ');
|
|
960
960
|
} else if (from) {
|
|
961
|
-
return
|
|
961
|
+
return [text.from, from, text.until, text.present].join(' ');
|
|
962
962
|
}
|
|
963
|
-
return
|
|
963
|
+
return [text.from, text.earliest, text.until, to].join(' ');
|
|
964
964
|
};
|
|
965
965
|
|
|
966
966
|
/**
|
|
@@ -14,17 +14,34 @@ var elemIds = {
|
|
|
14
14
|
},
|
|
15
15
|
dateTime: {
|
|
16
16
|
from: 'dt-from',
|
|
17
|
+
fromTime: 'ts-from',
|
|
17
18
|
fromBad: 'dt-from-bad',
|
|
18
19
|
to: 'dt-to',
|
|
20
|
+
toTime: 'ts-to',
|
|
19
21
|
toBad: 'dt-to-bad'
|
|
20
22
|
},
|
|
21
23
|
match: 'match-type-select',
|
|
22
24
|
url: 'search-url',
|
|
23
25
|
form: 'search-form',
|
|
24
26
|
resultsNewWindow: 'open-results-new-window',
|
|
25
|
-
advancedOptions: 'advanced-options'
|
|
27
|
+
advancedOptions: 'advanced-options',
|
|
28
|
+
resetSearchForm: 'reset-search-form',
|
|
26
29
|
};
|
|
27
30
|
|
|
31
|
+
function resetSearchForm(event) {
|
|
32
|
+
for (const field of [
|
|
33
|
+
elemIds.url,
|
|
34
|
+
elemIds.match,
|
|
35
|
+
elemIds.dateTime.from,
|
|
36
|
+
elemIds.dateTime.fromTime,
|
|
37
|
+
elemIds.dateTime.to,
|
|
38
|
+
elemIds.dateTime.toTime,
|
|
39
|
+
]) {
|
|
40
|
+
document.getElementById(field).value = '';
|
|
41
|
+
}
|
|
42
|
+
clearFilters(event);
|
|
43
|
+
}
|
|
44
|
+
|
|
28
45
|
function makeCheckDateRangeChecker(dtInputId, dtBadNotice) {
|
|
29
46
|
var dtInput = document.getElementById(dtInputId);
|
|
30
47
|
dtInput.onblur = function() {
|
|
@@ -138,11 +155,13 @@ function performQuery(url) {
|
|
|
138
155
|
}
|
|
139
156
|
var fromT = document.getElementById(elemIds.dateTime.from).value;
|
|
140
157
|
if (fromT) {
|
|
141
|
-
|
|
158
|
+
fromT += document.getElementById(elemIds.dateTime.fromTime).value;
|
|
159
|
+
query.push('from=' + fromT.replace(/[^0-9]/g, ''));
|
|
142
160
|
}
|
|
143
161
|
var toT = document.getElementById(elemIds.dateTime.to).value;
|
|
144
162
|
if (toT) {
|
|
145
|
-
|
|
163
|
+
toT += document.getElementById(elemIds.dateTime.toTime).value;
|
|
164
|
+
query.push('to=' + toT.replace(/[^0-9]/g, ''));
|
|
146
165
|
}
|
|
147
166
|
var builtQuery = query.join('&');
|
|
148
167
|
if (document.getElementById(elemIds.resultsNewWindow).checked) {
|
|
@@ -188,6 +207,7 @@ $(document).ready(function() {
|
|
|
188
207
|
elemIds.dateTime.to,
|
|
189
208
|
document.getElementById(elemIds.dateTime.toBad)
|
|
190
209
|
);
|
|
210
|
+
document.getElementById(elemIds.resetSearchForm).onclick = resetSearchForm;
|
|
191
211
|
document.getElementById(elemIds.filtering.add).onclick = addFilter;
|
|
192
212
|
document.getElementById(elemIds.filtering.clear).onclick = clearFilters;
|
|
193
213
|
var searchURLInput = document.getElementById(elemIds.url);
|
|
@@ -195,9 +215,6 @@ $(document).ready(function() {
|
|
|
195
215
|
form.addEventListener('submit', function(event) {
|
|
196
216
|
submitForm(event, form, searchURLInput);
|
|
197
217
|
});
|
|
198
|
-
document.getElementById(elemIds.advancedOptions).onclick = function() {
|
|
199
|
-
validateFields(form);
|
|
200
|
-
}
|
|
201
218
|
var filteringExpression = document.getElementById(elemIds.filtering.expression);
|
|
202
219
|
filteringExpression.addEventListener("keypress", function(event) {
|
|
203
220
|
if (event.key === "Enter") {
|