Helper now handles web sourced items
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.Serialization.Json;
|
using System.Runtime.Serialization.Json;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using PocketWP.Extensions;
|
||||||
|
|
||||||
namespace PocketWP
|
namespace PocketWP
|
||||||
{
|
{
|
||||||
@@ -99,9 +100,30 @@ namespace PocketWP
|
|||||||
public static PocketData RetrievePocketData(Uri uri)
|
public static PocketData RetrievePocketData(Uri uri)
|
||||||
{
|
{
|
||||||
var pocketUri = uri.ToString().Replace("/Protocol?encodedLaunchUri=", string.Empty);
|
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
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -87,6 +87,7 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Extensions\UriExtensions.cs" />
|
||||||
<Compile Include="PocketDataItem.cs" />
|
<Compile Include="PocketDataItem.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="PocketHelper.cs" />
|
<Compile Include="PocketHelper.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user