- where f magnetRecord pair = let (k, v) = pair in
- case k of
- "xt" -> magnetRecord { infoHash = pack v }
- "tr" -> let trVal = trackerlist magnetRecord in
- magnetRecord { trackerlist = trVal ++ [urlDecode v] }
- "dn" -> magnetRecord { name = urlDecode v }
- "xl" -> magnetRecord { xlen = Just (read v :: Integer) }
+ where f magnetRecord pair =
+ let (k, v) = pair
+ in
+ case k of
+ "xt" -> magnetRecord { infoHash = pack v }
+ "tr" -> let trVal = trackerlist magnetRecord
+ in
+ magnetRecord { trackerlist = trVal ++ [urlDecode v] }
+ "dn" -> magnetRecord { name = urlDecode v }
+ "xl" -> magnetRecord { xlen = Just (read v :: Integer) }
+ _ -> magnetInfo