116 lines
3.6 KiB
Go
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)
|
|
}
|