diff --git a/nsfw_checker_impl.go b/nsfw_checker_impl.go index 74e1429..6b95caa 100644 --- a/nsfw_checker_impl.go +++ b/nsfw_checker_impl.go @@ -27,6 +27,13 @@ var nsfwPredictor = func() *nsfw.Predictor { var tempFileLocks = [3]sync.Mutex{{}, {}, {}} func isImageNSFW(url string) bool { + defer func() { + if r := recover(); r != nil { + log.Error().Interface("err", r).Str("url", url).Msg("panic while checking nsfw") + return + } + }() + if is, ok := nsfwCache.Get(url); ok { return is } diff --git a/render_event.go b/render_event.go index ca310aa..78dd5f9 100644 --- a/render_event.go +++ b/render_event.go @@ -118,6 +118,7 @@ func renderEvent(w http.ResponseWriter, r *http.Request) { return } for _, url := range allUrls { + url = strings.Split(strings.Split(url, "?")[0], "#")[0] if imageExtensionMatcher.MatchString(url) { if isImageNSFW(url) { log.Warn().Str("url", url).Str("event", data.nevent).Msg("detect nsfw image")