44 lines
1014 B
Go
44 lines
1014 B
Go
package cmd
|
|
|
|
import (
|
|
"pcgamedb/crawler"
|
|
"pcgamedb/db"
|
|
"pcgamedb/log"
|
|
|
|
"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)
|
|
if err != nil {
|
|
log.Logger.Error("Failed to get games", zap.Error(err))
|
|
}
|
|
for _, game := range games {
|
|
err := crawler.OrganizeGameItem(game)
|
|
if err != nil {
|
|
log.Logger.Error("failed to organize game item", zap.String("name", game.Name), zap.Error(err))
|
|
continue
|
|
}
|
|
log.Logger.Info("game item organized", zap.String("name", game.Name))
|
|
}
|
|
}
|