Helper now handles web sourced items

This commit is contained in:
ScottIsAFool
2013-12-10 17:58:06 +00:00
parent f349620b16
commit 06d8de9393
3 changed files with 59 additions and 2 deletions
+34
View File
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
namespace PocketWP.Extensions
{
public static class UriExtensions
{
/// <summary>
/// Gets a collection of query string values.
/// </summary>
/// <param name="uri">The current uri.</param>
/// <returns>A collection that contains the query string values.</returns>
public static IDictionary<string, string> QueryString(this Uri uri)
{
var uriString = uri.IsAbsoluteUri ? uri.AbsoluteUri : uri.OriginalString;
var queryIndex = uriString.IndexOf("?", StringComparison.InvariantCulture);
if (queryIndex == -1)
{
return new Dictionary<string, string>();
}
var query = uriString.Substring(queryIndex + 1);
return query.Split('&')
.Where(x => !string.IsNullOrEmpty(x))
.Select(x => x.Split('='))
.ToDictionary(x => HttpUtility.UrlDecode(x[0]), x => x.Length == 2 && !string.IsNullOrEmpty(x[1]) ? HttpUtility.UrlDecode(x[1]) : null);
}
}
}
+24 -2
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
using PocketWP.Extensions;
namespace PocketWP
{
@@ -99,9 +100,30 @@ namespace PocketWP
public static PocketData RetrievePocketData(Uri uri)
{
var pocketUri = uri.ToString().Replace("/Protocol?encodedLaunchUri=", string.Empty);
pocketUri = Uri.UnescapeDataString(pocketUri).Replace(PocketUrl, string.Empty);
pocketUri = Uri.UnescapeDataString(pocketUri);
var queryString = new Uri(pocketUri, UriKind.Absolute).QueryString();
var itemJson = Uri.UnescapeDataString(pocketUri);
if (queryString.ContainsKey("source"))
{
var urlToAdd = queryString["Url"];
var title = queryString["title"];
var item = new PocketData
{
Items = new List<PocketDataItem>
{
new PocketDataItem
{
Uri = urlToAdd,
Title = title
}
}
};
return item;
}
var itemJson = Uri.UnescapeDataString(queryString["Add"]);
try
{
+1
View File
@@ -87,6 +87,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="Extensions\UriExtensions.cs" />
<Compile Include="PocketDataItem.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PocketHelper.cs" />