15 lines
691 B
Haskell
15 lines
691 B
Haskell
import Network.HTTP
|
|
import Data.Text (splitOn, pack, unpack)
|
|
import Data.List
|
|
|
|
getTasks :: String -> IO [String]
|
|
getTasks url = do
|
|
resp <- simpleHTTP (getRequest url)
|
|
body <- getResponseBody resp
|
|
return $ tail $ map (unpack . head . splitOn (pack "\"}")) $ splitOn (pack "\"title\":\"") (pack body)
|
|
|
|
main :: String -> IO ()
|
|
main lang = do
|
|
implTasks <- getTasks $ "http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:" ++ lang ++ "&format=json&cmlimit=500"
|
|
allTasks <- getTasks "http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&format=json&cmlimit=500"
|
|
mapM_ putStrLn $ allTasks \\ implTasks
|