No. |
Time |
User |
SHA256 |
-r3 (taggy-lens-0.1-r3) |
2014-07-08T08:05:17Z |
AlpMestanogullari |
6d9181062918b65c620fb26c84c8af66c4901947d197e8b13fcd3ad483539928
|
|
Changed description
from Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an example
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs example>. It lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
to Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs example>. It lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
|
-r2 (taggy-lens-0.1-r2) |
2014-07-08T08:01:45Z |
AlpMestanogullari |
7111959579ac5ab16ef28a4c0de939d2c1f2d4f3f3541447af53cf5705a77111
|
|
Changed description
from Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an example
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs
from the github repository>: it lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
to Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an example
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs example>. It lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
|
-r1 (taggy-lens-0.1-r1) |
2014-07-08T08:00:04Z |
AlpMestanogullari |
309a853ec2314e64a34264ec33aa9e0edc8605f7cc1bc22a65bcbfd50b762728
|
|
Changed description
from Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an example
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs
from the github repository>: it lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> {-# LANGUAGE OverloadedStrings #-}
>
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
to Lenses, folds, traversals and prisms for
<http://hackage.haskell.org/package/taggy taggy>.
This greatly simplifies your life when dealing with
the ugly world of Real Life HTML. Here's an example
<https://github.com/alpmestan/taggy-lens/blob/master/example/HackageNew.hs
from the github repository>: it lists the date, author and package name of
all the /recent package uploads/ entries from the hackage page of the same name.
Note that it uses <http://hackage.haskell.org/package/wreq wreq> to /fetch/ the
Hackage page.
> module Main (main) where
>
> import Control.Lens (to, only,(^?),ix, toListOf)
> import Data.ByteString.Lazy (ByteString)
> import Data.Text (Text)
> import Data.Text.Encoding.Error (lenientDecode)
> import Data.Text.Lazy.Encoding (decodeUtf8With)
> import Network.HTTP.Client (Response)
> import Network.Wreq (responseBody, get)
> import Text.Taggy (Node)
> import Text.Taggy.Lens (html, elements, children, contents,allNamed)
>
> data Upload =
> Upload Text -- ^ date
> Text -- ^ author
> Text -- ^ package name
> deriving (Show)
>
> table :: [Node] -> Maybe Upload
> table row = do
> date <- row ^? ix 0 . contents
> author <- row ^? ix 1 . contents
> package <- row ^? ix 2 . elements . contents
> return $ Upload date author package
>
> recentPackages :: Response ByteString -> [Maybe Upload]
> recentPackages = toListOf
> $ responseBody . to (decodeUtf8With lenientDecode)
> . html . allNamed (only "tr") . children . to table
>
> main :: IO ()
> main = get "https://hackage.haskell.org/packages/recent" >>= print `fmap` recentPackages
|
-r0 (taggy-lens-0.1-r0) |
2014-07-08T07:49:12Z |
AlpMestanogullari |
8cc0c0546c8fae5aba123f252453801155c0a93ffe92e990a55feef439df544f
|
|
|