Exemple #1
0
        public async Task CheckIntersectionWithWatchedVideos()
        {
            var manager = new YInfoRetriever();

            var fileProvaider = new JsonFileAuthProvider();

            fileProvaider.SetParams(@"D://client_secrets.json");

            await manager.Authorize(fileProvaider);

            var sub = await manager.GetSubscriptions();

            if (!sub.Any())
            {
                return;
            }

            var channel = sub.First();

            var plList = await manager.GetPlayLists(channel.Snippet.ResourceId.ChannelId);

            if (!plList.Any())
            {
                return;
            }

            var pl = plList.First();

            var items = await manager.GetPlayListItems(pl.Id, CancellationToken.None);

            var me = await manager.GetOwnChannel();

            var watched = await manager.GetPlayListItems(me.ContentDetails.RelatedPlaylists.WatchHistory, CancellationToken.None);

            var someItersection = watched.Select(w => w.Snippet.ResourceId.VideoId).Intersect(items.Select(i => i.Snippet.ResourceId.VideoId));


            foreach (var item in someItersection)
            {
                Debug.Print(item);
            }
            Assert.IsTrue(someItersection.Any());
            Assert.IsNotNull(someItersection);
        }
        private async Task GetWatched()
        {
            //Contract.Assert(youRetriever != null && youRetriever.IsAuthorized);
            Status = "Getting watched videos";

            if (youRetriever == null || !youRetriever.IsAuthorized)
            {
                Status = "Yor arent authorized! Please, press Connect first";
                return;
            }

            var yourChannel = await youRetriever.GetOwnChannel();

            ThreadPool.QueueUserWorkItem(async(a) =>
            {
                var watched = await
                              youRetriever.GetPlayListItems(yourChannel.ContentDetails.RelatedPlaylists.WatchHistory,
                                                            CancellationToken.None, ReportProgress);
                WatchedItems.Clear();
                WatchedItems.AddRange(watched.Select(w => w.Snippet.ResourceId.VideoId));
            });

            Status = "Watched history updated";
        }