Move SSD OCR predicate helpers to typed Kotlin
ober
d19abd852668e33f6399c0219d577b645e737eb2
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -366,7 +366,7 @@ (typed-kotlin-file "com/sfb/ssdreview/OcrStrings.kt" (typed-library (com sfb ssdreview) - (export normalizeOcr compact) + (export normalizeOcr compact bankCompatible suppressedByRace) (def (normalizeOcr (value : String)) : String (string-replace-regex (string-trim @@ -377,7 +377,24 @@ "\\s+" " ")) (def (compact (value : String)) : String - (string-filter-letter-or-digit (string-lowercase value))))) + (string-filter-letter-or-digit (string-lowercase value))) + (def (bankCompatible (label : String) (boxTypeId : String)) : Bool + (let ((key (compact label))) + (or (or (or (equal? boxTypeId "26") + (equal? boxTypeId "52")) + (or (equal? boxTypeId "99") + (string-contains? key "shield"))) + (or (or (string-contains? key "papanel") + (string-contains? key "powerabsorber")) + (string-contains? key "padegradation"))))) + (def (suppressedByRace (race : String) (label : String)) : Bool + (let ((key (compact label))) + (if (and (equal? race "andromedan") (string-contains? key "shield")) + #t + (and (not (equal? race "andromedan")) + (or (or (string-contains? key "papanel") + (string-contains? key "powerabsorber")) + (string-contains? key "displacementdevice")))))))) (kotlin-file-lines "com/sfb/ssdreview/BoxTypes.kt" ( @@ -3202,24 +3219,6 @@ " private fun protectedBankLabel(group: SsdGroup): Boolean =" " bankCompatible(group.label, group.boxTypeId)" "" - " private fun bankCompatible(label: String, boxTypeId: String): Boolean {" - " val key = compact(label)" - " return boxTypeId == \"26\" ||" - " boxTypeId == \"52\" ||" - " boxTypeId == \"99\" ||" - " key.contains(\"shield\") ||" - " key.contains(\"papanel\") ||" - " key.contains(\"powerabsorber\") ||" - " key.contains(\"padegradation\")" - " }" - "" - " private fun suppressedByRace(race: String, label: String): Boolean {" - " val key = compact(label)" - " if (race == \"andromedan\" && key.contains(\"shield\")) return true" - " if (race != \"andromedan\" && (key.contains(\"papanel\") || key.contains(\"powerabsorber\") || key.contains(\"displacementdevice\"))) return true" - " return false" - " }" - "" "}" )) (kotlin-file-lines "com/sfb/ssdreview/SsdReviewView.kt"