SRNicoNico.Models.NicoNicoWrapper.NicoNicoStoryBoard.GetStoryBoardInternalDataAsync C# (CSharp) Method

GetStoryBoardInternalDataAsync() private method

private GetStoryBoardInternalDataAsync ( ) : Task
return Task
		private async Task<NicoNicoStoryBoardData> GetStoryBoardInternalDataAsync() {

            try {


                var result = await NicoNicoWrapperMain.Session.GetResponseAsync(StoryBoardApiBaseUrl + "&sb=1");

                //見つからなかったり見せてもらえなかったりしたら
                if(result.StatusCode == HttpStatusCode.Forbidden || result.StatusCode == HttpStatusCode.NotFound || result.Content.Headers.ContentDisposition.FileName.Contains("smile")) {

                    return null;
                }

                byte[] response = await result.Content.ReadAsByteArrayAsync();

                var xml = new string(Encoding.ASCII.GetChars(response));
                xml = xml.Substring(39);
                var json = NicoNicoUtil.XmlToJson(xml);
                json = json.Replace("@", "");

                var root = DynamicJson.Parse(json);

                if(root.smile.storyboard.IsArray) {


                    foreach(var entry in root.smile.storyboard) {

                        return new NicoNicoStoryBoardData() {

                            Id = entry.id() ? entry.id : "1",
                            Cols = int.Parse(entry.board_cols),
                            Rows = int.Parse(entry.board_rows),
                            Count = int.Parse(entry.board_number),
                            Width = int.Parse(entry.thumbnail_width),
                            Height = int.Parse(entry.thumbnail_height),
                            Interval = int.Parse(entry.thumbnail_interval),
                            Number = int.Parse(entry.thumbnail_number)
                        };

                    }
                } else {
                    var entry = root.smile.storyboard;

                    return new NicoNicoStoryBoardData() {

                        Id = entry.id() ? entry.id : "1",
                        Cols = int.Parse(entry.board_cols),
                        Rows = int.Parse(entry.board_rows),
                        Count = int.Parse(entry.board_number),
                        Width = int.Parse(entry.thumbnail_width),
                        Height = int.Parse(entry.thumbnail_height),
                        Interval = int.Parse(entry.thumbnail_interval),
                        Number = int.Parse(entry.thumbnail_number)
                    };
                }
            } catch(RequestTimeout) {

                return null;
            }

			return null;
		}
	}