(Info(..),
Metainfo(..),
mkInfo,
- mkMetaInfo
+ torrentToMetainfo
) where
import Prelude hiding (lookup)
import Crypto.Hash.SHA1 (hash)
import Data.Maybe (maybeToList)
-import FuncTorrent.Bencode (BVal(..), encode, bstrToString, bValToInteger)
+import FuncTorrent.Bencode (BVal(..), encode, decode, bstrToString, bValToInteger)
-- only single file mode supported for the time being.
data Info = Info { pieceLength :: !Integer
_ -> "") l
getAnnounceList (Just (Bdict _)) = []
+
+torrentToMetainfo :: ByteString -> Either String Metainfo
+torrentToMetainfo s =
+ case (decode s) of
+ Right d ->
+ mkMetaInfo d
+ Left e ->
+ Left $ show e