You've already forked top-wallpaper
31 lines
670 B
Go
31 lines
670 B
Go
package http
|
|
|
|
import (
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/siteworxpro/top-wallpaper/redis"
|
|
)
|
|
|
|
func Get(c echo.Context) error {
|
|
|
|
rc, err := redis.NewRedis()
|
|
if err != nil {
|
|
return c.String(http.StatusInternalServerError, "Internal Server Error: "+err.Error())
|
|
}
|
|
|
|
defer rc.Close()
|
|
|
|
nsfw := (c.QueryParam("nsfw") == "true" || c.QueryParam("nsfw") == "1") && os.Getenv("NSFW_MODE") == "true"
|
|
val, err := rc.Get(rc.GetCacheKey(nsfw))
|
|
|
|
if err != nil || val == "" {
|
|
return c.NoContent(http.StatusNoContent)
|
|
}
|
|
|
|
c.Response().Header().Set("Cache-Control", "public, max-age=600")
|
|
|
|
return c.Blob(http.StatusOK, "image/jpeg", []byte(val))
|
|
}
|