Files
2026-05-23 17:17:56 -07:00

116 lines
3.6 KiB
Go

package routes
import (
"gifuu/tools"
"net/http"
)
const (
REPORT_REASON_EXPLICIT = 0 // Sexual, Nudity, or Fetish Content
REPORT_REASON_HARASSMENT = 1 // Targeted Harassment or Hate Speech
REPORT_REASON_VIOLENCE = 2 // Violence, Gore, or Abuse
REPORT_REASON_SPAM = 3 // Spam, Advertising, or Solicitation
REPORT_REASON_HARMFUL = 4 // Seizure-Inducing, Self-Harm, or Dangerous Content
REPORT_REASON_ILLEGAL = 5 // Illegal Content (CSAM, Threats, etc.)
)
type normalizerItem struct {
Match string `json:"match"`
Replace string `json:"replace"`
Comment string `json:"comment"`
}
var cachedLimitsJSON []byte
var cachedLimitsGZIP []byte
func init() {
json, gzip, err := tools.PrepareStaticJSON(map[string]any{
"upload": map[string]any{
"input_width_min": MEDIA_MIN_WIDTH,
"input_height_min": MEDIA_MIN_HEIGHT,
"video_width_max": VIDEO_MAX_WIDTH,
"video_height_max": VIDEO_MAX_HEIGHT,
"image_width_max": IMAGE_MAX_WIDTH,
"image_height_max": IMAGE_MAX_HEIGHT,
"duration": MEDIA_MAX_DURATION,
"filesize": tools.LIMIT_FILE,
"mime_types": tools.LIMIT_MIME_TYPE,
},
"title": map[string]any{
"normalizers": []normalizerItem{
{ /**/ `^\s+` /*---*/, `` /**/, "Trim Left"},
{ /**/ `\s+$` /*---*/, `` /**/, "Trim Right"},
{ /**/ `\s{2,}` /**/, ` ` /**/, "Regulate Excessive Spaces"},
},
"matcher": `^[\S\s]{1,80}$`,
"max_length": 80,
"min_length": 1,
},
"tag": map[string]any{
"normalizers": []normalizerItem{
{ /**/ `^_+` /*-*/, `` /*-*/, "Trim Left Underscores"},
{ /**/ `_+$` /*-*/, `` /*-*/, "Trim Right Underscores"},
{ /**/ `_+` /*--*/, `_` /**/, "Regulate Excessive Underscores"},
},
"matcher": `^[\p{L}\p{N}_]{1,32}$`,
"max_length": 32,
"min_length": 1,
},
"comment": map[string]any{
"normalizers": []normalizerItem{
{ /**/ `^\s+` /*--*/, `` /*--*/, "Trim Left Spaces"},
{ /**/ `\s+$` /*--*/, `` /*--*/, "Trim Right Spaces"},
{ /**/ `\n{2,}` /**/, `\n` /**/, "Regulate Excessive Newlines"},
},
"matcher": `^[\S\s]{10,240}$`,
"max_length": 240,
"min_length": 10,
},
"report": map[string]any{
"values": []any{
map[string]any{
"id": REPORT_REASON_EXPLICIT,
"title": "EXPLICIT",
"description": "Sexual, Nudity, or Fetish Content"},
map[string]any{
"id": REPORT_REASON_HARASSMENT,
"title": "HARASSMENT",
"description": "Targeted Harassment or Hate Speech"},
map[string]any{
"id": REPORT_REASON_VIOLENCE,
"title": "VIOLENCE",
"description": "Violence, Gore, or Abuse"},
map[string]any{
"id": REPORT_REASON_SPAM,
"title": "SPAM",
"description": "Spam, Advertising, or Solicitation"},
map[string]any{
"id": REPORT_REASON_HARMFUL,
"title": "HARMFUL",
"description": "Seizure-Inducing, Self-Harm, or Dangerous Content"},
map[string]any{
"id": REPORT_REASON_ILLEGAL,
"title": "ILLEGAL",
"description": "Illegal Content (CSAM, Threats, etc.)"},
},
"normalizers": []normalizerItem{
{ /**/ `^\s+` /*--*/, `` /*--*/, "Trim Left Spaces"},
{ /**/ `\s+$` /*--*/, `` /*--*/, "Trim Right Spaces"},
{ /**/ `\n{2,}` /**/, `\n` /**/, "Regulate Excessive Newlines"},
},
"matcher": `^[\S\s]{10,240}$`,
"max_length": 240,
"min_length": 10,
},
})
if err != nil {
panic(err)
}
cachedLimitsJSON = json
cachedLimitsGZIP = gzip
}
func GET_Limits(w http.ResponseWriter, r *http.Request) {
tools.SendStaticJSON(w, r, http.StatusOK, cachedLimitsJSON, cachedLimitsGZIP)
}