From 9f389a05cc883213327b8d17db6d23c3ff8fb4e1 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 11 Apr 2015 14:06:14 +0200 Subject: Set up a listener that diff new ads and show only the new ones --- src/Model/Resume.hs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/Model/Resume.hs') diff --git a/src/Model/Resume.hs b/src/Model/Resume.hs index 1b73baf..f4e9cd5 100644 --- a/src/Model/Resume.hs +++ b/src/Model/Resume.hs @@ -1,9 +1,24 @@ module Model.Resume ( Resume(..) + , getNewResumes + , getURLs ) where +import Data.List ((\\)) + +import Model.URL + data Resume = Resume { name :: String , price :: Maybe String - , url :: String + , url :: URL } deriving (Eq, Read, Show) + +getNewResumes :: [URL] -> [Resume] -> ([URL], [Resume]) +getNewResumes viewdURLs resumes = + let newURLs = (getURLs resumes) \\ viewdURLs + newResumes = filter (\resume -> elem (url resume) newURLs) resumes + in (viewdURLs ++ newURLs, newResumes) + +getURLs :: [Resume] -> [URL] +getURLs = map url -- cgit v1.2.3