64 lines
1.8 KiB
Swift
64 lines
1.8 KiB
Swift
import Foundation
|
|
|
|
extension Content {
|
|
|
|
func importOldContent() {
|
|
|
|
let importer = Importer()
|
|
do {
|
|
try importer.importContent()
|
|
} catch {
|
|
print(error)
|
|
return
|
|
}
|
|
for (_, file) in importer.files.sorted(by: { $0.key < $1.key }) {
|
|
storage.copyFile(at: file.url, fileId: file.name)
|
|
// TODO: Store alt text for image and videos
|
|
}
|
|
var missingPages: [String] = []
|
|
for (pageId, page) in importer.pages.sorted(by: { $0.key < $1.key }) {
|
|
storage.save(pageMetadata: page.page, for: pageId)
|
|
|
|
if FileManager.default.fileExists(atPath: page.deContentUrl.path()) {
|
|
storage.copyPageContent(from: page.deContentUrl, for: pageId, language: .german)
|
|
} else {
|
|
missingPages.append(pageId + " (DE)")
|
|
}
|
|
|
|
if FileManager.default.fileExists(atPath: page.enContentUrl.path()) {
|
|
storage.copyPageContent(from: page.enContentUrl, for: pageId, language: .english)
|
|
} else {
|
|
missingPages.append(pageId + " (EN)")
|
|
}
|
|
}
|
|
|
|
for (tagId, tag) in importer.tags {
|
|
storage.save(tagMetadata: tag, for: tagId)
|
|
}
|
|
|
|
for (postId, post) in importer.posts {
|
|
storage.save(post: post, for: postId)
|
|
}
|
|
|
|
let ignoredFiles = importer.ignoredFiles
|
|
.map { $0.path() }
|
|
.sorted()
|
|
|
|
print("Ignored files:")
|
|
for file in ignoredFiles {
|
|
print(file)
|
|
}
|
|
|
|
print("Missing pages:")
|
|
for page in missingPages {
|
|
print(page)
|
|
}
|
|
|
|
do {
|
|
try loadFromDisk()
|
|
} catch {
|
|
print("Failed to load from disk: \(error)")
|
|
}
|
|
}
|
|
}
|