diff --git a/Fervor/Sources/Fervor/Feed.swift b/Fervor/Sources/Fervor/Feed.swift
index f34e99c..01af86c 100644
--- a/Fervor/Sources/Fervor/Feed.swift
+++ b/Fervor/Sources/Fervor/Feed.swift
@@ -9,7 +9,7 @@ import Foundation
public struct Feed: Decodable, Sendable {
public let id: FervorID
- public let title: String
+ public let title: String?
public let url: URL?
public let serviceURL: URL?
public let feedURL: URL
@@ -20,7 +20,7 @@ public struct Feed: Decodable, Sendable {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.id = try container.decode(FervorID.self, forKey: .id)
- self.title = try container.decode(String.self, forKey: .title)
+ self.title = try container.decodeIfPresent(String.self, forKey: .title)
self.url = try container.decode(URL?.self, forKey: .url)
self.serviceURL = try container.decodeIfPresent(URL.self, forKey: .serviceURL)
self.feedURL = try container.decode(URL.self, forKey: .feedURL)
diff --git a/Persistence/Sources/Persistence/Reader.xcdatamodeld/.xccurrentversion b/Persistence/Sources/Persistence/Reader.xcdatamodeld/.xccurrentversion
index a193a52..d9147a4 100644
--- a/Persistence/Sources/Persistence/Reader.xcdatamodeld/.xccurrentversion
+++ b/Persistence/Sources/Persistence/Reader.xcdatamodeld/.xccurrentversion
@@ -3,6 +3,6 @@
_XCCurrentVersionName
- Reader 3.xcdatamodel
+ Reader 4.xcdatamodel
diff --git a/Persistence/Sources/Persistence/Reader.xcdatamodeld/Reader 4.xcdatamodel/contents b/Persistence/Sources/Persistence/Reader.xcdatamodeld/Reader 4.xcdatamodel/contents
new file mode 100644
index 0000000..7cecee1
--- /dev/null
+++ b/Persistence/Sources/Persistence/Reader.xcdatamodeld/Reader 4.xcdatamodel/contents
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Reader/FervorController.swift b/Reader/FervorController.swift
index fb4f95d..695f653 100644
--- a/Reader/FervorController.swift
+++ b/Reader/FervorController.swift
@@ -74,8 +74,8 @@ actor FervorController {
setSyncState(.groupsAndFeeds)
logger.info("Syncing groups and feeds")
- async let groups = try client.groups()
- async let feeds = try client.feeds()
+ let groups = try await client.groups()
+ let feeds = try await client.feeds()
try await persistentContainer.sync(serverGroups: groups, serverFeeds: feeds)
setSyncState(.items)
diff --git a/Reader/ItemListType.swift b/Reader/ItemListType.swift
index 7bb5f03..6ab2bcf 100644
--- a/Reader/ItemListType.swift
+++ b/Reader/ItemListType.swift
@@ -24,7 +24,7 @@ enum ItemListType: Hashable, Equatable {
case let .group(group):
return group.title
case let .feed(feed):
- return feed.title!
+ return feed.title ?? feed.url?.host() ?? "Unknown Feed"
}
}