bool CRecentlyAddedJob::UpdateTotal() { CGUIWindow* home = g_windowManager.GetWindow(WINDOW_HOME); if ( home == NULL ) return false; CLog::Log(LOGDEBUG, "CRecentlyAddedJob::UpdateTotal() - Running RecentlyAdded home screen update"); CVideoDatabase videodatabase; CMusicDatabase musicdatabase; musicdatabase.Open(); int MusSongTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(1)").c_str()); int MusAlbumTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(distinct strAlbum)").c_str()); int MusArtistTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(distinct strArtists)").c_str()); musicdatabase.Close(); videodatabase.Open(); int tvShowCount = atoi(videodatabase.GetSingleValue("tvshow_view" , "count(1)").c_str()); int movieTotals = atoi(videodatabase.GetSingleValue("movie_view" , "count(1)").c_str()); int movieWatched = atoi(videodatabase.GetSingleValue("movie_view" , "count(playCount)").c_str()); int MusVidTotals = atoi(videodatabase.GetSingleValue("musicvideo_view" , "count(1)").c_str()); int MusVidWatched = atoi(videodatabase.GetSingleValue("musicvideo_view" , "count(playCount)").c_str()); int EpWatched = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(watchedcount)").c_str()); int EpCount = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(totalcount)").c_str()); int TvShowsWatched = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(watchedcount = totalcount)").c_str()); videodatabase.Close(); home->SetProperty("TVShows.Count" , tvShowCount); home->SetProperty("TVShows.Watched" , TvShowsWatched); home->SetProperty("TVShows.UnWatched" , tvShowCount - TvShowsWatched); home->SetProperty("Episodes.Count" , EpCount); home->SetProperty("Episodes.Watched" , EpWatched); home->SetProperty("Episodes.UnWatched" , EpCount-EpWatched); home->SetProperty("Movies.Count" , movieTotals); home->SetProperty("Movies.Watched" , movieWatched); home->SetProperty("Movies.UnWatched" , movieTotals - movieWatched); home->SetProperty("MusicVideos.Count" , MusVidTotals); home->SetProperty("MusicVideos.Watched" , MusVidWatched); home->SetProperty("MusicVideos.UnWatched" , MusVidTotals - MusVidWatched); home->SetProperty("Music.SongsCount" , MusSongTotals); home->SetProperty("Music.AlbumsCount" , MusAlbumTotals); home->SetProperty("Music.ArtistsCount" , MusArtistTotals); return true; }
bool CRecentlyAddedJob::UpdateMusic() { CGUIWindow* home = g_windowManager.GetWindow(WINDOW_HOME); if ( home == NULL ) return false; CLog::Log(LOGDEBUG, "CRecentlyAddedJob::UpdateMusic() - Running RecentlyAdded home screen update"); int i = 0; CFileItemList musicItems; CMusicDatabase musicdatabase; musicdatabase.Open(); if (musicdatabase.GetRecentlyAddedAlbumSongs("musicdb://", musicItems, NUM_ITEMS)) { for (; i < musicItems.Size(); ++i) { CFileItemPtr item = musicItems.Get(i); CStdString value; value.Format("%i", i + 1); CStdString strThumb; CStdString strRating; CStdString strAlbum = item->GetMusicInfoTag()->GetAlbum(); CStdString strArtist = item->GetMusicInfoTag()->GetArtist(); long idAlbum = musicdatabase.GetAlbumByName(strAlbum,strArtist); if (idAlbum != -1) musicdatabase.GetAlbumThumb(idAlbum,strThumb); strRating.Format("%c", item->GetMusicInfoTag()->GetRating()); home->SetProperty("LatestSong." + value + ".Title" , item->GetMusicInfoTag()->GetTitle()); home->SetProperty("LatestSong." + value + ".Year" , item->GetMusicInfoTag()->GetYear()); home->SetProperty("LatestSong." + value + ".Artist" , strArtist); home->SetProperty("LatestSong." + value + ".Album" , strAlbum); home->SetProperty("LatestSong." + value + ".Rating" , strRating); home->SetProperty("LatestSong." + value + ".Path" , item->GetMusicInfoTag()->GetURL()); home->SetProperty("LatestSong." + value + ".Thumb" , strThumb); home->SetProperty("LatestSong." + value + ".Fanart" , item->GetCachedFanart()); } } for (; i < NUM_ITEMS; ++i) { CStdString value; value.Format("%i", i + 1); home->SetProperty("LatestSong." + value + ".Title" , ""); home->SetProperty("LatestSong." + value + ".Year" , ""); home->SetProperty("LatestSong." + value + ".Artist" , ""); home->SetProperty("LatestSong." + value + ".Album" , ""); home->SetProperty("LatestSong." + value + ".Rating" , ""); home->SetProperty("LatestSong." + value + ".Path" , ""); home->SetProperty("LatestSong." + value + ".Thumb" , ""); home->SetProperty("LatestSong." + value + ".Fanart" , ""); } i = 0; VECALBUMS albums; if (musicdatabase.GetRecentlyAddedAlbums(albums, NUM_ITEMS)) { for (; i < (int)albums.size(); ++i) { CStdString value; CStdString strPath; CStdString strThumb; CStdString strDBpath; CStdString strSQLAlbum; CAlbum& album=albums[i]; value.Format("%i", i + 1); musicdatabase.GetAlbumThumb(album.idAlbum,strThumb); strDBpath.Format("musicdb://3/%i/", album.idAlbum); strSQLAlbum.Format("idAlbum=%i", album.idAlbum); CStdString strArtist = musicdatabase.GetSingleValue("albumview", "strArtist", strSQLAlbum); home->SetProperty("LatestAlbum." + value + ".Title" , musicdatabase.GetAlbumById(album.idAlbum)); home->SetProperty("LatestAlbum." + value + ".Year" , atoi(musicdatabase.GetSingleValue("album", "iYear", strSQLAlbum))); home->SetProperty("LatestAlbum." + value + ".Artist" , strArtist); home->SetProperty("LatestAlbum." + value + ".Rating" , musicdatabase.GetSingleValue("albumview", "iRating", strSQLAlbum)); home->SetProperty("LatestAlbum." + value + ".Path" , strDBpath); home->SetProperty("LatestAlbum." + value + ".Thumb" , strThumb); home->SetProperty("LatestAlbum." + value + ".Fanart" , CFileItem::GetCachedThumb(strArtist,g_settings.GetMusicFanartFolder())); } } for (; i < NUM_ITEMS; ++i) { CStdString value; value.Format("%i", i + 1); home->SetProperty("LatestAlbum." + value + ".Title" , ""); home->SetProperty("LatestAlbum." + value + ".Year" , ""); home->SetProperty("LatestAlbum." + value + ".Artist" , ""); home->SetProperty("LatestAlbum." + value + ".Rating" , ""); home->SetProperty("LatestAlbum." + value + ".Path" , ""); home->SetProperty("LatestAlbum." + value + ".Thumb" , ""); home->SetProperty("LatestAlbum." + value + ".Fanart" , ""); } musicdatabase.Close(); return true; }
bool CRecentlyAddedJob::UpdateMusic() { CGUIWindow* home = g_windowManager.GetWindow(WINDOW_HOME); if ( home == NULL ) return false; CLog::Log(LOGDEBUG, "CRecentlyAddedJob::UpdateMusic() - Running RecentlyAdded home screen update"); int i = 0; CFileItemList musicItems; CMusicDatabase musicdatabase; CMusicThumbLoader loader; loader.Initialize(); musicdatabase.Open(); if (musicdatabase.GetRecentlyAddedAlbumSongs("musicdb://4/", musicItems, NUM_ITEMS)) { long idAlbum = -1; CStdString strAlbumThumb; CStdString strAlbumFanart; for (; i < musicItems.Size(); ++i) { CFileItemPtr item = musicItems.Get(i); CStdString value; value.Format("%i", i + 1); CStdString strRating; CStdString strAlbum = item->GetMusicInfoTag()->GetAlbum(); CStdString strArtist = StringUtils::Join(item->GetMusicInfoTag()->GetArtist(), g_advancedSettings.m_musicItemSeparator); if (idAlbum != item->GetMusicInfoTag()->GetAlbumId()) { strAlbumThumb.clear(); strAlbumFanart.clear(); idAlbum = item->GetMusicInfoTag()->GetAlbumId(); if (loader.LoadItem(item.get())) { strAlbumThumb = item->GetArt("thumb"); strAlbumFanart = item->GetArt("fanart"); } } strRating.Format("%c", item->GetMusicInfoTag()->GetRating()); home->SetProperty("LatestSong." + value + ".Title" , item->GetMusicInfoTag()->GetTitle()); home->SetProperty("LatestSong." + value + ".Year" , item->GetMusicInfoTag()->GetYear()); home->SetProperty("LatestSong." + value + ".Artist" , strArtist); home->SetProperty("LatestSong." + value + ".Album" , strAlbum); home->SetProperty("LatestSong." + value + ".Rating" , strRating); home->SetProperty("LatestSong." + value + ".Path" , item->GetMusicInfoTag()->GetURL()); home->SetProperty("LatestSong." + value + ".Thumb" , strAlbumThumb); home->SetProperty("LatestSong." + value + ".Fanart" , strAlbumFanart); } } for (; i < NUM_ITEMS; ++i) { CStdString value; value.Format("%i", i + 1); home->SetProperty("LatestSong." + value + ".Title" , ""); home->SetProperty("LatestSong." + value + ".Year" , ""); home->SetProperty("LatestSong." + value + ".Artist" , ""); home->SetProperty("LatestSong." + value + ".Album" , ""); home->SetProperty("LatestSong." + value + ".Rating" , ""); home->SetProperty("LatestSong." + value + ".Path" , ""); home->SetProperty("LatestSong." + value + ".Thumb" , ""); home->SetProperty("LatestSong." + value + ".Fanart" , ""); } i = 0; VECALBUMS albums; if (musicdatabase.GetRecentlyAddedAlbums(albums, NUM_ITEMS)) { for (; i < (int)albums.size(); ++i) { CStdString value; CStdString strPath; CStdString strThumb; CStdString strFanart; CStdString strDBpath; CStdString strSQLAlbum; CAlbum& album=albums[i]; value.Format("%i", i + 1); strThumb = musicdatabase.GetArtForItem(album.idAlbum, "album", "thumb"); strFanart = musicdatabase.GetArtistArtForItem(album.idAlbum, "album", "fanart"); strDBpath.Format("musicdb://3/%i/", album.idAlbum); strSQLAlbum.Format("idAlbum=%i", album.idAlbum); CStdString strArtist = musicdatabase.GetSingleValue("albumview", "strArtists", strSQLAlbum); home->SetProperty("LatestAlbum." + value + ".Title" , album.strAlbum); home->SetProperty("LatestAlbum." + value + ".Year" , album.iYear); home->SetProperty("LatestAlbum." + value + ".Artist" , strArtist); home->SetProperty("LatestAlbum." + value + ".Rating" , album.iRating); home->SetProperty("LatestAlbum." + value + ".Path" , strDBpath); home->SetProperty("LatestAlbum." + value + ".Thumb" , strThumb); home->SetProperty("LatestAlbum." + value + ".Fanart" , strFanart); } } for (; i < NUM_ITEMS; ++i) { CStdString value; value.Format("%i", i + 1); home->SetProperty("LatestAlbum." + value + ".Title" , ""); home->SetProperty("LatestAlbum." + value + ".Year" , ""); home->SetProperty("LatestAlbum." + value + ".Artist" , ""); home->SetProperty("LatestAlbum." + value + ".Rating" , ""); home->SetProperty("LatestAlbum." + value + ".Path" , ""); home->SetProperty("LatestAlbum." + value + ".Thumb" , ""); home->SetProperty("LatestAlbum." + value + ".Fanart" , ""); } musicdatabase.Close(); return true; }
bool CHomeShelfJob::UpdateTotal() { CGUIWindow* home = g_windowManager.GetWindow(WINDOW_HOME); if (home == NULL) return false; CLog::Log(LOGDEBUG, "CHomeShelfJob::UpdateTotal() - Running HomeShelf home screen update"); int MusSongTotals = 0; int MusAlbumTotals = 0; int MusArtistTotals = 0; int tvShowCount = 0; int movieTotals = 0; int movieWatched = 0; int MusVidTotals = 0; int MusVidWatched = 0; int EpWatched = 0; int EpCount = 0; int TvShowsWatched = 0; CMusicDatabase musicdatabase; musicdatabase.Open(); if (musicdatabase.HasContent()) { MusSongTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(1)").c_str()); MusAlbumTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(distinct strAlbum)").c_str()); MusArtistTotals = atoi(musicdatabase.GetSingleValue("songview" , "count(distinct strArtists)").c_str()); } musicdatabase.Close(); CVideoDatabase videodatabase; videodatabase.Open(); if (videodatabase.HasContent()) { tvShowCount = atoi(videodatabase.GetSingleValue("tvshow_view" , "count(1)").c_str()); movieTotals = atoi(videodatabase.GetSingleValue("movie_view" , "count(1)").c_str()); movieWatched = atoi(videodatabase.GetSingleValue("movie_view" , "count(playCount)").c_str()); MusVidTotals = atoi(videodatabase.GetSingleValue("musicvideo_view" , "count(1)").c_str()); MusVidWatched = atoi(videodatabase.GetSingleValue("musicvideo_view" , "count(playCount)").c_str()); EpWatched = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(watchedcount)").c_str()); EpCount = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(totalcount)").c_str()); TvShowsWatched = atoi(videodatabase.GetSingleValue("tvshow_view" , "sum(watchedcount = totalcount)").c_str()); } videodatabase.Close(); if(CServicesManager::GetInstance().HasServices()) { // Pull up all plex totals and add to existing ones PlexMediaCount plexTotals; CServicesManager::GetInstance().GetMediaTotals(plexTotals); MusSongTotals = MusSongTotals + plexTotals.iMusicSongs; MusAlbumTotals = MusAlbumTotals + plexTotals.iMusicAlbums; MusArtistTotals = MusArtistTotals + plexTotals.iMusicArtist; tvShowCount = tvShowCount + plexTotals.iShowTotal; movieTotals = movieTotals + plexTotals.iMovieTotal; movieWatched = movieWatched + (plexTotals.iMovieTotal - plexTotals.iMovieUnwatched); EpWatched = EpWatched + (plexTotals.iEpisodeTotal - plexTotals.iEpisodeUnwatched); EpCount = EpCount + plexTotals.iEpisodeTotal; TvShowsWatched = TvShowsWatched + (plexTotals.iShowTotal - plexTotals.iShowUnwatched); } home->SetProperty("Music.SongsCount" , MusSongTotals); home->SetProperty("Music.AlbumsCount" , MusAlbumTotals); home->SetProperty("Music.ArtistsCount" , MusArtistTotals); home->SetProperty("TVShows.Count" , tvShowCount); home->SetProperty("TVShows.Watched" , TvShowsWatched); home->SetProperty("TVShows.UnWatched" , tvShowCount - TvShowsWatched); home->SetProperty("Episodes.Count" , EpCount); home->SetProperty("Episodes.Watched" , EpWatched); home->SetProperty("Episodes.UnWatched" , EpCount-EpWatched); home->SetProperty("Movies.Count" , movieTotals); home->SetProperty("Movies.Watched" , movieWatched); home->SetProperty("Movies.UnWatched" , movieTotals - movieWatched); home->SetProperty("MusicVideos.Count" , MusVidTotals); home->SetProperty("MusicVideos.Watched" , MusVidWatched); home->SetProperty("MusicVideos.UnWatched" , MusVidTotals - MusVidWatched); CLog::Log(LOGDEBUG, "CHomeShelfJob::UpdateTotal() - Finished"); return true; }