[feature] Allow users to set custom css for their profiles + threads (#808)

* add custom css account property + db func to fetch

* allow account to get/set custom css

* serve custom css for an account

* go fmt

* use monospace for customcss, add link

* add custom css to account cache

* fix broken field

* add custom css docs to user guide

* add `accounts-allow-custom-css` config flag

* add allow custom css to /api/v1/instance response

* only show/set custom css if allowed to do so

* only set/serve custom account css if enabled

* update swagger docs

* chain promise

* make bool a bit clearer

* use cache for GetAccountCustomCSSByUsername
This commit is contained in:
tobi
2022-09-12 13:14:29 +02:00
committed by GitHub
parent 268f252e0d
commit b42469e4e0
40 changed files with 458 additions and 39 deletions

View File

@ -12,6 +12,17 @@ definitions:
title: A FileHeader describes a file part of a multipart request.
type: object
x-go-package: mime/multipart
InstanceConfigurationAccounts:
properties:
allow_custom_css:
description: Whether or not accounts on this instance are allowed to upload
custom CSS for profiles and statuses.
example: false
type: boolean
x-go-name: AllowCustomCSS
title: InstanceConfigurationAccounts models instance account config parameters.
type: object
x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
Link:
description: See https://webfinger.net/
properties:
@ -240,6 +251,11 @@ definitions:
example: "2021-07-30T09:20:25+00:00"
type: string
x-go-name: CreatedAt
custom_css:
description: CustomCSS to include when rendering this account's profile or
statuses.
type: string
x-go-name: CustomCSS
discoverable:
description: Account has opted into discovery features.
type: boolean
@ -1086,6 +1102,8 @@ definitions:
x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
instanceConfiguration:
properties:
accounts:
$ref: '#/definitions/InstanceConfigurationAccounts'
media_attachments:
$ref: '#/definitions/instanceConfigurationMediaAttachments'
polls:
@ -2618,6 +2636,12 @@ paths:
in: formData
name: source[status_format]
type: string
- description: |-
Custom CSS to use when rendering this account's profile or statuses.
String must be no more than 5,000 characters (~5kb).
in: formData
name: custom_css
type: string
produces:
- application/json
responses: