mirror of
https://gitea.phreedom.club/localhost_frssoft/bloat.git
synced 2025-05-06 03:48:45 +00:00
Add poll support
Currenlty only voting is possible.
This commit is contained in:
parent
a68a09a83e
commit
cfec7879e3
9 changed files with 182 additions and 39 deletions
38
mastodon/poll.go
Normal file
38
mastodon/poll.go
Normal file
|
@ -0,0 +1,38 @@
|
|||
package mastodon
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Poll struct {
|
||||
ID string `json:"id"`
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
Expired bool `json:"expired"`
|
||||
Multiple bool `json:"multiple"`
|
||||
VotesCount int64 `json:"votes_count"`
|
||||
Voted bool `json:"voted"`
|
||||
Emojis []Emoji `json:"emojis"`
|
||||
Options []PollOption `json:"options"`
|
||||
}
|
||||
|
||||
// Poll hold information for a mastodon poll option.
|
||||
type PollOption struct {
|
||||
Title string `json:"title"`
|
||||
VotesCount int64 `json:"votes_count"`
|
||||
}
|
||||
|
||||
// Vote submits a vote with given choices to the poll specified by id.
|
||||
func (c *Client) Vote(ctx context.Context, id string, choices []string) (*Poll, error) {
|
||||
var poll Poll
|
||||
params := make(url.Values)
|
||||
params["choices[]"] = choices
|
||||
err := c.doAPI(ctx, http.MethodPost, fmt.Sprintf("/api/v1/polls/%s/votes", id), params, &poll, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &poll, nil
|
||||
}
|
|
@ -47,13 +47,14 @@ type Status struct {
|
|||
Application Application `json:"application"`
|
||||
Language string `json:"language"`
|
||||
Pinned interface{} `json:"pinned"`
|
||||
Poll *Poll `json:"poll"`
|
||||
|
||||
// Custom fields
|
||||
Pleroma StatusPleroma `json:"pleroma"`
|
||||
ShowReplies bool `json:"show_replies"`
|
||||
ReplyMap map[string][]ReplyInfo `json:"reply_map"`
|
||||
ReplyNumber int `json:"reply_number"`
|
||||
RetweetedByID string `json:"retweeted_by_id"`
|
||||
Pleroma StatusPleroma `json:"pleroma"`
|
||||
ShowReplies bool `json:"show_replies"`
|
||||
ReplyMap map[string][]ReplyInfo `json:"reply_map"`
|
||||
ReplyNumber int `json:"reply_number"`
|
||||
RetweetedByID string `json:"retweeted_by_id"`
|
||||
}
|
||||
|
||||
// Context hold information for mastodon context.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue