summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruProvider.swift
blob: 3642da024ee6f9040301de4a1964d114131707c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
enum BooruProvider: String, CaseIterable, Codable {
  case danbooru = "Danbooru"
  case gelbooru = "Gelbooru"
  case konachan = "Konachan.com"
  case safebooru = "Safebooru"
  case sakugabooru = "sakugabooru"
  case yandere = "yande.re"

  // MARK: - Properties
  var domain: String {
    Self.domains[self] ?? rawValue.lowercased()
  }

  var asFileNameComponent: String {
    rawValue.lowercased().replacingOccurrences(of: ".", with: "_")
  }

  // MARK: - Private
  private static let domains: [Self: String] = [
    .yandere: "yande.re",
    .konachan: "konachan.com",
    .sakugabooru: "sakugabooru.com",
    .safebooru: "safebooru.org",
    .gelbooru: "gelbooru.com",
    .danbooru: "danbooru.donmai.us",
  ]
}