diff --git a/make-pages/Depend.hs b/make-pages/Depend.hs index 91bdc49..284e000 100644 --- a/make-pages/Depend.hs +++ b/make-pages/Depend.hs @@ -17,7 +17,7 @@ dependSingle :: FilePath -- ^ yaml file name (relative to data dir!) -> Text dependSingle yaml info prefix build nsfw = let dir = build prefix takeDirectory yaml - images = if nsfw then #images info else filter #sfw $ #images info + images = if nsfw then #images info else #sfwImages info paths = map #path images index = dir "index.html" deps = thumbFile (thumbnail info) : map pageFile paths ++ paths diff --git a/make-pages/Info.hs b/make-pages/Info.hs index ebd44f6..357983b 100644 --- a/make-pages/Info.hs +++ b/make-pages/Info.hs @@ -57,11 +57,14 @@ data Link = } deriving (Eq, Show) -instance HasField "nsfw" Info Bool where getField = all #nsfw . #images -instance HasField "sfw" Info Bool where getField = not . #nsfw instance HasField "sfw" Image Bool where getField = not . #nsfw instance HasField "sfw" Link Bool where getField = not . #nsfw +instance HasField "sfwImages" Info [Image] where + getField = filter #sfw . #images +instance HasField "allNsfw" Info Bool where getField = null . #sfwImages +instance HasField "anySfw" Info Bool where getField = not . #allNsfw + instance HasField "thumb" Info (Maybe FilePath) where getField (Info {thumb', images}) = thumb' <|> #path <$> find #sfw images