From 10383a90e652c669060ca4f50a51660c15109a4a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 22 Oct 2016 10:51:48 -0400 Subject: [PATCH] update PathInfo parsing --- MediaBrowser.Api/BaseApiService.cs | 25 ++++++++++++++++++++---- MediaBrowser.Api/MediaBrowser.Api.csproj | 3 --- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index 3ff432d741..ce3e963b7b 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -6,9 +6,9 @@ using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Session; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; -using ServiceStack.Text.Controller; using ServiceStack.Web; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -275,8 +275,8 @@ namespace MediaBrowser.Api protected string GetPathValue(int index) { - var pathInfo = PathInfo.Parse(Request.PathInfo); - var first = pathInfo.GetArgumentValue(0); + var pathInfo = Parse(Request.PathInfo); + var first = pathInfo[0]; // backwards compatibility if (string.Equals(first, "mediabrowser", StringComparison.OrdinalIgnoreCase) || @@ -285,7 +285,24 @@ namespace MediaBrowser.Api index++; } - return pathInfo.GetArgumentValue(index); + return pathInfo[index]; + } + + private static List Parse(string pathUri) + { + var actionParts = pathUri.Split(new[] { "://" }, StringSplitOptions.None); + + var pathInfo = actionParts[actionParts.Length - 1]; + + var optionsPos = pathInfo.LastIndexOf('?'); + if (optionsPos != -1) + { + pathInfo = pathInfo.Substring(0, optionsPos); + } + + var args = pathInfo.Split('/'); + + return args.Skip(1).ToList(); } /// diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index dafee4b8b6..fde40aeb6c 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -61,9 +61,6 @@ ..\ThirdParty\ServiceStack\ServiceStack.Interfaces.dll - - ..\ThirdParty\ServiceStack.Text\ServiceStack.Text.dll -