X-Git-Url: https://git.rkrishnan.org/?p=functorrent.git;a=blobdiff_plain;f=src%2FFuncTorrent%2FMetainfo.hs;fp=src%2FFuncTorrent%2FMetainfo.hs;h=4cc6ed126c2685528427f0145db03f9dbc5ae6a6;hp=e555074ac110076f675462ae133434ed183a39f4;hb=649552ae69615fe9c5d88883768e13a32d4e1b9c;hpb=e34d1a385e2d7fcfd495fc080afef92f4f6429c9 diff --git a/src/FuncTorrent/Metainfo.hs b/src/FuncTorrent/Metainfo.hs index e555074..4cc6ed1 100644 --- a/src/FuncTorrent/Metainfo.hs +++ b/src/FuncTorrent/Metainfo.hs @@ -50,24 +50,24 @@ data Metainfo = Metainfo { info :: !(Maybe Info) , infoHash :: !ByteString } deriving (Eq, Show) -mkInfo :: BVal -> Maybe Info -mkInfo (Bdict m) = let (Bint pieceLength') = m ! "piece length" - (Bstr pieces') = m ! "pieces" - private' = Nothing - (Bstr name') = m ! "name" - (Bint length') = m ! "length" - md5sum' = Nothing - in Just Info { pieceLength = pieceLength' - , pieces = pieces' - , private = private' - , name = unpack name' - , lengthInBytes = length' - , md5sum = md5sum'} -mkInfo _ = Nothing +bvalToInfo :: BVal -> Maybe Info +bvalToInfo (Bdict m) = let (Bint pieceLength') = m ! "piece length" + (Bstr pieces') = m ! "pieces" + private' = Nothing + (Bstr name') = m ! "name" + (Bint length') = m ! "length" + md5sum' = Nothing + in Just Info { pieceLength = pieceLength' + , pieces = pieces' + , private = private' + , name = unpack name' + , lengthInBytes = length' + , md5sum = md5sum'} +bvalToInfo _ = Nothing mkMetaInfo :: BVal -> Either String Metainfo mkMetaInfo (Bdict m) = - let info' = mkInfo $ m ! "info" + let info' = bvalToInfo $ m ! "info" announce' = lookup "announce" m announceList' = lookup "announce-list" m creationDate' = lookup "creation date" m