@@ -958,34 +958,47 @@ def clear_cookies():
958958
959959@app.route('/config')
960960def config():
961− return jsonify({'categories': list(categories.keys()),
962− 'engines': [{'name': name,
963− 'categories': engine.categories,
964− 'shortcut': engine.shortcut,
965− 'enabled': not engine.disabled,
966− 'paging': engine.paging,
967− 'language_support': engine.language_support,
968− 'supported_languages':
969− list(engine.supported_languages.keys())
970− if isinstance(engine.supported_languages, dict)
971− else engine.supported_languages,
972− 'safesearch': engine.safesearch,
973− 'time_range_support': engine.time_range_support,
974− 'timeout': engine.timeout}
975− for name, engine in engines.items() if request.preferences.validate_token(engine)],
976− 'plugins': [{'name': plugin.name,
977− 'enabled': plugin.default_on}
978− for plugin in plugins],
979− 'instance_name': settings['general']['instance_name'],
980− 'locales': settings['locales'],
981− 'default_locale': settings['ui']['default_locale'],
982− 'autocomplete': settings['search']['autocomplete'],
983− 'safe_search': settings['search']['safe_search'],
984− 'default_theme': settings['ui']['default_theme'],
985− 'version': VERSION_STRING,
986− 'doi_resolvers': [r for r in settings['doi_resolvers']],
987− 'default_doi_resolver': settings['default_doi_resolver'],
988− })
961+ """Return configuration in JSON format."""
962+ _engines = []
963+ for name, engine in engines.items():
964+ if not request.preferences.validate_token(engine):
965+ continue
966+
967+ supported_languages = engine.supported_languages
968+ if isinstance(engine.supported_languages, dict):
969+ supported_languages = list(engine.supported_languages.keys())
970+
971+ _engines.append({
972+ 'name': name,
973+ 'categories': engine.categories,
974+ 'shortcut': engine.shortcut,
975+ 'enabled': not engine.disabled,
976+ 'paging': engine.paging,
977+ 'language_support': engine.language_support,
978+ 'supported_languages': supported_languages,
979+ 'safesearch': engine.safesearch,
980+ 'time_range_support': engine.time_range_support,
981+ 'timeout': engine.timeout
982+ })
983+
984+ _plugins = []
985+ for _ in plugins:
986+ _plugins.append({'name': _.name, 'enabled': _.default_on})
987+
988+ return jsonify({
989+ 'categories': list(categories.keys()),
990+ 'engines': _engines,
991+ 'plugins': _plugins,
992+ 'instance_name': settings['general']['instance_name'],
993+ 'locales': settings['locales'],
994+ 'default_locale': settings['ui']['default_locale'],
995+ 'autocomplete': settings['search']['autocomplete'],
996+ 'safe_search': settings['search']['safe_search'],
997+ 'default_theme': settings['ui']['default_theme'],
998+ 'version': VERSION_STRING,
999+ 'doi_resolvers': [r for r in settings['doi_resolvers']],
1000+ 'default_doi_resolver': settings['default_doi_resolver'],
1001+ })
9891002
9901003
9911004@app.errorhandler(404)