mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 17:32:25 -05:00
[feature] scheduled statuses (#4274)
An implementation of [`scheduled_statuses`](https://docs.joinmastodon.org/methods/scheduled_statuses/). Will fix #1006. this is heavily WIP and I need to reorganize some of the code, working on this made me somehow familiar with the codebase and led to my other recent contributions i told some fops on fedi i'd work on this so i have no choice but to complete it 🤷♀️ btw iirc my avatar presents me working on this branch Signed-off-by: nicole mikołajczyk <git@mkljczk.pl> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4274 Co-authored-by: nicole mikołajczyk <git@mkljczk.pl> Co-committed-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
parent
cead741c16
commit
660cf2c94c
46 changed files with 2354 additions and 68 deletions
|
|
@ -17,22 +17,46 @@
|
|||
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// ScheduledStatus represents a status that will be published at a future scheduled date.
|
||||
//
|
||||
// swagger:model scheduledStatus
|
||||
type ScheduledStatus struct {
|
||||
ID string `json:"id"`
|
||||
ScheduledAt string `json:"scheduled_at"`
|
||||
Params *StatusParams `json:"params"`
|
||||
MediaAttachments []Attachment `json:"media_attachments"`
|
||||
ID string `json:"id"`
|
||||
ScheduledAt string `json:"scheduled_at"`
|
||||
Params *ScheduledStatusParams `json:"params"`
|
||||
MediaAttachments []*Attachment `json:"media_attachments"`
|
||||
}
|
||||
|
||||
// StatusParams represents parameters for a scheduled status.
|
||||
type StatusParams struct {
|
||||
Text string `json:"text"`
|
||||
InReplyToID string `json:"in_reply_to_id,omitempty"`
|
||||
MediaIDs []string `json:"media_ids,omitempty"`
|
||||
Sensitive bool `json:"sensitive,omitempty"`
|
||||
SpoilerText string `json:"spoiler_text,omitempty"`
|
||||
Visibility string `json:"visibility"`
|
||||
ScheduledAt string `json:"scheduled_at,omitempty"`
|
||||
ApplicationID string `json:"application_id"`
|
||||
type ScheduledStatusParams struct {
|
||||
Text string `json:"text"`
|
||||
MediaIDs []string `json:"media_ids,omitempty"`
|
||||
Sensitive bool `json:"sensitive,omitempty"`
|
||||
Poll *ScheduledStatusParamsPoll `json:"poll,omitempty"`
|
||||
SpoilerText string `json:"spoiler_text,omitempty"`
|
||||
Visibility Visibility `json:"visibility"`
|
||||
InReplyToID string `json:"in_reply_to_id,omitempty"`
|
||||
Language string `json:"language"`
|
||||
ApplicationID string `json:"application_id"`
|
||||
LocalOnly bool `json:"local_only,omitempty"`
|
||||
ContentType StatusContentType `json:"content_type,omitempty"`
|
||||
InteractionPolicy *InteractionPolicy `json:"interaction_policy,omitempty"`
|
||||
ScheduledAt *string `json:"scheduled_at"`
|
||||
}
|
||||
|
||||
type ScheduledStatusParamsPoll struct {
|
||||
Options []string `json:"options"`
|
||||
ExpiresIn int `json:"expires_in"`
|
||||
Multiple bool `json:"multiple"`
|
||||
HideTotals bool `json:"hide_totals"`
|
||||
}
|
||||
|
||||
// ScheduledStatusUpdateRequest models a request to update the scheduled status publication date.
|
||||
//
|
||||
// swagger:ignore
|
||||
type ScheduledStatusUpdateRequest struct {
|
||||
// ISO 8601 Datetime at which to schedule a status.
|
||||
ScheduledAt *time.Time `form:"scheduled_at" json:"scheduled_at"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -252,7 +252,6 @@ type StatusCreateRequest struct {
|
|||
//
|
||||
// Providing this parameter with a *future* time will cause ScheduledStatus to be returned instead of Status.
|
||||
// Must be at least 5 minutes in the future.
|
||||
// This feature isn't implemented yet.
|
||||
//
|
||||
// Providing this parameter with a *past* time will cause the status to be backdated,
|
||||
// and will not push it to the user's followers. This is intended for importing old statuses.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue