Add alternative status code prameter

This commit is contained in:
Cody Meadows 2024-10-17 21:58:18 +00:00
parent d90d39933a
commit ee94d6aa89
2 changed files with 18 additions and 6 deletions

View file

@ -1082,6 +1082,7 @@ Properties for each site:
| icon | string | no | |
| allow-insecure | boolean | no | false |
| same-tab | boolean | no | false |
| alt-status-codes | array | no | |
`title`
@ -1117,6 +1118,15 @@ Whether to ignore invalid/self-signed certificates.
Whether to open the link in the same or a new tab.
`alt-status-codes`
Status codes other than 200 that you want to return "OK".
```yaml
alt-status-codes:
- 403
```
### Releases
Display a list of latest releases for specific repositories on Github, GitLab, Codeberg or Docker Hub.

View file

@ -3,6 +3,7 @@ package widget
import (
"context"
"html/template"
"slices"
"strconv"
"time"
@ -10,8 +11,8 @@ import (
"github.com/glanceapp/glance/internal/feed"
)
func statusCodeToText(status int) string {
if status == 200 {
func statusCodeToText(status int, altStatusCodes []int) string {
if status == 200 || slices.Contains(altStatusCodes, status) {
return "OK"
}
if status == 404 {
@ -33,8 +34,8 @@ func statusCodeToText(status int) string {
return strconv.Itoa(status)
}
func statusCodeToStyle(status int) string {
if status == 200 {
func statusCodeToStyle(status int, altStatusCodes []int) string {
if status == 200 || slices.Contains(altStatusCodes, status) {
return "ok"
}
@ -52,6 +53,7 @@ type Monitor struct {
SameTab bool `yaml:"same-tab"`
StatusText string `yaml:"-"`
StatusStyle string `yaml:"-"`
AltStatusCodes []int `yaml:"alt-status-codes"`
} `yaml:"sites"`
ShowFailingOnly bool `yaml:"show-failing-only"`
HasFailing bool `yaml:"-"`
@ -92,8 +94,8 @@ func (widget *Monitor) Update(ctx context.Context) {
}
if !status.TimedOut {
site.StatusText = statusCodeToText(status.Code)
site.StatusStyle = statusCodeToStyle(status.Code)
site.StatusText = statusCodeToText(status.Code, site.AltStatusCodes)
site.StatusStyle = statusCodeToStyle(status.Code, site.AltStatusCodes)
}
}
}