Exemple #1
0
        public List<Asset> GetMovies()
        {
            var settings = new RegSettings();

            var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json";
            WebClient webClient = new WebClient();
            string ee = webClient.DownloadString(aerialUrl);

            var urls = new JavaScriptSerializer().Deserialize<IdAsset[]>(ee);
            // fetch local files
            var downloadedFiles = new HashSet<string>(urls.SelectMany(s => s.assets).Select(a => a.url.Split('/').Last().ToLower()));
            var localAssets = new List<Asset>();
            foreach (var f in new DirectoryInfo(settings.CacheDir).EnumerateFiles())
            {
                var filename = Path.GetFileName(f.FullName).ToLower();
                if (!downloadedFiles.Contains(filename))
                {
                    localAssets.Add(new Asset() { accessibilityLabel = filename, filename = f.FullName, timeOfDay = "any", type = "video", id = filename });
                }
            }
            if (localAssets.Count > 0)
            {
                var newUrls = urls.ToList();
                newUrls.Add(new IdAsset() { id = "local", assets = localAssets.ToArray() });
                urls = newUrls.ToArray();
            }

            var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day";
            var ran = new Random();
            var links = urls.SelectMany(s => s.assets)
                .OrderBy(t => ran.Next())
            //                .Where(t => t.filename != null) // uncomment to use only local files
                .OrderByDescending(t => settings.UseTimeOfDay && (t.timeOfDay == time || t.timeOfDay == "any"))
                .ToList();

            if (settings.DifferentMoviesOnDual)
                return links;
            if (cachedPlaylist == null)
                cachedPlaylist = links;

            return cachedPlaylist;
        }
        public List<Asset> GetMovies()
        {
            var settings = new RegSettings();
            
            var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json";
            WebClient webClient = new WebClient();
            string ee = webClient.DownloadString(aerialUrl);

            var urls = new JavaScriptSerializer().Deserialize<IdAsset[]>(ee);

            var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day";
            var ran = new Random();
            var links = urls.SelectMany(s => s.assets)
                .OrderBy(t => ran.Next())
                .OrderByDescending(t => settings.UseTimeOfDay && t.timeOfDay == time)
                .ToList();

            if (settings.DifferentMoviesOnDual)
                return links;
            if (cachedPlaylist == null)
                cachedPlaylist = links;

            return cachedPlaylist;
        }