public async Task<NicoNicoStoryBoardData> GetStoryBoardAsync() {
try {
//エコノミーだったら
if(StoryBoardApiBaseUrl.Contains("low")) {
return null;
}
var data = await GetStoryBoardInternalDataAsync();
//ストーリーボードが無かったら
if(data == null) {
return null;
}
//APIURL
var uri = StoryBoardApiBaseUrl + "&sb=" + data.Id + "&board=";
int bitmapindex = 0;
for(int i = 1; i <= data.Count; i++) {
var response = await NicoNicoWrapperMain.Session.GetStreamAsync(uri + i);
var bitmap = new Bitmap(response);
for(int j = 0; j < data.Cols; j++) {
for(int k = 0; k < data.Rows; k++) {
var rect = new Rectangle(data.Width * k, data.Height * j, data.Width, data.Height);
data.BitmapCollection[bitmapindex] = bitmap.Clone(rect, bitmap.PixelFormat);
bitmapindex += data.Interval;
}
}
}
return data;
} catch(Exception e) when (e is RequestTimeout || e is ArgumentException) {
return null;
}
}