Ejemplo n.º 1
0
        private void CheckForNewVideoFromSubscriptionsAsync(CancellationToken token, bool showNotifications = true)
        {
            if (!Common.HasInternetConnection())
            {
                Log("!!NO INTERNET CONNECTION!!");
                return;
            }

            if (Settings.Instance.SyncSubscriptionsWithYouTube)
            {
                YouTubeFunctions.UpdateYTSubscriptions().Wait();
            }

            bool tempNotificationSetting = Settings.Instance.ShowNotifications;

            if (!showNotifications)
            {
                Settings.Instance.ShowNotifications = false;
            }

            foreach (Subscription sub in Common.TrackedSubscriptions)
            {
                if (token.IsCancellationRequested)
                {
                    return;
                }

                List <PlaylistItem> newUploads = YouTubeFunctions.GetMostRecentUploadsAsync(sub, sub.LastVideoPublishDate).Result;
                foreach (PlaylistItem item in newUploads)
                {
                    PlaylistItemSnippet newUploadDetails = item.Snippet;
                    Log("New uploaded detected: " + sub.Title + " (" + newUploadDetails.Title + ")");
                    DoActionsForNewUpload(newUploadDetails, sub, token);
                }

                if (newUploads.Count > 0)
                {
                    sub.LastVideoPublishDate = (DateTime)newUploads.First().Snippet.PublishedAt;
                }
            }

            Settings.Instance.ShowNotifications = tempNotificationSetting;

            Common.SerializeSubscriptions();
        }