mirror of https://github.com/zlatinb/muwire
fix for silent uploader exceptions
parent
e295aa67d5
commit
3160c1a8f3
|
@ -51,4 +51,23 @@ class ContentUploader extends Uploader {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return file.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized int getProgress() {
|
||||
if (mapped == null)
|
||||
return 0
|
||||
int position = mapped.position()
|
||||
int total = request.getRange().end - request.getRange().start
|
||||
(int)(position * 100.0 / total)
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDownloader() {
|
||||
request.downloader.getHumanReadableName()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ import java.nio.charset.StandardCharsets
|
|||
import com.muwire.core.InfoHash
|
||||
import com.muwire.core.connection.Endpoint
|
||||
|
||||
import net.i2p.data.Base64
|
||||
|
||||
class HashListUploader extends Uploader {
|
||||
private final InfoHash infoHash
|
||||
private final HashListRequest request
|
||||
|
@ -14,6 +16,7 @@ class HashListUploader extends Uploader {
|
|||
super(endpoint)
|
||||
this.infoHash = infoHash
|
||||
mapped = ByteBuffer.wrap(infoHash.getHashList())
|
||||
this.request = request
|
||||
}
|
||||
|
||||
void respond() {
|
||||
|
@ -32,4 +35,21 @@ class HashListUploader extends Uploader {
|
|||
}
|
||||
endpoint.getOutputStream().flush()
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Hash list for " + Base64.encode(infoHash.getRoot());
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized int getProgress() {
|
||||
(int)(mapped.position() * 100.0 / mapped.capacity())
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDownloader() {
|
||||
request.downloader.getHumanReadableName()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -23,4 +23,13 @@ abstract class Uploader {
|
|||
return -1
|
||||
mapped.position()
|
||||
}
|
||||
|
||||
abstract String getName();
|
||||
|
||||
/**
|
||||
* @return an integer between 0 and 100
|
||||
*/
|
||||
abstract int getProgress();
|
||||
|
||||
abstract String getDownloader();
|
||||
}
|
||||
|
|
|
@ -160,16 +160,13 @@ class MainFrameView {
|
|||
scrollPane (constraints : BorderLayout.CENTER) {
|
||||
table(id : "uploads-table") {
|
||||
tableModel(list : model.uploads) {
|
||||
closureColumn(header : "Name", type : String, read : {row -> row.file.getName() })
|
||||
closureColumn(header : "Name", type : String, read : {row -> row.getName() })
|
||||
closureColumn(header : "Progress", type : String, read : { row ->
|
||||
int position = row.getPosition()
|
||||
def range = row.request.getRange()
|
||||
int total = range.end - range.start
|
||||
int percent = (int)((position * 100.0) / total)
|
||||
int percent = row.getProgress()
|
||||
"$percent%"
|
||||
})
|
||||
closureColumn(header : "Downloader", type : String, read : { row ->
|
||||
row.request.downloader?.getHumanReadableName()
|
||||
row.getDownloader()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue