- case decode torrentStr of
- Right d ->
- case mkMetaInfo d of
- Nothing -> log "Unable to make meta info file"
- Just m -> do
- log "Input File OK"
- log $ "Downloading file : " ++ name (info m)
- log "Trying to fetch peers"
-
- log $ "Trackers: " ++ head (announceList m)
- response <- tracker m peerId
-
- -- TODO: Write to ~/.functorrent/caches
- writeFile (name (info m) ++ ".cache") response
-
- case decode response of
- Right trackerInfo ->
- case mkTrackerResponse trackerInfo of
- Right peerResp -> do
- log $ "Peers List : " ++ (show . peers $ peerResp)
- let p1 = head (peers peerResp)
- h <- handShake p1 (infoHash m) peerId
- log $ "handshake"
- msgLoop h (pieces (info m))
- Left e -> log $ "Error" ++ unpack e
- Left e -> logError e log
+ case (torrentToMetaInfo torrentStr) of
+ Right m -> do
+ log "Input File OK"
+ log $ "Downloading file : " ++ name (info m)
+ log "Trying to fetch peers"