mirror of
https://github.com/axllent/mailpit.git
synced 2025-01-26 03:52:09 +02:00
75 lines
2.0 KiB
Go
75 lines
2.0 KiB
Go
// Package htmlcheck is used for parsing HTML and returning
|
|
// HTML compatibility errors and warnings
|
|
package htmlcheck
|
|
|
|
import (
|
|
"embed"
|
|
"encoding/json"
|
|
"regexp"
|
|
)
|
|
|
|
//go:embed caniemail-data.json
|
|
var embeddedFS embed.FS
|
|
|
|
var (
|
|
cie = CanIEmail{}
|
|
|
|
noteMatch = regexp.MustCompile(` #(\d)+$`)
|
|
|
|
// LimitFamilies will limit results to families if set
|
|
LimitFamilies = []string{}
|
|
|
|
// LimitPlatforms will limit results to platforms if set
|
|
LimitPlatforms = []string{}
|
|
|
|
// LimitClients will limit results to clients if set
|
|
LimitClients = []string{}
|
|
)
|
|
|
|
// CanIEmail struct for JSON data
|
|
type CanIEmail struct {
|
|
APIVersion string `json:"api_version"`
|
|
LastUpdateDate string `json:"last_update_date"`
|
|
// NiceNames map[string]string `json:"last_update_date"`
|
|
NiceNames struct {
|
|
Family map[string]string `json:"family"`
|
|
Platform map[string]string `json:"platform"`
|
|
Support map[string]string `json:"support"`
|
|
Category map[string]string `json:"category"`
|
|
} `json:"nicenames"`
|
|
Data []JSONResult `json:"data"`
|
|
}
|
|
|
|
// JSONResult struct for CanIEmail Data
|
|
type JSONResult struct {
|
|
Slug string `json:"slug"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
URL string `json:"url"`
|
|
Category string `json:"category"`
|
|
Tags []string `json:"tags"`
|
|
Keywords string `json:"keywords"`
|
|
LastTestDate string `json:"last_test_date"`
|
|
TestURL string `json:"test_url"`
|
|
TestResultsURL string `json:"test_results_url"`
|
|
Stats map[string]interface{} `json:"stats"`
|
|
Notes string `json:"notes"`
|
|
NotesByNumber map[string]string `json:"notes_by_num"`
|
|
}
|
|
|
|
// Load the JSON data
|
|
func loadJSONData() error {
|
|
if cie.APIVersion != "" {
|
|
return nil
|
|
}
|
|
|
|
b, err := embeddedFS.ReadFile("caniemail-data.json")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
cie = CanIEmail{}
|
|
|
|
return json.Unmarshal(b, &cie)
|
|
}
|