diff --git a/pvr.hts/addon.xml.in b/pvr.hts/addon.xml.in index 959fd1a1..8ea5c149 100644 --- a/pvr.hts/addon.xml.in +++ b/pvr.hts/addon.xml.in @@ -1,7 +1,7 @@ @ADDON_DEPENDS@ diff --git a/pvr.hts/changelog.txt b/pvr.hts/changelog.txt index 4e9faded..58673658 100644 --- a/pvr.hts/changelog.txt +++ b/pvr.hts/changelog.txt @@ -1,3 +1,12 @@ +v20.2.1 +- Ignore recordings without a file (e.g. removed recordings). +- When parsing recording add/update messages, always set the correct error string. +- Reduce debug log spam. Do not log recording descriptions. + +v20.2.0 +- Update translations +- Adapt to recent API changes + v20.1.2 - Fix Unable to change existing timer rule to use any time diff --git a/src/Tvheadend.cpp b/src/Tvheadend.cpp index 1fd98890..1a67dfd7 100644 --- a/src/Tvheadend.cpp +++ b/src/Tvheadend.cpp @@ -2306,6 +2306,11 @@ void CTvheadend::ParseRecordingAddOrUpdate(htsmsg_t* msg, bool bAdd) !htsmsg_get_u32(msg, "duplicate", &dup) && dup == 1) return; + /* Ignore recordings without a file (e.g. removed recordings) */ + const char* error = htsmsg_get_str(msg, "error"); + if (error && (strstr(error, "missing") != nullptr)) + return; + /* Get/create entry */ Recording& rec = m_recordings[id]; Recording comparison = rec; @@ -2595,15 +2600,12 @@ void CTvheadend::ParseRecordingAddOrUpdate(htsmsg_t* msg, bool bAdd) } /* Error */ - str = htsmsg_get_str(msg, "error"); - if (str) + if (error) { - if (!std::strcmp(str, "300")) + if (!std::strcmp(error, "300")) rec.SetState(PVR_TIMER_STATE_ABORTED); - else if (strstr(str, "missing") != nullptr) - rec.SetState(PVR_TIMER_STATE_ERROR); - else - rec.SetError(str); + + rec.SetError(error); } /* A running recording will have an active subscription assigned to it */ @@ -2648,11 +2650,10 @@ void CTvheadend::ParseRecordingAddOrUpdate(htsmsg_t* msg, bool bAdd) /* Update */ if (rec != comparison) { - std::string error = rec.GetError().empty() ? "none" : rec.GetError(); + const std::string error = rec.GetError().empty() ? "n/a" : rec.GetError(); - Logger::Log(LogLevel::LEVEL_DEBUG, "recording id:%d, state:%s, title:%s, desc:%s, error:%s", - rec.GetId(), state, rec.GetTitle().c_str(), rec.GetDescription().c_str(), - error.c_str()); + Logger::Log(LogLevel::LEVEL_DEBUG, "recording id:%d, state:%s, title:%s, error:%s", + rec.GetId(), state, rec.GetTitle().c_str(), error.c_str()); if (m_asyncState.GetState() > ASYNC_DVR) {