Skip to content

Commit

Permalink
Merge pull request #6 from jonsagara/feature/category
Browse files Browse the repository at this point in the history
#5: Make the shape of iTunesCategory more closely match the shape of …
  • Loading branch information
jonsagara committed Jan 10, 2024
2 parents 288d529 + 1c4ac79 commit f55ed0a
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<Nullable>enable</Nullable>

<!-- NuGet -->
<Version>1.0.0-alpha2</Version>
<Version>1.0.0-alpha3</Version>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion>
<Authors>Armin Reiter; Jon Sagara</Authors>
Expand Down
14 changes: 7 additions & 7 deletions src/Sagara.FeedReader.Tests.Unit/ItunesTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ public async Task TestItunesSampleFeed_Async()
Assert.NotNull(itunesChannel.Categories);

var itunesChannelCategories = itunesChannel.Categories.ToArray();
Assert.Equal("Technology", itunesChannelCategories[0].CategoryText);
Assert.NotNull(itunesChannelCategories[0].SubcategoryText);
Assert.Equal("Gadgets", itunesChannelCategories[0].SubcategoryText);
Assert.Equal("TV & Film", itunesChannelCategories[1].CategoryText);
Assert.Equal("Arts", itunesChannelCategories[2].CategoryText);
Assert.NotNull(itunesChannelCategories[2].SubcategoryText);
Assert.Equal("Food", itunesChannelCategories[2].SubcategoryText);
Assert.Equal("Technology", itunesChannelCategories[0].Text);
Assert.NotNull(itunesChannelCategories[0].Subcategory?.Text);
Assert.Equal("Gadgets", itunesChannelCategories[0].Subcategory?.Text);
Assert.Equal("TV & Film", itunesChannelCategories[1].Text);
Assert.Equal("Arts", itunesChannelCategories[2].Text);
Assert.NotNull(itunesChannelCategories[2].Subcategory?.Text);
Assert.Equal("Food", itunesChannelCategories[2].Subcategory?.Text);
Assert.False(itunesChannel.Explicit);


Expand Down
8 changes: 4 additions & 4 deletions src/Sagara.FeedReader/Modules/ApplePodcasts/iTunesCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
public class iTunesCategory
{
/// <summary>
/// Top-level category.
/// Top-level category text.
/// </summary>
public string? CategoryText { get; set; }
public string? Text { get; set; }

/// <summary>
/// Subcategory.
/// Optional Subcategory.
/// </summary>
public string? SubcategoryText { get; set; }
public iTunesCategory? Subcategory { get; set; }
}
11 changes: 7 additions & 4 deletions src/Sagara.FeedReader/Modules/ApplePodcasts/iTunesChannel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,15 +162,18 @@ private static iTunesCategory[] ParseCategories(XElement channelElement)
{
// A category has a name stored in a text attribute, and can have up to one nested
// category attribute that is the subcategory.
var categoryName = catElement.GetAttributeValue("text");
var categoryText = catElement.GetAttributeValue("text");
var subCatElement = catElement.GetElement(namespacePrefix: NamespacePrefix, elementName: "category");
var subCategoryName = subCatElement?.GetAttributeValue("text");
var subCategoryText = subCatElement?.GetAttributeValue("text");
var subCategory = !string.IsNullOrWhiteSpace(subCategoryText)
? new iTunesCategory { Text = subCategoryText }
: null;
return new iTunesCategory
{
CategoryText = categoryName,
SubcategoryText = subCategoryName,
Text = categoryText,
Subcategory = subCategory,
};
})
.ToArray();
Expand Down

0 comments on commit f55ed0a

Please sign in to comment.