mirror of
https://github.com/glanceapp/glance.git
synced 2025-02-23 22:01:09 +01:00
Add fallback-content-type property
This commit is contained in:
parent
e5bb102ab1
commit
6f8e576c9b
@ -1006,12 +1006,16 @@ Display a widget provided by an external source (3rd party). If you want to lear
|
|||||||
| Name | Type | Required | Default |
|
| Name | Type | Required | Default |
|
||||||
| ---- | ---- | -------- | ------- |
|
| ---- | ---- | -------- | ------- |
|
||||||
| url | string | yes | |
|
| url | string | yes | |
|
||||||
|
| fallback-content-type | string | no | |
|
||||||
| allow-potentially-dangerous-html | boolean | no | false |
|
| allow-potentially-dangerous-html | boolean | no | false |
|
||||||
| parameters | key & value | no | |
|
| parameters | key & value | no | |
|
||||||
|
|
||||||
##### `url`
|
##### `url`
|
||||||
The URL of the extension.
|
The URL of the extension.
|
||||||
|
|
||||||
|
##### `fallback-content-type`
|
||||||
|
Optionally specify the fallback content type of the extension if the URL does not return a valid `Widget-Content-Type` header. Currently the only supported value for this property is `html`.
|
||||||
|
|
||||||
##### `allow-potentially-dangerous-html`
|
##### `allow-potentially-dangerous-html`
|
||||||
Whether to allow the extension to display HTML.
|
Whether to allow the extension to display HTML.
|
||||||
|
|
||||||
|
@ -27,9 +27,10 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ExtensionRequestOptions struct {
|
type ExtensionRequestOptions struct {
|
||||||
URL string `yaml:"url"`
|
URL string `yaml:"url"`
|
||||||
Parameters map[string]string `yaml:"parameters"`
|
FallbackContentType string `yaml:"fallback-content-type"`
|
||||||
AllowHtml bool `yaml:"allow-potentially-dangerous-html"`
|
Parameters map[string]string `yaml:"parameters"`
|
||||||
|
AllowHtml bool `yaml:"allow-potentially-dangerous-html"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Extension struct {
|
type Extension struct {
|
||||||
@ -88,7 +89,11 @@ func FetchExtension(options ExtensionRequestOptions) (Extension, error) {
|
|||||||
contentType, ok := ExtensionStringToType[response.Header.Get(ExtensionHeaderContentType)]
|
contentType, ok := ExtensionStringToType[response.Header.Get(ExtensionHeaderContentType)]
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
contentType = ExtensionContentUnknown
|
contentType, ok = ExtensionStringToType[options.FallbackContentType]
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
contentType = ExtensionContentUnknown
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension.Content = convertExtensionContent(options, body, contentType)
|
extension.Content = convertExtensionContent(options, body, contentType)
|
||||||
|
@ -12,12 +12,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Extension struct {
|
type Extension struct {
|
||||||
widgetBase `yaml:",inline"`
|
widgetBase `yaml:",inline"`
|
||||||
URL string `yaml:"url"`
|
URL string `yaml:"url"`
|
||||||
Parameters map[string]string `yaml:"parameters"`
|
FallbackContentType string `yaml:"fallback-content-type"`
|
||||||
AllowHtml bool `yaml:"allow-potentially-dangerous-html"`
|
Parameters map[string]string `yaml:"parameters"`
|
||||||
Extension feed.Extension `yaml:"-"`
|
AllowHtml bool `yaml:"allow-potentially-dangerous-html"`
|
||||||
cachedHTML template.HTML `yaml:"-"`
|
Extension feed.Extension `yaml:"-"`
|
||||||
|
cachedHTML template.HTML `yaml:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (widget *Extension) Initialize() error {
|
func (widget *Extension) Initialize() error {
|
||||||
@ -38,9 +39,10 @@ func (widget *Extension) Initialize() error {
|
|||||||
|
|
||||||
func (widget *Extension) Update(ctx context.Context) {
|
func (widget *Extension) Update(ctx context.Context) {
|
||||||
extension, err := feed.FetchExtension(feed.ExtensionRequestOptions{
|
extension, err := feed.FetchExtension(feed.ExtensionRequestOptions{
|
||||||
URL: widget.URL,
|
URL: widget.URL,
|
||||||
Parameters: widget.Parameters,
|
FallbackContentType: widget.FallbackContentType,
|
||||||
AllowHtml: widget.AllowHtml,
|
Parameters: widget.Parameters,
|
||||||
|
AllowHtml: widget.AllowHtml,
|
||||||
})
|
})
|
||||||
|
|
||||||
widget.canContinueUpdateAfterHandlingErr(err)
|
widget.canContinueUpdateAfterHandlingErr(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user