imdb: Fix an issue on changing of imdb key during runtime.

Global instance allows to set the api key from settings on first
created instance of the imdb object only,
so changes on settings had no effect during runtime and
restart of neutrinon was required to apply ne keys.
This should fix this.
This commit is contained in:
2018-05-13 14:33:46 +02:00
parent 800c76721b
commit 3fb15ec619
2 changed files with 11 additions and 4 deletions

View File

@@ -47,8 +47,6 @@ CIMDB::CIMDB()
search_error = "IMDb: Google download failed";
imdb_url = "http://www.omdbapi.com/?plot=full&r=json&i=";
imdb_outfile = "/tmp/imdb.json";
omdb_apikey = "&apikey=";
omdb_apikey += g_settings.omdb_api_key;
posterfile = "/tmp/imdb.jpg";
acc = 0;
@@ -67,6 +65,13 @@ CIMDB* CIMDB::getInstance()
return imdb;
}
inline std::string CIMDB::getApiKey()
{
std::string ret = "&apikey=";
ret += g_settings.omdb_api_key;
return ret;
}
std::string CIMDB::utf82url(std::string s)
{
std::stringstream ss;
@@ -310,7 +315,7 @@ int CIMDB::getIMDb(const std::string& epgTitle)
if(((imdb_id.find(search_error)) != std::string::npos))
return ret;
std::string url = imdb_url + imdb_id + omdb_apikey;
std::string url = imdb_url + imdb_id + getApiKey();
if (httpTool.downloadFile(url, imdb_outfile.c_str()))
{

View File

@@ -57,13 +57,15 @@ class CIMDB
private:
int acc;
std::string imdb_url;
std::string omdb_apikey;
std::string googleIMDb(std::string s);
std::string utf82url(std::string s);
std::string parseString(std::string search1, std::string search2, std::string str);
std::string parseFile(std::string search1, std::string search2, const char* file, std::string firstline="", int line_offset=0);
std::map<std::string, std::string> m;
std::string getApiKey();
void initMap(std::map<std::string, std::string>& my);
};