data Metainfo = Metainfo { info :: !Info
, announceList :: ![String]
- , creationDate :: !(Maybe String)
+ , creationDate :: !(Maybe Integer)
, comment :: !(Maybe String)
, createdBy :: !(Maybe String)
, encoding :: !(Maybe String)
maybeBstrToString (Just (Bstr bs)) = Just $ unpack bs
maybeBstrToString _ = Nothing
+maybeBstrToInteger :: Maybe BVal -> Maybe Integer
+maybeBstrToInteger (Just (Bint bs)) = Just bs
+maybeBstrToInteger _ = Nothing
+
mkMetaInfo :: BVal -> Maybe Metainfo
mkMetaInfo (Bdict m) = let (Just info') = mkInfo $ m ! "info"
announce' = lookup "announce" m
announceList' = lookup "announce-list" m
- -- creationDate = lookup (Bstr (pack "creation date")) m
- creationDate' = Nothing
+ creationDate' = lookup "creation date" m
comment' = lookup "comment" m
createdBy' = lookup "created by" m
encoding' = lookup "encoding" m
in Just Metainfo { info = info'
, announceList = maybeToList (announce' >>= bstrToString)
++ getAnnounceList announceList'
- , creationDate = creationDate'
+ , creationDate = maybeBstrToInteger creationDate'
, comment = maybeBstrToString comment'
, createdBy = maybeBstrToString createdBy'
, encoding = maybeBstrToString encoding'
md5sum = Nothing
},
announceList = ["http://9.rarbg.com:2710/announce"],
- creationDate = Nothing,
+ creationDate = Just 1428717851,
comment = Just "hello world",
createdBy = Just "Jaseem Abid",
encoding = Just "UTF-8"