module Text.HTML.DirectoryListing.Type where import qualified Data.Text as T import Data.Time.LocalTime (LocalTime) import Network.URI (unEscapeString) -- | The type Entry represents a clickable link in web page. data Entry = Entry { visibleName :: T.Text -- ^ this is a name that visible in .html -- (web engines will stripe name is it is too long) , href :: T.Text -- ^ href in the tag's attribute , lastModified :: LocalTime -- ^ last modified time (Note that LocalTime has Ord instance) , fileSize :: Maybe Integer -- ^ file size represented in bytes. -- when the Entry is a directory, this value is Nothing. } deriving Show -- | get the real file name from an Entry (by decoding href) decodedName :: Entry -> T.Text decodedName = T.pack . unEscapeString . T.unpack . href -- | is this Entry a directory? isDirectory :: Entry -> Bool isDirectory = (=='/') . last . T.unpack . href