diff --git a/cmd/tracking.go b/cmd/tracking.go index 428184f..e180954 100644 --- a/cmd/tracking.go +++ b/cmd/tracking.go @@ -2,7 +2,6 @@ package cmd import ( "context" - "errors" "fmt" "log" "time" @@ -76,34 +75,35 @@ func (ch *TrackingHandler) StartTracking(userCode string, restore bool) error { } session = sesh } else { - user, err := ch.sqlDb.GetUserByCode(ctx, userCode) - if err != nil && !errors.Is(err, sql.ErrUserNotFound) { - return model.WrapError(model.ErrGetUser, err) - } - - if user == nil { - user, err = ch.gameTracker.GetUser(ctx, userCode) - if err != nil { - return model.WrapError(model.ErrGetUser, err) - } - if err := ch.sqlDb.SaveUser(ctx, *user); err != nil { - return model.WrapError(model.ErrSaveUser, err) - } - } - - session, err = ch.sqlDb.CreateSession(ctx, userCode) + sesh, err := ch.sqlDb.CreateSession(ctx, userCode) if err != nil { return model.WrapError(model.ErrCreateSession, err) } - session.LP = user.LP - session.MR = user.MR - session.UserName = user.DisplayName + session = sesh } - if session == nil { return model.ErrCreateSession } + user, err := ch.gameTracker.GetUser(ctx, userCode) + if err != nil { + return model.WrapError(model.ErrGetUser, err) + } + if err := ch.sqlDb.SaveUser(ctx, *user); err != nil { + return model.WrapError(model.ErrSaveUser, err) + } + session.LP = user.LP + session.MR = user.MR + session.UserName = user.DisplayName + + ch.eventEmitter("match", model.Match{ + UserName: session.UserName, + LP: session.LP, + MR: session.MR, + SessionId: session.Id, + UserId: session.UserId, + }) + ticker := time.NewTicker(30 * time.Second) ch.forcePollChan = make(chan struct{}) defer func() { diff --git a/pkg/model/config.go b/pkg/model/config.go index d0434bf..835ea47 100644 --- a/pkg/model/config.go +++ b/pkg/model/config.go @@ -6,6 +6,6 @@ type RuntimeConfig struct { type GUIConfig struct { Locale string `ini:"locale" json:"locale" default:"en-GB"` - Theme ThemeName `ini:"theme" json:"theme" default:"default"` + Theme ThemeName `ini:"theme" json:"theme" default:"tekken"` SideBar bool `ini:"sidebar" json:"sidebar" default:"true"` } diff --git a/pkg/tracker/sf6/track.go b/pkg/tracker/sf6/track.go index a699300..fb1f94a 100644 --- a/pkg/tracker/sf6/track.go +++ b/pkg/tracker/sf6/track.go @@ -37,7 +37,7 @@ func (t *SF6Tracker) GetUser(ctx context.Context, userCode string) (*model.User, func (t *SF6Tracker) Poll(ctx context.Context, cancel context.CancelFunc, session *model.Session, onNewMatch func(model.Match)) { bl, err := t.cfnClient.GetBattleLog(ctx, session.UserId) - if err != nil { + if bl == nil || err != nil { cancel() } if len(bl.ReplayList) == 0 {