Пример #1
0
        /// <summary>
        /// Adds a given article to the reading list.
        /// </summary>
        /// <param name="url">The url to save.</param>
        /// <returns>An awaitable task.</returns>
        public async Task AddBookmark(string url)
        {
            var request = new RestRequest("bookmarks");

            request.AddParameter("url", url);
            request.Method = Method.POST;
            await ReadabilityClient.MakeRequestAsync(request);
        }
Пример #2
0
        /// <summary>
        /// Gets a specific article from a bookmark based on its href.
        /// </summary>
        /// <param name="bookmark">The bookmark that has the article to be returned.</param>
        /// <returns>The full article as a string. This is useful for immediately saving it.</returns>
        public async Task <Article> GetArticle(Bookmark bookmark)
        {
            var request = new RestRequest(bookmark.ArticleHref.Replace("/api/rest/v1", ""));
            var content = await ReadabilityClient.MakeRequestAsync(request).ConfigureAwait(false);

            var js         = new StringReader(content);
            var jr         = new JsonTextReader(js);
            var serializer = new JsonSerializer();

            return(serializer.Deserialize <Article>(jr));
        }
Пример #3
0
        /// <summary>
        /// Gets the current user from Readability.
        /// </summary>
        public async Task <User> GetCurrentUser()
        {
            var request = new RestRequest("/users/_current");
            var content = await ReadabilityClient.MakeRequestAsync(request);

            var js         = new StringReader(content);
            var jr         = new JsonTextReader(js);
            var serializer = new JsonSerializer();

            return(serializer.Deserialize <User>(jr));
        }
        /// <summary>
        /// Gets a single page of bookmarks.
        /// </summary>
        /// <param name="conditions">The conditions of the request. It gets and converted to a rest request.</param>
        public async Task <BookmarkList> GetBookmarks(Conditions conditions)
        {
            var request = BuildRequestFromConditions(conditions);

            request.Resource = "bookmarks";
            var content = await ReadabilityClient.MakeRequestAsync(request).ConfigureAwait(false);

            var js           = new StringReader(content);
            var jr           = new JsonTextReader(js);
            var serializer   = new JsonSerializer();
            var bookmarkList = serializer.Deserialize <BookmarkList>(jr);

            return(bookmarkList);
        }
Пример #5
0
        /// <summary>
        /// Archives or unarchives an article.
        /// </summary>
        /// <param name="bookmark">The bookmark to be archived or unarchived.</param>
        /// <returns>An awaitable task.</returns>
        public async Task ToggleArchive(Bookmark bookmark)
        {
            var request = new RestRequest("bookmarks/" + bookmark.Id, Method.POST);

            if (bookmark.Archive)
            {
                request.AddParameter("archive", 0);
            }
            else
            {
                request.AddParameter("archive", 1);
            }
            await ReadabilityClient.MakeRequestAsync(request);
        }
Пример #6
0
 /// <summary>
 /// Generic function to make requests for protected data.
 /// </summary>
 /// <param name="request">The request to be made.</param>
 /// <param name="callback">A function to call when done with the request.</param>
 protected async void MakeRequest(RestRequest request)
 {
     await ReadabilityClient.MakeRequestAsync(request);
 }
Пример #7
0
 /// <summary>
 /// Deletes an bookmark.
 /// </summary>
 /// <param name="bookmark">The bookmark to be deleted.</param>
 /// <returns>An awaitable task.</returns>
 public async Task Delete(Bookmark bookmark)
 {
     var request = new RestRequest("bookmarks/" + bookmark.Id, Method.DELETE);
     await ReadabilityClient.MakeRequestAsync(request);
 }