Package maintainers and Hackage trustees are allowed to edit certain bits
of package metadata after a release, without uploading a new tarball.
Note that the tarball itself is never changed, just the metadata that is
stored separately. For more information about metadata revisions, please
refer to the
Hackage Metadata Revisions FAQ.
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
|
|
|