From 9ab6650b07c882ee4f675df531e1ed9a997d07d5 Mon Sep 17 00:00:00 2001 From: Teja Date: Mon, 31 Aug 2015 20:10:51 +0200 Subject: [PATCH] fixes #43 --- src/octoprint/server/__init__.py | 276 +------------------------------ 1 file changed, 1 insertion(+), 275 deletions(-) diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 7ba71f6e..dbaca86b 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -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//") -#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)