Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: [JSON] streamdetails are never retrieved #1233

Merged
merged 1 commit into from
Aug 2, 2012
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 61 additions & 7 deletions xbmc/interfaces/json-rpc/VideoLibrary.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@ JSONRPC_STATUS CVideoLibrary::GetMovieDetails(const CStdString &method, ITranspo
if (!videodatabase.GetMovieInfo("", infos, id) || infos.m_iDbId <= 0) if (!videodatabase.GetMovieInfo("", infos, id) || infos.m_iDbId <= 0)
return InvalidParams; return InvalidParams;


for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{
CStdString fieldValue = itr->asString();
if (fieldValue == "streamdetails")
{
videodatabase.GetStreamDetails(infos);
break;
}
}

HandleFileItem("movieid", true, "moviedetails", CFileItemPtr(new CFileItem(infos)), parameterObject, parameterObject["properties"], result, false); HandleFileItem("movieid", true, "moviedetails", CFileItemPtr(new CFileItem(infos)), parameterObject, parameterObject["properties"], result, false);
return OK; return OK;
} }
Expand Down Expand Up @@ -196,6 +206,16 @@ JSONRPC_STATUS CVideoLibrary::GetEpisodeDetails(const CStdString &method, ITrans
if (!videodatabase.GetEpisodeInfo("", infos, id) || infos.m_iDbId <= 0) if (!videodatabase.GetEpisodeInfo("", infos, id) || infos.m_iDbId <= 0)
return InvalidParams; return InvalidParams;


for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{
CStdString fieldValue = itr->asString();
if (fieldValue == "streamdetails")
{
videodatabase.GetStreamDetails(infos);
break;
}
}

CFileItemPtr pItem = CFileItemPtr(new CFileItem(infos)); CFileItemPtr pItem = CFileItemPtr(new CFileItem(infos));
// We need to set the correct base path to get the valid fanart // We need to set the correct base path to get the valid fanart
int tvshowid = infos.m_iIdShow; int tvshowid = infos.m_iIdShow;
Expand Down Expand Up @@ -242,6 +262,16 @@ JSONRPC_STATUS CVideoLibrary::GetMusicVideoDetails(const CStdString &method, ITr
if (!videodatabase.GetMusicVideoInfo("", infos, id) || infos.m_iDbId <= 0) if (!videodatabase.GetMusicVideoInfo("", infos, id) || infos.m_iDbId <= 0)
return InvalidParams; return InvalidParams;


for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{
CStdString fieldValue = itr->asString();
if (fieldValue == "streamdetails")
{
videodatabase.GetStreamDetails(infos);
break;
}
}

HandleFileItem("musicvideoid", true, "musicvideodetails", CFileItemPtr(new CFileItem(infos)), parameterObject, parameterObject["properties"], result, false); HandleFileItem("musicvideoid", true, "musicvideodetails", CFileItemPtr(new CFileItem(infos)), parameterObject, parameterObject["properties"], result, false);
return OK; return OK;
} }
Expand Down Expand Up @@ -616,17 +646,25 @@ JSONRPC_STATUS CVideoLibrary::GetAdditionalMovieDetails(const CVariant &paramete
return InternalError; return InternalError;


bool additionalInfo = false; bool additionalInfo = false;
bool streamdetails = false;
for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++) for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{ {
CStdString fieldValue = itr->asString(); CStdString fieldValue = itr->asString();
if (fieldValue == "cast" || fieldValue == "set" || fieldValue == "setid" || fieldValue == "showlink" || fieldValue == "resume") if (fieldValue == "cast" || fieldValue == "set" || fieldValue == "setid" || fieldValue == "showlink" || fieldValue == "resume")
additionalInfo = true; additionalInfo = true;
else if (fieldValue == "streamdetails")
streamdetails = true;
} }


if (additionalInfo) if (additionalInfo || streamdetails)

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

{ {
for (int index = 0; index < items.Size(); index++) for (int index = 0; index < items.Size(); index++)
videodatabase.GetMovieInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId); {
if (additionalInfo)
videodatabase.GetMovieInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId);
if (streamdetails)
videodatabase.GetStreamDetails(*(items[index]->GetVideoInfoTag()));
}
} }


int size = items.Size(); int size = items.Size();
Expand All @@ -643,17 +681,25 @@ JSONRPC_STATUS CVideoLibrary::GetAdditionalEpisodeDetails(const CVariant &parame
return InternalError; return InternalError;


bool additionalInfo = false; bool additionalInfo = false;
bool streamdetails = false;
for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++) for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{ {
CStdString fieldValue = itr->asString(); CStdString fieldValue = itr->asString();
if (fieldValue == "cast" || fieldValue == "resume") if (fieldValue == "cast" || fieldValue == "resume")
additionalInfo = true; additionalInfo = true;
else if (fieldValue == "streamdetails")
streamdetails = true;
} }


if (additionalInfo) if (additionalInfo || streamdetails)
{ {
for (int index = 0; index < items.Size(); index++) for (int index = 0; index < items.Size(); index++)
videodatabase.GetEpisodeInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId); {
if (additionalInfo)
videodatabase.GetEpisodeInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId);
if (streamdetails)
videodatabase.GetStreamDetails(*(items[index]->GetVideoInfoTag()));
}
} }


int size = items.Size(); int size = items.Size();
Expand All @@ -670,19 +716,27 @@ JSONRPC_STATUS CVideoLibrary::GetAdditionalMusicVideoDetails(const CVariant &par
return InternalError; return InternalError;


bool additionalInfo = false; bool additionalInfo = false;
bool streamdetails = false;
for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++) for (CVariant::const_iterator_array itr = parameterObject["properties"].begin_array(); itr != parameterObject["properties"].end_array(); itr++)
{ {
CStdString fieldValue = itr->asString(); CStdString fieldValue = itr->asString();
if (fieldValue == "resume") if (fieldValue == "resume")
additionalInfo = true; additionalInfo = true;
else if (fieldValue == "streamdetails")
streamdetails = true;
} }


if (additionalInfo) if (additionalInfo || streamdetails)
{ {
for (int index = 0; index < items.Size(); index++) for (int index = 0; index < items.Size(); index++)
videodatabase.GetMusicVideoInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId); {
if (additionalInfo)
videodatabase.GetMusicVideoInfo("", *(items[index]->GetVideoInfoTag()), items[index]->GetVideoInfoTag()->m_iDbId);
if (streamdetails)
videodatabase.GetStreamDetails(*(items[index]->GetVideoInfoTag()));
}
} }

int size = items.Size(); int size = items.Size();
if (items.HasProperty("total") && items.GetProperty("total").asInteger() > size) if (items.HasProperty("total") && items.GetProperty("total").asInteger() > size)
size = (int)items.GetProperty("total").asInteger(); size = (int)items.GetProperty("total").asInteger();
Expand Down