Exemple #1
0
        public static XboxTitleInfo FromTitleId(uint titleId, XboxLocale locale)
        {
            var ret = new XboxTitleInfo {
                TitleId = string.Format("{0:X08}", titleId),
                Locale  = locale.ToString()
            };
            var wc  = new WebClient();
            var url =
                string.Format(
//                              "http://catalog.xboxlive.com/Catalog/Catalog.asmx/Query?methodName=FindGames&Names=Locale&Values={0}&Names=LegalLocale&Values={0}&Names=Store&Values=1&Names=PageSize&Values=100&Names=PageNum&Values=1&Names=DetailView&Values=5&Names=OfferFilterLevel&Values=1&Names=MediaIds&Values=66acd000-77fe-1000-9115-d802{1:X8}&Names=UserTypes&Values=2&Names=MediaTypes&Values=1&Names=MediaTypes&Values=21&Names=MediaTypes&Values=23&Names=MediaTypes&Values=37&Names=MediaTypes&Values=46",
                    "http://marketplace.xbox.com/{0}/Product/66acd000-77fe-1000-9115-d802{1:X8}",
                    locale.Locale, titleId);

            XboxAssetDownloader.SendStatusChanged("Downloading title/asset information...");
//            using(var stream = new MemoryStream(wc.DownloadData(url)))
//                ParseXml(stream, ret);
            ParseHtml(url, ret);
            return(ret);
        }
 public XboxTitleInfo[] GetTitleInfo(uint titleId, XboxLocale locale)
 {
     return(new[] {
         XboxTitleInfo.FromTitleId(titleId, locale)
     });
 }
        private void GetAssetsOnline(object sender, RoutedEventArgs e)
        {
            var context = Ts.TaskScheduler.FromCurrentSynchronizationContext();

            var titleItem = FtpAssetsBox.SelectedItem  as AuroraDbManager.ContentItem;

            var loc_str = Settings.Default.LocaleMarketName;

            var screenNum = Settings.Default.NumScreens;

            int screenCount = 0;

            var loc = new XboxLocale(loc_str, loc_str);

            if(titleItem!= null) {
                _main.BusyIndicator.Visibility= Visibility.Visible;

                Ts.Task.Factory.StartNew(() => {

                    XboxTitleInfo _titleResult = _xboxAssetDownloader.GetTitleInfoSingle(titleItem.TitleIdNumber, loc);

                    var unityCovers = XboxUnity.GetUnityCoverInfo(titleItem.TitleId);

                    if(unityCovers.Count() > 0) {
                        var cover = unityCovers.FirstOrDefault(p => p._unityResponse.Official == true);
                        if(cover!= null) {
                            _boxart.Load(cover.GetCover());
                            }
                        }

                    Ts.Parallel.ForEach(_titleResult.AssetsInfo, (ast) => {

                        if(!ast.HaveAsset) {

                            if(ast.AssetType == XboxTitleInfo.XboxAssetType.Screenshot && screenCount >= screenNum) {
                                return;
                                }
                            var XboxAsset = ast.GetAsset();
                            //   var assetFile = new AuroraAsset.AssetFile();
                            switch(ast.AssetType) {
                                case XboxTitleInfo.XboxAssetType.Icon:
                                _iconBanner.Load(XboxAsset.Image, true);
                                break;
                                case XboxTitleInfo.XboxAssetType.Banner:
                                _iconBanner.Load(XboxAsset.Image, false);
                                break;
                                case XboxTitleInfo.XboxAssetType.Background:
                                _background.Load(XboxAsset.Image);
                                break;
                                case XboxTitleInfo.XboxAssetType.Screenshot:
                                _screenshots.Load(XboxAsset.Image, false);
                                screenCount++;
                                break;
                                default:
                                break;
                                }
                            }

                    });

                }).ContinueWith((t) => {
                    _main.BusyIndicator.Visibility= Visibility.Collapsed;
                }, context);

                }
        }
 public XboxTitleInfo GetTitleInfoSingle(int titleId, XboxLocale locale)
 {
     return GetTitleInfoSingle(Convert.ToUInt32(titleId), locale);
 }
 public XboxTitleInfo GetTitleInfoSingle(uint titleId, XboxLocale locale)
 {
     return XboxTitleInfo.FromTitleId(titleId, locale);
 }
 public XboxTitleInfo[] GetTitleInfo(string keywords, XboxLocale locale)
 {
     var url = string.Format("http://marketplace.xbox.com/{0}/SiteSearch/xbox/?query={1}&PageSize=5", locale.Locale, HttpUtility.UrlEncode(keywords));
     var wc = new WebClient();
     wc.Proxy = null;
     wc.Headers.Add(HttpRequestHeader.UserAgent, App.UserAgent);
     var ret = new List<XboxTitleInfo>();
     using(var stream = wc.OpenRead(url)) {
         if(stream == null)
             return ret.ToArray();
         var res = (XboxKeywordResponse)_serializer.ReadObject(stream);
         ret.AddRange(from entry in res.Entries where entry.DetailsUrl != null let tid = entry.DetailsUrl.IndexOf("d802", StringComparison.Ordinal) where tid > 0 && entry.DetailsUrl.Length >= tid + 12 select uint.Parse(entry.DetailsUrl.Substring(tid + 4, 8), NumberStyles.HexNumber) into titleId select XboxTitleInfo.FromTitleId(titleId, locale));
         }
     return ret.ToArray();
 }
 public XboxTitleInfo[] GetTitleInfo(uint titleId, XboxLocale locale)
 {
     return new[] {
                      XboxTitleInfo.FromTitleId(titleId, locale)
                  };
 }
 public static XboxTitleInfo FromTitleId(uint titleId, XboxLocale locale)
 {
     var ret = new XboxTitleInfo {
         TitleId = string.Format("{0:X08}", titleId),
         Locale = locale.ToString()
         };
     var wc = new WebClient();
     wc.Proxy = null;
     wc.Headers.Add(HttpRequestHeader.UserAgent, App.UserAgent);
     var url =
         string.Format(
                       "http://catalog.xboxlive.com/Catalog/Catalog.asmx/Query?methodName=FindGames&Names=Locale&Values={0}&Names=LegalLocale&Values={0}&Names=Store&Values=1&Names=PageSize&Values=100&Names=PageNum&Values=1&Names=DetailView&Values=5&Names=OfferFilterLevel&Values=1&Names=MediaIds&Values=66acd000-77fe-1000-9115-d802{1:X8}&Names=UserTypes&Values=2&Names=MediaTypes&Values=1&Names=MediaTypes&Values=21&Names=MediaTypes&Values=23&Names=MediaTypes&Values=37&Names=MediaTypes&Values=46",
                       locale.Locale, titleId);
     XboxAssetDownloader.SendStatusChanged("Downloading title/asset information...");
     using(var stream = new MemoryStream(wc.DownloadData(url)))
         LocalOperations.ParseXml(stream, ret);
     return ret;
 }