diff options
-rw-r--r-- | scripts/toy.groovy | 7 | ||||
-rw-r--r-- | scripts/toy/imagery.groovy | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy index a77c5dd..018c32f 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -266,6 +266,13 @@ return new Object() { } return tt; }; + final matchTags = { spec -> + return { obj -> + spec.every({ s -> + return (s[0] == "!") ? obj.tags.indexOf(s.drop(1)) == -1 : obj.tags.indexOf(s) != -1; + }); + }; + }; // Session def sessionSummon = { imageSpec -> diff --git a/scripts/toy/imagery.groovy b/scripts/toy/imagery.groovy index 201531e..9b56faf 100644 --- a/scripts/toy/imagery.groovy +++ b/scripts/toy/imagery.groovy @@ -32,17 +32,12 @@ }(); toy.metaClass.selectImage { domme, set, spec -> - final meets = { i -> - return spec.every({ s -> - return (s[0] == "!") ? i.tags.indexOf(s.drop(1)) == -1 : i.tags.indexOf(s) != -1; - }); - }; def matches = IMAGEDATA[domme]; if (!matches) return null; matches = matches.sets[set]; if (!matches) return null; matches = matches - .images.findAll({ i -> meets(i) }); + .images.findAll(matchTags(spec)); if (matches.isEmpty()) return null; return matches[getRandom(matches.size())]; }; |