public async Task GetChannelPlaylistNetAsync() { List <PlaylistPOCO> res = await YouTubeSite.GetChannelPlaylistsNetAsync("UCq9B1wrqZKwucNkjHnUW39A").ConfigureAwait(false); Assert.IsTrue(res.Any()); }
public static async Task SyncChannelPlaylistsAsync(IChannel channel) { switch (channel.Site) { case SiteType.YouTube: List <PlaylistPOCO> fbres = await YouTubeSite.GetChannelPlaylistsNetAsync(channel.ID).ConfigureAwait(true); var pls = new List <IPlaylist>(); pls.AddRange(fbres.Select(poco => PlaylistFactory.CreatePlaylist(poco, channel.Site))); if (pls.Any()) { List <string> ids = await db.GetChannelItemsIdListDbAsync(channel.ID, 0, 0).ConfigureAwait(false); await db.DeleteChannelPlaylistsAsync(channel.ID).ConfigureAwait(false); channel.ChannelPlaylists.Clear(); channel.PlaylistCount = pls.Count; foreach (IPlaylist playlist in pls) { await db.InsertPlaylistAsync(playlist).ConfigureAwait(false); List <string> plv = await YouTubeSite.GetPlaylistItemsIdsListNetAsync(playlist.ID, 0).ConfigureAwait(true); foreach (string id in plv) { if (ids.Contains(id)) { await db.UpdatePlaylistAsync(playlist.ID, id, channel.ID).ConfigureAwait(false); if (!playlist.PlItems.Contains(id)) { playlist.PlItems.Add(id); } } else { IVideoItem item = await VideoItemFactory.GetVideoItemNetAsync(id, channel.Site).ConfigureAwait(false); if (item.ParentID != channel.ID) { continue; } channel.AddNewItem(item); await db.InsertItemAsync(item).ConfigureAwait(false); await db.UpdatePlaylistAsync(playlist.ID, item.ID, channel.ID).ConfigureAwait(false); if (!playlist.PlItems.Contains(id)) { playlist.PlItems.Add(id); } } } channel.ChannelPlaylists.Add(playlist); } } break; } }