diff options
Diffstat (limited to 'Sora/Data/Moebooru')
| -rw-r--r-- | Sora/Data/Moebooru/MoebooruManager.swift | 4 | ||||
| -rw-r--r-- | Sora/Data/Moebooru/MoebooruTag.swift | 9 | ||||
| -rw-r--r-- | Sora/Data/Moebooru/MoebooruTagXMLParser.swift | 58 |
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 -} |