@@ -33,9 +33,17 @@ suspend fun scanMilkdrop() {
3333 )
3434 }
3535 val subCategories = categoryFolder.listFiles().orEmpty().filter { it.isDirectory }
36+ // .also {
37+ // logger.debug { "pre-sort: ${it.map { it.name }}" }
38+ // }
39+ .sortFileNames()
40+ // .also {
41+ // logger.debug { "post-sort: ${it.map { it.name }}" }
42+ // }
3643
3744 val subCategoryEntries = subCategories.flatMapIndexed() { index, subCategoryFolder ->
38- val subCategoryFiles = subCategoryFolder.listFiles().orEmpty().filter { it.isFile }.filter { it.extension == " milk" }
45+ val subCategoryFiles =
46+ subCategoryFolder.listFiles().orEmpty().filter { it.isFile }.filter { it.extension == " milk" }
3947 if (subCategoryFiles.isNotEmpty()) {
4048 if (index == 0 ) {
4149 if (categoryPresets.isNotEmpty()) {
@@ -69,33 +77,11 @@ suspend fun scanMilkdrop() {
6977 }.associateBy { it.name }
7078
7179
72- val imgPresets = spritesFolder.listFiles().orEmpty().filter { it.isDirectory }.sortFileNames().flatMap { categoryFolder ->
73- val categoryFiles = categoryFolder.listFiles().orEmpty().filter { it.isFile }.filter { it.extension == " png" || it.extension == " jpg" }.sortFileNames()
74- val categoryPresets = categoryFiles.filterNotNull().map { file ->
75- val name = file.name
76- val path = file.toRelativeString(presetsFolder)
77-
78- PresetLocation .Img (
79- name = name,
80- id = id++ ,
81- path = path,
82- category = categoryFolder.name,
83- )
84- }
85- val subCategories = categoryFolder.listFiles().orEmpty().filter { it.isDirectory }.sortFileNames()
86-
87- val subCategoryEntries = subCategories.flatMapIndexed() { index, subCategoryFolder ->
88- val subCategoryFiles = subCategoryFolder.listFiles().orEmpty().filter { it.extension == " png" || it.extension == " jpg" }.sortFileNames()
89- if (subCategoryFiles.isNotEmpty()) {
90- if (index == 0 ) {
91- if (categoryPresets.isNotEmpty()) {
92- id++
93- }
94- } else {
95- id++
96- }
97- }
98- subCategoryFiles.filterNotNull().map { file ->
80+ val imgPresets =
81+ spritesFolder.listFiles().orEmpty().filter { it.isDirectory }.sortFileNames().flatMap { categoryFolder ->
82+ val categoryFiles = categoryFolder.listFiles().orEmpty().filter { it.isFile }
83+ .filter { it.extension == " png" || it.extension == " jpg" }.sortFileNames()
84+ val categoryPresets = categoryFiles.filterNotNull().map { file ->
9985 val name = file.name
10086 val path = file.toRelativeString(presetsFolder)
10187
@@ -104,13 +90,39 @@ suspend fun scanMilkdrop() {
10490 id = id++ ,
10591 path = path,
10692 category = categoryFolder.name,
107- subCategory = subCategoryFolder.name,
10893 )
10994 }
110- }
95+ val subCategories = categoryFolder.listFiles().orEmpty().filter { it.isDirectory }.sortFileNames()
96+
97+ val subCategoryEntries = subCategories.flatMapIndexed() { index, subCategoryFolder ->
98+ val subCategoryFiles =
99+ subCategoryFolder.listFiles().orEmpty().filter { it.extension == " png" || it.extension == " jpg" }
100+ .sortFileNames()
101+ if (subCategoryFiles.isNotEmpty()) {
102+ if (index == 0 ) {
103+ if (categoryPresets.isNotEmpty()) {
104+ id++
105+ }
106+ } else {
107+ id++
108+ }
109+ }
110+ subCategoryFiles.filterNotNull().map { file ->
111+ val name = file.name
112+ val path = file.toRelativeString(presetsFolder)
113+
114+ PresetLocation .Img (
115+ name = name,
116+ id = id++ ,
117+ path = path,
118+ category = categoryFolder.name,
119+ subCategory = subCategoryFolder.name,
120+ )
121+ }
122+ }
111123
112- categoryPresets + subCategoryEntries
113- }.associateBy { it.name }
124+ categoryPresets + subCategoryEntries
125+ }.associateBy { it.name }
114126
115127 nestdropCategoryTagsSet.value = categoryTagsSet
116128
@@ -120,7 +132,7 @@ suspend fun scanMilkdrop() {
120132 flowScope.launch {
121133 measureTimedValue {
122134 imgPresets.values.map { sprite ->
123- async (Dispatchers .IO ) {
135+ async(Dispatchers .IO ) {
124136 sprite.image
125137// .also { img ->
126138// logger.info { "loaded ${sprite.name} ${img.width}x${img.height}" }
@@ -136,5 +148,5 @@ suspend fun scanMilkdrop() {
136148private val logger = KotlinLogging .logger {}
137149
138150private fun List<File>.sortFileNames () = sortedBy { file ->
139- file.nameWithoutExtension.lowercase().replace(" _" , " |" )
151+ file.nameWithoutExtension.lowercase().replace(" _" , " |" )+ " _ "
140152}
0 commit comments