pcgamedb/cmd/organize.go

44 lines
1014 B
Go
Raw Normal View History

2024-09-24 06:17:11 -04:00
package cmd
import (
2024-11-20 06:09:04 -05:00
"pcgamedb/crawler"
"pcgamedb/db"
"pcgamedb/log"
2024-09-24 06:17:11 -04:00
"github.com/spf13/cobra"
"go.uber.org/zap"
)
var organizeCmd = &cobra.Command{
Use: "organize",
Long: "Organize game info by repack game's name",
Short: "Organize game info by repack game's name",
Run: organizeRun,
}
type organizeCommandConfig struct {
Num int
}
var organizeCmdCfg organizeCommandConfig
func init() {
organizeCmd.Flags().IntVarP(&organizeCmdCfg.Num, "num", "n", -1, "number of items to process")
RootCmd.AddCommand(organizeCmd)
}
func organizeRun(cmd *cobra.Command, args []string) {
games, err := db.GetUnorganizedGameItems(organizeCmdCfg.Num)
2024-09-24 06:17:11 -04:00
if err != nil {
log.Logger.Error("Failed to get games", zap.Error(err))
}
for _, game := range games {
err := crawler.OrganizeGameItem(game)
if err != nil {
2024-11-23 23:34:36 -05:00
log.Logger.Error("failed to organize game item", zap.String("name", game.Name), zap.Error(err))
continue
2024-09-24 06:17:11 -04:00
}
log.Logger.Info("game item organized", zap.String("name", game.Name))
2024-09-24 06:17:11 -04:00
}
}