Compare commits
3 Commits
contacts-v
...
contacts-v
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fdddde33b5 | ||
![]() |
f263733609 | ||
![]() |
51a1cf1e26 |
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Mon Mar 03 17:39:16 HKT 2025
|
#Mon Mar 03 20:51:18 HKT 2025
|
||||||
stageCount=7
|
stageCount=8
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=1.0
|
baseVersion=1.0
|
||||||
publishVersion=1.0.6
|
publishVersion=1.0.7
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=1.0.7
|
baseBetaVersion=1.0.8
|
||||||
|
@@ -48,24 +48,29 @@ public class TomCat {
|
|||||||
.url(zipUrl)
|
.url(zipUrl)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try (Response response = client.newCall(request).execute()) {
|
try {
|
||||||
|
Response response = client.newCall(request).execute();
|
||||||
if (!response.isSuccessful()) {
|
if (!response.isSuccessful()) {
|
||||||
throw new IOException("Unexpected code " + response);
|
throw new IOException("Unexpected code " + response);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 下载 ZIP 文件到临时位置
|
// 下载 ZIP 文件到临时位置
|
||||||
File tempZipFile = File.createTempFile("temp", ".zip");
|
File tempZipFile = File.createTempFile("temp", ".zip");
|
||||||
try (InputStream inputStream = response.body().byteStream();
|
try {
|
||||||
FileOutputStream outputStream = new FileOutputStream(tempZipFile)) {
|
InputStream inputStream = response.body().byteStream();
|
||||||
|
FileOutputStream outputStream = new FileOutputStream(tempZipFile);
|
||||||
byte[] buffer = new byte[1024];
|
byte[] buffer = new byte[1024];
|
||||||
int length;
|
int length;
|
||||||
while ((length = inputStream.read(buffer)) > 0) {
|
while ((length = inputStream.read(buffer)) > 0) {
|
||||||
outputStream.write(buffer, 0, length);
|
outputStream.write(buffer, 0, length);
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解压 ZIP 文件到指定文件夹
|
// 解压 ZIP 文件到指定文件夹
|
||||||
try (ZipInputStream zipInputStream = new ZipInputStream(Files.newInputStream(tempZipFile.toPath()))) {
|
try {
|
||||||
|
ZipInputStream zipInputStream = new ZipInputStream(Files.newInputStream(tempZipFile.toPath()));
|
||||||
ZipEntry zipEntry;
|
ZipEntry zipEntry;
|
||||||
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
|
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
|
||||||
Path targetFilePath = Paths.get(destinationFolder, zipEntry.getName());
|
Path targetFilePath = Paths.get(destinationFolder, zipEntry.getName());
|
||||||
@@ -83,11 +88,15 @@ public class TomCat {
|
|||||||
}
|
}
|
||||||
zipInputStream.closeEntry();
|
zipInputStream.closeEntry();
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除临时 ZIP 文件
|
// 删除临时 ZIP 文件
|
||||||
tempZipFile.delete();
|
tempZipFile.delete();
|
||||||
LogUtils.d(TAG, "已更新 BoBullToon 数据");
|
LogUtils.d(TAG, "已更新 BoBullToon 数据");
|
||||||
|
} catch (Exception e) {
|
||||||
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,12 +106,12 @@ public class TomCat {
|
|||||||
try {
|
try {
|
||||||
// 删除旧文件
|
// 删除旧文件
|
||||||
File fOldFolder = new File(destinationFolder);
|
File fOldFolder = new File(destinationFolder);
|
||||||
if(fOldFolder.exists()) {
|
if (fOldFolder.exists()) {
|
||||||
deleteFolderRecursive(fOldFolder);
|
deleteFolderRecursive(fOldFolder);
|
||||||
fOldFolder.mkdirs();
|
fOldFolder.mkdirs();
|
||||||
LogUtils.d(TAG, "已清空 BoBullToon 数据");
|
LogUtils.d(TAG, "已清空 BoBullToon 数据");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新新文件
|
// 更新新文件
|
||||||
downloadAndExtractZip(zipUrl, destinationFolder);
|
downloadAndExtractZip(zipUrl, destinationFolder);
|
||||||
LogUtils.d(TAG, "ZIP 文件下载并解压成功。");
|
LogUtils.d(TAG, "ZIP 文件下载并解压成功。");
|
||||||
@@ -112,14 +121,14 @@ public class TomCat {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 递归删除文件夹及其内容的方法
|
// 递归删除文件夹及其内容的方法
|
||||||
public static void deleteFolderRecursive(File file) {
|
public static void deleteFolderRecursive(File file) {
|
||||||
// 判断是否为文件夹
|
// 判断是否为文件夹
|
||||||
if (file.isDirectory()) {
|
if (file.isDirectory()) {
|
||||||
// 列出文件夹中的所有文件和子文件夹
|
// 列出文件夹中的所有文件和子文件夹
|
||||||
File[] files = file.listFiles();
|
File[] files = file.listFiles();
|
||||||
if (files!= null) {
|
if (files != null) {
|
||||||
// 遍历并递归删除每个文件和子文件夹
|
// 遍历并递归删除每个文件和子文件夹
|
||||||
for (File f : files) {
|
for (File f : files) {
|
||||||
deleteFolderRecursive(f);
|
deleteFolderRecursive(f);
|
||||||
|
@@ -62,7 +62,7 @@
|
|||||||
<Switch
|
<Switch
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="是否启用云盾"
|
android:text="是否启用云盾防御"
|
||||||
android:layout_margin="5dp"
|
android:layout_margin="5dp"
|
||||||
android:id="@+id/sw_IsEnableDun"
|
android:id="@+id/sw_IsEnableDun"
|
||||||
android:onClick="onSW_IsEnableDun"/>
|
android:onClick="onSW_IsEnableDun"/>
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="初始防御层数量:"/>
|
android:text="初始防御层的叠加数量:"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="恢复防御时间间隔(秒钟):"/>
|
android:text="防御层每次恢复的时间间隔(秒钟):"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="每小时回复防御数量:"/>
|
android:text="防御层每次恢复的叠加数量:"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
Reference in New Issue
Block a user