feat: add characters
This commit is contained in:
@@ -49,6 +49,29 @@ func CardsHandler(diskDir string) http.Handler {
|
||||
})
|
||||
}
|
||||
|
||||
// AvatarsHandler تصاویرِ شخصیتِ آواتار را سرو میکند: GET /avatars/<id>.png
|
||||
// فقط از پوشهی دیسکیِ آپلودِ ادمین (بدونِ embed)؛ اگر نبود ۴۰۴ (اپ به آواتارِ
|
||||
// تصادفیِ پیشفرض برمیگردد).
|
||||
func AvatarsHandler(diskDir string) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
w.Header().Set("Cache-Control", "public, max-age=604800")
|
||||
if diskDir != "" {
|
||||
rel := filepath.Clean("/" + strings.TrimPrefix(r.URL.Path, "/avatars/"))
|
||||
full := filepath.Join(diskDir, rel)
|
||||
if st, err := os.Stat(full); err == nil && !st.IsDir() {
|
||||
// SVG را با content-type درست بده تا مرورگر/پنل هم آن را نمایش دهد.
|
||||
if strings.HasSuffix(strings.ToLower(full), ".svg") {
|
||||
w.Header().Set("Content-Type", "image/svg+xml")
|
||||
}
|
||||
http.ServeFile(w, r, full)
|
||||
return
|
||||
}
|
||||
}
|
||||
http.NotFound(w, r)
|
||||
})
|
||||
}
|
||||
|
||||
// CarpetsHandler تصاویرِ فرش را سرو میکند: GET /carpets/<id>.jpg
|
||||
// ابتدا از پوشهی دیسکی (آپلودِ ادمین)، سپس از فرشهای embedشدهی پیشفرض.
|
||||
// اگر هیچکدام نبود ۴۰۴ (اپ به میزِ ترسیمیِ classic برمیگردد).
|
||||
|
||||
Reference in New Issue
Block a user