diff --git a/backend/pkg/db/cache/project.go b/backend/pkg/db/cache/project.go index 1411e608b..dacb46633 100644 --- a/backend/pkg/db/cache/project.go +++ b/backend/pkg/db/cache/project.go @@ -11,7 +11,7 @@ func (c *PGCache) GetProjectByKey(projectKey string) (*Project, error) { return c.projectsByKeys[ projectKey ].Project, nil } p, err := c.Conn.GetProjectByKey(projectKey) - if err != nil { + if p == nil { return nil, err } c.projectsByKeys[ projectKey ] = &ProjectMeta{ p, time.Now().Add(c.projectExpirationTimeout) } @@ -27,7 +27,7 @@ func (c *PGCache) GetProject(projectID uint32) (*Project, error) { return c.projects[ projectID ].Project, nil } p, err := c.Conn.GetProject(projectID) - if err != nil { + if p == nil { return nil, err } c.projects[ projectID ] = &ProjectMeta{ p, time.Now().Add(c.projectExpirationTimeout) } diff --git a/backend/services/ender/builder/clikRageDetector.go b/backend/services/ender/builder/clikRageDetector.go index 318f9f26f..116d57071 100644 --- a/backend/services/ender/builder/clikRageDetector.go +++ b/backend/services/ender/builder/clikRageDetector.go @@ -7,7 +7,7 @@ import ( ) -const CLICK_TIME_DIFF = 200 +const CLICK_TIME_DIFF = 300 const MIN_CLICKS_IN_A_ROW = 3 type clickRageDetector struct { @@ -40,7 +40,7 @@ func (crd *clickRageDetector) Build() *IssueEvent { } func (crd *clickRageDetector) HandleMouseClick(msg *MouseClick, messageID uint64, timestamp uint64) *IssueEvent { - if crd.lastTimestamp + CLICK_TIME_DIFF < timestamp && crd.lastLabel == msg.Label { + if crd.lastTimestamp + CLICK_TIME_DIFF > timestamp && crd.lastLabel == msg.Label { crd.lastTimestamp = timestamp crd.countsInARow += 1 return nil diff --git a/backend/services/ender/builder/deadClickDetector.go b/backend/services/ender/builder/deadClickDetector.go index a34a9b08b..4f79f78bf 100644 --- a/backend/services/ender/builder/deadClickDetector.go +++ b/backend/services/ender/builder/deadClickDetector.go @@ -11,6 +11,7 @@ type deadClickDetector struct { lastMouseClick *MouseClick lastTimestamp uint64 lastMessageID uint64 + inputIDSet map[uint64]bool } @@ -24,6 +25,7 @@ func (d *deadClickDetector) HandleReaction(timestamp uint64) *IssueEvent { MessageID: d.lastMessageID, } } + d.inputIDSet = nil d.lastMouseClick = nil d.lastTimestamp = 0 d.lastMessageID = 0 @@ -33,8 +35,18 @@ func (d *deadClickDetector) HandleReaction(timestamp uint64) *IssueEvent { func (d *deadClickDetector) HandleMessage(msg Message, messageID uint64, timestamp uint64) *IssueEvent { var i *IssueEvent switch m := msg.(type) { + case *SetInputTarget: + if d.inputIDSet == nil { + d.inputIDSet = make(map[uint64]bool) + } + d.inputIDSet[m.ID] = true + case *CreateDocument: + d.inputIDSet = nil case *MouseClick: i = d.HandleReaction(timestamp) + if d.inputIDSet[m.ID] { // ignore if input + return i + } d.lastMouseClick = m d.lastTimestamp = timestamp d.lastMessageID = messageID