Implement loadUniquePlayers function to retrieve and store unique player names from the database
This commit is contained in:
24
main.go
24
main.go
@@ -24,9 +24,6 @@ const nsqEndpoint = "https://nsq.site.quack-lab.dev/pub?topic=wowspy"
|
|||||||
var debug *bool
|
var debug *bool
|
||||||
var nsqWorkers = 32
|
var nsqWorkers = 32
|
||||||
|
|
||||||
var allPlayersAchievementsGlobal = make(map[string][]NSQMessage) // PlayerName -> list of all their achievements
|
|
||||||
var allPlayerNamesGlobal = make(map[string]bool) // Set of all player names
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
root := flag.String("root", ".", "Root workdir")
|
root := flag.String("root", ".", "Root workdir")
|
||||||
debug = flag.Bool("d", false, "Debug")
|
debug = flag.Bool("d", false, "Debug")
|
||||||
@@ -80,10 +77,31 @@ func main() {
|
|||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
saveAchievementsToDB(&db, achievements)
|
saveAchievementsToDB(&db, achievements)
|
||||||
}()
|
}()
|
||||||
|
loadUniquePlayers(&db, achievements)
|
||||||
saveAchievementsToSourceFiles(luaStates, achievements)
|
saveAchievementsToSourceFiles(luaStates, achievements)
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// loadUniquePlayers loads all unique players from the database and stores them in the achievements map
|
||||||
|
// So that we can populate our "alreadySeen" with the database values too
|
||||||
|
func loadUniquePlayers(db *DB, achievements *sync.Map) {
|
||||||
|
rows, err := db.readConn.Query("SELECT DISTINCT name FROM achievements")
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("error querying unique players: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
var playerName string
|
||||||
|
err = rows.Scan(&playerName)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("error scanning player name: %v", err)
|
||||||
|
}
|
||||||
|
achievements.Store(playerName, &[]NSQMessage{})
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func saveAchievementsToSourceFiles(luaStates *sync.Map, achievements *sync.Map) {
|
func saveAchievementsToSourceFiles(luaStates *sync.Map, achievements *sync.Map) {
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
luaStates.Range(func(k, v any) bool {
|
luaStates.Range(func(k, v any) bool {
|
||||||
|
Reference in New Issue
Block a user