ws and pruner done!!!
This commit is contained in:
parent
c5cc245e25
commit
74add408e6
34 changed files with 1455 additions and 221 deletions
55
cmd/ws/ingest/ingest.go
Normal file
55
cmd/ws/ingest/ingest.go
Normal file
|
@ -0,0 +1,55 @@
|
|||
package ingest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/genudine/saerro-go/store"
|
||||
"github.com/genudine/saerro-go/types"
|
||||
)
|
||||
|
||||
type Ingest struct {
|
||||
PlayerStore store.IPlayerStore
|
||||
}
|
||||
|
||||
func (i *Ingest) TrackPop(ctx context.Context, event types.PopEvent) {
|
||||
player := event.ToPlayer()
|
||||
|
||||
err := i.fixupPlayer(ctx, player)
|
||||
if err != nil {
|
||||
log.Println("ingest: player fixup failed, dropping event", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = i.PlayerStore.Insert(ctx, player)
|
||||
if err != nil {
|
||||
log.Println("TrackPop Insert failed", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (i *Ingest) fixupPlayer(ctx context.Context, player *types.Player) error {
|
||||
if player.ClassName != "unknown" && player.FactionID != 0 {
|
||||
// all fixups are done
|
||||
return nil
|
||||
}
|
||||
|
||||
storedPlayer, err := i.PlayerStore.GetOne(ctx, player.CharacterID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ingest: fixupPlayer: fetching player %s failed: %w", player.CharacterID, err)
|
||||
}
|
||||
|
||||
// probably VehicleDestroy
|
||||
if player.ClassName == "unknown" {
|
||||
// TODO: maybe get this from census, profile_id
|
||||
player.ClassName = storedPlayer.ClassName
|
||||
}
|
||||
|
||||
// probably PS4
|
||||
if player.FactionID == 0 {
|
||||
// TODO: get this from census
|
||||
player.FactionID = storedPlayer.FactionID
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue