Skip to content

Commit

Permalink
Fix types of some poll-related fields
Browse files Browse the repository at this point in the history
  • Loading branch information
tulir committed Jan 22, 2024
1 parent f033130 commit 84737cd
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 15 deletions.
2 changes: 2 additions & 0 deletions messagix/socket/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ var TaskLabels = map[string]string{
"FetchThreadsTask": "145",
"DeleteThreadTask": "146",
"DeleteMessageMeOnlyTask": "155",
"CreatePollTask": "163",
"UpdatePollTask": "164",
"GetContactsFullTask": "207",
"CreateThreadTask": "209",
"FetchMessagesTask": "228",
Expand Down
31 changes: 31 additions & 0 deletions messagix/socket/threads.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,37 @@ func (t *SendMessageTask) Create() (interface{}, interface{}, bool) {
return t, queueName, false
}

type CreatePollTask struct {
QuestionText string `json:"question_text"`
ThreadKey int64 `json:"thread_key"`
Options []string `json:"options"`
SyncGroup int64 `json:"sync_group"`
}

func (t *CreatePollTask) GetLabel() string {
return TaskLabels["CreatePollTask"]
}

func (t *CreatePollTask) Create() (interface{}, interface{}, bool) {
return t, "poll_creation", false
}

type UpdatePollTask struct {
ThreadKey int64 `json:"thread_key"`
PollID int64 `json:"poll_id"`
AddedOptions []map[string]int `json:"added_options"`
SelectedOptions []int64 `json:"selected_options"`
SyncGroup int64 `json:"sync_group"`
}

func (t *UpdatePollTask) GetLabel() string {
return TaskLabels["UpdatePollTask"]
}

func (t *UpdatePollTask) Create() (interface{}, interface{}, bool) {
return t, "poll_update", false
}

type ThreadMarkReadTask struct {
ThreadId int64 `json:"thread_id"`
LastReadWatermarkTs int64 `json:"last_read_watermark_ts"`
Expand Down
59 changes: 46 additions & 13 deletions messagix/table/attachments.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,27 +99,27 @@ type LSInsertXmaAttachment struct {
ListItemsSecondaryDescriptionText string `index:"72" json:",omitempty"`
ListItemId1 int64 `index:"73" json:",omitempty"`
ListItemTitleText1 string `index:"74" json:",omitempty"`
ListItemContactUrlList1 int64 `index:"75" json:",omitempty"`
ListItemContactUrlList1 string `index:"75" json:",omitempty"`
ListItemProgressBarFilledPercentage1 int64 `index:"76" json:",omitempty"`
ListItemContactUrlExpirationTimestampList1 int64 `index:"77" json:",omitempty"`
ListItemContactUrlFallbackList1 int64 `index:"78" json:",omitempty"`
ListItemContactUrlExpirationTimestampList1 string `index:"77" json:",omitempty"`
ListItemContactUrlFallbackList1 string `index:"78" json:",omitempty"`
ListItemAccessibilityText1 string `index:"79" json:",omitempty"`
ListItemTotalCount1 int64 `index:"80" json:",omitempty"`
ListItemId2 int64 `index:"81" json:",omitempty"`
ListItemTitleText2 int64 `index:"82" json:",omitempty"`
ListItemContactUrlList2 int64 `index:"83" json:",omitempty"`
ListItemTitleText2 string `index:"82" json:",omitempty"`
ListItemContactUrlList2 string `index:"83" json:",omitempty"`
ListItemProgressBarFilledPercentage2 int64 `index:"84" json:",omitempty"`
ListItemContactUrlExpirationTimestampList2 int64 `index:"85" json:",omitempty"`
ListItemContactUrlFallbackList2 int64 `index:"86" json:",omitempty"`
ListItemAccessibilityText2 int64 `index:"87" json:",omitempty"`
ListItemContactUrlExpirationTimestampList2 string `index:"85" json:",omitempty"`
ListItemContactUrlFallbackList2 string `index:"86" json:",omitempty"`
ListItemAccessibilityText2 string `index:"87" json:",omitempty"`
ListItemTotalCount2 int64 `index:"88" json:",omitempty"`
ListItemId3 int64 `index:"89" json:",omitempty"`
ListItemTitleText3 int64 `index:"90" json:",omitempty"`
ListItemContactUrlList3 int64 `index:"91" json:",omitempty"`
ListItemTitleText3 string `index:"90" json:",omitempty"`
ListItemContactUrlList3 string `index:"91" json:",omitempty"`
ListItemProgressBarFilledPercentage3 int64 `index:"92" json:",omitempty"`
ListItemContactUrlExpirationTimestampList3 int64 `index:"93" json:",omitempty"`
ListItemContactUrlFallbackList3 int64 `index:"94" json:",omitempty"`
ListItemAccessibilityText3 int64 `index:"95" json:",omitempty"`
ListItemContactUrlExpirationTimestampList3 string `index:"93" json:",omitempty"`
ListItemContactUrlFallbackList3 string `index:"94" json:",omitempty"`
ListItemAccessibilityText3 string `index:"95" json:",omitempty"`
ListItemTotalCount3 int64 `index:"96" json:",omitempty"`
IsBorderless bool `index:"100" json:",omitempty"`
HeaderImageUrlMimeType string `index:"101" json:",omitempty"`
Expand Down Expand Up @@ -149,6 +149,39 @@ type LSInsertXmaAttachment struct {
Unrecognized map[int]any `json:",omitempty"`
}

type LSAddPollForThread struct {
PollID int64 `index:"0" json:",omitempty"`
ThreadKey int64 `index:"1" json:",omitempty"`
LastUpdateMessageID string `index:"2" json:",omitempty"`
LastUpdateMessageTimestampMS int64 `index:"3" json:",omitempty"`
LastUpdateMessageEventType int64 `index:"4" json:",omitempty"`

Unrecognized map[int]any `json:",omitempty"`
}

type LSAddPollOption struct {
OptionID int64 `index:"0" json:",omitempty"`
PollID int64 `index:"1" json:",omitempty"`
OptionText string `index:"2" json:",omitempty"`
SortKeyVotingTimestamp int64 `index:"3" json:",omitempty"`
SortKeyCreationTimestamp int64 `index:"4" json:",omitempty"`

Unrecognized map[int]any `json:",omitempty"`
}

type LSAddPollVote struct {
OptionID int64 `index:"0" json:",omitempty"`
PollID int64 `index:"1" json:",omitempty"`
ContactID int64 `index:"2" json:",omitempty"`
TimestampMS int64 `index:"3" json:",omitempty"`

// v2 fields
VoteCount int64 `index:"4" json:",omitempty"`
ThreadKey int64 `index:"5" json:",omitempty"`
MessageID string `index:"6" json:",omitempty"`
UnknownInt int64 `index:"7" json:",omitempty"`
}

type LSInsertBlobAttachment struct {
Filename string `index:"0" json:",omitempty"`
Filesize int64 `index:"1" json:",omitempty"`
Expand Down
10 changes: 10 additions & 0 deletions messagix/table/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@ type LSTable struct {
LSDeleteThenInsertBotProfileInfoV2 []*LSDeleteThenInsertBotProfileInfoV2 `json:",omitempty"`
LSHandleSyncFailure []*LSHandleSyncFailure `json:",omitempty"`
LSDeleteThread []*LSDeleteThread `json:",omitempty"`
LSAddPollForThread []*LSAddPollForThread `json:",omitempty"`
LSAddPollOption []*LSAddPollOption `json:",omitempty"`
LSAddPollOptionV2 []*LSAddPollOption `json:",omitempty"`
LSAddPollVote []*LSAddPollVote `json:",omitempty"`
LSAddPollVoteV2 []*LSAddPollVote `json:",omitempty"`
}

// TODO replace SPTable with struct tags
Expand Down Expand Up @@ -247,6 +252,11 @@ var SPTable = map[string]string{
"deleteThenInsertBotProfileInfoV2": "LSDeleteThenInsertBotProfileInfoV2",
"handleSyncFailure": "LSHandleSyncFailure",
"deleteThread": "LSDeleteThread",
"addPollOption": "LSAddPollOption",
"addPollOptionV2": "LSAddPollOptionV2",
"addPollVote": "LSAddPollVote",
"addPollVoteV2": "LSAddPollVoteV2",
"addPollForThread": "LSAddPollForThread",
}

func SPToDepMap(sp []string) map[string]string {
Expand Down
4 changes: 2 additions & 2 deletions msgconv/from-meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ func (mc *MessageConverter) ToMatrix(ctx context.Context, msg *table.WrappedMess
cm.Parts = append(cm.Parts, mc.blobAttachmentToMatrix(ctx, blobAtt))
}
for _, xmaAtt := range msg.XMAAttachments {
// Skip URL previews for now
if xmaAtt.CTA != nil && xmaAtt.CTA.Type_ == "xma_web_url" {
// Skip URL previews and polls for now
if xmaAtt.CTA != nil && (xmaAtt.CTA.Type_ == "xma_web_url" || strings.HasPrefix(xmaAtt.CTA.Type_, "xma_poll_")) {
continue
}
cm.Parts = append(cm.Parts, mc.xmaAttachmentToMatrix(ctx, xmaAtt))
Expand Down

0 comments on commit 84737cd

Please sign in to comment.