diff --git a/PocketSharp.Reader/PocketReader.cs b/PocketSharp.Reader/PocketReader.cs index eab67a2..b7bb936 100644 --- a/PocketSharp.Reader/PocketReader.cs +++ b/PocketSharp.Reader/PocketReader.cs @@ -76,7 +76,7 @@ namespace PocketSharp { return await Read(new PocketItem() { - ID = 0, + ID = null, Uri = uri }, bodyOnly, noHeadline); } diff --git a/PocketSharp.Tests/GetTests.cs b/PocketSharp.Tests/GetTests.cs index e7e3d99..f1b0169 100644 --- a/PocketSharp.Tests/GetTests.cs +++ b/PocketSharp.Tests/GetTests.cs @@ -75,7 +75,7 @@ namespace PocketSharp.Tests Assert.False(items.Count > 0); - PocketItem item = await client.Get(99999999); + PocketItem item = await client.Get("99999999"); Assert.Null(item); diff --git a/PocketSharp.Tests/ModifyTagsTests.cs b/PocketSharp.Tests/ModifyTagsTests.cs index a28429a..a675456 100644 --- a/PocketSharp.Tests/ModifyTagsTests.cs +++ b/PocketSharp.Tests/ModifyTagsTests.cs @@ -1,9 +1,9 @@ -using System; -using System.Threading.Tasks; +using PocketSharp.Models; +using System; using System.Collections.Generic; -using Xunit; -using PocketSharp.Models; using System.Linq; +using System.Threading.Tasks; +using Xunit; namespace PocketSharp.Tests { @@ -83,7 +83,7 @@ namespace PocketSharp.Tests } - private async Task GetItemById(int id, bool archive = false) + private async Task GetItemById(string id, bool archive = false) { List items = await client.Get(state: archive ? State.archive : State.unread); PocketItem itemDesired = null; diff --git a/PocketSharp.Tests/ModifyTests.cs b/PocketSharp.Tests/ModifyTests.cs index 83791c5..a7615cd 100644 --- a/PocketSharp.Tests/ModifyTests.cs +++ b/PocketSharp.Tests/ModifyTests.cs @@ -101,7 +101,7 @@ namespace PocketSharp.Tests } - private async Task GetItemById(int id, bool archive = false) + private async Task GetItemById(string id, bool archive = false) { List items = await client.Get(state: archive ? State.archive : State.unread); PocketItem itemDesired = null; diff --git a/PocketSharp.Tests/ReadTests.cs b/PocketSharp.Tests/ReadTests.cs index cae04d2..8db0478 100644 --- a/PocketSharp.Tests/ReadTests.cs +++ b/PocketSharp.Tests/ReadTests.cs @@ -22,7 +22,7 @@ namespace PocketSharp.Tests { PocketArticle result = await reader.Read(new PocketItem() { - ID = 99, + ID = "99", Uri = new Uri("http://frontendplay.com/story/4/http-caching-demystified-part-2-implementation") }); @@ -37,7 +37,7 @@ namespace PocketSharp.Tests { PocketArticle result = await reader.Read(new PocketItem() { - ID = 99, + ID = "99", Uri = new Uri("http://frontendplay.com/story/4/http-caching-demystified-part-2-implementation") }, false, true); @@ -54,7 +54,7 @@ namespace PocketSharp.Tests { await reader.Read(new PocketItem() { - ID = 99, + ID = "99", Uri = new Uri("http://frontendplayyyyy.com") }); }); @@ -66,7 +66,7 @@ namespace PocketSharp.Tests { PocketArticle result = await reader.Read(new PocketItem() { - ID = 99, + ID = "99", Uri = new Uri("http://calebjacob.com/tooltipster/") }); diff --git a/PocketSharp.Tests/TestsBase.cs b/PocketSharp.Tests/TestsBase.cs index 2e09ec2..462697b 100644 --- a/PocketSharp.Tests/TestsBase.cs +++ b/PocketSharp.Tests/TestsBase.cs @@ -1,8 +1,7 @@ using System; -using System.Threading.Tasks; using System.Collections.Generic; +using System.Threading.Tasks; using Xunit; -using PocketSharp.Models; namespace PocketSharp.Tests { @@ -10,7 +9,7 @@ namespace PocketSharp.Tests { protected PocketClient client; - protected List itemsToDelete = new List(); + protected List itemsToDelete = new List(); // setup @@ -26,7 +25,7 @@ namespace PocketSharp.Tests // teardown - public void Dispose() + public void Dispose() { itemsToDelete.ForEach(async id => { diff --git a/PocketSharp/Components/Get.cs b/PocketSharp/Components/Get.cs index f250e2a..33d1f8e 100644 --- a/PocketSharp/Components/Get.cs +++ b/PocketSharp/Components/Get.cs @@ -72,7 +72,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task Get(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Get(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { List items = await Get( cancellationToken: cancellationToken, diff --git a/PocketSharp/Components/Modify.cs b/PocketSharp/Components/Modify.cs index c6b82a5..19acb36 100644 --- a/PocketSharp/Components/Modify.cs +++ b/PocketSharp/Components/Modify.cs @@ -31,7 +31,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task Archive(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Archive(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "archive"); } @@ -57,7 +57,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task Unarchive(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Unarchive(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "readd"); } @@ -83,7 +83,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task Favorite(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Favorite(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "favorite"); } @@ -109,7 +109,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task Unfavorite(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Unfavorite(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "unfavorite"); } @@ -135,7 +135,7 @@ namespace PocketSharp /// The item ID. /// /// - public async Task Delete(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task Delete(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "delete"); } @@ -160,7 +160,7 @@ namespace PocketSharp /// The item ID. /// The action. /// - protected async Task SendDefault(CancellationToken cancellationToken, int itemID, string action) + protected async Task SendDefault(CancellationToken cancellationToken, string itemID, string action) { return await Send(new PocketAction() { diff --git a/PocketSharp/Components/ModifyTags.cs b/PocketSharp/Components/ModifyTags.cs index 5c5679a..4f7ed9e 100644 --- a/PocketSharp/Components/ModifyTags.cs +++ b/PocketSharp/Components/ModifyTags.cs @@ -17,7 +17,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task AddTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) + public async Task AddTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) { return await SendTags(cancellationToken, itemID, "tags_add", tags); } @@ -45,7 +45,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task RemoveTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) + public async Task RemoveTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) { return await SendTags(cancellationToken, itemID, "tags_remove", tags); } @@ -73,7 +73,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task RemoveTag(int itemID, string tag, CancellationToken cancellationToken = default(CancellationToken)) + public async Task RemoveTag(string itemID, string tag, CancellationToken cancellationToken = default(CancellationToken)) { return await SendTags(cancellationToken, itemID, "tags_remove", new string[] { tag }); } @@ -100,7 +100,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task RemoveTags(int itemID, CancellationToken cancellationToken = default(CancellationToken)) + public async Task RemoveTags(string itemID, CancellationToken cancellationToken = default(CancellationToken)) { return await SendDefault(cancellationToken, itemID, "tags_clear"); } @@ -127,7 +127,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task ReplaceTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) + public async Task ReplaceTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)) { return await SendTags(cancellationToken, itemID, "tags_replace", tags); } @@ -156,7 +156,7 @@ namespace PocketSharp /// The cancellation token. /// /// - public async Task RenameTag(int itemID, string oldTag, string newTag, CancellationToken cancellationToken = default(CancellationToken)) + public async Task RenameTag(string itemID, string oldTag, string newTag, CancellationToken cancellationToken = default(CancellationToken)) { return await Send(new PocketAction() { @@ -191,7 +191,7 @@ namespace PocketSharp /// The action. /// The tags. /// - protected async Task SendTags(CancellationToken cancellationToken, int itemID, string action, string[] tags) + protected async Task SendTags(CancellationToken cancellationToken, string itemID, string action, string[] tags) { return await Send(new PocketAction() { diff --git a/PocketSharp/IPocketClient.cs b/PocketSharp/IPocketClient.cs index 00c0037..c7e9661 100644 --- a/PocketSharp/IPocketClient.cs +++ b/PocketSharp/IPocketClient.cs @@ -151,7 +151,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Get(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Get(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Retrieves all items by a given filter @@ -220,7 +220,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Archive(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Archive(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Archives the specified item. @@ -238,7 +238,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Unarchive(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Unarchive(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Unarchives the specified item. @@ -256,7 +256,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Favorite(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Favorite(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Favorites the specified item. @@ -274,7 +274,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Unfavorite(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Unfavorite(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Un-favorites the specified item. @@ -292,7 +292,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task Delete(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task Delete(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Deletes the specified item. @@ -312,7 +312,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task AddTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); + Task AddTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); /// /// Adds the specified tags to an item. @@ -332,7 +332,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task RemoveTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); /// /// Removes the specified tags from an item. @@ -352,7 +352,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task RemoveTag(int itemID, string tag, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveTag(string itemID, string tag, CancellationToken cancellationToken = default(CancellationToken)); /// /// Removes a tag from an item. @@ -371,7 +371,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task RemoveTags(int itemID, CancellationToken cancellationToken = default(CancellationToken)); + Task RemoveTags(string itemID, CancellationToken cancellationToken = default(CancellationToken)); /// /// Clears all tags from an item. @@ -390,7 +390,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task ReplaceTags(int itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); + Task ReplaceTags(string itemID, string[] tags, CancellationToken cancellationToken = default(CancellationToken)); /// /// Replaces all existing tags with the given new ones in an item. @@ -411,7 +411,7 @@ namespace PocketSharp /// The cancellation token. /// /// - Task RenameTag(int itemID, string oldTag, string newTag, CancellationToken cancellationToken = default(CancellationToken)); + Task RenameTag(string itemID, string oldTag, string newTag, CancellationToken cancellationToken = default(CancellationToken)); /// /// Renames a tag in an item. diff --git a/PocketSharp/Models/PocketAction.cs b/PocketSharp/Models/PocketAction.cs index 0570225..0783575 100644 --- a/PocketSharp/Models/PocketAction.cs +++ b/PocketSharp/Models/PocketAction.cs @@ -26,7 +26,7 @@ namespace PocketSharp.Models /// The ID. /// [DataMember(Name = "item_id")] - public int ID { get; set; } + public string ID { get; set; } /// /// Gets or sets the URI (for adding a new item). @@ -105,7 +105,7 @@ namespace PocketSharp.Models { "action", Action } }; - if (ID != 0 && !String.IsNullOrEmpty(ID.ToString())) + if (ID != "0" && !String.IsNullOrEmpty(ID.ToString())) parameters.Add("item_id", ID.ToString()); if (Time != null) parameters.Add("time", Time != null ? Utilities.GetUnixTimestamp(Time).ToString() : null); diff --git a/PocketSharp/Models/PocketArticle.cs b/PocketSharp/Models/PocketArticle.cs index 5ece191..97a37ae 100644 --- a/PocketSharp/Models/PocketArticle.cs +++ b/PocketSharp/Models/PocketArticle.cs @@ -1,5 +1,5 @@ -using System; -using PropertyChanged; +using PropertyChanged; +using System; namespace PocketSharp.Models { @@ -15,7 +15,7 @@ namespace PocketSharp.Models /// /// The pocket item ID. /// - public int PocketItemID { get; set; } + public string PocketItemID { get; set; } /// /// Gets or sets the content. diff --git a/PocketSharp/Models/PocketItem.cs b/PocketSharp/Models/PocketItem.cs index 71a943c..e76a62f 100644 --- a/PocketSharp/Models/PocketItem.cs +++ b/PocketSharp/Models/PocketItem.cs @@ -1,8 +1,8 @@ -using System.Diagnostics; -using Newtonsoft.Json; +using Newtonsoft.Json; using PropertyChanged; using System; using System.Collections.Generic; +using System.Diagnostics; namespace PocketSharp.Models { @@ -22,7 +22,7 @@ namespace PocketSharp.Models /// The ID. /// [JsonProperty("item_id")] - public int ID { get; set; } + public string ID { get; set; } /// /// Gets or sets the resolved identifier. @@ -33,14 +33,36 @@ namespace PocketSharp.Models [JsonProperty("resolved_id")] public string ResolvedId { get; set; } + /// + /// Gets or sets the normal URI. + /// + /// + /// The normal URI. + /// + [JsonProperty("normal_url")] + private Uri _NormalUri { get; set; } + + /// + /// Gets or sets the resolved URI. + /// + /// + /// The resolved URI. + /// + [JsonProperty("resolved_url")] + private Uri _ResolvedUri { get; set; } + /// /// Gets or sets the URI. /// /// /// The URI. /// - [JsonProperty("resolved_url")] - public Uri Uri { get; set; } + [JsonIgnore] + public Uri Uri + { + get { return _ResolvedUri ?? _NormalUri; } + set { _NormalUri = value; _ResolvedUri = value; } + } /// /// Gets or sets the title.