mirror of
				https://github.com/NotoChen/Jetbrains-Help.git
				synced 2025-11-01 01:38:31 +08:00 
			
		
		
		
	fix zip & append scoop support
This commit is contained in:
		
							parent
							
								
									bf8d15ffab
								
							
						
					
					
						commit
						eea7c81398
					
				|  | @ -4,15 +4,19 @@ import cn.hutool.core.io.FileUtil; | ||||||
| import cn.hutool.core.io.IoUtil; | import cn.hutool.core.io.IoUtil; | ||||||
| import cn.hutool.core.text.CharSequenceUtil; | import cn.hutool.core.text.CharSequenceUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
|  | import cn.hutool.crypto.digest.DigestUtil; | ||||||
| import com.jetbrains.help.JetbrainsHelpApplication; | import com.jetbrains.help.JetbrainsHelpApplication; | ||||||
| import com.jetbrains.help.context.AgentContextHolder; | import com.jetbrains.help.context.AgentContextHolder; | ||||||
| import com.jetbrains.help.context.PluginsContextHolder; | import com.jetbrains.help.context.PluginsContextHolder; | ||||||
| import com.jetbrains.help.context.ProductsContextHolder; | import com.jetbrains.help.context.ProductsContextHolder; | ||||||
| import com.jetbrains.help.properties.JetbrainsHelpProperties; | import com.jetbrains.help.properties.JetbrainsHelpProperties; | ||||||
|  | import jakarta.servlet.http.HttpServletRequest; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  | import org.springframework.cglib.core.Local; | ||||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||||
| import org.springframework.core.io.Resource; | import org.springframework.core.io.Resource; | ||||||
|  | import org.springframework.http.HttpRequest; | ||||||
| import org.springframework.http.MediaType; | import org.springframework.http.MediaType; | ||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.stereotype.Controller; | import org.springframework.stereotype.Controller; | ||||||
|  | @ -20,11 +24,13 @@ import org.springframework.ui.Model; | ||||||
| import org.springframework.web.bind.annotation.GetMapping; | import org.springframework.web.bind.annotation.GetMapping; | ||||||
| import org.springframework.web.bind.annotation.RequestParam; | import org.springframework.web.bind.annotation.RequestParam; | ||||||
| import org.springframework.web.bind.annotation.ResponseBody; | import org.springframework.web.bind.annotation.ResponseBody; | ||||||
|  | import org.thymeleaf.util.DateUtils; | ||||||
| 
 | 
 | ||||||
| import java.io.File; | import java.io.File; | ||||||
| import java.util.List; | import java.util.*; | ||||||
| 
 | 
 | ||||||
| import static org.springframework.http.HttpHeaders.CONTENT_DISPOSITION; | import static org.springframework.http.HttpHeaders.CONTENT_DISPOSITION; | ||||||
|  | import static org.springframework.http.MediaType.APPLICATION_JSON; | ||||||
| import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM; | import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM; | ||||||
| 
 | 
 | ||||||
| @Controller | @Controller | ||||||
|  | @ -43,6 +49,26 @@ public class IndexController { | ||||||
|         return "index"; |         return "index"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @GetMapping("/scoop/ja-netfilter") | ||||||
|  |     @ResponseBody | ||||||
|  |     public ResponseEntity<Map<String,Object>> scoopInstall(HttpServletRequest request) { | ||||||
|  |         String basePath = (request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()); | ||||||
|  |         Map<String, Object> json = new HashMap<>(); | ||||||
|  |         String version = DateUtils.format(new Date(),"yyyyMMdd", Locale.getDefault()); | ||||||
|  |         json.put("version", version); | ||||||
|  |         json.put("description", "JetBrains' dragon slayer"); | ||||||
|  |         json.put("homepage", "https://cikaros.top"); | ||||||
|  |         json.put("license", "MIT"); | ||||||
|  |         json.put("url", String.format("%s/ja-netfilter#dl.zip", basePath)); | ||||||
|  |         json.put("extract_to", Arrays.asList("", "config-jetbrains", "plugins-jetbrains", "scripts", "vmoptions")); | ||||||
|  |         json.put("hash", DigestUtil.sha256Hex(AgentContextHolder.jaNetfilterZipFile())); | ||||||
|  |         json.put("post_install", "cscript $dir/scripts/install-current-user.vbs"); | ||||||
|  |         json.put("pre_uninstall", "cscript $dir/scripts/uninstall-current-user.vbs"); | ||||||
|  |         return ResponseEntity.ok() | ||||||
|  |                 .contentType(APPLICATION_JSON) | ||||||
|  |                 .body(json); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @GetMapping("search") |     @GetMapping("search") | ||||||
|     public String index(@RequestParam(required = false) String search, Model model) { |     public String index(@RequestParam(required = false) String search, Model model) { | ||||||
|         List<ProductsContextHolder.ProductCache> productCacheList = ProductsContextHolder.productCacheList(); |         List<ProductsContextHolder.ProductCache> productCacheList = ProductsContextHolder.productCacheList(); | ||||||
|  | @ -70,4 +96,5 @@ public class IndexController { | ||||||
|                 .contentType(APPLICATION_OCTET_STREAM) |                 .contentType(APPLICATION_OCTET_STREAM) | ||||||
|                 .body(new InputStreamResource(FileUtil.getInputStream(jaNetfilterZipFile))); |                 .body(new InputStreamResource(FileUtil.getInputStream(jaNetfilterZipFile))); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Cikaros
						Cikaros