Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Commit

Permalink
upd - Removed Extensification dependency
Browse files Browse the repository at this point in the history
We've removed a dependency on Extensification

---

This project no longer depends on Extensification because it's deprecated. This is a commit to increment the version of the project and to remove this library as a dependency. More information about this deprecation can be found on our blog.

---

Type: upd
Breaking: False
Doc Required: False
Part: 1/1
  • Loading branch information
AptiviCEO committed Jul 8, 2023
1 parent 76862f4 commit 8f69bff
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 94 deletions.
4 changes: 0 additions & 4 deletions Syndian/Instance/RSSFeed.cs
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,10 @@ public void Refresh(string FeedUrl, RSSFeedType FeedType)
if (_FeedArticles.Count != 0 & Articles.Count != 0)
{
if (!_FeedArticles[0].Equals(Articles[0]))
{
_FeedArticles = Articles;
}
}
else
{
_FeedArticles = Articles;
}
}

}
Expand Down
122 changes: 36 additions & 86 deletions Syndian/RSSTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
*
*/

using Extensification.DictionaryExts;
using HtmlAgilityPack;
using Syndian.Instance;
using System;
Expand Down Expand Up @@ -52,52 +51,43 @@ public static List<RSSArticle> MakeRssArticlesFromFeed(XmlNodeList FeedNode, RSS
switch (FeedType)
{
case RSSFeedType.RSS2:
foreach (XmlNode Node in FeedNode[0]) // <channel>
{
foreach (XmlNode Node in FeedNode[0]) // <channel>
foreach (XmlNode Child in Node.ChildNodes) // <item>
{
foreach (XmlNode Child in Node.ChildNodes) // <item>
if (Child.Name == "item")
{
if (Child.Name == "item")
{
var Article = MakeArticleFromFeed(Child);
Articles.Add(Article);
}
var Article = MakeArticleFromFeed(Child);
Articles.Add(Article);
}
}

break;
}

break;
case RSSFeedType.RSS1:
foreach (XmlNode Node in FeedNode[0]) // <channel> or <item>
{
foreach (XmlNode Node in FeedNode[0]) // <channel> or <item>
if (Node.Name == "item")
{
if (Node.Name == "item")
{
var Article = MakeArticleFromFeed(Node);
Articles.Add(Article);
}
var Article = MakeArticleFromFeed(Node);
Articles.Add(Article);
}

break;
}

break;
case RSSFeedType.Atom:
foreach (XmlNode Node in FeedNode[0]) // <feed>
{
foreach (XmlNode Node in FeedNode[0]) // <feed>
if (Node.Name == "entry")
{
if (Node.Name == "entry")
{
var Article = MakeArticleFromFeed(Node);
Articles.Add(Article);
}
var Article = MakeArticleFromFeed(Node);
Articles.Add(Article);
}

break;
}

break;
default:
{
throw new RSSException("Invalid RSS feed type.");
}
throw new RSSException("Invalid RSS feed type.");
}
return Articles;
}
Expand All @@ -118,24 +108,16 @@ public static RSSArticle MakeArticleFromFeed(XmlNode Article)
{
// Check the title
if (ArticleNode.Name == "title")
{
// Trimming newlines and spaces is necessary, since some RSS feeds (GitHub commits) might return string with trailing and leading spaces and newlines.
Title = ArticleNode.InnerText.Trim(Convert.ToChar(Convert.ToChar(13)), Convert.ToChar(Convert.ToChar(10)), ' ');
}

// Check the link
if (ArticleNode.Name == "link")
{
// Links can be in href attribute, so check that.
if (ArticleNode.Attributes.Count != 0 & ArticleNode.Attributes.GetNamedItem("href") is not null)
{
Link = ArticleNode.Attributes.GetNamedItem("href").InnerText;
}
else
{
Link = ArticleNode.InnerText;
}
}

// Check the summary
if (ArticleNode.Name == "summary" | ArticleNode.Name == "content" | ArticleNode.Name == "description")
Expand All @@ -152,25 +134,18 @@ public static RSSArticle MakeArticleFromFeed(XmlNode Article)
// Some feeds have no node called "pre," so work around this...
var PreNode = HtmlContent.DocumentNode.SelectSingleNode("pre");
if (PreNode is null)
{
Description = HtmlContent.DocumentNode.InnerText;
}
else
{
Description = PreNode.InnerText;
}
}
else
{
Description = ArticleNode.InnerText.Trim(Convert.ToChar(Convert.ToChar(13)), Convert.ToChar(Convert.ToChar(10)), ' ');
}
}
else
{
Description = ArticleNode.InnerText.Trim(Convert.ToChar(Convert.ToChar(13)), Convert.ToChar(Convert.ToChar(10)), ' ');
}
}
Parameters.AddIfNotFound(ArticleNode.Name, ArticleNode);
if (!Parameters.ContainsKey(ArticleNode.Name))
Parameters.Add(ArticleNode.Name, ArticleNode);
}
return new RSSArticle(Title, Link, Description, Parameters);
}
Expand All @@ -186,52 +161,27 @@ public static object GetFeedProperty(string FeedProperty, XmlNodeList FeedNode,
switch (FeedType)
{
case RSSFeedType.RSS2:
{
foreach (XmlNode Node in FeedNode[0]) // <channel>
{
foreach (XmlNode Child in Node.ChildNodes)
{
if (Child.Name == FeedProperty)
{
return Child.InnerXml;
}
}
}
foreach (XmlNode Node in FeedNode[0]) // <channel>
foreach (XmlNode Child in Node.ChildNodes)
if (Child.Name == FeedProperty)
return Child.InnerXml;

break;
}
break;
case RSSFeedType.RSS1:
{
foreach (XmlNode Node in FeedNode[0]) // <channel> or <item>
{
foreach (XmlNode Child in Node.ChildNodes)
{
if (Child.Name == FeedProperty)
{
return Child.InnerXml;
}
}
}
foreach (XmlNode Node in FeedNode[0]) // <channel> or <item>
foreach (XmlNode Child in Node.ChildNodes)
if (Child.Name == FeedProperty)
return Child.InnerXml;

break;
}
break;
case RSSFeedType.Atom:
{
foreach (XmlNode Node in FeedNode[0]) // Children of <feed>
{
if (Node.Name == FeedProperty)
{
return Node.InnerXml;
}
}

break;
}
foreach (XmlNode Node in FeedNode[0]) // Children of <feed>
if (Node.Name == FeedProperty)
return Node.InnerXml;

break;
default:
{
throw new RSSException("Invalid RSS feed type.");
}
throw new RSSException("Invalid RSS feed type.");
}
return "";
}
Expand Down
7 changes: 3 additions & 4 deletions Syndian/Syndian.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<AssemblyTitle>Syndian</AssemblyTitle>
<AssemblyDescription>RSS feed library</AssemblyDescription>
<Description>RSS feed library</Description>
<Version>0.1.0</Version>
<Version>0.2.0</Version>
<Authors>Aptivi</Authors>
<DebugType>portable</DebugType>
<AssemblyName>Syndian</AssemblyName>
Expand All @@ -22,8 +22,8 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<PackageIcon>OfficialAppIcon-Syndian-512.png</PackageIcon>
<AssemblyVersion>0.1.0</AssemblyVersion>
<PackageVersion>0.1.0</PackageVersion>
<AssemblyVersion>0.2.0</AssemblyVersion>
<PackageVersion>0.2.0</PackageVersion>
<LangVersion>latest</LangVersion>
</PropertyGroup>

Expand All @@ -42,7 +42,6 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Extensification" Version="2022.4.1.2" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.46" />
</ItemGroup>

Expand Down

0 comments on commit 8f69bff

Please sign in to comment.