mirror of
https://github.com/searxng/searxng.git
synced 2025-08-03 10:32:21 +02:00
Various change on PR 930
This commit is contained in:
parent
59100e8525
commit
1157462ff9
9 changed files with 82 additions and 85 deletions
|
@ -8,24 +8,26 @@
|
|||
import sys
|
||||
import os.path
|
||||
import time
|
||||
from contextlib import contextmanager
|
||||
from searx import settings, get_setting
|
||||
from searx.infopage import InfoPageSet, InfoPage
|
||||
|
||||
|
||||
_doc_user = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'docs', 'user'))
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
DOC = None
|
||||
base_url = get_setting('server.base_url', None)
|
||||
|
||||
if base_url:
|
||||
DOC = _render_all_with_flask_ctx(base_url)
|
||||
infopageset_ctx = _instance_infosetset_ctx(base_url)
|
||||
else:
|
||||
DOC = _render_all()
|
||||
for pagename, page in DOC.all_pages('en'):
|
||||
fname = os.path.join(_doc_user, os.path.basename(page.fname))
|
||||
with open(fname, 'w') as f:
|
||||
f.write(page.content)
|
||||
infopageset_ctx = _offline_infosetset_ctx()
|
||||
|
||||
with infopageset_ctx as infopageset:
|
||||
for _, page in infopageset.all_pages('en'):
|
||||
fname = os.path.join(_doc_user, os.path.basename(page.fname))
|
||||
with open(fname, 'w') as f:
|
||||
f.write(page.content)
|
||||
|
||||
|
||||
class OfflinePage(InfoPage):
|
||||
|
@ -41,21 +43,17 @@ class OfflinePage(InfoPage):
|
|||
return ctx
|
||||
|
||||
|
||||
def _render_all():
|
||||
DOC = InfoPageSet(OfflinePage)
|
||||
for pagename, page in DOC.all_pages('en'):
|
||||
page.render()
|
||||
return DOC
|
||||
@contextmanager
|
||||
def _offline_infosetset_ctx():
|
||||
yield InfoPageSet(OfflinePage)
|
||||
|
||||
|
||||
def _render_all_with_flask_ctx(base_url):
|
||||
|
||||
DOC = InfoPageSet(InfoPage, base_url)
|
||||
|
||||
@contextmanager
|
||||
def _instance_infosetset_ctx(base_url):
|
||||
# The url_for functions in the jinja templates need all routes to be
|
||||
# registered in the Flask app.
|
||||
|
||||
settings['server']['secret_key'] = "x"
|
||||
settings['server']['secret_key'] = ''
|
||||
from searx.webapp import app
|
||||
|
||||
# Specify base_url so that url_for() works for base_urls. If base_url is
|
||||
|
@ -63,8 +61,7 @@ def _render_all_with_flask_ctx(base_url):
|
|||
# generics (see flaskfix.py).
|
||||
|
||||
with app.test_request_context(base_url=base_url):
|
||||
for pagename, page in DOC.all_pages('en'):
|
||||
page.render()
|
||||
yield InfoPageSet()
|
||||
|
||||
# The searx.webapp import from above fires some HTTP requests, thats
|
||||
# why we get a RuntimeError::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue