mirror of
https://github.com/aljazceru/njump.git
synced 2025-12-17 14:24:27 +01:00
41 lines
831 B
Go
41 lines
831 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"image/png"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func generate(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Println(r.URL.Path, ":~", r.Header.Get("user-agent"))
|
|
|
|
code := r.URL.Path[1+len("image/"):]
|
|
if code == "" {
|
|
fmt.Fprintf(w, "call /image/<nip19 code>")
|
|
return
|
|
}
|
|
|
|
event, err := getEvent(r.Context(), code)
|
|
if err != nil {
|
|
http.Error(w, "error fetching event: "+err.Error(), 404)
|
|
return
|
|
}
|
|
|
|
lines := normalizeText(event.Content)
|
|
|
|
img, err := drawImage(lines, getPreviewStyle(r))
|
|
if err != nil {
|
|
log.Printf("error writing image: %s", err)
|
|
http.Error(w, "error writing image!", 500)
|
|
return
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "image/png")
|
|
if err := png.Encode(w, img); err != nil {
|
|
log.Printf("error encoding image: %s", err)
|
|
http.Error(w, "error encoding image!", 500)
|
|
return
|
|
}
|
|
}
|