From c7dc73bae39df0f643c140e05edcd3f6ff30d18a Mon Sep 17 00:00:00 2001 From: Unbewohnte <65883674+Unbewohnte@users.noreply.github.com> Date: Fri, 30 Apr 2021 17:17:48 +0300 Subject: [PATCH] Delete manager directory --- manager/helpers.go | 82 -------------------------------- manager/manager.go | 113 --------------------------------------------- 2 files changed, 195 deletions(-) delete mode 100644 manager/helpers.go delete mode 100644 manager/manager.go diff --git a/manager/helpers.go b/manager/helpers.go deleted file mode 100644 index f07316a..0000000 --- a/manager/helpers.go +++ /dev/null @@ -1,82 +0,0 @@ -package manager - -import ( - "errors" - "fmt" - "image" - "image/color" - "image/png" - "io" - "os" - "strings" -) - -// creates a complete black image file -func CreateBlackBG(width, height int) error { - bgfile, err := os.Create("blackBG.png") - if err != nil { - return errors.New(fmt.Sprintf("Could not create black background file : %s", err)) - } - image := image.NewRGBA(image.Rect(0, 0, width, height)) - bounds := image.Bounds() - - for y := 0; y < bounds.Max.Y; y++ { - for x := 0; x < bounds.Max.X; x++ { - image.Set(x, y, color.Black) - } - } - err = png.Encode(bgfile, image) - if err != nil { - return errors.New(fmt.Sprintf("Could not encode an image : %s", err)) - } - err = bgfile.Close() - if err != nil { - return errors.New(fmt.Sprintf("Could not close the background file : %s", err)) - } - - return nil -} - -// checks if given string contains ".osu" file extention (NOT EXPORTED !) -func isBeatmap(filename string) bool { - if len(filename) < 5 { - return false - } - if filename[len(filename)-4:] == ".osu" { - return true - } - return false -} - -// checks if given string contains the image file extention (NOT EXPORTED !) -func isImage(filename string) bool { - var imageExtentions []string = []string{"jpeg", "jpg", "png", "JPEG", "JPG", "PNG"} - for _, extention := range imageExtentions { - if strings.Contains(filename, extention) { - return true - } - } - return false -} - -// opens given files, copies one into another (NOT EXPORTED !) -func copyFile(src, dst string) error { - srcFile, err := os.Open(src) - if err != nil { - return errors.New(fmt.Sprintf("Could not open src file : %s", err)) - } - defer srcFile.Close() - - dstFile, err := os.OpenFile(dst, os.O_WRONLY, os.ModePerm) - if err != nil { - return errors.New(fmt.Sprintf("Could not open dst file : %s", err)) - } - defer dstFile.Close() - - _, err = io.Copy(dstFile, srcFile) - if err != nil { - return errors.New(fmt.Sprintf("Could not copy file : %s", err)) - } - - return nil -} diff --git a/manager/manager.go b/manager/manager.go deleted file mode 100644 index d66d830..0000000 --- a/manager/manager.go +++ /dev/null @@ -1,113 +0,0 @@ -package manager - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "strings" - - "github.com/Unbewohnte/OBM/logger" -) - -// filepath.Joins the main osu directory with its songs folder -func GetSongsDir(osudir string) (string, error) { - songsDir := filepath.Join(osudir, "Songs") - - stat, err := os.Stat(songsDir) - if err != nil { - return "", errors.New(fmt.Sprintf("Could not read the given path : %s", err)) - } - if !stat.IsDir() { - return "", errors.New("Given Osu! directory is not a directory !") - } - - return songsDir, nil -} - -// parses given .osu file and returns the filename of its background -func GetBackgroundName(pathToOSUbeatmap string) (string, error) { - beatmapBytes, err := os.ReadFile(pathToOSUbeatmap) - if err != nil { - return "", err - } - beatmapContents := string(beatmapBytes) - - // get index of "[Events]" (this is where BG filename is stored) - eventsIndex := strings.Index(beatmapContents, "[Events]") - if eventsIndex == -1 { - return "", errors.New("Could not retrieve index of \"[Events]\"") - } - // get index of [TimingPoints] (this tag is right after the previous "[Events]" tag, - // so we can grab the whole "[Events]" tag contents) - timingPointsIndex := strings.Index(beatmapContents, "[TimingPoints]") - if timingPointsIndex == -1 { - return "", errors.New("Could not retrieve index of \"[TimingPoints]\"") - } - contentBetween := strings.Split(beatmapContents[eventsIndex:timingPointsIndex], ",") - - for _, chunk := range contentBetween { - if isImage(chunk) { - return strings.Split(chunk, "\"")[1], nil - } - } - return "", nil -} - -// reads contents of given dir; searches for .osu files; parses them for background info; -// removes original background and replaces it with copied version of given image -func ReplaceBackgrounds(beatmapFolder, replacementPicPath string) (successful, failed uint64) { - files, err := os.ReadDir(beatmapFolder) - if err != nil { - logger.LogError(false, fmt.Sprintf("Wrong path : %s", err)) - } - for _, file := range files { - filename := file.Name() - - if isBeatmap(filename) { - beatmap := filename - - // getting BG filename - beatmapBackgroundFilename, err := GetBackgroundName(filepath.Join(beatmapFolder, beatmap)) - if err != nil { - logger.LogWarning(fmt.Sprintf("BEATMAP: %s: Error getting background filename: %s", beatmap, err)) - failed++ - continue - } - if beatmapBackgroundFilename == "" { - logger.LogWarning(fmt.Sprintf("BEATMAP: %s Could not find background filename in this beatmap file", beatmap)) - failed++ - continue - } - - backgroundPath := filepath.Join(beatmapFolder, beatmapBackgroundFilename) - - // remove old background - err = os.Remove(backgroundPath) - if err != nil { - failed++ - logger.LogWarning(fmt.Sprintf("BEATMAP: %s: Could not remove old background : %s", beatmap, err)) - } - - // create new background file - bgFile, err := os.Create(backgroundPath) - if err != nil { - failed++ - logger.LogWarning(fmt.Sprintf("BEATMAP: %s: Could not create new background file : %s", beatmap, err)) - continue - } - defer bgFile.Close() - - // copy the contents of a given image to the newly created bg file - err = copyFile(replacementPicPath, backgroundPath) - if err != nil { - logger.LogWarning(fmt.Sprintf("BEATMAP: %s: Could not copy file: %s", beatmap, err)) - failed++ - continue - } - successful++ - } - - } - return successful, failed -}