Exemple #1
0
        IEnumerable <BeatmapLittle> GetAllBeatmaps()
        {
            List <BeatmapLittle> beatmaps = new List <BeatmapLittle>();
            var list = osu_db.Beatmaps.AsParallel().GroupBy(x => x.Title).Select(x => x.First()).ToList();

            while (list.Count() >= MAX_BEATMAPS)
            {
                list = list.GetRange(0, list.Count() - 1);
            }
            Parallel.ForEach(list, beatmap =>
            {
                BeatmapLittle aux = new BeatmapLittle(beatmap);
                lock (beatmaps)
                {
                    beatmaps.Add(aux);
                }
            }
                             );
            return(beatmaps);
        }
Exemple #2
0
        public FullTrack FindTrackByBeatmap(BeatmapLittle beatmap)
        {
            FullTrack aux = null;

            SearchItem item = _spotify.SearchItems(beatmap.searchString(), SearchType.Track);

            while (item.HasError())
            {
                Console.WriteLine("Error Status: " + item.Error.Status);
                Console.WriteLine("Error Msg: FindTrackByBeatmap " + item.Error.Message);

                Thread.Sleep(apiSleepTime);

                item = _spotify.SearchItems(beatmap.searchString(), SearchType.Track);
            }
            if (item.Tracks.Total > 0)
            {
                aux = item.Tracks.Items.First();
            }
            return(aux);
        }
Exemple #3
0
        public IEnumerable <BeatmapLittle> GetCollectionBeatmaps(string collectionName)
        {
            if (collectionName.ToLower().Equals("all"))
            {
                return(GetAllBeatmaps());
            }

            List <BeatmapLittle> beatmaps = new List <BeatmapLittle>();
            var hashList = collections_db.Collections.Find(x => x.Name.ToLower() == collectionName.ToLower()).Md5Hashes;

            Parallel.ForEach(hashList, hash =>
            {
                var beatmap       = osu_db.Beatmaps.Find(bm => bm.BeatmapChecksum == hash);
                BeatmapLittle aux = new BeatmapLittle(beatmap);
                lock (beatmaps)
                {
                    beatmaps.Add(aux);
                }
            }
                             );
            return(beatmaps);
        }