# liblastfm examples

## sort-friends

Shows how to work with lastfm api and async to speed up getting 5 most compliable friends.

  * [async][async]

  * [lens-aeson][lens-aeson]

---

## multitag-search

Shows how to work lastfm api around to get search for multiple tags at once.

  * [aeson][aeson]

---

## playcount

Shows how to get user playcount.

  * [aeson][aeson]

  * [lens-aeson][lens-aeson]

---

## recommendations

Shows how to use signed queries

  * [lens-aeson][lens-aeson]

---

## desktop-authentication

Demonstrates [desktop application authentication][last.fm/desktop] flow.

  * [lens-aeson][lens-aeson]

---

## web-authentication

Demonstrates [web application authentication][last.fm/web] flow.

  * [happstack-server][happstack-server]

---

## mobile-authentication

Demonstrates [mobile application authentication][last.fm/mobile] flow.

  * [lens-aeson][lens-aeson]

---

## [scrobblers][scrobblers]

Advanced scrobbling techniques.

  * [netwire][netwire]

  * [libmpd][libmpd]

  * [lens-aeson][lens-aeson]

 [aeson]: https://hackage.haskell.org/package/aeson
 [async]: https://hackage.haskell.org/package/async
 [happstack-server]: https://hackage.haskell.org/package/happstack-server
 [lens-aeson]: https://hackage.haskell.org/package/lens-aeson
 [libmpd]: https://hackage.haskell.org/package/libmpd
 [netwire]: https://hackage.haskell.org/package/netwire
 [scrobblers]: https://github.com/supki/scrobblers
 [last.fm/desktop]: http://www.last.fm/api/desktopauth
 [last.fm/web]: http://www.last.fm/api/webauth
 [last.fm/mobile]: http://www.last.fm/api/mobileauth
