mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-01-22 23:30:06 +01:00
Create FeedMetadata. Not actually used just yet. (Soon.)
This commit is contained in:
parent
dd39e3a0fe
commit
d498c3f19d
@ -24,6 +24,7 @@
|
|||||||
846E77541F6F00E300A165E2 /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E77531F6F00E300A165E2 /* AccountManager.swift */; };
|
846E77541F6F00E300A165E2 /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846E77531F6F00E300A165E2 /* AccountManager.swift */; };
|
||||||
848935001F62484F00CEBD24 /* Account.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 848934F61F62484F00CEBD24 /* Account.framework */; };
|
848935001F62484F00CEBD24 /* Account.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 848934F61F62484F00CEBD24 /* Account.framework */; };
|
||||||
848935051F62485000CEBD24 /* AccountTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848935041F62485000CEBD24 /* AccountTests.swift */; };
|
848935051F62485000CEBD24 /* AccountTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848935041F62485000CEBD24 /* AccountTests.swift */; };
|
||||||
|
84B2D4D02238CD8A00498ADA /* FeedMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B2D4CE2238C13D00498ADA /* FeedMetadata.swift */; };
|
||||||
84B99C9F1FAE8D3200ECDEDB /* ContainerPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */; };
|
84B99C9F1FAE8D3200ECDEDB /* ContainerPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */; };
|
||||||
84C3654A1F899F3B001EC85C /* CombinedRefreshProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */; };
|
84C3654A1F899F3B001EC85C /* CombinedRefreshProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */; };
|
||||||
84C8B3F41F89DE430053CCA6 /* DataExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C8B3F31F89DE430053CCA6 /* DataExtensions.swift */; };
|
84C8B3F41F89DE430053CCA6 /* DataExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C8B3F31F89DE430053CCA6 /* DataExtensions.swift */; };
|
||||||
@ -101,6 +102,8 @@
|
|||||||
848935041F62485000CEBD24 /* AccountTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountTests.swift; sourceTree = "<group>"; };
|
848935041F62485000CEBD24 /* AccountTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountTests.swift; sourceTree = "<group>"; };
|
||||||
848935061F62485000CEBD24 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
848935061F62485000CEBD24 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
848935101F62486800CEBD24 /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = "<group>"; };
|
848935101F62486800CEBD24 /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = "<group>"; };
|
||||||
|
84AF4EA3222CFDD100F6A800 /* AccountSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSettings.swift; sourceTree = "<group>"; };
|
||||||
|
84B2D4CE2238C13D00498ADA /* FeedMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedMetadata.swift; sourceTree = "<group>"; };
|
||||||
84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainerPath.swift; sourceTree = "<group>"; };
|
84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainerPath.swift; sourceTree = "<group>"; };
|
||||||
84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombinedRefreshProgress.swift; sourceTree = "<group>"; };
|
84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombinedRefreshProgress.swift; sourceTree = "<group>"; };
|
||||||
84C8B3F31F89DE430053CCA6 /* DataExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataExtensions.swift; sourceTree = "<group>"; };
|
84C8B3F31F89DE430053CCA6 /* DataExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataExtensions.swift; sourceTree = "<group>"; };
|
||||||
@ -200,9 +203,11 @@
|
|||||||
children = (
|
children = (
|
||||||
846E77531F6F00E300A165E2 /* AccountManager.swift */,
|
846E77531F6F00E300A165E2 /* AccountManager.swift */,
|
||||||
848935101F62486800CEBD24 /* Account.swift */,
|
848935101F62486800CEBD24 /* Account.swift */,
|
||||||
|
84AF4EA3222CFDD100F6A800 /* AccountSettings.swift */,
|
||||||
841974241F6DDCE4006346C4 /* AccountDelegate.swift */,
|
841974241F6DDCE4006346C4 /* AccountDelegate.swift */,
|
||||||
841974001F6DD1EC006346C4 /* Folder.swift */,
|
841974001F6DD1EC006346C4 /* Folder.swift */,
|
||||||
844B297C2106C7EC004020B3 /* Feed.swift */,
|
844B297C2106C7EC004020B3 /* Feed.swift */,
|
||||||
|
84B2D4CE2238C13D00498ADA /* FeedMetadata.swift */,
|
||||||
844B297E210CE37E004020B3 /* UnreadCountProvider.swift */,
|
844B297E210CE37E004020B3 /* UnreadCountProvider.swift */,
|
||||||
84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */,
|
84B99C9E1FAE8D3200ECDEDB /* ContainerPath.swift */,
|
||||||
84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */,
|
84C365491F899F3B001EC85C /* CombinedRefreshProgress.swift */,
|
||||||
@ -417,6 +422,7 @@
|
|||||||
841974251F6DDCE4006346C4 /* AccountDelegate.swift in Sources */,
|
841974251F6DDCE4006346C4 /* AccountDelegate.swift in Sources */,
|
||||||
846E77541F6F00E300A165E2 /* AccountManager.swift in Sources */,
|
846E77541F6F00E300A165E2 /* AccountManager.swift in Sources */,
|
||||||
844B297D2106C7EC004020B3 /* Feed.swift in Sources */,
|
844B297D2106C7EC004020B3 /* Feed.swift in Sources */,
|
||||||
|
84B2D4D02238CD8A00498ADA /* FeedMetadata.swift in Sources */,
|
||||||
84B99C9F1FAE8D3200ECDEDB /* ContainerPath.swift in Sources */,
|
84B99C9F1FAE8D3200ECDEDB /* ContainerPath.swift in Sources */,
|
||||||
846E77501F6EF9C400A165E2 /* LocalAccountRefresher.swift in Sources */,
|
846E77501F6EF9C400A165E2 /* LocalAccountRefresher.swift in Sources */,
|
||||||
84D09623217418DC00D77525 /* FeedbinTagging.swift in Sources */,
|
84D09623217418DC00D77525 /* FeedbinTagging.swift in Sources */,
|
||||||
|
10
Frameworks/Account/AccountSettings.swift
Normal file
10
Frameworks/Account/AccountSettings.swift
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
//
|
||||||
|
// AccountSettings.swift
|
||||||
|
// Account
|
||||||
|
//
|
||||||
|
// Created by Brent Simmons on 3/3/19.
|
||||||
|
// Copyright © 2019 Ranchero Software, LLC. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
107
Frameworks/Account/FeedMetadata.swift
Normal file
107
Frameworks/Account/FeedMetadata.swift
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
//
|
||||||
|
// FeedMetadata.swift
|
||||||
|
// Account
|
||||||
|
//
|
||||||
|
// Created by Brent Simmons on 3/12/19.
|
||||||
|
// Copyright © 2019 Ranchero Software, LLC. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import RSWeb
|
||||||
|
import Articles
|
||||||
|
|
||||||
|
protocol FeedMetadataDelegate: class {
|
||||||
|
func valueDidChange(_ feedMetadata: FeedMetadata, key: FeedMetadata.CodingKeys)
|
||||||
|
}
|
||||||
|
|
||||||
|
final class FeedMetadata: Codable {
|
||||||
|
|
||||||
|
let feedID: String
|
||||||
|
|
||||||
|
enum CodingKeys: String, CodingKey {
|
||||||
|
case feedID
|
||||||
|
case homePageURL
|
||||||
|
case iconURL
|
||||||
|
case faviconURL
|
||||||
|
case name
|
||||||
|
case editedName
|
||||||
|
case authors
|
||||||
|
case contentHash
|
||||||
|
case conditionalGetInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
var homePageURL: String? {
|
||||||
|
didSet {
|
||||||
|
if homePageURL != oldValue {
|
||||||
|
valueDidChange(.homePageURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var iconURL: String? {
|
||||||
|
didSet {
|
||||||
|
if iconURL != oldValue {
|
||||||
|
valueDidChange(.iconURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var faviconURL: String? {
|
||||||
|
didSet {
|
||||||
|
if faviconURL != oldValue {
|
||||||
|
valueDidChange(.faviconURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var name: String? {
|
||||||
|
didSet {
|
||||||
|
if name != oldValue {
|
||||||
|
valueDidChange(.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var editedName: String? {
|
||||||
|
didSet {
|
||||||
|
if editedName != oldValue {
|
||||||
|
valueDidChange(.editedName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var contentHash: String? {
|
||||||
|
didSet {
|
||||||
|
if contentHash != oldValue {
|
||||||
|
valueDidChange(.contentHash)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var authors: [Author]? {
|
||||||
|
didSet {
|
||||||
|
if authors != oldValue {
|
||||||
|
valueDidChange(.authors)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var conditionalGetInfo: HTTPConditionalGetInfo? {
|
||||||
|
didSet {
|
||||||
|
if conditionalGetInfo != oldValue {
|
||||||
|
valueDidChange(.conditionalGetInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
weak var delegate: FeedMetadataDelegate?
|
||||||
|
|
||||||
|
init(feedID: String, delegate: FeedMetadataDelegate) {
|
||||||
|
self.feedID = feedID
|
||||||
|
self.delegate = delegate
|
||||||
|
}
|
||||||
|
|
||||||
|
func valueDidChange(_ key: CodingKeys) {
|
||||||
|
delegate?.valueDidChange(self, key: key)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user