From: Jaseem Abid Date: Wed, 18 Feb 2015 20:28:51 +0000 (+0530) Subject: A few lint fixes to get started X-Git-Url: https://git.rkrishnan.org/%5B/%5D%20/uri/%22doc.html/COPYING.GPL?a=commitdiff_plain;h=bf2e6269470162da408555e05edef7655f7023b0;p=functorrent.git A few lint fixes to get started - Making `GHC -Wall` and hlint happy. - Renaming length to len, to not shadow prelude function - Remove unused import --- diff --git a/src/Main.hs b/src/Main.hs index 482b433..015c323 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -8,7 +8,6 @@ import qualified Metainfo as MInfo import qualified Tracker as T import qualified Text.ParserCombinators.Parsec as Parsec import qualified Peer as P -import qualified Data.Map as M import Data.Functor printError :: Parsec.ParseError -> IO () @@ -30,14 +29,15 @@ parse _ = exit main :: IO () main = do - args <- getArgs - torrentStr <- parse args - case Benc.decode torrentStr of - Right d -> case MInfo.mkMetaInfo d of - Nothing -> putStrLn "parse error" - Just m -> do - let length = MInfo.lengthInBytes (MInfo.info m) - body <- BC.pack <$> T.connect (MInfo.announce m) (T.prepareRequest d genPeerId length) - print (P.getPeers (P.getPeerResponse body)) - Left e -> printError e - putStrLn "done" + args <- getArgs + torrentStr <- parse args + case Benc.decode torrentStr of + Right d -> + case MInfo.mkMetaInfo d of + Nothing -> putStrLn "parse error" + Just m -> do + let len = MInfo.lengthInBytes (MInfo.info m) + body <- BC.pack <$> T.connect (MInfo.announce m) (T.prepareRequest d genPeerId len) + print (P.getPeers (P.getPeerResponse body)) + Left e -> printError e + putStrLn "done" diff --git a/src/Tracker.hs b/src/Tracker.hs index 68cf28c..c523683 100644 --- a/src/Tracker.hs +++ b/src/Tracker.hs @@ -20,7 +20,7 @@ type Url = String -- "%124Vx%9a%bc%de%f1%23Eg%89%ab%cd%ef%124Vx%9a" urlEncode :: BC.ByteString -> String urlEncode bs = concatMap (encode . BC.unpack) (U.splitN 2 bs) - where encode b@(c1 : c2 : []) = let c = chr (read ("0x" ++ b)) + where encode b@[c1, c2] = let c = chr (read ("0x" ++ b)) in escape c c1 c2 encode _ = "" @@ -39,13 +39,13 @@ peerHash :: String -> BC.ByteString peerHash = B16.encode . SHA1.hash . BC.pack prepareRequest :: Benc.BVal -> String -> Integer -> String -prepareRequest (Benc.Bdict d) peer_id length = +prepareRequest (Benc.Bdict d) peer_id len = let p = [("info_hash", urlEncode (infoHash d)), ("peer_id", urlEncode (peerHash peer_id)), ("port", "6881"), ("uploaded", "0"), ("downloaded", "0"), - ("left", show length), + ("left", show len), ("compact", "1"), ("event", "started")] in