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" } }