https://github.com/tefra/pydrag
Fluent Last.fm API wrapper
https://github.com/tefra/pydrag
last-fm python scrobbling
Last synced: about 1 month ago
JSON representation
Fluent Last.fm API wrapper
- Host: GitHub
- URL: https://github.com/tefra/pydrag
- Owner: tefra
- License: mit
- Created: 2018-11-04T17:33:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-05-08T09:31:04.000Z (over 3 years ago)
- Last Synced: 2024-11-08T02:20:10.563Z (11 months ago)
- Topics: last-fm, python, scrobbling
- Language: Python
- Homepage: https://pydrag.readthedocs.io/
- Size: 792 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
pydrag
======.. image:: https://github.com/tefra/pydrag/workflows/tests/badge.svg
:target: https://github.com/tefra/pydrag/actions.. image:: https://readthedocs.org/projects/pydrag/badge
:target: https://pydrag.readthedocs.io/.. image:: https://codecov.io/gh/tefra/pydrag/branch/master/graph/badge.svg
:target: https://codecov.io/gh/tefra/pydrag.. image:: https://img.shields.io/github/languages/top/tefra/pydrag.svg
:target: https://pydrag.readthedocs.io/.. image:: https://www.codefactor.io/repository/github/tefra/pydrag/badge
:target: https://www.codefactor.io/repository/github/tefra/pydrag.. image:: https://img.shields.io/pypi/pyversions/pydrag.svg
:target: https://pypi.org/pypi/pydrag/.. image:: https://img.shields.io/pypi/v/pydrag.svg
:target: https://pypi.org/pypi/pydrag/----
**pydrag** is a modern api wrapper for the `Last.fm `_ api with a fluent syntax!
Quick Start
-----------Apply for a last.fm `api key `_ and write down your **key** and **secret**.
Install
~~~~~~~.. code-block:: console
$ pip install pydrag
Example
~~~~~~~.. code-block:: python
>>> from pydrag import User, configure
>>> configure(api_key='54062d8af7afdc_not_real_3459048a4')
>>> rj = User.find("RJ")
>>> rj.real_name
'Richard Jones '
>>> recent = rj.get_recent_tracks(limit=1, page=1)
>>> first = recent.pop()
>>> first.name
'Fu-Gee-La'
>>> similar = first.get_similar(limit=1)
>>> similar[0].name
'Family Business'
>>> similar[0].artist.name
'Fugees'
>>>
>>> for friend in rj.get_friends(recent_tracks=True):
... friend.name, friend.recent_track.name
...
('meichi', 'Pi')
('demkod', '(bottle back)')
('STBKilla', 'Nowhere Fast')
('keret221', 'Letter Home')
('Lilfix', 'Namorar pra Quê?')
('Yoji', 'Empire State of Mind (feat. Alicia Keys)')
('Kastishka', 'Wipe Your Eyes')
('comingsoon_', 'I Want It All')
('Bagheera', 'Welcome Home')Development
===========Use you favorite tool to create a python >= 3.6 virtual environment
.. code-block:: console
$ git clone git@github.com:tefra/pydrag.git
$ pip install .[dev]
$ pre-commit install
$ pytest
$ toxpydrag uses `vcrpy `_ library to record and replay
last.fm responses for its unit tests and
`python-dotenv `_ to auto-configure itself.All sensitive information like keys and credentials are automatically censored.
So when it's necessary to record a new response it's super useful to have a
.env file with your configuration!.. code-block:: ini
LASTFM_API_KEY=your_api_key
LASTFM_API_SECRET=your_api_secret
LASTFM_USERNAME=You
LASTFM_PASSWORD=YouPassChangelog: 22.5 (2022-05-08)
----------------------------
- Replaced attrs with dataclasses
- Added support for python 3.10