Skip to content

Commit a07338a

Browse files
committed
adds option to allow for extracting thumbnails into the uploads folder, #89
1 parent 9765fe4 commit a07338a

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

octoprint_prusaslicerthumbnails/__init__.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def get_settings_defaults(self):
5050
'inline_thumbnail_scale_value': "50", 'inline_thumbnail_position_left': False,
5151
'align_inline_thumbnail': False, 'inline_thumbnail_align_value': "left", 'state_panel_thumbnail': True,
5252
'state_panel_thumbnail_scale_value': "100", 'resize_filelist': False, 'filelist_height': "306",
53-
'scale_inline_thumbnail_position': False, 'sync_on_refresh': False}
53+
'scale_inline_thumbnail_position': False, 'sync_on_refresh': False, 'use_uploads_folder': False}
5454

5555
# ~~ AssetPlugin mixin
5656

@@ -205,20 +205,23 @@ def on_event(self, event, payload):
205205
"type"] and payload.get("name", False):
206206
thumbnail_name = self.regex_extension.sub(".png", payload["name"])
207207
thumbnail_path = self.regex_extension.sub(".png", payload["path"])
208-
thumbnail_filename = "{}/{}".format(self.get_plugin_data_folder(), thumbnail_path)
208+
if not self._settings.get_boolean(["use_uploads_folder"]):
209+
thumbnail_filename = "{}/{}".format(self.get_plugin_data_folder(), thumbnail_path)
210+
else:
211+
thumbnail_filename = self._file_manager.path_on_disk("local", thumbnail_path)
209212

210213
if os.path.exists(thumbnail_filename):
211214
os.remove(thumbnail_filename)
212215
if event == "FileAdded":
213216
gcode_filename = self._file_manager.path_on_disk("local", payload["path"])
214217
self._extract_thumbnail(gcode_filename, thumbnail_filename)
215218
if os.path.exists(thumbnail_filename):
216-
thumbnail_url = "plugin/prusaslicerthumbnails/thumbnail/{}?{:%Y%m%d%H%M%S}".format(
217-
thumbnail_path.replace(thumbnail_name, quote(thumbnail_name)), datetime.datetime.now())
218-
self._file_manager.set_additional_metadata("local", payload["path"], "thumbnail",
219-
thumbnail_url.replace("//", "/"), overwrite=True)
220-
self._file_manager.set_additional_metadata("local", payload["path"], "thumbnail_src",
221-
self._identifier, overwrite=True)
219+
if not self._settings.get_boolean(["use_uploads_folder"]):
220+
thumbnail_url = "plugin/prusaslicerthumbnails/thumbnail/{}?{:%Y%m%d%H%M%S}".format(thumbnail_path.replace(thumbnail_name, quote(thumbnail_name)), datetime.datetime.now())
221+
else:
222+
thumbnail_url = "downloads/files/local/{}?{:%Y%m%d%H%M%S}".format(thumbnail_path.replace(thumbnail_name, quote(thumbnail_name)), datetime.datetime.now())
223+
self._file_manager.set_additional_metadata("local", payload["path"], "thumbnail", thumbnail_url.replace("//", "/"), overwrite=True)
224+
self._file_manager.set_additional_metadata("local", payload["path"], "thumbnail_src", self._identifier, overwrite=True)
222225

223226
# ~~ SimpleApiPlugin mixin
224227

octoprint_prusaslicerthumbnails/templates/prusaslicerthumbnails_settings.jinja2

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@
6060
<input type="checkbox" data-bind="checked: settings.plugins.prusaslicerthumbnails.sync_on_refresh"> Rescan all files when pressing refresh in file list.
6161
</label>
6262
</div>
63+
<div class="controls">
64+
<label class="checkbox">
65+
<input type="checkbox" data-bind="checked: settings.plugins.prusaslicerthumbnails.use_uploads_folder"> Extract images into uploads folder.
66+
</label>
67+
</div>
6368
</div>
6469
<div class="row-fluid" data-bind="allowBindings: false">
6570
<div class="row-fluid" data-bind="allowBindings: true">

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
plugin_name = "Slicer Thumbnails"
1515

1616
# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module
17-
plugin_version = "1.0.1"
17+
plugin_version = "1.0.2rc1"
1818

1919
# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin
2020
# module

0 commit comments

Comments
 (0)