import qualified Metainfo as MInfo
import qualified Tracker as T
import qualified Text.ParserCombinators.Parsec as Parsec
+import qualified Peer as P
import Data.Functor
printError :: Parsec.ParseError -> IO ()
exit = exitWith ExitSuccess
usage :: IO ()
-usage = putStrLn "usage: deluge torrent-file"
+usage = putStrLn "usage: functorrent torrent-file"
parse :: [String] -> IO (BC.ByteString)
parse [] = usage >> exit
Right d -> case (MInfo.mkMetaInfo d) of
Nothing -> putStrLn "parse error"
Just m -> do
- body <- (Benc.decode . BC.pack) <$> T.connect (MInfo.announce m) (T.prepareRequest d genPeerId)
- putStrLn (show body)
+ body <- BC.pack <$> T.connect (MInfo.announce m) (T.prepareRequest d genPeerId)
+ putStrLn (show (P.getPeers (P.getPeerResponse body)))
Left e -> printError e
putStrLn "done"