private async Task Get4chanBoardsAsync() { if (this._boards.Count != 0) { return; } /*Uri dataUri = new Uri("http://a.4cdn.org/boards.json"); * HttpClient _client = new HttpClient(); * var result = await _client.GetStringAsync(dataUri);*/ Uri dataUri = new Uri("ms-appx:///DataModel/boards.json"); StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri); string result = await FileIO.ReadTextAsync(file); JsonObject jsonObject = JsonObject.Parse(result); JsonArray jsonArray = jsonObject["boards"].GetArray(); BoardsGroup group = new BoardsGroup(); string[] blacklist = { "b", "d", "e", "gif", "h", "hc", "hm", "k", "lgbt", "mlp", "pol", "r", "r9k", "s", "s4s", "t", "u", "y", "soc", "hr", "f" }; foreach (JsonValue boardValue in jsonArray) { JsonObject boardObject = boardValue.GetObject(); bool isBlacklisted = false; foreach (string x in blacklist) { if (x == boardObject["board"].GetString()) { isBlacklisted = true; } } if (isBlacklisted) { continue; } _4chanDataBoard board = new _4chanDataBoard(boardObject["board"].GetString(), boardObject["title"].GetString()); group.Items.Add(board); } this.Boards.Add(group); }
private async Task Get4chanCatalogAsync(_4chanDataBoard board) { if (board.Items.Count != 0) { return; } Uri dataUri = new Uri("http://a.4cdn.org/" + board.Board + "/catalog.json"); HttpClient _client = new HttpClient(); var result = await _client.GetStringAsync(dataUri); JsonArray pages = JsonArray.Parse(result); CatalogsGroup group = new CatalogsGroup(); foreach (JsonValue pageValue in pages) { JsonObject page = pageValue.GetObject(); JsonArray threads = page["threads"].GetArray(); foreach (JsonValue threadValue in threads) { JsonObject threadObject = threadValue.GetObject(); if (threadObject.ContainsKey("tim") && threadObject.ContainsKey("no") && threadObject.ContainsKey("now") && threadObject.ContainsKey("name") && threadObject.ContainsKey("com") && threadObject.ContainsKey("ext")) { _4chanDataCatalog catalog = new _4chanDataCatalog(threadObject["no"].GetNumber(), threadObject["tim"].GetNumber(), threadObject["now"].GetString(), threadObject["name"].GetString(), threadObject["com"].GetString(), threadObject["ext"].GetString(), board.Board); group.Items.Add(catalog); } } } board.Items.Add(group); }
/*******************************************************************************************************/ public static async Task <IEnumerable <CatalogsGroup> > GetCatalogdAsync(_4chanDataBoard board) { await _4chanDataSrc.Get4chanCatalogAsync(board); return(board.Items); }