summaryrefslogtreecommitdiff
path: root/Sora/Data/Moebooru
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Moebooru')
-rw-r--r--Sora/Data/Moebooru/MoebooruManager.swift4
-rw-r--r--Sora/Data/Moebooru/MoebooruTag.swift9
-rw-r--r--Sora/Data/Moebooru/MoebooruTagXMLParser.swift58
3 files changed, 2 insertions, 69 deletions
diff --git a/Sora/Data/Moebooru/MoebooruManager.swift b/Sora/Data/Moebooru/MoebooruManager.swift
index 25d2489..d4f18d2 100644
--- a/Sora/Data/Moebooru/MoebooruManager.swift
+++ b/Sora/Data/Moebooru/MoebooruManager.swift
@@ -3,7 +3,7 @@ import SwiftUI
@MainActor
class MoebooruManager: ObservableObject {
@Published var posts: [MoebooruPost] = []
- @Published var allTags: [MoebooruTag] = []
+ @Published var allTags: [BooruTag] = []
@Published var isLoading: Bool = false
@Published var currentPage: Int = 1
@Published var searchText = ""
@@ -100,7 +100,7 @@ class MoebooruManager: ObservableObject {
if Task.isCancelled { return }
DispatchQueue.main.async {
- self.allTags = (MoebooruTagXMLParser(data: data).parse()).sorted { $0.count > $1.count }
+ self.allTags = (BooruTagXMLParser(data: data).parse()).sorted { $0.count > $1.count }
}
} catch {
if (error as? URLError)?.code != .cancelled {
diff --git a/Sora/Data/Moebooru/MoebooruTag.swift b/Sora/Data/Moebooru/MoebooruTag.swift
deleted file mode 100644
index 6aa7449..0000000
--- a/Sora/Data/Moebooru/MoebooruTag.swift
+++ /dev/null
@@ -1,9 +0,0 @@
-import Foundation
-
-struct MoebooruTag: Identifiable, Hashable {
- let id: String
- let name: String
- let count: Int
- let type: Int
- let ambiguous: Bool
-}
diff --git a/Sora/Data/Moebooru/MoebooruTagXMLParser.swift b/Sora/Data/Moebooru/MoebooruTagXMLParser.swift
deleted file mode 100644
index e8b0213..0000000
--- a/Sora/Data/Moebooru/MoebooruTagXMLParser.swift
+++ /dev/null
@@ -1,58 +0,0 @@
-import Foundation
-
-class MoebooruTagXMLParser: NSObject, XMLParserDelegate {
- private var tags: [MoebooruTag] = []
- private var currentTag: MoebooruTag?
- private var parser: XMLParser
-
- init(data: Data) {
- parser = XMLParser(data: data)
-
- super.init()
-
- parser.delegate = self
- }
-
- func parse() -> [MoebooruTag] {
- parser.parse()
-
- return tags
- }
-
- func parser(_: XMLParser, didStartElement elementName: String, namespaceURI _: String?, qualifiedName _: String?, attributes attributeDict: [String: String] = [:]) {
- if elementName == "tag" {
- guard let id = attributeDict["id"],
- let name = attributeDict["name"],
- let countStr = attributeDict["count"],
- let count = Int(countStr),
- let typeStr = attributeDict["type"],
- let type = Int(typeStr),
- let ambiguousStr = attributeDict["ambiguous"]
- else {
- return
- }
-
- currentTag = MoebooruTag(
- id: id,
- name: name,
- count: count,
- type: type,
- ambiguous: ambiguousStr == "true"
- )
- }
- }
-
- func parser(_: XMLParser, didEndElement elementName: String, namespaceURI _: String?, qualifiedName _: String?) {
- if elementName == "tag", let tag = currentTag {
- tags.append(tag)
-
- currentTag = nil
- }
- }
-
- #if DEBUG
- func parser(_: XMLParser, parseErrorOccurred parseError: any Error) {
- print(parseError)
- }
- #endif
-}