Expand list of forbidden Unicode characters in NewsAPI and refine warning rendering logic in NinaWarnings widget
This commit is contained in:
parent
915087d31a
commit
d4e3b6252b
@ -11,7 +11,16 @@ import (
|
|||||||
|
|
||||||
const apiBaseURL = "https://newsapi.org/v2/top-headlines"
|
const apiBaseURL = "https://newsapi.org/v2/top-headlines"
|
||||||
|
|
||||||
var forbiddenStrings = []string{"\r", "\\r", "\ufeff", "\u00A0"}
|
var forbiddenStrings = []string{
|
||||||
|
"\r", "\\r", "\ufeff", "\u00A0", "\u200b", "\u200c",
|
||||||
|
"\u200d", // Zero Width Joiner
|
||||||
|
"\u200e", // Left-to-Right Mark
|
||||||
|
"\u200f", // Right-to-Left Mark
|
||||||
|
"\u2060", // Word Joiner
|
||||||
|
"\ufe0f", // Variation Selector-16
|
||||||
|
"\u2028",
|
||||||
|
"\u2029",
|
||||||
|
}
|
||||||
|
|
||||||
type configFile struct {
|
type configFile struct {
|
||||||
News newsConfig
|
News newsConfig
|
||||||
|
|||||||
@ -17,6 +17,8 @@ import (
|
|||||||
type NinaWarningsOptions struct {
|
type NinaWarningsOptions struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*dwd.2.49.0.0.276.0.DWD.PVW.1768147140000.877ab163-e3e6-4e9a-8f79-9ffce1a70629.MUL*/
|
||||||
|
|
||||||
func NinaWarnings() NinaWarningsOptions {
|
func NinaWarnings() NinaWarningsOptions {
|
||||||
widgetOptions["NinaWarningsOptions"] = createNinaWarnings
|
widgetOptions["NinaWarningsOptions"] = createNinaWarnings
|
||||||
return NinaWarningsOptions{}
|
return NinaWarningsOptions{}
|
||||||
@ -30,24 +32,30 @@ func createNinaWarnings(ctx context.Context, _ terminalapi.Terminal, _ interface
|
|||||||
widget.Reset()
|
widget.Reset()
|
||||||
for _, warning := range warnings {
|
for _, warning := range warnings {
|
||||||
for _, info := range warning.Info {
|
for _, info := range warning.Info {
|
||||||
var options []cell.Option
|
if info.Language == "de-DE" {
|
||||||
if info.Severity == "Moderate" {
|
var options []cell.Option
|
||||||
options = append(options, cell.FgColor(cell.ColorRed))
|
if info.Severity == "Moderate" {
|
||||||
} else if info.Severity == "Minor" {
|
options = append(options, cell.FgColor(cell.ColorRed))
|
||||||
options = append(options, cell.FgColor(cell.ColorYellow))
|
} else if info.Severity == "Minor" {
|
||||||
} else if info.Severity == "Fine" {
|
options = append(options, cell.FgColor(cell.ColorYellow))
|
||||||
options = append(options, cell.FgColor(cell.ColorGray))
|
} else if info.Severity == "Fine" {
|
||||||
} else if info.Severity == "Cancel" {
|
options = append(options, cell.FgColor(cell.ColorGray))
|
||||||
options = append(options, cell.FgColor(cell.ColorGreen))
|
} else if info.Severity == "Cancel" {
|
||||||
} else {
|
options = append(options, cell.FgColor(cell.ColorGreen))
|
||||||
options = append(options, cell.FgColor(cell.ColorRed))
|
} else {
|
||||||
options = append(options, cell.Blink())
|
options = append(options, cell.FgColor(cell.ColorRed))
|
||||||
}
|
options = append(options, cell.Blink())
|
||||||
if err := widget.Write(fmt.Sprintf("%s\n\n", info.Headline), text.WriteCellOpts(append(options, cell.Bold())...)); err != nil {
|
}
|
||||||
return err
|
if err := widget.Write(fmt.Sprintf("%s\n", info.Headline), text.WriteCellOpts(append(options, cell.Bold())...)); err != nil {
|
||||||
}
|
return err
|
||||||
if err := widget.Write(fmt.Sprintf("%s\n\n\n", removeElements(info.Description)), text.WriteCellOpts(options...)); err != nil {
|
}
|
||||||
return err
|
if err := widget.Write(fmt.Sprintf("Expires: %s\n\n", info.Expires), text.WriteCellOpts(append(options, cell.Dim())...)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := widget.Write(fmt.Sprintf("%s\n\n\n", removeElements(info.Description)), text.WriteCellOpts(options...)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user