Skip to content

Commit 4c9c575

Browse files
committed
Index a number of sliced file formats.
CBDDLP, SL1, PRX, Photon, CXDLP, GOO, Lumen, NanoDLP
1 parent 52a434b commit 4c9c575

3 files changed

Lines changed: 46 additions & 3 deletions

File tree

app/lib/supported_mime_types.rb

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,23 @@ def model_extensions
5252
end
5353
memo_wise :model_extensions
5454

55+
def slicer_types
56+
Mime::LOOKUP.filter { |k, v| is_slicer_mime_type?(v) }.values
57+
end
58+
memo_wise :slicer_types
59+
60+
def slicer_extensions
61+
Mime::EXTENSION_LOOKUP.filter { |k, v| is_slicer_mime_type?(v) }.keys
62+
end
63+
memo_wise :slicer_extensions
64+
5565
def indexable_types
56-
image_types + model_types + video_types + document_types + archive_types
66+
image_types + model_types + video_types + document_types + archive_types + slicer_types
5767
end
5868
memo_wise :indexable_types
5969

6070
def indexable_extensions
61-
image_extensions + model_extensions + video_extensions + document_extensions + archive_extensions
71+
image_extensions + model_extensions + video_extensions + document_extensions + archive_extensions + slicer_extensions
6272
end
6373
memo_wise :indexable_extensions
6474

@@ -141,5 +151,19 @@ def is_archive_mime_type?(type)
141151
].include?(type.to_s)
142152
end
143153
memo_wise :is_archive_mime_type?
154+
155+
def is_slicer_mime_type?(type)
156+
[
157+
"application/x-chitubox",
158+
"application/x-prusa-sl1",
159+
"application/x-phrozen",
160+
"application/x-photon",
161+
"application/x-crealitybox",
162+
"application/x-elegoo",
163+
"application/x-lumen",
164+
"application/x-nanodlp"
165+
].include?(type.to_s)
166+
end
167+
memo_wise :is_slicer_mime_type?
144168
end
145169
end

config/initializers/mime_types.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,14 @@
5959
# Slicer formats
6060
Mime::Type.register "text/x-gcode", :gcode, [], ["bgcode"]
6161
Mime::Type.register "model/x-lychee", :lychee, [], ["lys", "lyt"]
62-
Mime::Type.register "model/x-chitubox", :chitubox, [], ["ctb"]
62+
Mime::Type.register "application/x-chitubox", :chitubox, [], ["ctb", "cbddlp"]
63+
Mime::Type.register "application/x-prusa-sl1", :sl1, [], ["sl1s"]
64+
Mime::Type.register "application/x-phrozen", :prz, [], ["phz"]
65+
Mime::Type.register "application/x-photon", :photon, [], ["photons"]
66+
Mime::Type.register "application/x-crealitybox", :crealitybox, [], ["cxdlp", "cxdlpv4"]
67+
Mime::Type.register "application/x-elegoo", :goo
68+
Mime::Type.register "application/x-lumen", :lumen
69+
Mime::Type.register "application/x-nanodlp", :nanodlp
6370

6471
# Images
6572
Mime::Type.register "image/webp", :webp

spec/lib/supported_mime_types_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,16 @@
7474
expect(described_class.model_extensions).to include("dxf")
7575
end
7676
end
77+
78+
context "when indexing slicer files" do
79+
it "includes Chitubox files" do # rubocop:todo RSpec/MultipleExpectations
80+
expect(described_class.indexable_types).to include("application/x-chitubox")
81+
expect(described_class.indexable_extensions).to include("cbddlp")
82+
end
83+
84+
it "includes Lumen files" do # rubocop:todo RSpec/MultipleExpectations
85+
expect(described_class.indexable_types).to include("application/x-lumen")
86+
expect(described_class.indexable_extensions).to include("lumen")
87+
end
88+
end
7789
end

0 commit comments

Comments
 (0)