public async Task <TelegraphSimplePage> RetrieveTodaysPost(DateTimeOffset dateTimeOffset) { Page result = null; var hasResultsPendingToCheck = true; var currentOffset = 0; try { while (hasResultsPendingToCheck) { var pageList = await _secureClient.GetPageListAsync(offset : currentOffset, limit : 50); if (pageList.Pages.Count == 50) { currentOffset += 50; } else { hasResultsPendingToCheck = false; while (pageList.Pages.All(x => x.Title.FromTitleWithDate() != null)) { currentOffset -= 50; pageList = await _secureClient.GetPageListAsync(offset : currentOffset, limit : 50); } } var(item1, item2) = Result(dateTimeOffset, pageList, hasResultsPendingToCheck); result = item1; hasResultsPendingToCheck = !item2 && hasResultsPendingToCheck; } } catch (Exception e) { if (e.Message.Contains("FLOOD_WAIT_")) { _logger.LogError("Error while retrieving the posts from the API {0}, waiting 30 seconds.", e.Message); Thread.Sleep(TimeSpan.FromSeconds(30)); } else if (e.Message.Contains("ERROR")) { _logger.LogError("The API returned an error {0}.", e.Message); } } if (result == null) { return(null); } var pageContents = await _client.GetPageAsync(result.Path, true); return(pageContents.ToSimpleTelegraphDto(dateTimeOffset.Date)); }
public async Task <Page> GetPage(string path) { var page = await _client.GetPageAsync(path, returnContent : true); return(page); }