3 import System.Environment (getArgs)
4 import qualified Data.ByteString.Char8 as BC
5 import qualified Bencode as Benc
6 import qualified Metainfo as MInfo
7 import qualified Tracker as T
9 import Text.ParserCombinators.Parsec
11 printError :: ParseError -> IO ()
12 printError e = putStrLn "parse error"
15 genPeerId = "-HS0001-20150215"
20 torrentStr <- BC.readFile (head args)
21 case (Benc.decode torrentStr) of
22 Right d -> case (MInfo.mkMetaInfo d) of
23 Nothing -> putStrLn "parse error"
25 let (Benc.Bdict d') = d
27 -- putStrLn (T.urlEncode (T.infoHash d'))
28 do body <- T.connect (MInfo.announce m) (T.prepareRequest d genPeerId)
30 Left e -> printError e