mirror of
https://github.com/octopusYan/alist-gui.git
synced 2025-12-08 17:21:56 +08:00
Compare commits
2 Commits
17d21fdc03
...
alpha/v1.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 08b4ad98ed | |||
| 3414f0f421 |
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -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')
|
||||||
|
|||||||
@ -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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user