mirror of https://github.com/zlatinb/muwire
fix persistence of downloaders which was broken in GitHub issue #65
parent
4ee8841db0
commit
262bd6931d
|
@ -177,6 +177,9 @@ public class DownloadManager {
|
||||||
downloadsFile.eachLine {
|
downloadsFile.eachLine {
|
||||||
def json = slurper.parseText(it)
|
def json = slurper.parseText(it)
|
||||||
File file = new File(DataUtil.readi18nString(Base64.decode(json.file)))
|
File file = new File(DataUtil.readi18nString(Base64.decode(json.file)))
|
||||||
|
File toShare = null
|
||||||
|
if (json.toShare != null)
|
||||||
|
toShare = new File(DataUtil.readi18nString(Base64.decode(json.toShare)))
|
||||||
|
|
||||||
InfoHash infoHash
|
InfoHash infoHash
|
||||||
if (json.hashList != null) {
|
if (json.hashList != null) {
|
||||||
|
@ -216,7 +219,7 @@ public class DownloadManager {
|
||||||
|
|
||||||
Pieces pieces = getPieces(infoHash, (long)json.length, json.pieceSizePow2, sequential)
|
Pieces pieces = getPieces(infoHash, (long)json.length, json.pieceSizePow2, sequential)
|
||||||
|
|
||||||
downloader = new NetworkDownloader(eventBus, this, chatServer, me, file, (long)json.length,
|
downloader = new NetworkDownloader(eventBus, this, chatServer, me, file, toShare, (long)json.length,
|
||||||
infoHash, collectionInfoHash, json.pieceSizePow2, connector, destinations, incompletes, pieces, muSettings.downloadMaxFailures)
|
infoHash, collectionInfoHash, json.pieceSizePow2, connector, destinations, incompletes, pieces, muSettings.downloadMaxFailures)
|
||||||
downloader.successfulDestinations.addAll(destinations) // if it was persisted, it was successful
|
downloader.successfulDestinations.addAll(destinations) // if it was persisted, it was successful
|
||||||
downloader.readPieces()
|
downloader.readPieces()
|
||||||
|
@ -224,7 +227,7 @@ public class DownloadManager {
|
||||||
downloader.paused = json.paused
|
downloader.paused = json.paused
|
||||||
} else {
|
} else {
|
||||||
File source = new File(DataUtil.readi18nString(Base64.decode(json.source)))
|
File source = new File(DataUtil.readi18nString(Base64.decode(json.source)))
|
||||||
downloader = new CopyingDownloader(eventBus, this, file, (long)json.length,
|
downloader = new CopyingDownloader(eventBus, this, file, toShare, (long)json.length,
|
||||||
infoHash, collectionInfoHash, json.pieceSizePow2, source)
|
infoHash, collectionInfoHash, json.pieceSizePow2, source)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,6 +280,9 @@ public class DownloadManager {
|
||||||
if (!downloader.cancelled) {
|
if (!downloader.cancelled) {
|
||||||
def json = [:]
|
def json = [:]
|
||||||
json.file = Base64.encode(DataUtil.encodei18nString(downloader.file.getAbsolutePath()))
|
json.file = Base64.encode(DataUtil.encodei18nString(downloader.file.getAbsolutePath()))
|
||||||
|
if (downloader.toShare != null) {
|
||||||
|
json.toShare = Base64.encode(DataUtil.encodei18nString(downloader.toShare.getAbsolutePath()))
|
||||||
|
}
|
||||||
json.length = downloader.length
|
json.length = downloader.length
|
||||||
json.pieceSizePow2 = downloader.pieceSizePow2
|
json.pieceSizePow2 = downloader.pieceSizePow2
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ abstract class Downloader {
|
||||||
protected final DownloadManager downloadManager
|
protected final DownloadManager downloadManager
|
||||||
|
|
||||||
protected final File file
|
protected final File file
|
||||||
private final File toShare
|
protected final File toShare
|
||||||
protected final long length
|
protected final long length
|
||||||
|
|
||||||
protected volatile InfoHash infoHash, collectionInfoHash
|
protected volatile InfoHash infoHash, collectionInfoHash
|
||||||
|
|
Loading…
Reference in New Issue