mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:22: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"` | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue