mirror of
https://gitea.phreedom.club/localhost_frssoft/bloat.git
synced 2025-05-06 03:48:45 +00:00
Add filters
This commit is contained in:
parent
3ac95ab3b1
commit
4f1425febf
8 changed files with 158 additions and 0 deletions
50
mastodon/filter.go
Normal file
50
mastodon/filter.go
Normal file
|
@ -0,0 +1,50 @@
|
|||
package mastodon
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Filter struct {
|
||||
ID string `json:"id"`
|
||||
Phrase string `json:"phrase"`
|
||||
Context []string `json:"context"`
|
||||
WholeWord bool `json:"whole_word"`
|
||||
ExpiresAt *time.Time `json:"expires_at"`
|
||||
Irreversible bool `json:"irreversible"`
|
||||
}
|
||||
|
||||
func (c *Client) GetFilters(ctx context.Context) ([]*Filter, error) {
|
||||
var filters []*Filter
|
||||
err := c.doAPI(ctx, http.MethodGet, "/api/v1/filters", nil, &filters, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return filters, nil
|
||||
}
|
||||
|
||||
func (c *Client) AddFilter(ctx context.Context, phrase string, context []string, irreversible bool, wholeWord bool, expiresIn *time.Time) error {
|
||||
params := url.Values{}
|
||||
params.Set("phrase", phrase)
|
||||
for i := range context {
|
||||
params.Add("context[]", context[i])
|
||||
}
|
||||
params.Set("irreversible", strconv.FormatBool(irreversible))
|
||||
params.Set("whole_word", strconv.FormatBool(wholeWord))
|
||||
if expiresIn != nil {
|
||||
params.Set("expires_in", expiresIn.Format(time.RFC3339))
|
||||
}
|
||||
err := c.doAPI(ctx, http.MethodPost, "/api/v1/filters", params, nil, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) RemoveFilter(ctx context.Context, id string) error {
|
||||
return c.doAPI(ctx, http.MethodDelete, fmt.Sprintf("/api/v1/filters/%s", id), nil, nil, nil)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue