Kaynağa Gözat

编辑器配置

mxd 4 yıl önce
ebeveyn
işleme
a93a137c19

+ 13 - 0
src/main/java/org/ssssssss/magicapi/config/MagicConfiguration.java

@@ -33,6 +33,11 @@ public class MagicConfiguration {
 	 */
 	private String password;
 
+	/**
+	 * 编辑器配置文件
+	 */
+	private String editorConfig;
+
 	private final String tokenKey = "Magic-Token";
 
 	/**
@@ -195,6 +200,14 @@ public class MagicConfiguration {
 		this.magicFunctionManager = magicFunctionManager;
 	}
 
+	public String getEditorConfig() {
+		return editorConfig;
+	}
+
+	public void setEditorConfig(String editorConfig) {
+		this.editorConfig = editorConfig;
+	}
+
 	/**
 	 * 打印banner
 	 */

+ 22 - 0
src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchController.java

@@ -1,6 +1,9 @@
 package org.ssssssss.magicapi.controller;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpHeaders;
+import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
@@ -12,13 +15,18 @@ import org.ssssssss.magicapi.utils.MD5Utils;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 public class MagicWorkbenchController extends MagicController {
 
+	private static Logger logger = LoggerFactory.getLogger(MagicWorkbenchController.class);
+
 	public MagicWorkbenchController(MagicConfiguration configuration) {
 		super(configuration);
 	}
@@ -56,4 +64,18 @@ public class MagicWorkbenchController extends MagicController {
 	public JsonBean<List<Map<String, String>>> options() {
 		return new JsonBean<>(Stream.of(Options.values()).map(item -> Collections.singletonMap(item.getValue(), item.getName())).collect(Collectors.toList()));
 	}
+
+	@RequestMapping(value = "/config-js", produces = "application/javascript")
+	@ResponseBody
+	public Object configjs() {
+		if (configuration.getEditorConfig() != null) {
+			try {
+				File file = ResourceUtils.getFile(configuration.getEditorConfig());
+				return Files.readAllBytes(Paths.get(file.toURI()));
+			} catch (IOException e) {
+				logger.warn("读取编辑器配置文件{}失败", configuration.getEditorConfig());
+			}
+		}
+		return "var MAGIC_EDITOR_CONFIG = {}";
+	}
 }

+ 2 - 3
src/main/java/org/ssssssss/magicapi/modules/MongoModule.java

@@ -4,7 +4,6 @@ import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
 import org.apache.commons.lang3.StringUtils;
 import org.bson.Document;
-import org.springframework.data.mongodb.MongoDbFactory;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.ssssssss.magicapi.config.MagicModule;
 import org.ssssssss.script.reflection.AbstractReflection;
@@ -18,13 +17,13 @@ import java.util.HashMap;
  */
 public class MongoModule extends HashMap<String, Object> implements MagicModule {
 
-	private MongoTemplate mongoTemplate;
+	private final MongoTemplate mongoTemplate;
 
 	private JavaInvoker<Method> invoker;
 
 	public MongoModule(MongoTemplate mongoTemplate) {
 		this.mongoTemplate = mongoTemplate;
-		MongoDbFactory factory = mongoTemplate.getMongoDbFactory();
+		Object factory = mongoTemplate.getMongoDbFactory();
 		invoker = AbstractReflection.getInstance().getMethod(factory, "getDb", StringUtils.EMPTY);
 		if (invoker == null) {
 			invoker = AbstractReflection.getInstance().getMethod(factory, "getMongoDatabase", StringUtils.EMPTY);