Merge pull request #25808 from CastagnaIT/fix_url_parse
[xbmc.git] / xbmc / filesystem / VideoDatabaseDirectory / DirectoryNodeSeasons.cpp
blob25b8b09b2fcd7e443e2c0603eb0d7fe16c9c1f73
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "DirectoryNodeSeasons.h"
11 #include "FileItem.h"
12 #include "QueryParams.h"
13 #include "guilib/LocalizeStrings.h"
14 #include "utils/StringUtils.h"
15 #include "video/VideoDatabase.h"
17 using namespace XFILE::VIDEODATABASEDIRECTORY;
19 CDirectoryNodeSeasons::CDirectoryNodeSeasons(const std::string& strName, CDirectoryNode* pParent)
20 : CDirectoryNode(NODE_TYPE_SEASONS, strName, pParent)
25 NODE_TYPE CDirectoryNodeSeasons::GetChildType() const
27 return NODE_TYPE_EPISODES;
30 std::string CDirectoryNodeSeasons::GetLocalizedName() const
32 switch (GetID())
34 case 0:
35 return g_localizeStrings.Get(20381); // Specials
36 case -1:
37 return g_localizeStrings.Get(20366); // All Seasons
38 case -2:
40 CDirectoryNode* pParent = GetParent();
41 if (pParent)
42 return pParent->GetLocalizedName();
43 return "";
45 default:
46 return GetSeasonTitle();
50 std::string CDirectoryNodeSeasons::GetSeasonTitle() const
52 std::string season;
53 CVideoDatabase db;
54 if (db.Open())
56 CQueryParams params;
57 CollectQueryParams(params);
59 season = db.GetTvShowNamedSeasonById(params.GetTvShowId(), params.GetSeason());
61 if (season.empty())
62 season = StringUtils::Format(g_localizeStrings.Get(20358), GetID()); // Season <n>
64 return season;
67 bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) const
69 CVideoDatabase videodatabase;
70 if (!videodatabase.Open())
71 return false;
73 CQueryParams params;
74 CollectQueryParams(params);
76 bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId());
78 videodatabase.Close();
80 return bSuccess;