Discman
Loading...
Searching...
No Matches
last_fm.h
Go to the documentation of this file.
1
6
7#ifndef LAST_FM_H
8#define LAST_FM_H
9
10#include <cstdlib>
11#include <cctype>
12#include <iomanip>
13#include <algorithm>
14#include <sstream>
15#include <string>
16#include <map>
17#include <exception>
18#include <glibmm.h>
19#include <giomm/memoryinputstream.h>
20#include <gdkmm/pixbuf.h>
21#include <curlpp/Easy.hpp>
22#include <curlpp/Options.hpp>
23#include <curlpp/cURLpp.hpp>
24#include <json/value.h>
25#include <json/reader.h>
26#include <json/writer.h>
27
28#include "album_art_provider.h"
29
31class LastFM : public AlbumArtProvider {
32
33 public:
35 enum Method {
37 };
38
40 static constexpr const char* BASE_URL = "http://ws.audioscrobbler.com/2.0/";
41
43 LastFM();
44
46 void init() override;
47
54 std::vector<AlbumArt> album_art(const std::string& artist, const std::string& title, const int width, const int height) override;
55
56 private:
60 static std::string method_name(const Method method);
61
67 static std::string url(const Method method, const std::map<std::string, std::string>& params);
68
70 static std::string _api_key;
71};
72
73#endif // LAST_FM_H
AlbumArtProvider()
AlbumArtProvider constructor.
std::vector< AlbumArt > album_art(const std::string &artist, const std::string &title, const int width, const int height) override
Retrieves all album art matching the artist and title.
Definition last_fm.cc:21
static std::string method_name(const Method method)
Conversion method to convert a LastFM::Method to a string.
Definition last_fm.cc:86
static std::string _api_key
last.fm API key.
Definition last_fm.h:70
Method
last.fm API methods.
Definition last_fm.h:35
@ AlbumGetInfo
Definition last_fm.h:36
void init() override
Retrieves the last.fm API key as an environment variable.
Definition last_fm.cc:17
static constexpr const char * BASE_URL
The last.fm API base URL.
Definition last_fm.h:40
LastFM()
LastFM constructor.
Definition last_fm.cc:11
static std::string url(const Method method, const std::map< std::string, std::string > &params)
Calls url_with_params() after adding additional parameters in params. These additional parameters set...
Definition last_fm.cc:94