remove unlisted addons
							parent
							
								
									8c9c5d732d
								
							
						
					
					
						commit
						cf5443ca40
					
				
							
								
								
									
										60
									
								
								banana.go
								
								
								
								
							
							
						
						
									
										60
									
								
								banana.go
								
								
								
								
							|  | @ -31,6 +31,10 @@ func main() { | ||||||
| 		args.Addon_list_path = filepath.Join(eso_live_path, "addons.list") | 		args.Addon_list_path = filepath.Join(eso_live_path, "addons.list") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if args.Out_dir == "" { | ||||||
|  | 		args.Out_dir = filepath.Join(eso_live_path) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	_, error := os.Stat(args.Addon_list_path) | 	_, error := os.Stat(args.Addon_list_path) | ||||||
| 	if errors.Is(error, os.ErrNotExist) { | 	if errors.Is(error, os.ErrNotExist) { | ||||||
| 		error = addon_list_create(args.Addon_list_path) | 		error = addon_list_create(args.Addon_list_path) | ||||||
|  | @ -44,16 +48,43 @@ func main() { | ||||||
| 		panic(error) | 		panic(error) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	var esoui_list []EsoUI | 	addon_paths, error := os.ReadDir(filepath.Join(args.Out_dir, "AddOns")) | ||||||
| 
 |  | ||||||
| 	for _, url := range addon_urls { |  | ||||||
| 		esoui, error := esoui_init(url) |  | ||||||
| 	if error != nil { | 	if error != nil { | ||||||
| 		panic(error) | 		panic(error) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 		esoui_list = append(esoui_list, esoui) | 	var eso_live_addon_names []string | ||||||
| 		fmt.Println(esoui) | 	for _, path := range addon_paths { | ||||||
|  | 		if path.IsDir() { | ||||||
|  | 			eso_live_addon_names = append(eso_live_addon_names, path.Name()) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var eso_ui_list []EsoAddon | ||||||
|  | 
 | ||||||
|  | 	for _, url := range addon_urls { | ||||||
|  | 		eso_ui, error := eso_ui_stat_init(url) | ||||||
|  | 		if error != nil { | ||||||
|  | 			panic(error) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		eso_ui_list = append(eso_ui_list, eso_ui) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	for _, eso_live_name := range eso_live_addon_names { | ||||||
|  | 		matching := "" | ||||||
|  | 
 | ||||||
|  | 		for _, eso_ui := range eso_ui_list { | ||||||
|  | 			if strings.Contains(eso_live_name, eso_ui.addon_name) { | ||||||
|  | 				matching = eso_live_name | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if matching == "" { | ||||||
|  | 			addon_path := filepath.Join(args.Out_dir, "AddOns", eso_live_name) | ||||||
|  | 			fmt.Println("Removing inactive addon", addon_path) | ||||||
|  | 			// TODO os.RemoveAll(addon_path)
 | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -132,32 +163,31 @@ func addon_list_read(addon_list_path string) ([]string, error) { | ||||||
| 	return lines, nil | 	return lines, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type EsoUI struct { | type EsoAddon struct { | ||||||
| 	addon_name  string | 	addon_name  string | ||||||
| 	version     string | 	version     string | ||||||
| 	dowload_uri string | 	dowload_uri string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func esoui_init(addon_url string) (EsoUI, error) { | func eso_ui_stat_init(addon_url string) (EsoAddon, error) { | ||||||
| 	addon_name := ESOUI_NAME.FindStringSubmatch(addon_url)[1] |  | ||||||
| 	dowload_uri := strings.Replace(addon_url, "info", "download", -1) |  | ||||||
| 
 |  | ||||||
| 	response, error := http.Get(addon_url) | 	response, error := http.Get(addon_url) | ||||||
| 	if error != nil { | 	if error != nil { | ||||||
| 		return EsoUI{}, error | 		return EsoAddon{}, error | ||||||
| 	} | 	} | ||||||
| 	defer response.Body.Close() | 	defer response.Body.Close() | ||||||
| 
 | 
 | ||||||
| 	if response.StatusCode == http.StatusNotFound { | 	if response.StatusCode == http.StatusNotFound { | ||||||
| 		return EsoUI{}, errors.New(http.StatusText(response.StatusCode)) | 		return EsoAddon{}, errors.New(http.StatusText(response.StatusCode)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	body, error := io.ReadAll(response.Body) | 	body, error := io.ReadAll(response.Body) | ||||||
| 	if error != nil { | 	if error != nil { | ||||||
| 		return EsoUI{}, error | 		return EsoAddon{}, error | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	addon_name := ESOUI_NAME.FindStringSubmatch(addon_url)[1] | ||||||
| 	version := ESOUI_VERSION.FindStringSubmatch(string(body))[1] | 	version := ESOUI_VERSION.FindStringSubmatch(string(body))[1] | ||||||
|  | 	dowload_uri := strings.Replace(addon_url, "info", "download", -1) | ||||||
| 
 | 
 | ||||||
| 	return EsoUI{addon_name, version, dowload_uri}, nil | 	return EsoAddon{addon_name, version, dowload_uri}, nil | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 JoYo
						JoYo