fix: make sure volumeURLs are sorted, and are set correctly in metadata
This commit was merged in pull request #15.
This commit is contained in:
@@ -194,8 +194,10 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
loadLocalState()
|
loadLocalState()
|
||||||
let volCovP = ProgressIndices(v: progress.v, c: 0, i: 0)
|
let volCovP = ProgressIndices(v: progress.v, c: 0, i: 0)
|
||||||
let volumeDir = currentPath.appendingPathComponent("volumes")
|
let volumeDir = currentPath.appendingPathComponent("volumes")
|
||||||
let archive = try! Archive(url: volumeDir.appendingPathComponent(metadata.volumes[progress.v].archive), accessMode: .read)
|
let archivePath = volumeDir.appendingPathComponent(metadata.volumes[volCovP.v].archive)
|
||||||
let targetEntry = archive[metadata.volumes[volCovP.v].chapters[volCovP.c].images[volCovP.i].filename]!
|
let archive = try! Archive(url: archivePath, accessMode: .read)
|
||||||
|
let filename = metadata.volumes[volCovP.v].chapters[volCovP.c].images[volCovP.i].filename!
|
||||||
|
let targetEntry = archive[filename]!
|
||||||
var extractedData = Data()
|
var extractedData = Data()
|
||||||
_ = try archive.extract(targetEntry) { data in
|
_ = try archive.extract(targetEntry) { data in
|
||||||
extractedData.append(data)
|
extractedData.append(data)
|
||||||
@@ -205,7 +207,8 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
cover: UIImage(data: extractedData)!,
|
cover: UIImage(data: extractedData)!,
|
||||||
metadata: metadata,
|
metadata: metadata,
|
||||||
path: dir
|
path: dir
|
||||||
))
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
print("Failed to read directories")
|
print("Failed to read directories")
|
||||||
@@ -289,6 +292,7 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
var volumes: [Offset] = []
|
var volumes: [Offset] = []
|
||||||
var currentChapters: [Offset] = []
|
var currentChapters: [Offset] = []
|
||||||
var currentImages: [Offset] = []
|
var currentImages: [Offset] = []
|
||||||
|
var previousVolumeURL = ""
|
||||||
|
|
||||||
var titleValue: String = ""
|
var titleValue: String = ""
|
||||||
|
|
||||||
@@ -304,6 +308,7 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
includingPropertiesForKeys: [.isRegularFileKey],
|
includingPropertiesForKeys: [.isRegularFileKey],
|
||||||
options: [.skipsHiddenFiles]
|
options: [.skipsHiddenFiles]
|
||||||
).filter { $0.pathExtension == "cbz" }
|
).filter { $0.pathExtension == "cbz" }
|
||||||
|
.sorted { $0.lastPathComponent < $1.lastPathComponent }
|
||||||
|
|
||||||
if volumeURLs.isEmpty {
|
if volumeURLs.isEmpty {
|
||||||
print("found no volumes in volume dir: \(volumeDir)")
|
print("found no volumes in volume dir: \(volumeDir)")
|
||||||
@@ -372,7 +377,6 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let regex = pattern!
|
let regex = pattern!
|
||||||
let titleRegex = titlePattern!
|
let titleRegex = titlePattern!
|
||||||
|
|
||||||
@@ -435,7 +439,7 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
currentChapters.append(chapterMetadata)
|
currentChapters.append(chapterMetadata)
|
||||||
|
|
||||||
let volumeTitle = builder.create(string: "")
|
let volumeTitle = builder.create(string: "")
|
||||||
let volumeURLOffset = builder.create(string: volumeURL)
|
let volumeURLOffset = builder.create(string: previousVolumeURL)
|
||||||
let chaptersOffset = builder.createVector(ofOffsets: currentChapters)
|
let chaptersOffset = builder.createVector(ofOffsets: currentChapters)
|
||||||
let volumeMetadata = VolumeMetadata.createVolumeMetadata(
|
let volumeMetadata = VolumeMetadata.createVolumeMetadata(
|
||||||
&builder,
|
&builder,
|
||||||
@@ -507,6 +511,7 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
}
|
}
|
||||||
currentVolume = volume
|
currentVolume = volume
|
||||||
currentChapter = chapter
|
currentChapter = chapter
|
||||||
|
previousVolumeURL = volumeURL
|
||||||
} else {
|
} else {
|
||||||
print("no regex match on \(filename), returning")
|
print("no regex match on \(filename), returning")
|
||||||
return
|
return
|
||||||
@@ -1319,10 +1324,7 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func setImages(path _: URL) {
|
func setImages(path _: URL) {
|
||||||
let scaling: UIView.ContentMode!
|
let scaling: UIView.ContentMode = mode == .scroll ? .scaleAspectFill : .scaleAspectFit
|
||||||
if mode == .scroll {
|
|
||||||
scaling = UIView.ContentMode.scaleAspectFill
|
|
||||||
} else { scaling = UIView.ContentMode.scaleAspectFit }
|
|
||||||
imageLoader.loadImage(
|
imageLoader.loadImage(
|
||||||
archiveURL: currentPath.appendingPathComponent("volumes").appendingPathComponent(metadata.volumes[progress.v].archive),
|
archiveURL: currentPath.appendingPathComponent("volumes").appendingPathComponent(metadata.volumes[progress.v].archive),
|
||||||
filename: getImagePath(progress: progress),
|
filename: getImagePath(progress: progress),
|
||||||
@@ -1330,8 +1332,8 @@ class ViewController: UIViewController, UIGestureRecognizerDelegate {
|
|||||||
screenSize: UIScreen.main.bounds.size
|
screenSize: UIScreen.main.bounds.size
|
||||||
) { [weak self] image in
|
) { [weak self] image in
|
||||||
self?.imageView.image = image
|
self?.imageView.image = image
|
||||||
self?.updateInfo()
|
|
||||||
}
|
}
|
||||||
|
updateInfo()
|
||||||
|
|
||||||
var newProgress = progress
|
var newProgress = progress
|
||||||
for _ in 0 ..< preloadCount {
|
for _ in 0 ..< preloadCount {
|
||||||
|
|||||||
Reference in New Issue
Block a user