2022-08-11 03:59:59 +00:00
|
|
|
package config
|
|
|
|
|
2024-05-14 02:41:11 +00:00
|
|
|
import "regexp"
|
|
|
|
|
2022-08-11 03:59:59 +00:00
|
|
|
// Various hard-coded enums such as choice of gender, sexuality, relationship status etc.
|
|
|
|
var (
|
|
|
|
MaritalStatus = []string{
|
|
|
|
"Single",
|
|
|
|
"Married",
|
|
|
|
"In a relationship",
|
|
|
|
"It's complicated",
|
|
|
|
"Divorced",
|
|
|
|
"Widowed",
|
|
|
|
"Widower",
|
|
|
|
}
|
|
|
|
|
|
|
|
RelationshipType = []string{
|
|
|
|
"Monogamous",
|
|
|
|
"Open",
|
|
|
|
}
|
|
|
|
|
|
|
|
Gender = []string{
|
|
|
|
"Man",
|
|
|
|
"Woman",
|
|
|
|
"Non-binary",
|
|
|
|
"Trans",
|
|
|
|
"Trans (FTM)",
|
|
|
|
"Trans (MTF)",
|
|
|
|
"Other",
|
|
|
|
}
|
|
|
|
|
|
|
|
Orientation = []string{
|
|
|
|
"Straight",
|
|
|
|
"Gay",
|
|
|
|
"Bisexual",
|
|
|
|
"Bicurious",
|
2024-02-09 05:19:20 +00:00
|
|
|
"Pansexual",
|
|
|
|
"Asexual",
|
2022-08-11 03:59:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
HereFor = []string{
|
2023-08-30 03:40:23 +00:00
|
|
|
"Dating", "Relationship", "Platonic friends",
|
|
|
|
"Networking", "Casual acquaintances", "Hookups",
|
|
|
|
"Chat room", "Forums", "Galleries",
|
|
|
|
"Exhibitionism", "Voyeurism", "Couch surfing",
|
2022-08-11 03:59:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Enums all wrapped up for template use.
|
|
|
|
ProfileEnums = map[string][]string{
|
|
|
|
"MaritalStatus": MaritalStatus,
|
|
|
|
"RelationshipType": RelationshipType,
|
|
|
|
"Gender": Gender,
|
|
|
|
"Orientation": Orientation,
|
|
|
|
"HereFor": HereFor,
|
|
|
|
}
|
|
|
|
|
|
|
|
// Input field names for profile fields.
|
|
|
|
ProfileFields = []string{
|
|
|
|
"gender",
|
|
|
|
"pronouns",
|
|
|
|
"city",
|
|
|
|
"job",
|
|
|
|
"orientation",
|
|
|
|
"marital_status",
|
|
|
|
"relationship_type",
|
|
|
|
"about_me",
|
|
|
|
"interests",
|
|
|
|
"music_movies",
|
2023-06-16 05:05:21 +00:00
|
|
|
"hide_age",
|
2023-10-28 21:34:35 +00:00
|
|
|
}
|
2024-06-19 21:12:25 +00:00
|
|
|
EssayProfileFields = []string{
|
|
|
|
"about_me",
|
|
|
|
"interests",
|
|
|
|
"music_movies",
|
|
|
|
}
|
2023-06-24 05:18:09 +00:00
|
|
|
|
2023-10-28 21:34:35 +00:00
|
|
|
// Site preference names (stored in ProfileField table)
|
|
|
|
SitePreferenceFields = []string{
|
|
|
|
"dm_privacy",
|
|
|
|
"blur_explicit",
|
2024-06-30 04:42:35 +00:00
|
|
|
"site_gallery_default", // default view on site gallery (friends-only or all certified?)
|
2024-09-20 02:30:02 +00:00
|
|
|
"chat_moderation_rules",
|
2022-08-11 03:59:59 +00:00
|
|
|
}
|
2022-08-21 21:05:08 +00:00
|
|
|
|
2024-11-24 07:49:29 +00:00
|
|
|
// Website theme color hue choices.
|
2024-11-24 21:22:28 +00:00
|
|
|
WebsiteThemeHueChoices = []OptGroup{
|
2024-11-24 07:49:29 +00:00
|
|
|
{
|
2024-11-24 21:22:28 +00:00
|
|
|
Header: "Custom Themes",
|
|
|
|
Options: []Option{
|
|
|
|
{
|
|
|
|
Label: "Default (no added color; classic nonshy theme)",
|
|
|
|
Value: "",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "nonshy blue & pink",
|
|
|
|
Value: "blue-pink",
|
|
|
|
},
|
|
|
|
},
|
2024-11-24 07:49:29 +00:00
|
|
|
},
|
|
|
|
{
|
2024-11-24 21:22:28 +00:00
|
|
|
Header: "Just a Splash of Color",
|
|
|
|
Options: []Option{
|
|
|
|
{
|
|
|
|
Label: "Burnt red",
|
|
|
|
Value: "red",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Harvest orange",
|
|
|
|
Value: "orange",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Golden yellow",
|
|
|
|
Value: "yellow",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Leafy green",
|
|
|
|
Value: "green",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Cool blue",
|
|
|
|
Value: "blue",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Pretty in pink",
|
|
|
|
Value: "pink",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "Royal purple",
|
|
|
|
Value: "purple",
|
|
|
|
},
|
|
|
|
},
|
2024-11-24 07:49:29 +00:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2022-08-21 21:05:08 +00:00
|
|
|
// Choices for the Contact Us subject
|
2024-11-24 07:49:29 +00:00
|
|
|
ContactUsChoices = []OptGroup{
|
2022-08-21 21:05:08 +00:00
|
|
|
{
|
|
|
|
Header: "Website Feedback",
|
|
|
|
Options: []Option{
|
|
|
|
{"feedback", "Website feedback"},
|
|
|
|
{"feature", "Make a feature request"},
|
|
|
|
{"bug", "Report a bug or broken feature"},
|
|
|
|
{"other", "General/miscellaneous/other"},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Header: "Report a Problem",
|
|
|
|
Options: []Option{
|
|
|
|
{"report.user", "Report a problematic user"},
|
|
|
|
{"report.photo", "Report a problematic photo"},
|
|
|
|
{"report.message", "Report a direct message conversation"},
|
2022-08-24 05:55:19 +00:00
|
|
|
{"report.comment", "Report a forum post or comment"},
|
2024-08-22 06:06:06 +00:00
|
|
|
{"report.forum", "Report a forum or community"},
|
2024-08-24 04:21:42 +00:00
|
|
|
{"forum.adopt", "Adopt a forum"},
|
2022-08-21 21:05:08 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
2022-08-24 05:55:19 +00:00
|
|
|
|
|
|
|
// Default forum categories for forum landing page.
|
|
|
|
ForumCategories = []string{
|
|
|
|
"Rules and Announcements",
|
|
|
|
"Nudists",
|
|
|
|
"Exhibitionists",
|
2022-10-21 04:02:30 +00:00
|
|
|
"Photo Boards",
|
2022-08-24 05:55:19 +00:00
|
|
|
"Anything Goes",
|
|
|
|
}
|
2024-05-14 02:41:11 +00:00
|
|
|
|
2024-11-28 19:21:06 +00:00
|
|
|
// Forum Poll expiration options.
|
|
|
|
PollExpires = []Option{
|
|
|
|
{
|
|
|
|
Label: "Never",
|
|
|
|
Value: "0",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "1 Day",
|
|
|
|
Value: "1",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "2 Days",
|
|
|
|
Value: "2",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "3 Days",
|
|
|
|
Value: "3",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "4 Days",
|
|
|
|
Value: "4",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "5 Days",
|
|
|
|
Value: "5",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "6 Days",
|
|
|
|
Value: "6",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "7 Days",
|
|
|
|
Value: "7",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "2 Weeks",
|
|
|
|
Value: "14",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Label: "1 Month (30 days)",
|
|
|
|
Value: "30",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2024-05-14 02:41:11 +00:00
|
|
|
// Keywords that appear in a DM that make it likely spam.
|
|
|
|
DirectMessageSpamKeywords = []*regexp.Regexp{
|
|
|
|
regexp.MustCompile(`\b(telegram|whats\s*app|signal|kik|session)\b`),
|
|
|
|
regexp.MustCompile(`https?://(t.me|join.skype.com|zoom.us|whereby.com|meet.jit.si|wa.me)`),
|
|
|
|
}
|
2024-09-20 02:30:02 +00:00
|
|
|
|
|
|
|
// Chat Moderation Rules.
|
|
|
|
ChatModerationRules = []ChecklistOption{
|
|
|
|
{
|
|
|
|
Value: "redcam",
|
|
|
|
Label: "Red camera",
|
|
|
|
Help: "The user's camera is forced to 'explicit' when they are broadcasting.",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: "nobroadcast",
|
|
|
|
Label: "No broadcast",
|
|
|
|
Help: "The user can not broadcast their webcam, but may still watch other peoples' webcams.",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: "novideo",
|
2024-09-21 03:32:56 +00:00
|
|
|
Label: "No webcam privileges ('Shy Accounts')",
|
2024-09-20 02:30:02 +00:00
|
|
|
Help: "The user can not broadcast or watch any webcam. Note: this option supercedes all other video-related rules.",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Value: "noimage",
|
2024-09-21 03:32:56 +00:00
|
|
|
Label: "No image sharing privileges ('Shy Accounts')",
|
2024-09-20 02:30:02 +00:00
|
|
|
Help: "The user can not share or see any image shared on chat.",
|
|
|
|
},
|
|
|
|
}
|
2022-08-11 03:59:59 +00:00
|
|
|
)
|
2022-08-21 21:05:08 +00:00
|
|
|
|
2024-11-24 07:49:29 +00:00
|
|
|
// OptGroup choices for the subject drop-down.
|
|
|
|
type OptGroup struct {
|
2022-08-21 21:05:08 +00:00
|
|
|
Header string
|
|
|
|
Options []Option
|
|
|
|
}
|
|
|
|
|
|
|
|
// Option for select boxes.
|
|
|
|
type Option struct {
|
|
|
|
Value string
|
|
|
|
Label string
|
|
|
|
}
|
2023-10-28 21:34:35 +00:00
|
|
|
|
2024-09-20 02:30:02 +00:00
|
|
|
// ChecklistOption for checkbox-lists.
|
|
|
|
type ChecklistOption struct {
|
|
|
|
Value string
|
|
|
|
Label string
|
|
|
|
Help string
|
|
|
|
}
|
|
|
|
|
2023-10-28 21:34:35 +00:00
|
|
|
// NotificationOptout field values (stored in user ProfileField table)
|
|
|
|
const (
|
|
|
|
NotificationOptOutFriendPhotos = "notif_optout_friends_photos"
|
|
|
|
NotificationOptOutPrivatePhotos = "notif_optout_private_photos"
|
|
|
|
NotificationOptOutExplicitPhotos = "notif_optout_explicit_photos"
|
|
|
|
NotificationOptOutLikes = "notif_optout_likes"
|
|
|
|
NotificationOptOutComments = "notif_optout_comments"
|
|
|
|
NotificationOptOutSubscriptions = "notif_optout_subscriptions"
|
|
|
|
NotificationOptOutFriendRequestAccepted = "notif_optout_friend_request_accepted"
|
|
|
|
NotificationOptOutPrivateGrant = "notif_optout_private_grant"
|
2024-07-21 02:44:22 +00:00
|
|
|
|
|
|
|
// Web Push Notifications
|
|
|
|
PushNotificationOptOutMessage = "notif_optout_push_messages"
|
|
|
|
PushNotificationOptOutFriends = "notif_optout_push_friends"
|
2023-10-28 21:34:35 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// Notification opt-outs (stored in ProfileField table)
|
|
|
|
var NotificationOptOutFields = []string{
|
|
|
|
NotificationOptOutFriendPhotos,
|
|
|
|
NotificationOptOutPrivatePhotos,
|
|
|
|
NotificationOptOutExplicitPhotos,
|
|
|
|
NotificationOptOutLikes,
|
|
|
|
NotificationOptOutComments,
|
|
|
|
NotificationOptOutSubscriptions,
|
|
|
|
NotificationOptOutFriendRequestAccepted,
|
|
|
|
NotificationOptOutPrivateGrant,
|
|
|
|
}
|
2024-07-21 02:44:22 +00:00
|
|
|
|
|
|
|
// Push Notification opt-outs (stored in ProfileField table)
|
|
|
|
var PushNotificationOptOutFields = []string{
|
|
|
|
PushNotificationOptOutMessage,
|
|
|
|
PushNotificationOptOutFriends,
|
|
|
|
}
|