mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-29 04:12:25 -05:00 
			
		
		
		
	[feature] Status thread mute/unmute functionality (#2278)
* add db models + functions for keeping track of threads * give em the old linty testy * create, remove, check mutes * swagger * testerino * test mute/unmute via api * add info log about new index creation * thread + allow muting of any remote statuses that mention a local account * IsStatusThreadMutedBy -> IsThreadMutedByAccount * use common processing functions in status processor * set = NULL * favee! * get rekt darlings, darlings get rekt * testrig please, have mercy muy liege
This commit is contained in:
		
					parent
					
						
							
								27f4659139
							
						
					
				
			
			
				commit
				
					
						c7b6cd7770
					
				
			
		
					 48 changed files with 1750 additions and 198 deletions
				
			
		|  | @ -6527,6 +6527,44 @@ paths: | |||
|             summary: View accounts that have faved/starred/liked the target status. | ||||
|             tags: | ||||
|                 - statuses | ||||
|     /api/v1/statuses/{id}/mute: | ||||
|         post: | ||||
|             description: |- | ||||
|                 Target status must belong to you or mention you. | ||||
| 
 | ||||
|                 Status thread mutes and unmutes are idempotent. If you already mute a thread, muting it again just means it stays muted and you'll get 200 OK back. | ||||
|             operationId: statusMute | ||||
|             parameters: | ||||
|                 - description: Target status ID. | ||||
|                   in: path | ||||
|                   name: id | ||||
|                   required: true | ||||
|                   type: string | ||||
|             produces: | ||||
|                 - application/json | ||||
|             responses: | ||||
|                 "200": | ||||
|                     description: The now-muted status. | ||||
|                     schema: | ||||
|                         $ref: '#/definitions/status' | ||||
|                 "400": | ||||
|                     description: bad request; you're not part of the target status thread | ||||
|                 "401": | ||||
|                     description: unauthorized | ||||
|                 "403": | ||||
|                     description: forbidden | ||||
|                 "404": | ||||
|                     description: not found | ||||
|                 "406": | ||||
|                     description: not acceptable | ||||
|                 "500": | ||||
|                     description: internal server error | ||||
|             security: | ||||
|                 - OAuth2 Bearer: | ||||
|                     - write:mutes | ||||
|             summary: Mute a status's thread. This prevents notifications from being created for future replies, likes, boosts etc in the thread of which the target status is a part. | ||||
|             tags: | ||||
|                 - statuses | ||||
|     /api/v1/statuses/{id}/pin: | ||||
|         post: | ||||
|             description: |- | ||||
|  | @ -6703,6 +6741,44 @@ paths: | |||
|             summary: Unstar/unlike/unfavourite the given status. | ||||
|             tags: | ||||
|                 - statuses | ||||
|     /api/v1/statuses/{id}/unmute: | ||||
|         post: | ||||
|             description: |- | ||||
|                 Target status must belong to you or mention you. | ||||
| 
 | ||||
|                 Status thread mutes and unmutes are idempotent. If you already unmuted a thread, unmuting it again just means it stays unmuted and you'll get 200 OK back. | ||||
|             operationId: statusUnmute | ||||
|             parameters: | ||||
|                 - description: Target status ID. | ||||
|                   in: path | ||||
|                   name: id | ||||
|                   required: true | ||||
|                   type: string | ||||
|             produces: | ||||
|                 - application/json | ||||
|             responses: | ||||
|                 "200": | ||||
|                     description: The now-unmuted status. | ||||
|                     schema: | ||||
|                         $ref: '#/definitions/status' | ||||
|                 "400": | ||||
|                     description: bad request; you're not part of the target status thread | ||||
|                 "401": | ||||
|                     description: unauthorized | ||||
|                 "403": | ||||
|                     description: forbidden | ||||
|                 "404": | ||||
|                     description: not found | ||||
|                 "406": | ||||
|                     description: not acceptable | ||||
|                 "500": | ||||
|                     description: internal server error | ||||
|             security: | ||||
|                 - OAuth2 Bearer: | ||||
|                     - write:mutes | ||||
|             summary: Unmute a status's thread. This reenables notifications for future replies, likes, boosts etc in the thread of which the target status is a part. | ||||
|             tags: | ||||
|                 - statuses | ||||
|     /api/v1/statuses/{id}/unpin: | ||||
|         post: | ||||
|             operationId: statusUnpin | ||||
|  | @ -7336,6 +7412,7 @@ securityDefinitions: | |||
|             read:follows: grant read access to follows | ||||
|             read:lists: grant read access to lists | ||||
|             read:media: grant read access to media | ||||
|             read:mutes: grant read access to mutes | ||||
|             read:notifications: grants read access to notifications | ||||
|             read:search: grant read access to searches | ||||
|             read:statuses: grants read access to statuses | ||||
|  | @ -7347,6 +7424,7 @@ securityDefinitions: | |||
|             write:follows: grants write access to follows | ||||
|             write:lists: grants write access to lists | ||||
|             write:media: grants write access to media | ||||
|             write:mutes: grants write access to mutes | ||||
|             write:statuses: grants write access to statuses | ||||
|             write:user: grants write access to user-level info | ||||
|         tokenUrl: https://example.org/oauth/token | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue