コード例 #1
0
ファイル: SyncService.cs プロジェクト: AMerkuri/YogWatch
        /// <summary>
        /// Imports playlist (uploads) items from youtube to redis
        /// </summary>
        /// <returns></returns>
        public async Task ImportUploadsPlaylistItems(IEnumerable<ChannelDto> channels)
        {
                _eventLog.Log("Importing uploads");
                var playlists = new PlaylistsServiceImporter(_task).GetUploadsPlaylist(channels.Select(x => x.RelatedPlaylists.UploadsId));
                await ImportPlaylistItems(playlists);

                _eventLog.Log("Finished importing uploads");
        }
コード例 #2
0
ファイル: SyncService.cs プロジェクト: AMerkuri/YogWatch
        /// <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);
        }