Skip to content

Commit 9ca5ffe

Browse files
committed
- file's last modified on server
1 parent 2f69556 commit 9ca5ffe

7 files changed

Lines changed: 20 additions & 5 deletions

File tree

.github/workflows/ci_cd.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches:
55
- main
66
env:
7-
VERSION: 1.4.8
7+
VERSION: 1.4.9
88
EXT_VERSION: 1.1
99
NAME: BitKip
1010
jobs:

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88
}
99

1010
group 'io.beanvortex'
11-
version '1.4.8'
11+
version '1.4.9'
1212
sourceCompatibility = '21'
1313
targetCompatibility = '21'
1414
mainClassName = 'io.beanvortex.bitkip.BitKip'

builders/linux-installer/application/BitKip.desktop

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[Desktop Entry]
22
Name=BitKip
3-
Version=1.4.8
3+
Version=1.4.9
44
Comment=Free download manager
55
Keywords=download,java,app
66
Exec=/usr/share/BitKip/bin/BitKip

src/main/java/io/beanvortex/bitkip/config/AppConfigs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
public class AppConfigs {
1919

20-
public static final String VERSION = "1.4.8";
20+
public static final String VERSION = "1.4.9";
2121

2222
public static final String dataPath = System.getProperty("user.home")
2323
+ File.separator + "Documents"

src/main/java/io/beanvortex/bitkip/task/ChunksDownloadTask.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.nio.file.NoSuchFileException;
2222
import java.nio.file.Path;
2323
import java.nio.file.Paths;
24+
import java.nio.file.attribute.FileTime;
2425
import java.time.LocalDateTime;
2526
import java.util.ArrayList;
2627
import java.util.List;
@@ -45,6 +46,7 @@ public class ChunksDownloadTask extends DownloadTask {
4546
private String url;
4647
private long bytesToDownloadEachInCycleLimited;
4748
private boolean newLimitSet;
49+
private long lastModified;
4850

4951
public ChunksDownloadTask(DownloadModel downloadModel, long speedLimit, long byteLimit) throws DeniedException {
5052
super(downloadModel);
@@ -164,6 +166,8 @@ private void performDownload(long fromContinue, long from, long to, File partFil
164166
throws IOException {
165167
try {
166168
var con = DownloadUtils.connect(url);
169+
var con2 = DownloadUtils.connect(url);
170+
lastModified = con2.getLastModified();
167171
con.addRequestProperty("Range", "bytes=" + fromContinue + "-" + to);
168172
var out = new FileOutputStream(partFile, partFile.exists());
169173
var fileChannel = out.getChannel();
@@ -203,6 +207,8 @@ private void performSpeedLimitedDownload(long fromContinue, long from, long to,
203207
if (retries != downloadRetryCount) {
204208
try {
205209
var con = DownloadUtils.connect(url);
210+
var con2 = DownloadUtils.connect(url);
211+
lastModified = con2.getLastModified();
206212
if (!downloadModel.isResumable())
207213
con.setRequestProperty("User-Agent", userAgent);
208214
con.addRequestProperty("Range", "bytes=" + fromContinue + "-" + to);
@@ -328,6 +334,8 @@ private void runFinalization() {
328334
});
329335
if (download.isOpenAfterComplete())
330336
DownloadOpUtils.openFile(download);
337+
var fileTime = FileTime.fromMillis(lastModified);
338+
Files.setLastModifiedTime(Path.of(download.getFilePath()), fileTime);
331339
} else if (!newLimitSet)
332340
openDownloadings.stream().filter(dc -> dc.getDownloadModel().equals(download))
333341
.forEach(DetailsController::onPause);

src/main/java/io/beanvortex/bitkip/task/SpecialDownloadTask.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
import java.nio.channels.Channels;
1919
import java.nio.channels.FileChannel;
2020
import java.nio.channels.ReadableByteChannel;
21+
import java.nio.file.Files;
2122
import java.nio.file.Path;
23+
import java.nio.file.attribute.FileTime;
2224
import java.time.LocalDateTime;
2325
import java.util.concurrent.ExecutorService;
2426

@@ -34,6 +36,7 @@ public class SpecialDownloadTask extends DownloadTask {
3436
private long fileSize;
3537
private String url;
3638
private boolean isCalculating;
39+
private long lastModified;
3740

3841

3942
/**
@@ -70,6 +73,8 @@ private void performDownloadInStream() throws IOException {
7073
var notResumableOnly = fileSize > 0;
7174
try {
7275
var con = DownloadUtils.connect(url);
76+
var con2 = DownloadUtils.connect(url);
77+
lastModified = con2.getLastModified();
7378
con.setRequestProperty("User-Agent", userAgent);
7479
i = con.getInputStream();
7580
rbc = Channels.newChannel(i);
@@ -167,7 +172,8 @@ protected void succeeded() {
167172
});
168173
if (download.isOpenAfterComplete())
169174
DownloadOpUtils.openFile(downloadModel);
170-
175+
var fileTime = FileTime.fromMillis(lastModified);
176+
Files.setLastModifiedTime(Path.of(download.getFilePath()), fileTime);
171177
} else openDownloadings.stream().filter(dc -> dc.getDownloadModel().equals(download))
172178
.forEach(DetailsController::onPause);
173179

src/main/java/io/beanvortex/bitkip/utils/DownloadUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public static HttpURLConnection connectWithInternetCheck(String uri, boolean sho
4646
try {
4747
if (uri.isBlank())
4848
throw new IllegalArgumentException("URL is blank");
49+
uri = Validations.fixURIChars(uri);
4950
var url = URI.create(uri).toURL();
5051
var testCon = (HttpURLConnection) url.openConnection();
5152
testCon.setConnectTimeout(2000);

0 commit comments

Comments
 (0)