diff --git a/src/octoprint/plugin/__init__.py b/src/octoprint/plugin/__init__.py index 4dde566f..ce7224b3 100644 --- a/src/octoprint/plugin/__init__.py +++ b/src/octoprint/plugin/__init__.py @@ -426,6 +426,17 @@ class PluginSettings(object): filename += ".log" return os.path.join(self.settings.getBaseFolder("logs"), filename) + def get_plugin_data_folder(self): + """ + Retrieves the path to a data folder specifically for the plugin. + + Plugins may use this for storing additional data. + """ + path = os.path.join(self.settings.getBaseFolder("data"), self.plugin_key) + if not os.path.isdir(path): + os.makedirs(path) + return path + def __getattr__(self, item): all_access_methods = self.access_methods.keys() + self.deprecated_access_methods.keys() if item in all_access_methods: diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index f4b2cf09..15ca4df9 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -156,7 +156,8 @@ default_settings = { "printerProfiles": None, "scripts": None, "translations": None, - "generated": None + "generated": None, + "data": None }, "temperature": { "profiles": [