import qualified Bencode as Benc
import qualified Metainfo as MInfo
import qualified Tracker as T
+import qualified Text.ParserCombinators.Parsec as Parsec
+import Data.Functor
-import Text.ParserCombinators.Parsec
-
-printError :: ParseError -> IO ()
-printError e = putStrLn "parse error"
+printError :: Parsec.ParseError -> IO ()
+printError e = putStrLn $ "parse error: " ++ show e
genPeerId :: String
genPeerId = "-HS0001-20150215"
Right d -> case (MInfo.mkMetaInfo d) of
Nothing -> putStrLn "parse error"
Just m -> do
- let (Benc.Bdict d') = d
--- putStrLn (show m)
--- putStrLn (T.urlEncode (T.infoHash d'))
- do body <- T.connect (MInfo.announce m) (T.prepareRequest d genPeerId)
- putStrLn body
+ body <- (Benc.decode . BC.pack) <$> T.connect (MInfo.announce m) (T.prepareRequest d genPeerId)
+ putStrLn (show body)
Left e -> printError e
putStrLn "done"