package main import ( "encoding/json" "net/http" "time" plugin "aroz.org/zoraxy/event-subscriber-example/mod/zoraxy_plugin" ) func RenderUI(config *plugin.ConfigureSpec, w http.ResponseWriter, r *http.Request) { // Render the UI for the plugin var eventLogHTML string if len(EventLog) == 0 { eventLogHTML = "

No events received yet
Try toggling a blacklist or something like that

" } else { EventLogMutex.Lock() defer EventLogMutex.Unlock() for _, event := range EventLog { rawEventData, _ := json.Marshal(event) eventLogHTML += "
" eventLogHTML += "

" + string(event.Name) + " at " + time.Unix(event.Timestamp, 0).Local().Format(time.RFC3339) + "

" eventLogHTML += "
" eventLogHTML += "

Event Data:

" eventLogHTML += "
" + string(rawEventData) + "
" eventLogHTML += "
" } } w.Header().Set("Content-Type", "text/html") w.WriteHeader(http.StatusOK) html := ` Event Log

Event Log

` + eventLogHTML + `
` w.Write([]byte(html)) }