Added Minecraft provider

Closes #1
This commit is contained in:
Felipe Martin 2020-11-13 12:47:59 +01:00
parent bc26e6e787
commit 8153b81cba
Signed by: fmartingr
GPG Key ID: 716BC147715E716F
2 changed files with 58 additions and 1 deletions

View File

@ -11,18 +11,22 @@ import (
"github.com/fmartingr/games-screenshot-mananger/pkg/games"
"github.com/fmartingr/games-screenshot-mananger/pkg/helpers"
"github.com/fmartingr/games-screenshot-mananger/pkg/providers/minecraft"
"github.com/fmartingr/games-screenshot-mananger/pkg/providers/steam"
)
var allowedProviders = [...]string{"steam"}
var allowedProviders = [...]string{"steam", "minecraft"}
const defaultOutputPath string = "./Output"
// const defaultInputPath string = "./Input"
const defaultProvider string = "steam"
const defaultDryRun bool = false
func Start() {
var provider = flag.String("provider", defaultProvider, "steam")
var outputPath = flag.String("output-path", defaultOutputPath, "The destination path of the screenshots")
// var inputPath = flag.String("input-path", defaultInputPath, "Input path for the provider that requires it")
var dryRun = flag.Bool("dry-run", defaultDryRun, "Use to disable write actions on filesystem")
flag.Parse()
@ -38,6 +42,8 @@ func getGamesFromProvider(provider string) []games.Game {
var games []games.Game
if provider == "steam" {
games = append(games, steam.GetGames()...)
} else if provider == "minecraft" {
games = append(games, minecraft.GetGames()...)
}
return games
}

View File

@ -0,0 +1,51 @@
package minecraft
import (
"io/ioutil"
"log"
"os"
"path"
"runtime"
"strings"
"github.com/fmartingr/games-screenshot-mananger/pkg/games"
"github.com/fmartingr/games-screenshot-mananger/pkg/helpers"
)
func getScreenshotsFromPath(game *games.Game, path string) {
path = helpers.ExpandUser(path)
if _, err := os.Stat(path); !os.IsNotExist(err) {
files, err := ioutil.ReadDir(path)
if err != nil {
log.Fatal(err)
}
for _, file := range files {
if strings.Contains(file.Name(), ".png") {
game.Screenshots = append(game.Screenshots, games.Screenshot{Path: path + "/" + file.Name(), DestinationName: file.Name()})
}
}
}
}
func GetGames() []games.Game {
var result []games.Game
// Standalone minecraft
minecraftStandalone := games.Game{Name: "Minecraft", Platform: "PC", Notes: "Standalone"}
if runtime.GOOS == "linux" {
getScreenshotsFromPath(&minecraftStandalone, "~/.minecraft/screenshots")
// Flatpak minecraft
minecraftFlatpak := games.Game{Name: "Minecraft", Platform: "PC", Notes: "Flatpak"}
getScreenshotsFromPath(&minecraftFlatpak, "~/.var/app/com.mojang.Minecraft/.minecraft/screenshots")
result = append(result, minecraftFlatpak)
} else if runtime.GOOS == "windows" {
getScreenshotsFromPath(&minecraftStandalone, path.Join(os.Getenv("APPDATA"), ".minecraft/screenshots"))
} else if runtime.GOOS == "darwin" {
getScreenshotsFromPath(&minecraftStandalone, path.Join(helpers.ExpandUser("~/Library/Application Support/minecraft/screenshots")))
}
result = append(result, minecraftStandalone)
return result
}