]> git.rkrishnan.org Git - functorrent.git/commitdiff
first attempt (buggy) at urlencode
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Sun, 15 Feb 2015 07:34:55 +0000 (13:04 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Sun, 15 Feb 2015 07:34:55 +0000 (13:04 +0530)
src/Tracker.hs

index 6db0c3682a96430ed7f592724a66f99f422fa8c5..57b813df73965c6deeead4ddb75e9f5d49e28a86 100644 (file)
@@ -1,16 +1,26 @@
 module Tracker where
 
-import qualified Bencode as Benc
-import Data.Conduit
-import Network.HTTP
+-- import qualified Bencode as Benc
+import qualified Data.ByteString.Char8 as BC
+import qualified Network.HTTP.Base as HB
+import Data.Char
+-- import Network.HTTP
 
 type Url = String
 
-requestUrl :: String
+splitN :: Int -> BC.ByteString -> [BC.ByteString]
+splitN n bs | BC.null bs = []
+            | otherwise = (BC.take n bs) : splitN n (BC.drop n bs)
 
+urlEncode :: BC.ByteString -> String
+urlEncode bs = let bss = splitN 2 bs
+                   chars = map (chr . read . ("0x" ++) . BC.unpack)  bss
+               in
+                HB.urlEncode chars
 
-connect :: Url -> String -> IO (Benc.BVal)
-connect url infoHash = case (parseUrl url) of
-                        Nothing -> putStrLn "invalid tracker URL"
-                        Just req -> let 
+
+-- connect :: Url -> String -> IO (Benc.BVal)
+-- connect url infoHash = case (parseUrl url) of
+--                         Nothing -> putStrLn "invalid tracker URL"
+--                         Just req -> let