Add support for quote reply

This commit is contained in:
r 2024-10-14 07:54:41 +00:00
parent 14d5eaf6e9
commit e5bf3159b8
6 changed files with 22 additions and 2 deletions

View file

@ -198,6 +198,7 @@ type Toot struct {
SpoilerText string `json:"spoiler_text"`
Visibility string `json:"visibility"`
ContentType string `json:"content_type"`
QuoteID string `json:"quote_id"`
}
// Mention hold information for mention.

View file

@ -264,6 +264,9 @@ func (c *Client) PostStatus(ctx context.Context, toot *Toot) (*Status, error) {
if toot.ContentType != "" {
params.Set("content_type", toot.ContentType)
}
if toot.QuoteID != "" {
params.Set("quote_id", toot.QuoteID)
}
var status Status
err := c.doAPI(ctx, http.MethodPost, "/api/v1/statuses", params, &status, nil)

View file

@ -922,7 +922,7 @@ func (s *service) Signout(c *client) (err error) {
}
func (s *service) Post(c *client, content string, replyToID string,
format string, visibility string, isNSFW bool,
format string, visibility string, isNSFW bool, isQuote bool,
files []*multipart.FileHeader) (id string, err error) {
var mediaIDs []string
@ -934,9 +934,16 @@ func (s *service) Post(c *client, content string, replyToID string,
mediaIDs = append(mediaIDs, a.ID)
}
var quoteID string
if isQuote {
quoteID = replyToID
replyToID = ""
}
tweet := &mastodon.Toot{
Status: content,
InReplyToID: replyToID,
QuoteID: quoteID,
MediaIDs: mediaIDs,
ContentType: format,
Visibility: visibility,

View file

@ -307,10 +307,11 @@ func NewHandler(s *service, verbose bool, staticDir string) http.Handler {
format := c.r.FormValue("format")
visibility := c.r.FormValue("visibility")
isNSFW := c.r.FormValue("is_nsfw") == "true"
isQuote := c.r.FormValue("is_quote") == "true"
quickReply := c.r.FormValue("quickreply") == "true"
files := c.r.MultipartForm.File["attachments"]
id, err := s.Post(c, content, replyToID, format, visibility, isNSFW, files)
id, err := s.Post(c, content, replyToID, format, visibility, isNSFW, isQuote, files)
if err != nil {
return err
}

View file

@ -77,6 +77,10 @@
<td> Post NSFW </td>
<td> <kbd>N</kbd> </td>
</tr>
<tr>
<td> Quote reply </td>
<td> <kbd>Q</kbd> </td>
</tr>
<tr>
<td> Post attachments </td>
<td> <kbd>A</kbd> </td>

View file

@ -30,6 +30,10 @@
</select>
<input type="checkbox" id="nsfw-checkbox" name="is_nsfw" value="true" accesskey="N" title="NSFW (N)">
<label for="nsfw-checkbox"> NSFW </label>
{{if .ReplyContext}}
<input type="checkbox" id="quote-checkbox" name="is_quote" value="true" {{if .ReplyContext.ForceVisibility}}disabled{{end}} accesskey="Q" title="Quote (Q)">
<label for="quote-checkbox"> Quote </label>
{{end}}
</div>
<div class="form-field-s">
<input id="post-file-picker" type="file" name="attachments" multiple accesskey="A" title="Attachments (A)">