This commit is contained in:
Teja 2015-08-31 20:10:51 +02:00
parent ed82f46f57
commit 9ab6650b07

View file

@ -72,281 +72,8 @@ BRANCH = versions['branch'] if 'branch' in versions else None
DISPLAY_VERSION = "%s (%s branch)" % (VERSION, BRANCH) if BRANCH else VERSION
del versions
#<<<<<<< HEAD ### moved to views.py
#
#def get_available_locale_identifiers(locales):
# result = set()
#
# # add available translations
# for locale in locales:
# result.add(locale.language)
# if locale.territory:
# # if a territory is specified, add that too
# result.add("%s_%s" % (locale.language, locale.territory))
#
# return result
#
#
#LOCALES = [Locale.parse("en")] + babel.list_translations()
#LANGUAGES = get_available_locale_identifiers(LOCALES)
#
#
#@app.before_request
#def before_request():
# g.locale = get_locale()
#
#
#@babel.localeselector
#def get_locale():
# if "l10n" in request.values:
# return Locale.negotiate([request.values["l10n"]], LANGUAGES)
# return request.accept_languages.best_match(LANGUAGES)
#
#
#@app.route("/")
#def index():
#
#
#
# #~~ extract data from asset plugins
#
# asset_plugins = pluginManager.get_implementations(octoprint.plugin.AssetPlugin)
# asset_plugin_urls = dict()
# for name, implementation in asset_plugins.items():
# asset_plugin_urls[name] = implementation.get_assets()
#
# #~~ extract data from template plugins
#
# template_plugins = pluginManager.get_implementations(octoprint.plugin.TemplatePlugin)
# template_plugin_names = list()
#
#
#
# # rules for transforming template configs to template entries
# rules = dict(
# navbar=dict(div=lambda x: "navbar_plugin_" + x, template=lambda x: x + "_navbar.jinja2", to_entry=lambda data: data),
# sidebar=dict(div=lambda x: "sidebar_plugin_" + x, template=lambda x: x + "_sidebar.jinja2", to_entry=lambda data: (data["name"], data)),
# tab=dict(div=lambda x: "tab_plugin_" + x, template=lambda x: x + "_tab.jinja2", to_entry=lambda data: (data["name"], data)),
# settings=dict(div=lambda x: "settings_plugin_" + x, template=lambda x: x + "_settings.jinja2", to_entry=lambda data: (data["name"], data)),
# generic=dict(template=lambda x: x + ".jinja2", to_entry=lambda data: data)
# )
#
# plugin_vars = dict()
# plugin_includes_navbar = []
# plugin_includes_sidebar = []
# plugin_includes_tabs = []
# plugin_includes_settings = []
# plugin_includes_generic = []
# plugin_names = template_plugins.keys()
# for name, implementation in template_plugins.items():
# vars = implementation.get_template_vars()
# if not isinstance(vars, dict):
# vars = dict()
#
# for var_name, var_value in vars.items():
# plugin_vars["plugin_" + name + "_" + var_name] = var_value
#
# configs = implementation.get_template_configs()
# if not isinstance(configs, (list, tuple)):
# configs = []
#
# includes = _process_template_configs(name, implementation, configs, rules)
#
# plugin_includes_navbar += includes["navbar"]
# plugin_includes_sidebar += includes["sidebar"]
# plugin_includes_tabs += includes["tab"]
# plugin_includes_settings += includes["settings"]
# plugin_includes_generic += includes["generic"]
#
# #~~ navbar
#
# navbar_entries = plugin_includes_navbar + [
# dict(template="navbar/settings.jinja2", _div="navbar_settings", styles=["display: none"], data_bind="visible: loginState.isAdmin", custom_bindings=False),
# dict(template="navbar/systemmenu.jinja2", _div="navbar_systemmenu", styles=["display: none"], classes=["dropdown"], data_bind="visible: loginState.isAdmin", custom_bindings=False),
# dict(template="navbar/login.jinja2", _div="navbar_login", classes=["dropdown"], custom_bindings=False)
# ]
#
# #~~ sidebar
#
# sidebar_entries = [
# (gettext("Connection"), dict(template="sidebar/connection.jinja2", _div="connection", icon="signal", styles_wrapper=["display: none"], data_bind="visible: loginState.isAdmin")),
# (gettext("State"), dict(template="sidebar/state.jinja2", _div="state", icon="info-sign")),
# (gettext("Files"), dict(template="sidebar/files.jinja2", _div="files", icon="list", classes_content=["overflow_visible"], header_addon="sidebar/files_header.jinja2"))
# ] + plugin_includes_sidebar
#
# #~~ tabs
#
# tab_entries = [
# (gettext("Temperature"), dict(template="tabs/temperature.jinja2", _div="temp")),
# (gettext("Control"), dict(template="tabs/control.jinja2", _div="control")),
# (gettext("GCode Viewer"), dict(template="tabs/gcodeviewer.jinja2", _div="gcode")),
# (gettext("Terminal"), dict(template="tabs/terminal.jinja2", _div="term")),
# (gettext("Timelapse"), dict(template="tabs/timelapse.jinja2", _div="timelapse"))
# ] + plugin_includes_tabs
#
# #~~ settings dialog
#
# settings_entries = [
## (gettext("Printer"), None),
# (gettext("Serial Connection"), dict(template="dialogs/settings/serialconnection.jinja2", _div="settings_serialConnection", custom_bindings=False)),
## (gettext("Machine Profiles"), dict(template="dialogs/settings/printerprofiles.jinja2", _div="settings_printerProfiles", custom_bindings=False)),
## (gettext("Temperatures"), dict(template="dialogs/settings/temperatures.jinja2", _div="settings_temperature", custom_bindings=False)),
# (gettext("Terminal Filters"), dict(template="dialogs/settings/terminalfilters.jinja2", _div="settings_terminalFilters", custom_bindings=False)),
## (gettext("Features"), None),
# (gettext("Features"), dict(template="dialogs/settings/features.jinja2", _div="settings_features", custom_bindings=False)),
# (gettext("Webcam"), dict(template="dialogs/settings/webcam.jinja2", _div="settings_webcam", custom_bindings=False)),
# (gettext("Access Control"), dict(template="dialogs/settings/accesscontrol.jinja2", _div="settings_users", custom_bindings=False)),
## (gettext("API"), dict(template="dialogs/settings/api.jinja2", _div="settings_api", custom_bindings=False)),
## (gettext("OctoPrint"), None),
## (gettext("Folders"), dict(template="dialogs/settings/folders.jinja2", _div="settings_folders", custom_bindings=False)),
## (gettext("Appearance"), dict(template="dialogs/settings/appearance.jinja2", _div="settings_appearance", custom_bindings=False)),
# (gettext("Logs"), dict(template="dialogs/settings/logs.jinja2", _div="settings_logs"))
# ]
# if len(plugin_includes_settings):
# settings_entries.append((gettext("Plugins"), None))
# settings_entries.extend(sorted(plugin_includes_settings, key=lambda x: x[0]))
#
# #~~ prepare full set of template vars for rendering
#
# render_kwargs = dict(
# webcamStream=settings().get(["webcam", "stream"]),
# hasZAxis=settings().get(["feature", "zaxis"]),
# enableTimelapse=(settings().get(["webcam", "snapshot"]) is not None and settings().get(["webcam", "ffmpeg"]) is not None),
# enableGCodeVisualizer=settings().get(["gcodeViewer", "enabled"]),
# enableTemperatureGraph=settings().get(["feature", "temperatureGraph"]),
# enableSystemMenu=settings().get(["system"]) is not None and settings().get(["system", "actions"]) is not None and len(settings().get(["system", "actions"])) > 0,
# enableAccessControl=userManager is not None,
# enableSdSupport=settings().get(["feature", "sdSupport"]),
# firstRun=settings().getBoolean(["server", "firstRun"]) and (userManager is None or not userManager.hasBeenCustomized()),
# debug=debug,
# version=VERSION,
# display_version=DISPLAY_VERSION,
# stylesheet=settings().get(["devel", "stylesheet"]),
# gcodeMobileThreshold=settings().get(["gcodeViewer", "mobileSizeThreshold"]),
# gcodeThreshold=settings().get(["gcodeViewer", "sizeThreshold"]),
# uiApiKey=UI_API_KEY,
# navbarEntries=navbar_entries,
# sidebarEntries=sidebar_entries,
# tabEntries=tab_entries,
# settingsEntries=settings_entries,
# genericEntries=plugin_includes_generic,
# pluginNames=plugin_names,
# assetPlugins=asset_plugin_urls,
# )
# render_kwargs.update(plugin_vars)
#
# #~~ render!
# root_template = "index.jinja2"
#
# for name in template_plugins.items():
# template_plugin_names.append(name[0])
# plugin_main_template = name[1].get_template_folder() + "/override_index.jinja2"
# if (os.path.isfile(plugin_main_template)):
# root_template = "override_index.jinja2"
#
# return render_template(
# root_template,
# **render_kwargs
# )
#
#
#def _process_template_configs(name, implementation, configs, rules):
# from jinja2.exceptions import TemplateNotFound
#
# counters = dict(
# navbar=1,
# sidebar=1,
# tab=1,
# settings=1,
# generic=1
# )
# includes = defaultdict(list)
#
# for config in configs:
# if not isinstance(config, dict):
# continue
# if not "type" in config:
# continue
#
# template_type = config["type"]
# del config["type"]
#
# if not template_type in rules:
# continue
# rule = rules[template_type]
# data = _process_template_config(name, implementation, rule, config=config, counter=counters[template_type])
# if data is None:
# continue
#
# includes[template_type].append(rule["to_entry"](data))
# counters[template_type] += 1
#
# for template_type in rules:
# if len(includes[template_type]) == 0:
# # if no template of that type was added by the config, we'll try to use the default template name
# rule = rules[template_type]
# data = _process_template_config(name, implementation, rule)
# if data is not None:
# try:
# app.jinja_env.get_or_select_template(data["template"])
# except TemplateNotFound:
# pass
# else:
# includes[template_type].append(rule["to_entry"](data))
#
# return includes
#
#def _process_template_config(name, implementation, rule, config=None, counter=1):
# if "mandatory" in rule:
# for mandatory in rule["mandatory"]:
# if not mandatory in config:
# return None
#
# if config is None:
# config = dict()
# data = dict(config)
#
# if "div" in rule:
# data["_div"] = rule["div"](name)
# if "suffix" in data:
# data["_div"] += "_" + data["suffix"]
# del data["suffix"]
# elif counter > 1:
# data["_div"] += "_%d" % counter
# if not "template" in data:
# data["template"] = rule["template"](name)
# if not "name" in data:
# data["name"] = implementation._plugin_name
# if not "custom_bindings" in data or data["custom_bindings"]:
# data_bind = "allowBindings: true"
# if "data_bind" in data:
# data_bind = data_bind + ", " + data["data_bind"]
# data["data_bind"] = data_bind
#
# return data
#
#@app.route("/robots.txt")
#def robotsTxt():
# return send_from_directory(app.static_folder, "robots.txt")
#
#
#@app.route("/plugin_assets/<string:name>/<path:filename>")
#def plugin_assets(name, filename):
# asset_plugins = pluginManager.get_implementations(octoprint.plugin.AssetPlugin)
#
# if not name in asset_plugins:
# return make_response("Asset not found", 404)
# asset_plugin = asset_plugins[name]
# asset_folder = asset_plugin.get_asset_folder()
# if asset_folder is None:
# return make_response("Asset not found", 404)
#
# return send_from_directory(asset_folder, filename)
#
#=======
LOCALES = []
LANGUAGES = set()
#>>>>>>> upstream/maintenance
@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
@ -606,7 +333,7 @@ class Server():
(r"/downloads/files/local/(.*)", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=True, path_validation=util.tornado.path_validation_factory(lambda path: not os.path.basename(path).startswith("."), status_code=404))),
(r"/downloads/logs/([^/]*)", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("logs"), as_attachment=True, access_validation=util.tornado.access_validation_factory(app, loginManager, util.flask.admin_validator))),
# serve instead of downloads for preview // as_attachment=False
(r"/serve/files/local/([^/]*\.(gco|gcode|g|nc|svg|jpg|jpeg|png|gif|bmp|pcx|webp))", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=False)),
(r"/serve/files/local/([^/]*\.((?i)gco|gcode|g|nc|svg|jpg|jpeg|png|gif|bmp|pcx|webp))", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=False)),
# camera snapshot
(r"/downloads/camera/current", util.tornado.UrlForwardHandler, dict(url=s.get(["webcam", "snapshot"]), as_attachment=True, access_validation=util.tornado.access_validation_factory(app, loginManager, util.flask.user_validator))),
# generated webassets
@ -636,7 +363,6 @@ class Server():
server_routes.append((r".*", util.tornado.UploadStorageFallbackHandler, dict(fallback=util.tornado.WsgiInputContainer(app.wsgi_app), file_prefix="octoprint-file-upload-", file_suffix=".tmp", suffixes=upload_suffixes)))
self._tornado_app = Application(server_routes)
#>>>>>>> upstream/maintenance
max_body_sizes = [
("POST", r"/api/files/([^/]*)", s.getInt(["server", "uploads", "maxSize"])),
("POST", r"/api/languages", 5 * 1024 * 1024)