From a15f1157f012835d5e348c1367b4fe13f38f7042 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sun, 11 Aug 2019 16:14:25 +0100 Subject: [PATCH] Start on a JSON provider, but it's not finished yet --- PolyFeed/ParserProviders/IParserProvider.cs | 1 + .../ParserProviders/JsonParserProvider.cs | 45 +++++++++++++++++++ PolyFeed/PolyFeed.csproj | 5 +-- PolyFeed/packages.config | 1 - 4 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 PolyFeed/ParserProviders/JsonParserProvider.cs diff --git a/PolyFeed/ParserProviders/IParserProvider.cs b/PolyFeed/ParserProviders/IParserProvider.cs index 96a69ac..bb9acf8 100644 --- a/PolyFeed/ParserProviders/IParserProvider.cs +++ b/PolyFeed/ParserProviders/IParserProvider.cs @@ -26,6 +26,7 @@ namespace PolyFeed.ParserProviders /// The output feed writer that output should be written to. /// The underlying XML feed try not to use this unless you *really* have to. void SetOutputFeed(AtomFeedWriter feed, XmlWriter xml); + /// /// Parses a web response that's paired with a given . /// diff --git a/PolyFeed/ParserProviders/JsonParserProvider.cs b/PolyFeed/ParserProviders/JsonParserProvider.cs new file mode 100644 index 0000000..13af08f --- /dev/null +++ b/PolyFeed/ParserProviders/JsonParserProvider.cs @@ -0,0 +1,45 @@ +using System; +using System.Net; +using System.Threading.Tasks; +using System.Xml; +using Microsoft.SyndicationFeed.Atom; +using System.Json; +using System.IO; + +namespace PolyFeed.ParserProviders +{ + public class JsonParserProvider : IParserProvider + { + private XmlWriter xml = null; + private AtomFeedWriter feed = null; + + public string Identifier => "json"; + + public JsonParserProvider() { + + } + + public void SetOutputFeed(AtomFeedWriter inFeed, XmlWriter inXml) { + xml = inXml; + feed = inFeed; + } + + public async Task ParseWebResponse(FeedSource source, WebResponse response) + { + string jsonText; + using (StreamReader reader = new StreamReader(response.GetResponseStream())) + jsonText = await reader.ReadToEndAsync(); + + JsonValue jsonValue = JsonValue.Parse(jsonText); + JsonObject json = jsonValue as JsonObject; + if (json == null) + throw new ApplicationException("Error: Failed to parse the JSON into an object."); + + + throw new NotImplementedException("Error %01: Not implemented :-/"); + + + } + + } +} diff --git a/PolyFeed/PolyFeed.csproj b/PolyFeed/PolyFeed.csproj index df0e829..55bf6fe 100644 --- a/PolyFeed/PolyFeed.csproj +++ b/PolyFeed/PolyFeed.csproj @@ -126,15 +126,13 @@ ..\packages\Fizzler.Systems.HtmlAgilityPack.1.2.0\lib\netstandard1.3\Fizzler.Systems.HtmlAgilityPack.dll - - ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll - ..\packages\Microsoft.SyndicationFeed.ReaderWriter.1.0.2\lib\netstandard1.3\Microsoft.SyndicationFeed.ReaderWriter.dll ..\packages\Nett.0.13.0\lib\net40\Nett.dll + @@ -154,6 +152,7 @@ + diff --git a/PolyFeed/packages.config b/PolyFeed/packages.config index e8f658c..3cdb12b 100644 --- a/PolyFeed/packages.config +++ b/PolyFeed/packages.config @@ -8,7 +8,6 @@ -