Esempio n. 1
0
        protected void DownloadDataCompleted(dynamic sender, dynamic e)
        {
            if (e.Result != null)
            {
                string Name = e.UserState.Name;
                switch ((int)e.UserState.State)
                {
                case 1:
                    var _RootObject = JParse.Parse <Rootobject>(Encoding.UTF8.GetString(e.Result));
                    _TempTotal[Name] = _RootObject.tracks.items.Count;
                    foreach (var Json in _RootObject.tracks.items)
                    {
                        var web = new IWebClient();
                        web.DownloadDataCompleted += DownloadDataCompleted;
                        web.DownloadDataAsync(new Uri(Json.album.href), new IWebClient.WebClientState(Name, 2, new ITag(this.GetType(), Json.name, Json.album.name, Json.artists[0].name, null, DateTime.MinValue, Json.disc_number, Json.track_number)));
                        System.Threading.Thread.Sleep(250);
                    }
                    sender.Dispose();
                    break;

                case 2:
                    var Json2 = JParse.Parse <Album>(System.Text.Encoding.UTF8.GetString(e.Result));
                    e.UserState.State = 3;
                    switch ((string)Json2.release_date_precision)
                    {
                    case "year": e.UserState.Tag.RelaseDate = DateTime.Parse(Json2.release_date + "-01-01"); break;

                    case "month": e.UserState.Tag.RelaseDate = DateTime.Parse(Json2.release_date + "-01"); break;

                    case "day": e.UserState.Tag.RelaseDate = DateTime.Parse(Json2.release_date); break;
                    }
                    sender.DownloadDataAsync(new Uri(Json2.images[0].url), e.UserState);
                    break;

                case 3:
                    e.UserState.Tag.Cover = e.Result;
                    _TempTag[Name].Add(e.UserState.Tag);
                    sender.Dispose();
                    break;
                }
            }
        }
        private byte[] GetUpdateScriptsFromRemote(VersionInfo versionInfo)
        {
            if (versionInfo.Resolved.IsNullOrEmpty())
            {
                return(null);
            }

            string packageUrl = $"{availableSource}/{versionInfo.Resolved}";

            _logger.LogInformation("Getting update scripts for version {0} from {1}", versionInfo.Version, packageUrl);
            byte[] packageByte = _webClient.DownloadDataAsync(packageUrl).GetAwaiter().GetResult();
            try
            {
                string file = Path.Combine(PluginBase.GetPath <UpdaterPlug>(), "DbScripts", $"package.{versionInfo.Version}.zip");
                File.WriteAllBytes(file, packageByte);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
            }

            return(packageByte);
        }
Esempio n. 3
0
        protected override void GetInfo(string Name)
        {
            lock (_Lock)
            {
                _TempTotal.Add(Name, -1);
                _TempTag.Add(Name, new List <ITag>());
            }

            var web = new IWebClient();

            web.DownloadDataCompleted += DownloadDataCompleted;
            web.DownloadDataAsync(new Uri("https://api.spotify.com/v1/search?&type=track&limit=50&q=" + Uri.EscapeDataString(Name.ToLower())), new IWebClient.WebClientState(Name, 1, null));

            while (_TempTotal[Name] != _TempTag[Name].Count)
            {
                System.Threading.Thread.Sleep(1000);
            }

            OnEvent(Name, _TempTag[Name]);

            _TempTotal.Remove(Name);
            _TempTag.Remove(Name);
            base.GetInfo(Name);
        }