private static void PlaylistItemsImport() { var channelService = new ChannelsService(); var channelList = channelService.GetChannelList(); var channels = channelService.GetChannels(channelList.Ids); var playlistsService = new PlaylistsService(); var playlists = playlistsService.GetPlaylists(channels.Select(x => x.Id).ToList()).ToList(); if (playlists.Any(x => x == null)) playlists = _syncService.ImportPlaylists(channels).Result.ToList(); var playlistItemsTask = _syncService.ImportPlaylistItems(playlists); var uploadsTask = _syncService.ImportUploadsPlaylistItems(channels); Task.WaitAll(new[] {playlistItemsTask, uploadsTask}, _taskService.Token); }
private static void VideosImport() { var channelService = new ChannelsService(); var channelList = channelService.GetChannelList(); var channels = channelService.GetChannels(channelList.Ids); _syncService.ImportVideos(channels).Wait(_taskService.Token); }
/// <summary> /// Imports playlists from youtube to redis /// </summary> /// <param name="channels"></param> /// <returns></returns> public async Task<IEnumerable<PlaylistDto>> ImportPlaylists(List<ChannelDto> channels) { return await Task.Run<IEnumerable<PlaylistDto>>(() => { _eventLog.Log("Importing playlists"); var playlists = new PlaylistsServiceImporter(_task).GetPlaylists(channels.Select(x => x.Id)); foreach (var channel in channels) { channel.PlaylistsIds = playlists.Where(playlist => channel.Id == playlist.ChannelId) .OrderByDescending(x => x.PublishedAt) .Select(playlist => playlist.Id).ToList(); } var channelService = new ChannelsService(); channelService.SetChannels(channels); _eventLog.Log("Finished importing playlists"); return playlists; }, _taskCancellationToken); }