bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = CSettings::Get().GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); bool bFlatten = (items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2; if (items.GetObjectCount() == 2 && iFlatten == 1) if (items[0]->GetVideoInfoTag()->m_iSeason == 0 || items[1]->GetVideoInfoTag()->m_iSeason == 0) bFlatten = true; // flatten if one season + specials if (iFlatten > 0 && !bFlatten && CMediaSettings::Get().GetWatchedMode("tvshows") == WatchedModeUnwatched) { int count = 0; for(int i = 0; i < items.Size(); i++) { if (items[i]->GetProperty("unwatchedepisodes").asInteger() != 0 && items[i]->GetVideoInfoTag()->m_iSeason != 0) count++; } bFlatten = (count < 2); // flatten if there is only 1 unwatched season (not counting specials) } if (bFlatten) { // flatten if one season or flatten always items.Clear(); CVideoDbUrl videoUrl; if (!videoUrl.FromString(BuildPath())) return false; videoUrl.AppendPath("-2/"); bSuccess=videodatabase.GetEpisodesNav(videoUrl.ToString(), items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(), params.GetTvShowId()); items.SetPath(videoUrl.ToString()); } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); if (items.Size() == 1 && g_guiSettings.GetBool("videolibrary.singleseason")) { items.Clear(); videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = g_guiSettings.GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); if ((items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2) { // flatten if one season or flatten always items.Clear(); bSuccess=videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = g_guiSettings.GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); bool bFlatten = (items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2; if (items.GetObjectCount() == 2 && iFlatten == 1) if (items[0]->GetVideoInfoTag()->m_iSeason == 0 || items[1]->GetVideoInfoTag()->m_iSeason == 0) bFlatten = true; // flatten if one season + specials if (!bFlatten && g_settings.GetWatchMode("tvshows") == VIDEO_SHOW_UNWATCHED) { int count = 0; for(int i = 0; i < items.Size(); i++) { if (items[i]->GetPropertyInt("unwatchedepisodes") != 0 && items[i]->GetVideoInfoTag()->m_iSeason != 0) count++; } bFlatten = (count < 2); // flatten if there is only 1 unwatched season (not counting specials) } if (bFlatten) { // flatten if one season or flatten always items.Clear(); bSuccess=videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeTitleMusicVideos::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=videodatabase.GetMusicVideosNav(strBaseDir, items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(),params.GetStudioId(),params.GetAlbumId()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeTitleMovies::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=videodatabase.GetMoviesNav(strBaseDir, items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(),params.GetStudioId(),params.GetSetId()); if (params.GetSetId() == -1) videodatabase.GetSetsNav("videodb://1/7/",items,params.GetContentType()); videodatabase.Close(); return bSuccess; }