NetNewsWire/Shared/Favicons/FaviconGenerator.swift

35 lines
852 B
Swift
Raw Normal View History

//
// FaviconGenerator.swift
// NetNewsWire-iOS
//
// Created by Maurice Parker on 4/29/19.
// Copyright © 2019 Ranchero Software. All rights reserved.
//
import Foundation
import RSCore
import Account
final class FaviconGenerator {
private static var faviconGeneratorCache = [String: IconImage]() // feedURL: RSImage
2024-11-02 11:08:58 -07:00
static func favicon(_ feed: Feed) -> IconImage {
2025-01-22 22:20:08 -08:00
2024-11-02 11:08:58 -07:00
if let favicon = FaviconGenerator.faviconGeneratorCache[feed.url] {
return favicon
}
2025-01-22 22:20:08 -08:00
2024-11-02 11:08:58 -07:00
let colorHash = ColorHash(feed.url)
2025-01-27 22:21:01 -08:00
if let favicon = AppImage.faviconTemplate.maskWithColor(color: colorHash.color.cgColor) {
2024-12-06 18:06:27 +02:00
let iconImage = IconImage(favicon, isBackgroundSuppressed: true)
2024-11-02 11:08:58 -07:00
FaviconGenerator.faviconGeneratorCache[feed.url] = iconImage
return iconImage
} else {
2025-01-27 22:21:01 -08:00
return IconImage(AppImage.faviconTemplate, isBackgroundSuppressed: true)
}
2025-01-22 22:20:08 -08:00
}
2025-01-22 22:20:08 -08:00
}