using System.Net.Http.Json; using Core.Entities.Wallabag; using Wallabag.Client.Models; namespace Wallabag.Client; public partial class WallabagService { public async Task> GetEntries(string format = "json", int limit = 50, bool full = false) { var bookmarks = new List(); var url = $"/api/entries.{format}?perPage={limit}"; if (!full) { url = $"{url}&detail=metadata"; } var allQuery = await GetJsonAsync(url); if (allQuery != null && allQuery.Embedded != null && allQuery.Embedded.Items != null && allQuery.Embedded.Items.Count() > 0) { bookmarks = allQuery.Embedded.Items; if (allQuery.Total > limit) { while (allQuery.QueryLinks.Next != null && !string.IsNullOrEmpty(allQuery.QueryLinks.Next.Href)) { // url = allQuery.QueryLinks.Next.Href.Replace(_settings.Url, ""); url = allQuery.QueryLinks.Next.Href; if (_client.BaseAddress.Scheme == "https") { url = allQuery.QueryLinks.Next.Href.Replace("http://", "https://"); } allQuery = await GetJsonAsync(url); bookmarks.AddRange(allQuery.Embedded.Items); } } } return bookmarks; } public async Task GetEntryById(int id, string format = "json") { var url = $"/api/entries/{id}.{format}"; var item = await GetJsonAsync(url); return item; } public async Task AddEntryByUrl(string url, IEnumerable tags = null, string format = "json") { var endpoint = $"/api/entries.{format}"; var keyVals = new Dictionary(); keyVals.Add("url", url); if (tags != null && tags.Count() > 0) { keyVals.Add("tags", string.Join(",", tags)); } var content = new FormUrlEncodedContent(keyVals); var response = await PostWithFormDataAsnyc(endpoint, content); var item = await response.Content.ReadFromJsonAsync(); return item; } // private async Task GetBookmarkResultsAsync(int limit = 100, int offset = 0) // { // WallabagEntry bookmarkResult = null; // // var url = $"/api/bookmarks/"; // // bookmarkResult = await GetBookmarkResultsAsync(url); // // return bookmarkResult; // } // // private async Task GetBookmarkResultsAsync(string url) // { // WallabagEntry bookmarkResult = null; // // bookmarkResult = await _client.GetFromJsonAsync(url); // // return bookmarkResult; // } }