From 367840ccd78c07e27d33fa2edb67016e8eed299d Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 3 May 2021 01:00:35 +0200 Subject: [PATCH] - epgview: more imdb/tmdb unifications Conflicts: src/gui/epgview.cpp Signed-off-by: Thilo Graf TODO: fix star values, no count of stars at epg window to see, variable 'stars' is missing. --- src/gui/epgview.cpp | 140 +++++++++++++++++++++++--------------------- src/gui/epgview.h | 11 ++-- 2 files changed, 76 insertions(+), 75 deletions(-) diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index c71083087..d5fc6ea9f 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -293,9 +293,10 @@ void CEpgData::showText(int startPos, int ypos, bool has_cover, bool fullClear) medlineheight = font->getHeight(); // show ranking - if ((stars > 0 || imdb_stars > 0) && (tmdb_active || imdb_active) && startPos == 0) + if (startPos == 0 && (imdb_active || tmdb_active)) { std::string provider_logo = ""; + int stars = 0; if (tmdb_active && startPos == 0) provider_logo = NEUTRINO_ICON_TMDB; @@ -705,7 +706,6 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start imdb_active = false; imdb_stars = 0; tmdb_active = false; - stars = 0; t_channel_id epg_id = channel_id; CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id); @@ -1154,8 +1154,10 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start break; case CRCInput::RC_0: //imdb { - if (imdb_active) { + if (imdb_active) + { imdb_active = false; + imdb_stars = 0; showTimerEventBar(true, !mp_info && isCurrentEPG(channel_id), mp_info); //show buttons epgText = epgText_saved; textCount = epgText.size(); @@ -1163,25 +1165,30 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start if (g_settings.tmdb_enabled) { showPos = 0; - if (!tmdb_active) { + if (!tmdb_active) + { tmdb->setTitle(epgData.title); - if ((tmdb->getResults() > 0) && (!tmdb->getDescription().empty())) { + if ((tmdb->getResults() > 0) && (!tmdb->getDescription().empty())) + { + tmdb_active = true; + tmdb_stars = tmdb->getStars(); epgText_saved = epgText; epgText.clear(); - tmdb_active = true; epgTextSwitch = tmdb->getMovieText(); processTextToArray(tmdb->getEPGText(), 0, tmdb->hasPoster()); textCount = epgText.size(); - stars = tmdb->getStars(); showText(showPos, sy + toph, tmdb->hasPoster()); - } else { - ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_EPGVIEWER_NODETAILED, CMsgBox::mbrOk , CMsgBox::mbrOk); + timeoutEnd = CRCInput::calcTimeoutEnd(timeout); } - } else { + else + ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_EPGVIEWER_NODETAILED, CMsgBox::mbrOk , CMsgBox::mbrOk); + } + else + { + tmdb_active = false; + tmdb_stars = 0; epgText = epgText_saved; textCount = epgText.size(); - tmdb_active = false; - stars=0; showText(showPos, sy + toph); } } @@ -1189,44 +1196,67 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start } case CRCInput::RC_green: { - if (tmdb_active) { + if (tmdb_active) + { tmdb_active = false; + tmdb_stars = 0; epgText = epgText_saved; textCount = epgText.size(); - stars=0; } - if (!imdb_active) + if (g_settings.omdb_enabled) { - //show IMDb info - imdb_active = true; - imdb->setTitle(epgData.title); - showIMDb(); - showTimerEventBar(true, !mp_info && isCurrentEPG(channel_id), mp_info); //show buttons - timeoutEnd = CRCInput::calcTimeoutEnd(timeout); - } - else if (imdb_active && imdb->hasPoster()) - { - imdb_active = false; - CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, LOCALE_IMDB_INFO_SAVE); - hintBox->paint(); - - std::string picname; - if (mp_info) + showPos = 0; + if (!imdb_active) { - size_t _pos; - if ((_pos = movie_filename.rfind(".")) != std::string::npos) - picname = movie_filename.substr(0, _pos) + ".jpg"; + imdb->setTitle(epgData.title); + if (((imdb->getIMDbElement("Title").find(imdb->search_error)) == std::string::npos)) + { + imdb_active = true; + imdb_stars = imdb->getStars(); + epgText_saved = epgText; + epgText.clear(); + epgTextSwitch = imdb->getMovieText(); + processTextToArray(imdb->getEPGText(), 0, imdb->hasPoster()); + textCount = epgText.size(); + showText(0, sy + toph, imdb->hasPoster()); + showTimerEventBar(true, !mp_info && isCurrentEPG(channel_id), mp_info); //show buttons + timeoutEnd = CRCInput::calcTimeoutEnd(timeout); + } + else + ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_EPGVIEWER_NODETAILED, CMsgBox::mbrOk , CMsgBox::mbrOk); + } + else if (imdb_active && imdb->hasPoster()) + { + imdb_active = false; + CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, LOCALE_IMDB_INFO_SAVE); + hintBox->paint(); + + std::string picname; + if (mp_info) + { + size_t _pos; + if ((_pos = movie_filename.rfind(".")) != std::string::npos) + picname = movie_filename.substr(0, _pos) + ".jpg"; + } + else + picname = imdb->getFilename(channel, epgData.eventID); + + CFileHelpers fh; + if (!fh.copyFile(imdb->posterfile.c_str(), picname.c_str(), 0644)) + perror( "IMDb: error copy file" ); + + sleep(2); + hintBox->hide(); + showTimerEventBar(true, !mp_info && isCurrentEPG(channel_id), mp_info); //show buttons } else - picname = imdb->getFilename(channel, epgData.eventID); - - CFileHelpers fh; - if (!fh.copyFile(imdb->posterfile.c_str(), picname.c_str(), 0644)) - perror( "IMDb: error copy file" ); - - sleep(2); - hintBox->hide(); - showTimerEventBar(true, !mp_info && isCurrentEPG(channel_id), mp_info); //show buttons + { + imdb_active = false; + imdb_stars = 0; + epgText = epgText_saved; + textCount = epgText.size(); + showText(showPos, sy + toph); + } } break; } @@ -1638,32 +1668,6 @@ void CEpgData::showTimerEventBar (bool pshow, bool adzap, bool mp_info) } } -//imdb start -int CEpgData::showIMDb() -{ - //title - std::string title = imdb->getIMDbElement("Title"); - - if(((title.find(imdb->search_error)) != std::string::npos)) - return 1; - - // clear epg array - epgText_saved = epgText; - epgText.clear(); - - //data - epgTextSwitch = imdb->getMovieText(); - processTextToArray(imdb->getEPGText(), 0, imdb->hasPoster()); - - textCount = epgText.size(); - - //rating - imdb_stars = imdb->getStars(); - - showText(0, sy + toph, imdb->hasPoster()); - return 0; -} - void CEpgData::ResetModules() { if (header){ diff --git a/src/gui/epgview.h b/src/gui/epgview.h index 1b6c68690..6fee3c2b4 100644 --- a/src/gui/epgview.h +++ b/src/gui/epgview.h @@ -35,8 +35,8 @@ #include -#include -#include +#include "mdb-imdb.h" +#include "mdb-tmdb.h" #include #include "widget/menue.h" #include "widget/navibar.h" @@ -68,7 +68,7 @@ class CEpgData bool has_follow_screenings; bool call_fromfollowlist; bool tmdb_active; - int stars; + time_t tmp_curent_zeit; uint64_t prev_id; @@ -101,14 +101,11 @@ class CEpgData void showProgressBar(); bool isCurrentEPG(const t_channel_id channel_id); - bool imdb_active; - int imdb_stars; + int tmdb_stars, imdb_stars; std::string imdb_rating; std::string epg_title; std::string movie_filename; - int showIMDb(); - Font *fontIMDb; public: