]> git.rkrishnan.org Git - functorrent.git/blob - src/Metainfo.hs
WIP: info record
[functorrent.git] / src / Metainfo.hs
1 module Metainfo where
2
3 import qualified Bencode as Benc
4 import qualified Data.ByteString.Char8 as BC
5 import Data.Time.Clock
6
7 -- only single file mode supported for the time being.
8 data Info = Info { pieceLength :: Integer
9                  , pieces :: BC.ByteString
10                  , private :: Maybe Integer
11                  , name :: String
12                  , lengthInBytes :: Integer
13                  , md5sum :: Maybe String }
14           deriving (Eq)
15
16 data Metainfo = MetaInfo { info :: Info
17                          , announce :: String
18                          , announceList :: Maybe [[String]]
19                          , creationDate :: Maybe UTCTime
20                          , comment :: Maybe String
21                          , createdBy :: Maybe String
22                          , encoding :: Maybe String }
23               deriving (Eq)
24
25 mkMetaInfo :: Benv.BVal -> MetaInfo