Compare commits

..

2 Commits

Author SHA1 Message Date
08b4ad98ed pom: 打包配置 2024-10-30 00:59:58 +08:00
3414f0f421 ci: 打包路径 2024-10-30 00:26:14 +08:00
10 changed files with 46 additions and 87 deletions

View File

@ -118,7 +118,7 @@ jobs:
- name: Build with Maven - name: Build with Maven
run: | run: |
mvn clean package -f pom.xml mvn clean package -f pom.xml
mkdir zipball && cp target/*.zip zipball mkdir zipball && cp ../target/*.zip zipball
- name: Upload AListGUI to Github - name: Upload AListGUI to Github
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')

View File

@ -20,7 +20,7 @@
### 截图 ### 截图
<details open> <details>
<summary> 主界面 </summary> <summary> 主界面 </summary>
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/909ac6ad-0021-47d7-a75c-7fb6505e8c15"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/909ac6ad-0021-47d7-a75c-7fb6505e8c15">
@ -28,7 +28,7 @@
</picture> </picture>
</details> </details>
<details open> <details>
<summary> 管理员信息 </summary> <summary> 管理员信息 </summary>
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/840dca69-e67d-4083-88f8-8e67c3e47141"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/840dca69-e67d-4083-88f8-8e67c3e47141">
@ -36,7 +36,7 @@
</picture> </picture>
</details> </details>
<details open> <details>
<summary> 设置 </summary> <summary> 设置 </summary>
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/8fc8c489-b9cd-4e34-ad32-4899ccc275e9"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/8fc8c489-b9cd-4e34-ad32-4899ccc275e9">
@ -44,7 +44,7 @@
</picture> </picture>
</details> </details>
<details open> <details>
<summary> 关于 </summary> <summary> 关于 </summary>
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/dbef2d66-4ca4-4e89-8292-dbdce3566f93"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/dbef2d66-4ca4-4e89-8292-dbdce3566f93">

View File

@ -7,11 +7,11 @@
<parent> <parent>
<groupId>cn.octopusyan</groupId> <groupId>cn.octopusyan</groupId>
<artifactId>alist-gui</artifactId> <artifactId>alist-gui</artifactId>
<version>${gui.version}</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>gui</artifactId> <artifactId>gui</artifactId>
<version>${gui.version}</version> <version>${parent.version}</version>
<name>alist-gui</name> <name>alist-gui</name>
<properties> <properties>
@ -21,8 +21,6 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<parent.version>${gui.version}</parent.version>
<exec.mainClass>cn.octopusyan.alistgui.AppLauncher</exec.mainClass> <exec.mainClass>cn.octopusyan.alistgui.AppLauncher</exec.mainClass>
<cssSrcPath>${project.basedir}/src/main/resources/css</cssSrcPath> <cssSrcPath>${project.basedir}/src/main/resources/css</cssSrcPath>
<cssTargetPath>${project.basedir}/target/classes/css</cssTargetPath> <cssTargetPath>${project.basedir}/target/classes/css</cssTargetPath>
@ -193,7 +191,7 @@
<mainClass>cn.octopusyan.alistgui/${exec.mainClass}</mainClass> <mainClass>cn.octopusyan.alistgui/${exec.mainClass}</mainClass>
<options> <options>
<option>--enable-preview</option> <option>--enable-preview</option>
<!-- <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005</option>--> <!-- <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005</option>-->
</options> </options>
</configuration> </configuration>
</execution> </execution>

View File

@ -41,7 +41,7 @@ public class Application extends javafx.application.Application {
long delay = 0L; long delay = 0L;
// 更新重启检查 // 更新重启检查
File upgradeFile = new File(Constants.DATA_DIR_PATH + File.separator + new Gui().getReleaseFile()); File upgradeFile = new File(Constants.DATA_DIR_PATH + File.separator + new Gui().getReleaseFile());
// logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile()); logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile());
if (upgradeFile.exists()) { if (upgradeFile.exists()) {
logger.error("upgradeFile.exists"); logger.error("upgradeFile.exists");
FileUtil.del(upgradeFile); FileUtil.del(upgradeFile);
@ -165,7 +165,7 @@ public class Application extends javafx.application.Application {
instanceCheckLatch.countDown(); instanceCheckLatch.countDown();
while (true) { while (true) {
logger.debug(STR."====\{instanceId}===="); logger.error(STR."====\{instanceId}====");
try ( try (
Socket clientSocket = serverSocket.accept(); Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader( BufferedReader in = new BufferedReader(

View File

@ -143,21 +143,24 @@ public class AListManager {
ConsoleLog.info(getText("alist.status.stop")); ConsoleLog.info(getText("alist.status.stop"));
if (!running.get()) { if (!running.get()) {
ConsoleLog.warning(getText("alist.status.stop.stopped")); ConsoleLog.warning(getText("alist.status.stop.stopped"));
return;
} }
util.destroy(); util.destroy();
} }
static ChangeListener<Boolean> restartListener = (_, _, run) -> { static ChangeListener<Boolean> restartListener;
if (run) return;
running.removeListener(AListManager.restartListener);
start();
};
public static void restart() { public static void restart() {
if (!running.get()) { if (!running.get()) {
start(); start();
} else { } else {
stop(); stop();
restartListener = (_, _, run) -> {
if (run) return;
running.removeListener(restartListener);
start();
};
running.addListener(restartListener); running.addListener(restartListener);
} }
} }
@ -191,7 +194,7 @@ public class AListManager {
//============================={ private }==================================== //============================={ private }====================================
/** /**
* 点击开始时检查 aList 执行文件 * TODO 点击开始时检查 aList 执行文件
*/ */
private static boolean checkAList() { private static boolean checkAList() {
if (new File(Constants.ALIST_FILE).exists()) return true; if (new File(Constants.ALIST_FILE).exists()) return true;
@ -213,11 +216,6 @@ public class AListManager {
return false; return false;
} }
/**
* 开始下载AList
*
* @param version 下载版本号
*/
private static void showDownload(String version) { private static void showDownload(String version) {
String content = STR.""" String content = STR."""
\{getText("msg.alist.download.notfile")} \{getText("msg.alist.download.notfile")}

View File

@ -19,10 +19,9 @@ import org.apache.commons.lang3.time.DateFormatUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -34,7 +33,7 @@ public class ConsoleLog {
public static final String format = "yyyy/MM/dd hh:mm:ss"; public static final String format = "yyyy/MM/dd hh:mm:ss";
private volatile static ConsoleLog log; private volatile static ConsoleLog log;
private final VBox textArea; private final VBox textArea;
private final static String CONSOLE_COLOR_PREFIX = "\033["; private final static String CONSOLE_COLOR_PREFIX = "^\033[";
private final static String CONSOLE_MSG_REX = "^\033\\[(\\d+)m(.*)\033\\[0m(.*)$"; private final static String CONSOLE_MSG_REX = "^\033\\[(\\d+)m(.*)\033\\[0m(.*)$";
private final static String URL_IP_REX = "^((ht|f)tps?:\\/\\/)?[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]+(:\\d{1,5})?\\/?$"; private final static String URL_IP_REX = "^((ht|f)tps?:\\/\\/)?[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]+(:\\d{1,5})?\\/?$";
@ -89,6 +88,16 @@ public class ConsoleLog {
if (StringUtils.isEmpty(message) || !isInit()) return; if (StringUtils.isEmpty(message) || !isInit()) return;
message = message.strip(); message = message.strip();
message = StrUtil.format(message, param); message = StrUtil.format(message, param);
// 多颜色消息处理
if (StringUtils.countMatches(message, CONSOLE_COLOR_PREFIX) > 1) {
String[] split = message.replace(CONSOLE_MSG_REX, "\n%s".formatted(CONSOLE_COLOR_PREFIX)).split("\n");
List<String> msgs = Arrays.stream(split).toList();
for (String msg : msgs) {
msg(msg);
}
return;
}
message = setPwdText(message); message = setPwdText(message);
message = resetConsoleColor(message); message = resetConsoleColor(message);
@ -178,35 +187,17 @@ public class ConsoleLog {
/** /**
* 控制台输出颜色 * 控制台输出颜色
* *
* @param msg 输出消息 * @param msg alist 输出消息
* @return bbcode 颜色文本 * @return bbcode 颜色文本
*/ */
private static String resetConsoleColor(String msg) { private static String resetConsoleColor(String msg) {
if (!msg.contains(CONSOLE_COLOR_PREFIX) || !Pattern.matches(CONSOLE_MSG_REX, msg)) return msg; if (!msg.contains("\033[")) return msg;
// 多颜色处理 String colorCode = ReUtil.get(CONSOLE_MSG_REX, msg, 1);
String[] split = Pattern.compile("\\033\\[(\\d;)?(\\d+)m") String color = StringUtils.lowerCase(Color.valueOf(Integer.parseInt(colorCode)).getColor());
.matcher(msg) String colorMsg = ReUtil.get(CONSOLE_MSG_REX, msg, 2);
.replaceAll(matchResult -> "\n" + matchResult.group()) msg = ReUtil.get(CONSOLE_MSG_REX, msg, 3);
.replaceFirst("\n", "") return color(color, colorMsg) + msg;
.split("\n");
StringBuilder sb = new StringBuilder();
Pattern pattern = Pattern.compile("\\033\\[(\\d;)?(\\d+)m(.*)");
Matcher matcher;
for (int i = 0; i < split.length; i++) {
matcher = pattern.matcher(split[i]);
if(!matcher.matches()) continue;
if (i % 2 == 0) {
String color = StringUtils.lowerCase(Color.valueOf(Integer.parseInt(matcher.group(2))).getColor());
sb.append(color(color, matcher.group(3)));
} else {
sb.append(matcher.group(3));
}
}
return sb.toString();
} }
/** /**

View File

@ -17,7 +17,6 @@ import cn.octopusyan.alistgui.view.alert.AlertUtil;
import cn.octopusyan.alistgui.view.alert.builder.AlertBuilder; import cn.octopusyan.alistgui.view.alert.builder.AlertBuilder;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.*; import javafx.beans.property.*;
import javafx.beans.value.ChangeListener;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
@ -145,13 +144,8 @@ public class AboutViewModule extends BaseViewModel {
Platform.runLater(() -> { Platform.runLater(() -> {
switch (app) { switch (app) {
case AList _ -> { case AList _ -> {
if(AListManager.isRunning()) {
AListManager.stop();
AListManager.runningProperty().addListener(updateListener);
} else {
// 下载完成后,解压并删除文件 // 下载完成后,解压并删除文件
DownloadUtil.unzip(app); DownloadUtil.unzip(app);
}
// 设置应用版本 // 设置应用版本
aListVersion.setValue(aListNewVersion.getValue()); aListVersion.setValue(aListNewVersion.getValue());
AListManager.restart(); AListManager.restart();
@ -169,12 +163,4 @@ public class AboutViewModule extends BaseViewModel {
}).execute(); }).execute();
}); });
} }
static final ChangeListener<Boolean> updateListener = (_, _, run) -> {
if (!run) {
// 下载完成后,解压并删除文件
DownloadUtil.unzip(ConfigManager.aList());
}
AListManager.runningProperty().removeListener(AboutViewModule.updateListener);
};
} }

View File

@ -65,14 +65,8 @@ public class SetupViewModel extends BaseViewModel {
proxySetup.addListener((_, _, newValue) -> ConfigManager.proxySetup(newValue)); proxySetup.addListener((_, _, newValue) -> ConfigManager.proxySetup(newValue));
proxyTestUrl.addListener((_, _, newValue) -> ConfigManager.proxyTestUrl(newValue)); proxyTestUrl.addListener((_, _, newValue) -> ConfigManager.proxyTestUrl(newValue));
proxyHost.addListener((_, _, newValue) -> ConfigManager.proxyHost(newValue)); proxyHost.addListener((_, _, newValue) -> ConfigManager.proxyHost(newValue));
proxyHost.addListener((_, _, newValue) -> { proxyPort.addListener((_, _, newValue) -> ConfigManager.proxyPort(newValue));
ConfigManager.proxyHost(newValue); language.addListener((_, _, newValue) -> Context.setLanguage(newValue));
setProxy();
});
proxyPort.addListener((_, _, newValue) -> {
ConfigManager.proxyPort(newValue);
setProxy();
});
} }
public ObjectProperty<Theme> themeProperty() { public ObjectProperty<Theme> themeProperty() {
@ -129,14 +123,6 @@ public class SetupViewModel extends BaseViewModel {
}); });
} }
private void setProxy() {
ConfigManager.checkProxy((success, _) -> {
if (!success) return;
HttpUtil.getInstance().proxy(ConfigManager.proxySetup(), ConfigManager.getProxyInfo());
});
}
private static ProxyCheckTask getProxyCheckTask(String checkUrl) { private static ProxyCheckTask getProxyCheckTask(String checkUrl) {
var task = new ProxyCheckTask(checkUrl); var task = new ProxyCheckTask(checkUrl);
task.onListen(new TaskListener(task) { task.onListen(new TaskListener(task) {

View File

@ -6,7 +6,7 @@
<groupId>cn.octopusyan</groupId> <groupId>cn.octopusyan</groupId>
<artifactId>alist-gui</artifactId> <artifactId>alist-gui</artifactId>
<version>${gui.version}</version> <version>1.0.1</version>
<name>alist-gui</name> <name>alist-gui</name>
<packaging>pom</packaging> <packaging>pom</packaging>
@ -30,7 +30,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<gui.version>1.0.3</gui.version> <project.version>1.0.1</project.version>
<junit.version>5.10.0</junit.version> <junit.version>5.10.0</junit.version>
<javafx.version>21.0.4</javafx.version> <javafx.version>21.0.4</javafx.version>

View File

@ -7,11 +7,11 @@
<parent> <parent>
<groupId>cn.octopusyan</groupId> <groupId>cn.octopusyan</groupId>
<artifactId>alist-gui</artifactId> <artifactId>alist-gui</artifactId>
<version>${gui.version}</version> <version>1.0.1</version>
</parent> </parent>
<artifactId>upgrade</artifactId> <artifactId>upgrade</artifactId>
<version>${gui.version}</version> <version>${parent.version}</version>
<name>upgrade</name> <name>upgrade</name>
<properties> <properties>