Messagefilter (+FTS) [WIP]

This commit is contained in:
2022-12-10 03:38:48 +01:00
parent 06788c3e12
commit 3692b915f3
8 changed files with 300 additions and 73 deletions

View File

@@ -17,42 +17,47 @@ const (
)
type CursorToken struct {
Mode Mode
Timestamp int64
Id int64
Direction string
Mode Mode
Timestamp int64
Id int64
Direction string
FilterHash string
}
type cursorTokenSerialize struct {
Timestamp *int64 `json:"ts,omitempty"`
Id *int64 `json:"id,omitempty"`
Direction *string `json:"dir,omitempty"`
Timestamp *int64 `json:"ts,omitempty"`
Id *int64 `json:"id,omitempty"`
Direction *string `json:"dir,omitempty"`
FilterHash *string `json:"f,omitempty"`
}
func Start() CursorToken {
return CursorToken{
Mode: CTMStart,
Timestamp: 0,
Id: 0,
Direction: "",
Mode: CTMStart,
Timestamp: 0,
Id: 0,
Direction: "",
FilterHash: "",
}
}
func End() CursorToken {
return CursorToken{
Mode: CTMEnd,
Timestamp: 0,
Id: 0,
Direction: "",
Mode: CTMEnd,
Timestamp: 0,
Id: 0,
Direction: "",
FilterHash: "",
}
}
func Normal(ts time.Time, id int64, dir string) CursorToken {
func Normal(ts time.Time, id int64, dir string, filter string) CursorToken {
return CursorToken{
Mode: CTMNormal,
Timestamp: ts.UnixMilli(),
Id: id,
Direction: dir,
Mode: CTMNormal,
Timestamp: ts.UnixMilli(),
Id: id,
Direction: dir,
FilterHash: filter,
}
}
@@ -83,6 +88,10 @@ func (c *CursorToken) Token() string {
sertok.Direction = &c.Direction
}
if c.FilterHash != "" {
sertok.FilterHash = &c.FilterHash
}
body, err := json.Marshal(sertok)
if err != nil {
panic(err)
@@ -128,6 +137,9 @@ func Decode(tok string) (CursorToken, error) {
if tokenDeserialize.Direction != nil {
token.Direction = *tokenDeserialize.Direction
}
if tokenDeserialize.FilterHash != nil {
token.FilterHash = *tokenDeserialize.FilterHash
}
return token, nil
}