2022-11-29 20:20:26 +00:00
from enum import Enum , auto
2022-11-15 09:19:08 +00:00
from os import environ , path
2022-06-18 15:37:01 +00:00
import tldextract
2022-12-22 17:13:03 +00:00
import datetime
2022-12-25 03:28:57 +00:00
DEFAULT_TIME_FILTER = " all "
2023-06-23 18:19:28 +00:00
DEFAULT_THEME = " coffee "
2022-12-25 03:28:57 +00:00
DEFAULT_COLOR = " 805ad5 "
SPAM_URL_SIMILARITY_THRESHOLD = 0.1
2023-03-23 18:51:10 +00:00
SPAM_SIMILARITY_THRESHOLD = 0.5
2022-12-25 03:28:57 +00:00
SPAM_SIMILAR_COUNT_THRESHOLD = 10
2023-03-23 18:51:10 +00:00
2022-12-25 03:28:57 +00:00
COMMENT_SPAM_SIMILAR_THRESHOLD = 0.5
COMMENT_SPAM_COUNT_THRESHOLD = 10
2023-03-23 18:51:10 +00:00
2022-12-25 03:28:57 +00:00
DISABLE_DOWNVOTES = False
DESCRIPTION = " rdrama.net caters to drama in all forms such as: Real life, videos, photos, gossip, rumors, news sites, Reddit, and Beyond™. There isn ' t drama we won ' t touch, and we want it all! "
2023-02-24 02:54:31 +00:00
EMAIL = " rdrama@rdrama.net "
2022-12-25 03:28:57 +00:00
TELEGRAM_ID = " "
2022-11-15 09:19:08 +00:00
DEFAULT_CONFIG_VALUE = " blahblahblah "
2022-12-21 13:09:23 +00:00
SITE = environ . get ( " SITE " ) . strip ( )
SITE_NAME = environ . get ( " SITE_NAME " ) . strip ( )
SECRET_KEY = environ . get ( " SECRET_KEY " ) . strip ( )
PROXY_URL = environ . get ( " PROXY_URL " ) . strip ( )
LOG_DIRECTORY = environ . get ( " LOG_DIRECTORY " )
SETTINGS_FILENAME = environ . get ( " SETTINGS_FILENAME " )
GIPHY_KEY = environ . get ( " GIPHY_KEY " ) . strip ( )
TURNSTILE_SITEKEY = environ . get ( " TURNSTILE_SITEKEY " ) . strip ( )
TURNSTILE_SECRET = environ . get ( " TURNSTILE_SECRET " ) . strip ( )
YOUTUBE_KEY = environ . get ( " YOUTUBE_KEY " ) . strip ( )
VAPID_PUBLIC_KEY = environ . get ( " VAPID_PUBLIC_KEY " ) . strip ( )
VAPID_PRIVATE_KEY = environ . get ( " VAPID_PRIVATE_KEY " ) . strip ( )
2023-02-01 19:49:39 +00:00
DONATE_SERVICE = environ . get ( " DONATE_SERVICE " ) . strip ( )
DONATE_LINK = environ . get ( " DONATE_LINK " ) . strip ( )
2022-12-21 13:09:23 +00:00
CF_KEY = environ . get ( " CF_KEY " ) . strip ( )
CF_ZONE = environ . get ( " CF_ZONE " ) . strip ( )
2022-10-08 00:43:04 +00:00
blackjack = environ . get ( " BLACKJACK " , " " ) . strip ( )
FP = environ . get ( " FP " , " " ) . strip ( )
2023-01-23 12:40:44 +00:00
PROGSTACK_MUL = float ( environ . get ( " PROGSTACK_MUL " , 2.0 ) )
2023-01-26 12:41:04 +00:00
ENCOURAGED = environ . get ( " ENCOURAGED " , " " ) . strip ( ) . split ( )
ENCOURAGED2 = environ . get ( " ENCOURAGED2 " , " " ) . strip ( ) . split ( )
2022-10-08 00:43:04 +00:00
2022-11-29 20:20:26 +00:00
class Service ( Enum ) :
RDRAMA = auto ( )
CHAT = auto ( )
2022-10-08 00:43:04 +00:00
2023-02-26 01:42:39 +00:00
POST_RATELIMIT = ' 10/hour;20/day '
DEFAULT_RATELIMIT = " 30/minute;200/hour;1000/day "
CASINO_RATELIMIT = " 100/minute;2000/hour;12000/day "
2022-11-13 06:43:35 +00:00
2022-12-19 21:44:46 +00:00
PUSH_NOTIF_LIMIT = 1000
2022-11-13 11:11:55 +00:00
2022-11-21 00:41:45 +00:00
IS_LOCALHOST = SITE == " localhost " or SITE == " 127.0.0.1 " or SITE . startswith ( " 192.168. " ) or SITE . endswith ( " .local " )
2022-11-20 22:16:49 +00:00
2023-03-17 15:57:31 +00:00
if IS_LOCALHOST :
SITE_FULL = ' http:// ' + SITE
2023-05-01 16:58:51 +00:00
SITE_IMAGES = SITE
2023-05-01 17:10:01 +00:00
SITE_FULL_IMAGES = f ' http:// { SITE_IMAGES } '
2023-03-17 15:57:31 +00:00
else :
SITE_FULL = ' https:// ' + SITE
2023-05-01 16:58:51 +00:00
SITE_IMAGES = ' i. ' + SITE
2023-05-01 17:10:01 +00:00
SITE_FULL_IMAGES = f ' https:// { SITE_IMAGES } '
2022-06-18 15:37:01 +00:00
2023-03-24 12:54:09 +00:00
if SITE == ' staging.rdrama.net ' :
2023-05-16 00:00:46 +00:00
SITE_IMAGES = ' i.rdrama.net '
SITE_FULL_IMAGES = f ' https:// { SITE_IMAGES } '
2023-03-24 12:54:09 +00:00
2023-03-25 20:57:27 +00:00
LOGGED_IN_CACHE_KEY = " loggedin "
LOGGED_OUT_CACHE_KEY = " loggedout "
CHAT_ONLINE_CACHE_KEY = " online "
2022-11-27 16:59:36 +00:00
REDDIT_NOTIFS_CACHE_KEY = " reddit_notifications "
2022-06-18 15:37:01 +00:00
band-aid fix for frozen session issue on signup (#50)
through some reason or another, people are somehow getting cookies that aren't prepended with a dot.
this is a problem because both sessions at, as best as I can tell, mix so it tries to read from a different cookie than we write to. this essentially "freezes" the session in place. users are unable to login, logout, signup, toggle poor mode, toggle NSFW, etc.
~~this attempts to delete bad session cookies (i.e. cookies with a domain that don't start with a dot).~~
~~we don't do this on "dotless" domains (and by extension localhost) because browser support for setting cookies on FQDNs that only have one dot has tenuous support among browsers anyway).~~
~~this *may* log some people out, but... their days of being able to do stuff on the site were numbered anyway.~~
**edit: as amazing as this thought was, browsers just wipe the entire cookies completely and there's no way to specifically target dotless cookies. for an issue that affects a few users, better to just tell them to clear their cookies. if *this* doesn't work, delete service-worker.js and be done with the whole service worker crap. forever. permanently. this PR also includes some QOL improvements.**
Co-authored-by: justcool393 <justcool393@gmail.com>
Reviewed-on: https://fsdfsd.net/rDrama/rDrama/pulls/50
Co-authored-by: justcool393 <justcool393@noreply.fsdfsd.net>
Co-committed-by: justcool393 <justcool393@noreply.fsdfsd.net>
2022-12-06 22:07:12 +00:00
SESSION_LIFETIME = 60 * 60 * 24 * 365
2022-11-15 09:19:08 +00:00
CASINO_RELEASE_DAY = 1662825600
2023-06-23 13:06:45 +00:00
CHUD_REPLACEMENTS = {
2022-06-18 15:37:01 +00:00
' your ' : " you ' re " ,
2023-01-01 11:36:20 +00:00
' to ' : " too " ,
2022-06-18 15:37:01 +00:00
' Your ' : " You ' re " ,
' To ' : " Too " ,
' YOUR ' : " YOU ' RE " ,
' TO ' : " TOO " ,
2023-03-25 18:18:48 +00:00
' am ' : ' is ' ,
' Am ' : ' Is ' ,
' AM ' : ' IS ' ,
2022-06-18 15:37:01 +00:00
' everyone ' : ' everypony ' ,
' everybody ' : ' everypony ' ,
' Everyone ' : ' Everypony ' ,
' Everybody ' : ' Everypony ' ,
' EVERYONE ' : ' EVERYPONY ' ,
' EVERYBODY ' : ' EVERYPONY ' ,
}
2023-06-22 05:20:33 +00:00
PHRASE_CHANCE = 0.5
Add the "Misogynist" award to harass incels (#154)
Whazzup? This PR is the final solution to the incel problem. There's an old indian proverb that says: "never judge a man until you've walked two moons in his mocassins". In this case, it should be: "never judge a woman until you've walked 24 hrs in her high-heels".
The misogynist award is a comment-transforming award that "feminizes" comments. It does the following:
- makes text pink
- makes text lowercase
- removes "complicated" punctuation
- makes paragraphs into run-on sentences
- adds stereotypical girly remarks to the beginning or end of a paragraph.
For example:
INPUT
> What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo.
OUTPUT
> im literally screaming, what the fuck did you just fucking say about me, you little bitch? ill have you know i graduated top of my class in the navy seals, and ive been involved in numerous secret raids on al-quaeda, and i have over 300 confirmed kills, i am trained in gorilla warfare and im the top sniper in the entire us armed forces, you are nothing to me but just another target, i will wipe you the fuck out with precision the likes of which has never been seen before on this earth, mark my fucking words, you think you can get away with saying that shit to me over the internet? think again, fucker, as we speak i am contacting my secret network of spies across the usa and your ip is being traced right now so you better prepare for the storm, maggot, the storm that wipes out the pathetic little thing you call your life, youre fucking dead, kid, i can be anywhere, anytime, and i can kill you in over seven hundred ways, and thats just with my bare hands, not only am i extensively trained in unarmed combat, but i have access to the entire arsenal of the united states marine corps and i will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit, if only you could have known what unholy retribution your little clever comment was about to bring down upon you, maybe you would have held your fucking tongue, but you couldnt, you didnt, and now youre paying the price, you goddamn idiot, i will shit fury all over you and you will drown in it, youre fucking dead, kiddo
It also sets the user's pfp to a random white woman. Well, psuedorandom - it's based off of the user's id, so each user will only ever have one pfp assigned to them, which I think is nifty.
Finally, it changes the name of the user toa girly name.
There is one small problem with the PR, which is simply that I manually added a badge for testing purposes. If you like this PR, I will submit the badge throught the proper chanels and fix it.
![image](/attachments/641c7276-ffe4-4e69-b3e9-aec9f4f94191)
Co-authored-by: Chuck Sneed <sneed@formerlychucks.net>
Reviewed-on: https://fsdfsd.net/rDrama/rDrama/pulls/154
Co-authored-by: HeyMoon <heymoon@noreply.fsdfsd.net>
Co-committed-by: HeyMoon <heymoon@noreply.fsdfsd.net>
2023-06-21 12:36:07 +00:00
GIRL_PHRASES = [
" ok so $ " ,
2023-06-22 05:20:33 +00:00
" um $ " ,
" also like $ " ,
Add the "Misogynist" award to harass incels (#154)
Whazzup? This PR is the final solution to the incel problem. There's an old indian proverb that says: "never judge a man until you've walked two moons in his mocassins". In this case, it should be: "never judge a woman until you've walked 24 hrs in her high-heels".
The misogynist award is a comment-transforming award that "feminizes" comments. It does the following:
- makes text pink
- makes text lowercase
- removes "complicated" punctuation
- makes paragraphs into run-on sentences
- adds stereotypical girly remarks to the beginning or end of a paragraph.
For example:
INPUT
> What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo.
OUTPUT
> im literally screaming, what the fuck did you just fucking say about me, you little bitch? ill have you know i graduated top of my class in the navy seals, and ive been involved in numerous secret raids on al-quaeda, and i have over 300 confirmed kills, i am trained in gorilla warfare and im the top sniper in the entire us armed forces, you are nothing to me but just another target, i will wipe you the fuck out with precision the likes of which has never been seen before on this earth, mark my fucking words, you think you can get away with saying that shit to me over the internet? think again, fucker, as we speak i am contacting my secret network of spies across the usa and your ip is being traced right now so you better prepare for the storm, maggot, the storm that wipes out the pathetic little thing you call your life, youre fucking dead, kid, i can be anywhere, anytime, and i can kill you in over seven hundred ways, and thats just with my bare hands, not only am i extensively trained in unarmed combat, but i have access to the entire arsenal of the united states marine corps and i will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit, if only you could have known what unholy retribution your little clever comment was about to bring down upon you, maybe you would have held your fucking tongue, but you couldnt, you didnt, and now youre paying the price, you goddamn idiot, i will shit fury all over you and you will drown in it, youre fucking dead, kiddo
It also sets the user's pfp to a random white woman. Well, psuedorandom - it's based off of the user's id, so each user will only ever have one pfp assigned to them, which I think is nifty.
Finally, it changes the name of the user toa girly name.
There is one small problem with the PR, which is simply that I manually added a badge for testing purposes. If you like this PR, I will submit the badge throught the proper chanels and fix it.
![image](/attachments/641c7276-ffe4-4e69-b3e9-aec9f4f94191)
Co-authored-by: Chuck Sneed <sneed@formerlychucks.net>
Reviewed-on: https://fsdfsd.net/rDrama/rDrama/pulls/154
Co-authored-by: HeyMoon <heymoon@noreply.fsdfsd.net>
Co-committed-by: HeyMoon <heymoon@noreply.fsdfsd.net>
2023-06-21 12:36:07 +00:00
" literally, $ " ,
" i feel like $ " ,
" my heart is telling me $ " ,
" its almost as if $ " ,
" omg! $ " ,
" im literally screaming, $ " ,
" $ and thats the tea, sis " ,
" $ but go off i guess " ,
" $ but go off " ,
2023-06-22 05:20:33 +00:00
" $ but its whatever " ,
" $ and its EVERYTHING " ,
" $ *sips tea* " ,
" $ PERIODT "
Add the "Misogynist" award to harass incels (#154)
Whazzup? This PR is the final solution to the incel problem. There's an old indian proverb that says: "never judge a man until you've walked two moons in his mocassins". In this case, it should be: "never judge a woman until you've walked 24 hrs in her high-heels".
The misogynist award is a comment-transforming award that "feminizes" comments. It does the following:
- makes text pink
- makes text lowercase
- removes "complicated" punctuation
- makes paragraphs into run-on sentences
- adds stereotypical girly remarks to the beginning or end of a paragraph.
For example:
INPUT
> What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo.
OUTPUT
> im literally screaming, what the fuck did you just fucking say about me, you little bitch? ill have you know i graduated top of my class in the navy seals, and ive been involved in numerous secret raids on al-quaeda, and i have over 300 confirmed kills, i am trained in gorilla warfare and im the top sniper in the entire us armed forces, you are nothing to me but just another target, i will wipe you the fuck out with precision the likes of which has never been seen before on this earth, mark my fucking words, you think you can get away with saying that shit to me over the internet? think again, fucker, as we speak i am contacting my secret network of spies across the usa and your ip is being traced right now so you better prepare for the storm, maggot, the storm that wipes out the pathetic little thing you call your life, youre fucking dead, kid, i can be anywhere, anytime, and i can kill you in over seven hundred ways, and thats just with my bare hands, not only am i extensively trained in unarmed combat, but i have access to the entire arsenal of the united states marine corps and i will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit, if only you could have known what unholy retribution your little clever comment was about to bring down upon you, maybe you would have held your fucking tongue, but you couldnt, you didnt, and now youre paying the price, you goddamn idiot, i will shit fury all over you and you will drown in it, youre fucking dead, kiddo
It also sets the user's pfp to a random white woman. Well, psuedorandom - it's based off of the user's id, so each user will only ever have one pfp assigned to them, which I think is nifty.
Finally, it changes the name of the user toa girly name.
There is one small problem with the PR, which is simply that I manually added a badge for testing purposes. If you like this PR, I will submit the badge throught the proper chanels and fix it.
![image](/attachments/641c7276-ffe4-4e69-b3e9-aec9f4f94191)
Co-authored-by: Chuck Sneed <sneed@formerlychucks.net>
Reviewed-on: https://fsdfsd.net/rDrama/rDrama/pulls/154
Co-authored-by: HeyMoon <heymoon@noreply.fsdfsd.net>
Co-committed-by: HeyMoon <heymoon@noreply.fsdfsd.net>
2023-06-21 12:36:07 +00:00
]
2022-09-02 17:42:06 +00:00
SLURS = {
2023-03-25 15:20:07 +00:00
" (?<! \\ bs)nigger " : " BIPOC " ,
2022-11-26 01:19:22 +00:00
" negroid " : " BIPOC " ,
2023-02-07 00:48:04 +00:00
" coon " : " BIPOC " ,
" coons " : " BIPOCs " ,
2022-11-07 06:08:17 +00:00
" niglet " : ' BIPOClet ' ,
2022-12-26 16:59:18 +00:00
" negress " : " BIPOCette " ,
2022-09-02 17:42:06 +00:00
" faggot " : " cute twink " ,
2023-06-08 21:39:54 +00:00
" fag " : " cute twink " ,
2023-02-10 09:38:42 +00:00
" spic " : " hard-working American " ,
2023-02-10 09:39:37 +00:00
" spics " : " hard-working Americans " ,
2022-09-14 11:19:47 +00:00
" trannie " : ' <img loading= " lazy " data-bs-toggle= " tooltip " alt= " :marseytrain: " title= " :marseytrain: " src= " /e/marseytrain.webp " > ' ,
" tranny " : ' <img loading= " lazy " data-bs-toggle= " tooltip " alt= " :marseytrain: " title= " :marseytrain: " src= " /e/marseytrain.webp " > ' ,
" troon " : ' <img loading= " lazy " data-bs-toggle= " tooltip " alt= " :marseytrain: " title= " :marseytrain: " src= " /e/marseytrain.webp " > ' ,
2022-12-26 16:58:35 +00:00
" tranner " : ' <img loading= " lazy " data-bs-toggle= " tooltip " alt= " :marseytrain: " title= " :marseytrain: " src= " /e/marseytrain.webp " > ' ,
2022-09-02 17:42:06 +00:00
" kike " : " jewish chad " ,
2023-02-17 17:23:05 +00:00
" heeb " : " jewish chad " ,
2022-09-02 17:42:06 +00:00
" daisy ' s destruction " : " Cars 2 " ,
" daisys destruction " : " Cars 2 " ,
" daisy destruction " : " Cars 2 " ,
2023-01-29 08:24:31 +00:00
" pajeet " : " sexy Indian dude " ,
2023-02-10 04:37:23 +00:00
" hunter2 " : " ******* " ,
2022-09-02 17:42:06 +00:00
}
2022-12-24 23:12:05 +00:00
patron = " Patron "
2022-12-25 03:09:24 +00:00
2022-12-25 03:12:35 +00:00
REDDIT_NOTIFS_SITE = set ( )
REDDIT_NOTIFS_USERS = { }
if len ( SITE_NAME ) > 5 :
REDDIT_NOTIFS_SITE . add ( SITE_NAME . lower ( ) )
if not IS_LOCALHOST :
REDDIT_NOTIFS_SITE . add ( SITE )
2023-03-21 11:21:07 +00:00
TAGLINES = ( )
2022-06-18 15:37:01 +00:00
if SITE_NAME == ' rDrama ' :
2023-06-23 18:24:36 +00:00
DEFAULT_THEME = " midnight "
2023-06-07 03:44:14 +00:00
DEFAULT_COLOR = " ff459a "
2022-12-25 03:09:24 +00:00
2022-12-24 23:12:05 +00:00
patron = " Paypig "
TAGLINES = (
2023-03-22 16:07:21 +00:00
" largest online gay club " ,
2023-03-21 15:22:10 +00:00
" largest online furfest " ,
2023-03-22 16:07:21 +00:00
" largest cat pics site " ,
2023-03-21 15:22:10 +00:00
" largest basket-weaving forum " ,
" largest autism support group " ,
" largest aztec heritage forum " ,
2023-03-22 16:07:21 +00:00
" official George Soros fanclub " ,
2023-03-21 11:21:07 +00:00
" CCP ' s official newspaper " ,
2023-03-31 21:21:50 +00:00
" nintendo gamers only " ,
" donkey kong country " ,
2022-12-24 23:12:05 +00:00
)
2022-09-02 17:42:06 +00:00
RDRAMA_SLURS = {
2022-06-18 15:37:01 +00:00
" retarded " : " r-slurred " ,
" retard " : " r-slur " ,
2022-12-09 06:01:16 +00:00
" pedophile " : " p-dophile " ,
2022-11-12 09:39:05 +00:00
" kill youself " : " keep yourself safe " ,
2022-06-18 15:37:01 +00:00
" kill yourself " : " keep yourself safe " ,
2022-11-02 19:33:31 +00:00
" kill yourselves " : " keep yourselves safe " ,
2022-11-03 23:57:35 +00:00
" steve akins " : " Dr. Penelope Verity Oaken " ,
" steve joel akins " : " Dr. Penelope Verity Oaken " ,
" steven joel akins " : " Dr. Penelope Verity Oaken " ,
2022-06-18 15:37:01 +00:00
" latinos " : " latinx " ,
" latino " : " latinx " ,
" latinas " : " latinx " ,
" latina " : " latinx " ,
" hispanics " : " latinx " ,
" hispanic " : " latinx " ,
" i hate marsey " : " i love marsey " ,
" sodomite " : " total dreamboat " ,
" renter " : " rentoid " ,
" autistic " : " neurodivergent " ,
" i hate carp " : " i love Carp " ,
2022-10-17 17:18:51 +00:00
" gamer " : " g*mer " ,
" journalist " : " journ*list " ,
" journalism " : " journ*lism " ,
2022-12-12 07:51:21 +00:00
" elon musk " : " Rocket Daddy " ,
2022-06-18 15:37:01 +00:00
" fake and gay " : " fake and straight " ,
" rapist " : " male feminist " ,
2022-12-09 06:01:16 +00:00
" pedo " : " p-do " ,
2022-10-01 09:56:31 +00:00
" kys " : " keep yourself safe " ,
" kys " : " keep yourself safe " ,
2023-02-06 03:34:53 +00:00
" republican " : ' rethuglican ' ,
2022-11-08 04:26:35 +00:00
" america " : ' ameriKKKa ' ,
2022-11-25 21:01:35 +00:00
" it ' s almost as if " : " I ' m a retard but " ,
2023-01-20 07:20:06 +00:00
" it ' s almost like " : " I ' m a retard but " ,
2022-11-26 05:06:52 +00:00
" my brother in christ " : " my brother in Allah " ,
2022-12-04 14:44:59 +00:00
" kyle " : " Kylie " ,
2023-01-20 05:23:19 +00:00
" cool (?!it) " : " fetch " ,
2023-01-03 11:29:05 +00:00
" krayon " : " krayon (sister toucher) " ,
" discord " : " groomercord " ,
2023-01-23 06:22:01 +00:00
" allah(?! \ () " : " Allah (ﷻ) " ,
2023-03-16 10:03:24 +00:00
" my wife(?! \ () " : " my wife (male) " ,
2023-03-05 19:58:20 +00:00
" (?<!cow) tools " : " cow tools " ,
2023-05-16 00:17:22 +00:00
" explain " : " mansplain " ,
2023-06-07 19:55:45 +00:00
' nigga ' : ' neighbor ' ,
2022-06-18 15:37:01 +00:00
}
2022-09-02 17:42:06 +00:00
SLURS . update ( RDRAMA_SLURS )
2022-06-18 15:37:01 +00:00
2022-12-24 23:12:05 +00:00
BOOSTED_SITES = {
#youtube-like
' bitchute.com ' ,
2023-05-12 15:32:27 +00:00
' goyimtv.com ' ,
2022-12-24 23:12:05 +00:00
' odysee.com ' ,
#4chan-like
' archive.4plebs.org ' ,
2023-06-14 17:53:57 +00:00
' archived.moe ' ,
2022-12-24 23:12:05 +00:00
' lolcow.farm ' ,
' 8kun.top ' ,
' soyjak.party ' ,
' crystal.cafe ' ,
2023-06-14 17:53:57 +00:00
' desuarchive.org ' ,
2023-06-08 02:02:45 +00:00
#+All sites with the word "chan" in the domain
2022-12-24 23:12:05 +00:00
2023-03-21 12:26:59 +00:00
#twitter-like
' gab.com ' ,
' gettr.com ' ,
' parler.com ' ,
' truthsocial.com ' ,
' blacktwitterapp.com ' ,
' rdrama.cc ' ,
' marsey.club ' ,
' kiwifarms.cc ' ,
' freespeechextremist.com '
' mstdn.social ' ,
' mastodon.social ' ,
' mastodon.online ' ,
' poa.st ' ,
' shitposter.club ' ,
' sneed.social ' ,
' seal.cafe ' ,
' trp.red ' ,
2022-12-24 23:12:05 +00:00
#forums
' kiwifarms.net ' ,
' onionfarms.com ' ,
' tattle.life ' ,
' stormfront.org ' ,
' bluelight.org ' ,
' thecoli.com ' ,
' nairaland.com ' ,
' resetera.com ' ,
' steamcommunity.com ' ,
' lipstickalley.com ' ,
' tigerdroppings.com ' ,
' groups.google.com ' ,
' bungie.net ' ,
2022-12-30 03:35:15 +00:00
' gamefaqs.gamespot.com ' ,
2023-01-20 05:09:45 +00:00
' thefemaledatingstrategy.com ' ,
2023-01-20 07:17:33 +00:00
' econjobrumors.com ' ,
2023-01-24 10:10:17 +00:00
' incels.is ' ,
' looksmax.org ' ,
2023-01-23 06:24:52 +00:00
' sanctioned-suicide.org ' ,
2023-02-07 07:21:50 +00:00
' ar15.com ' ,
2023-02-10 05:50:28 +00:00
' neogaf.com ' ,
2023-02-28 19:23:45 +00:00
' thebore.com ' ,
2023-03-15 02:44:21 +00:00
' itjustbugsme.com ' ,
2023-03-19 08:30:27 +00:00
' breached.vc ' ,
2023-03-21 12:26:59 +00:00
' community.myfitnesspal.com ' ,
2023-03-25 15:13:23 +00:00
' mumsnet.com ' ,
2023-06-07 20:22:52 +00:00
' voy.com ' ,
' texags.com ' ,
2023-06-08 02:02:45 +00:00
#+All sites with the word "forum" in the domain
2022-12-24 23:12:05 +00:00
2023-02-02 17:46:10 +00:00
#nested-comments
2023-02-08 07:47:29 +00:00
SITE ,
2022-12-24 23:12:05 +00:00
' news.ycombinator.com ' ,
' scored.co ' ,
' scrd.app ' ,
' steemit.com ' ,
' ovarit.com ' ,
' themotte.org ' ,
' hexbear.net ' ,
' cumtown.org ' ,
' hive.blog ' ,
' poal.co ' ,
' saidit.net ' ,
' lobste.rs ' ,
' retalk.com ' ,
' talk.lol ' ,
' lemmy.ml ' ,
' lemmygrad.ml ' ,
' raddle.me ' ,
' stacker.news ' ,
' tildes.net ' ,
' syzitus.com ' ,
' phuks.co ' ,
' arete.network ' ,
' pcmemes.net ' ,
' discussions.app ' ,
' dojo.press ' ,
' livefilter.com ' ,
2023-02-02 17:46:10 +00:00
' lesswrong.com ' ,
2023-03-04 15:56:12 +00:00
' forum.porpl.net ' ,
2023-03-19 17:56:27 +00:00
' ifunny.co ' ,
2023-05-12 16:20:36 +00:00
' slashdot.org ' ,
2023-06-08 02:02:45 +00:00
#+All sites with .win TLD
2022-12-24 23:12:05 +00:00
#misc
2023-03-31 21:15:15 +00:00
' cinchnews.com ' ,
2022-12-24 23:12:05 +00:00
' quora.com ' ,
' givesendgo.com ' ,
' groups.google.com ' ,
2023-03-31 21:15:15 +00:00
' usenetarchives.com ' ,
2022-12-24 23:12:05 +00:00
' t.me ' ,
' web.telegram.org ' ,
' instagram.com ' ,
' facebook.com ' ,
' twitch.tv ' ,
' tiktok.com ' ,
' vm.tiktok.com ' ,
' github.com ' ,
' breitbart.com ' ,
' teamblind.com ' ,
' encyclopediadramatica.online ' ,
' datalounge.com ' ,
' metafilter.com ' ,
' sqwok.im ' ,
2023-01-20 05:09:45 +00:00
' thelayoff.com ' ,
2023-02-17 17:50:29 +00:00
' stackoverflow.com ' ,
' serverfault.com ' ,
' superuser.com ' ,
2023-02-26 08:02:26 +00:00
' goodreads.com ' ,
2023-03-19 16:18:43 +00:00
' 9gag.com ' ,
2023-04-29 13:35:53 +00:00
' balkansirl.net ' ,
2022-12-24 23:12:05 +00:00
}
2022-12-27 01:31:21 +00:00
BOOSTED_HOLES = {
' furry ' ,
' femboy ' ,
' anime ' ,
' gaybros ' ,
' againsthateholes ' ,
2023-02-25 17:54:30 +00:00
' countryclub ' ,
2022-12-27 01:31:21 +00:00
' changelog ' ,
' programming ' ,
2023-01-03 11:27:43 +00:00
' slackernews ' ,
2023-03-01 19:15:46 +00:00
' chudrama ' ,
2023-03-13 06:20:18 +00:00
' wallstreetbets ' ,
' lit ' ,
2023-03-13 15:26:46 +00:00
' vidya ' ,
' jihad ' ,
' museumofrdrama ' ,
' space ' ,
' femaledatingstrategy ' ,
2022-12-27 01:31:21 +00:00
}
2022-12-25 03:12:35 +00:00
REDDIT_NOTIFS_SITE . add ( ' marsey ' )
REDDIT_NOTIFS_SITE . add ( ' " r/drama " ' )
REDDIT_NOTIFS_SITE . add ( ' justice4darrell ' )
REDDIT_NOTIFS_SITE . add ( ' cringetopia.org ' )
2022-12-24 23:12:05 +00:00
elif SITE_NAME == ' WPD ' :
2022-12-25 03:12:35 +00:00
REDDIT_NOTIFS_SITE . update ( { ' watchpeopledie ' , ' makemycoffin ' } )
2022-12-24 23:12:05 +00:00
2023-01-23 10:18:05 +00:00
SLURS_FOR_REPLACING = { }
for k , val in SLURS . items ( ) :
2023-03-05 19:58:20 +00:00
newkey = k . split ( ' (?! ' ) [ 0 ]
if ' ) ' in newkey :
newkey = newkey . split ( ' ) ' ) [ 1 ]
SLURS_FOR_REPLACING [ newkey ] = val
2023-01-23 10:18:05 +00:00
2022-11-07 07:11:46 +00:00
PROFANITIES = {
' motherfucker ' : ' motherlover ' ,
2022-11-19 12:49:10 +00:00
' fuck ' : ' frick ' ,
' ass ' : ' butt ' ,
2022-11-07 07:11:46 +00:00
' shitting ' : ' pooping ' ,
' damn ' : ' darn ' ,
2023-01-28 10:53:46 +00:00
' bitch ' : ' b-word ' ,
2022-11-07 07:11:46 +00:00
' toilet ' : ' potty ' ,
' asshole ' : ' butthole ' ,
' rape ' : ' r*pe ' ,
' hell ' : ' heck ' ,
' sex ' : ' intercourse ' ,
' cum ' : ' c*m ' ,
' orgasm ' : ' sexual climax ' ,
' dick ' : ' peepee ' ,
2023-04-23 10:18:16 +00:00
' cock ' : ' peepee ' ,
' cocks ' : ' peepees ' ,
2022-11-07 07:11:46 +00:00
' penis ' : ' peepee ' ,
' pussy ' : ' girl peepee ' ,
2023-02-02 19:00:26 +00:00
' pussies ' : ' girl peepees ' ,
2023-02-07 06:28:03 +00:00
' vagina ' : ' girl peepee ' ,
' vaginas ' : ' girl peepees ' ,
2023-01-28 10:53:46 +00:00
' cunt ' : ' girl peepee ' ,
2022-11-22 21:37:35 +00:00
' twat ' : ' girl peepee ' ,
2023-03-19 11:53:50 +00:00
' lmao ' : ' lmbo ' ,
2023-04-23 10:18:16 +00:00
' peacock ' : ' peapeepee ' ,
2022-11-07 07:11:46 +00:00
}
2022-11-03 22:59:18 +00:00
slur_single_words = " | " . join ( [ slur . lower ( ) for slur in SLURS . keys ( ) ] )
profanity_single_words = " | " . join ( [ profanity . lower ( ) for profanity in PROFANITIES . keys ( ) ] )
2022-06-18 15:37:01 +00:00
2023-05-09 20:17:46 +00:00
LONGPOST_REPLIES = ( ' Wow, you must be a JP fan. ' , ' This is one of the worst posts I have EVER seen. Delete it. ' , " No, don ' t reply like this, please do another wall of unhinged rant please. " , ' # 😴😴😴 ' , " Ma ' am we ' ve been over this before. You need to stop. " , " I ' ve known more coherent downies. " , " Your pulitzer ' s in the mail " , " That ' s great and all, but I asked for my burger without cheese. " , ' That degree finally paying off ' , " That ' s nice sweaty. Why don ' t you have a seat in the time out corner with Pizzashill until you calm down, then you can have your Capri Sun. " , " All them words won ' t bring your pa back. " , " You had a chance to not be completely worthless, but it looks like you threw it away. At least you ' re consistent. " , ' Some people are able to display their intelligence by going on at length on a subject and never actually saying anything. This ability is most common in trades such as politics, public relations, and law. You have impressed me by being able to best them all, while still coming off as an absolute idiot. ' , " You can type 10,000 characters and you decided that these were the one ' s that you wanted. " , ' Have you owned the libs yet? ' , " I don ' t know what you said, because I ' ve seen another human naked. " , ' Impressive. Normally people with such severe developmental disabilities struggle to write much more than a sentence or two. He really has exceded our expectations for the writing portion. Sadly the coherency of his writing, along with his abilities in the social skills and reading portions, are far behind his peers with similar disabilities. ' , " This is a really long way of saying you don ' t fuck. " , " Sorry ma ' am, looks like his delusions have gotten worse. We ' ll have to admit him. " , ' If only you could put that energy into your relationships ' , ' Posts like this is why I do Heroine. ' , ' still unemployed then? ' , ' K ' , ' look im gunna have 2 ask u 2 keep ur giant dumps in the toilet not in my replys 😷😷😷 ' , " Mommy is soooo proud of you, sweaty. Let ' s put this sperg out up on the fridge with all your other failures. " , " Good job bobby, here ' s a star " , " That was a mistake. You ' re about to find out the hard way why. " , ' You sat down and wrote all this shit. You could have done so many other things with your life. What happened to your life that made you decide writing novels of bullshit here was the best option? ' , " I don ' t have enough spoons to read this shit " , " All those words won ' t bring daddy back. " , ' OUT! ' , " Damn, you ' re really mad over this, but thanks for the effort you put into typing that all out! Sadly I won ' t read it all. " , " Jesse what the fuck are you talking about?? " , " ▼you ' re fucking bananas if you think I ' m reading all that, take my downvote and shut up idiot " , " Are you feeling okay bud? " , ' :#marseywoah: ' , ' At no point in your rambling, incoherent post were you even close to anything that could be considered a rational thought. Everyone on this site is now dumber for having read it. May God have mercy on your soul. ' , ' https://rdrama.net/videos/1671169024815045.mp4 ' , ' https://i.rdrama.net/images/16766675896248007.webp ' , ' https://i.rdrama.net/images/1683531328305875.webp ' )
2022-06-18 15:37:01 +00:00
2023-06-23 11:07:47 +00:00
CHUD_MSG = """ :marseypirate: : Avast, ye scurvy cur! Yer {type} be walkin ' the plank for forgettin ' to include ` {CHUD_PHRASE} `! We be helpin ' ye, right enough - we ' ll ne ' er let ye post or comment anythin ' that doesn ' t be expressin ' yer love an ' acceptance o ' minorities! Heave to an ' resubmit yer {type} with ` {CHUD_PHRASE} ` included, or it ' ll be the deep six for ye, savvy? This be an automated message; if ye need help, ye can message us [ ' ere](/contact). Arrr! """
2022-06-18 15:37:01 +00:00
2022-10-25 22:48:10 +00:00
PIN_AWARD_TEXT = " (pin award) "
2022-06-18 15:37:01 +00:00
2022-12-07 17:53:29 +00:00
THEMES = [ " 4chan " , " classic " , " classic_dark " , " coffee " , " dark " , " dramblr " , " light " , " midnight " , " tron " , " win98 " ]
2022-11-27 16:15:15 +00:00
BACKGROUND_CATEGORIES = [ " glitter " , " anime " , " fantasy " , " solarpunk " , " pixelart " ]
2023-05-07 19:09:23 +00:00
COMMENT_SORTS = [ " hot " , " new " , " old " , " top " , " bottom " , " controversial " , " saves " ]
2023-05-07 18:57:07 +00:00
SORTS = COMMENT_SORTS + [ " bump " , " comments " , " views " , " subscriptions " , " saves " ]
2022-11-06 09:44:58 +00:00
TIME_FILTERS = [ " hour " , " day " , " week " , " month " , " year " , " all " ]
2022-12-01 12:28:00 +00:00
PAGE_SIZES = ( 10 , 25 , 50 , 100 )
2022-11-06 09:44:58 +00:00
2022-12-11 23:44:34 +00:00
################################################################################
### COLUMN INFO
################################################################################
SUB_NAME_COLUMN_LENGTH = 25
SUB_SIDEBAR_COLUMN_LENGTH = 10000
SUB_SIDEBAR_HTML_COLUMN_LENGTH = 20000
SUB_SIDEBAR_URL_COLUMN_LENGTH = 60
SUB_BANNER_URL_COLUMN_LENGTH = 60
SUB_CSS_COLUMN_LENGTH = 6000
SUB_MARSEY_URL_LENGTH = 60
2022-06-18 15:37:01 +00:00
################################################################################
### SITE SPECIFIC CONSTANTS
################################################################################
2022-07-07 03:45:33 +00:00
PERMS = { # Minimum admin_level to perform action.
2023-01-25 07:15:14 +00:00
' HOLE_CREATE ' : 0 ,
' USER_BLOCKS_VISIBLE ' : 0 ,
' USER_FOLLOWS_VISIBLE ' : 0 ,
' USER_VOTERS_VISIBLE ' : 0 ,
2023-03-18 14:39:26 +00:00
' VIEW_PENDING_SUBMITTED_EMOJIS ' : 0 ,
2023-01-29 08:28:29 +00:00
2023-01-25 07:15:14 +00:00
' POST_COMMENT_DISTINGUISH ' : 1 ,
' POST_BYPASS_REPOST_CHECKING ' : 1 ,
' POST_IN_GHOST_THREADS ' : 1 ,
2023-03-19 08:08:44 +00:00
' VIEW_RESTRICTED_HOLES ' : 1 ,
2023-01-25 07:15:14 +00:00
' SITE_BYPASS_READ_ONLY_MODE ' : 1 ,
' SITE_BYPASS_UNDER_SIEGE_MODE ' : 1 ,
' SITE_WARN_ON_INVALID_AUTH ' : 1 ,
' NOTIFICATIONS_REDDIT ' : 1 ,
' NOTIFICATIONS_SPECIFIC_WPD_COMMENTS ' : 1 ,
' MESSAGE_BLOCKED_USERS ' : 1 ,
2023-01-29 08:28:29 +00:00
' ADMIN_MOP_VISIBLE ' : 1 ,
' ADMIN_HOME_VISIBLE ' : 1 ,
2023-06-23 16:49:23 +00:00
' REPORTS_REMOVE ' : 1 ,
2023-01-29 08:28:29 +00:00
' POST_COMMENT_MODERATION ' : 1 ,
' USER_BAN ' : 1 ,
' USER_SHADOWBAN ' : 1 ,
2023-06-23 11:07:47 +00:00
' USER_CHUD ' : 1 ,
2023-01-29 08:28:29 +00:00
' USER_MODERATION_TOOLS_VISIBLE ' : 1 ,
' VIEW_MODMAIL ' : 1 ,
' NOTIFICATIONS_MODMAIL ' : 1 ,
' VIEW_PRIVATE_PROFILES ' : 1 ,
' VIEW_ALTS ' : 1 ,
' VIEW_ACTIVE_USERS ' : 1 ,
' VIEW_ALT_VOTES ' : 1 ,
' VIEW_LAST_ACTIVE ' : 1 ,
' VIEW_VOTE_BUTTONS_ON_USER_PAGE ' : 1 ,
' NOTIFICATIONS_HOLE_INACTIVITY_DELETION ' : 1 ,
' NOTIFICATIONS_HOLE_CREATION ' : 1 ,
' NOTIFICATIONS_MODERATOR_ACTIONS ' : 1 ,
2023-03-01 14:39:47 +00:00
' POST_TO_POLL_THREAD ' : 2 ,
2023-04-29 16:31:51 +00:00
' POST_TO_CHANGELOG_THREAD ' : 2 ,
2023-01-25 07:15:14 +00:00
' USER_BADGES ' : 2 ,
' USER_LINK ' : 2 ,
' USER_TITLE_CHANGE ' : 2 ,
' LOTTERY_VIEW_PARTICIPANTS ' : 2 ,
2023-03-01 14:39:30 +00:00
' POST_COMMENT_INFINITE_PINGS ' : 2 ,
2023-03-06 20:22:15 +00:00
' IGNORE_1WEEk_EDITING_LIMIT ' : 2 ,
2023-01-29 08:28:29 +00:00
2023-01-25 07:15:14 +00:00
' ADMIN_REMOVE ' : 3 ,
' ADMIN_ACTIONS_REVERT ' : 3 ,
' DOMAINS_BAN ' : 3 ,
' EDIT_RULES ' : 3 ,
' POST_BETS ' : 3 ,
' POST_BETS_DISTRIBUTE ' : 3 ,
' VIEW_PENDING_SUBMITTED_HATS ' : 3 ,
' LOTTERY_ADMIN ' : 3 ,
' SITE_SETTINGS ' : 3 ,
' SITE_CACHE_PURGE_CDN ' : 3 ,
' NOTIFICATIONS_FROM_SHADOWBANNED_USERS ' : 3 ,
2023-01-23 09:58:38 +00:00
' APPS_MODERATION ' : 3 ,
2023-04-05 12:26:42 +00:00
' USE_ADMIGGER_THREADS ' : 3 ,
2023-01-29 08:28:29 +00:00
2023-03-23 14:13:42 +00:00
' ADMIN_ADD ' : 4 ,
2023-01-25 07:15:14 +00:00
' MODERATE_PENDING_SUBMITTED_ASSETS ' : 4 ,
2023-02-10 04:23:22 +00:00
' UPDATE_ASSETS ' : 4 ,
2023-03-09 20:47:14 +00:00
' PROGSTACK ' : 4 ,
' UNDO_AWARD_PINS ' : 4 ,
2023-03-09 20:48:54 +00:00
' DELETE_MEDIA ' : 4 ,
2023-01-29 08:28:29 +00:00
2023-03-09 20:48:54 +00:00
' USER_BLACKLIST ' : 5 ,
' POST_EDITING ' : 5 ,
' VIEW_PATRONS ' : 5 ,
' BLACKJACK_NOTIFICATIONS ' : 5 ,
' IGNORE_BADGE_BLACKLIST ' : 5 ,
2023-05-12 15:27:46 +00:00
' ENABLE_DM_MEDIA ' : 5 ,
2023-03-09 20:48:54 +00:00
' SEE_GHOST_VOTES ' : 5 ,
2023-03-25 21:35:13 +00:00
' SITE_OFFLINE_MODE ' : 5 ,
2023-04-25 05:35:17 +00:00
' MODS_EVERY_HOLE ' : 5 ,
' MODS_EVERY_GROUP ' : 5 ,
' IGNORE_AWARD_IMMUNITY ' : 5 ,
2023-06-02 13:48:58 +00:00
' IGNORE_DOMAIN_BAN ' : 5 ,
2022-07-07 03:45:33 +00:00
}
2022-07-18 05:10:01 +00:00
FEATURES = {
2022-11-27 16:59:36 +00:00
' MARSEYS ' : True ,
2022-11-21 23:08:29 +00:00
' MARSEYBUX ' : True ,
2022-07-19 23:59:39 +00:00
' AWARDS ' : True ,
2022-07-18 06:43:20 +00:00
' CHAT ' : True ,
2022-07-18 05:10:01 +00:00
' PINS ' : True ,
2022-07-18 06:43:20 +00:00
' PRONOUNS ' : False ,
2022-07-19 23:59:39 +00:00
' BADGES ' : True ,
2022-09-03 03:11:17 +00:00
' HATS ' : True ,
2022-07-18 06:43:20 +00:00
' HOUSES ' : False ,
2022-07-18 07:47:17 +00:00
' GAMBLING ' : True ,
2022-07-20 01:16:59 +00:00
' USERS_PROFILE_BANNER ' : True ,
' USERS_PROFILE_BODYTEXT ' : True ,
' USERS_PROFILE_SONG ' : True ,
2022-11-06 10:27:44 +00:00
' USERS_PERMANENT_WORD_FILTERS ' : False ,
2022-07-20 01:16:59 +00:00
' USERS_SUICIDE ' : True ,
2022-07-20 00:07:38 +00:00
' MARKUP_COMMANDS ' : True ,
2022-08-04 04:07:17 +00:00
' REPOST_DETECTION ' : True ,
2022-08-25 20:34:05 +00:00
' PATRON_ICONS ' : False ,
2022-11-15 09:19:08 +00:00
' ASSET_SUBMISSIONS ' : False ,
2023-02-01 18:52:34 +00:00
' NSFW_MARKING ' : True ,
2023-02-24 06:31:06 +00:00
' PING_GROUPS ' : True ,
2023-03-16 04:07:39 +00:00
' BOTS ' : True ,
2022-07-18 05:10:01 +00:00
}
2022-10-11 15:26:20 +00:00
WERKZEUG_ERROR_DESCRIPTIONS = {
400 : " The browser (or proxy) sent a request that this server could not understand. " ,
401 : " The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn ' t understand how to supply the credentials required. " ,
2023-01-25 11:02:40 +00:00
403 : " You don ' t have the permission to access the requested resource. It is either read-protected or not readable by the server. " ,
2022-10-11 15:26:20 +00:00
404 : " The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. " ,
405 : " The method is not allowed for the requested URL. " ,
406 : " The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request. " ,
409 : " A conflict happened while processing the request. The resource might have been modified while the request was being processed. " ,
2022-11-16 05:32:57 +00:00
410 : " The requested URL is no longer available on this server and there is no forwarding address. If you followed a link from a foreign page, please contact the author of this page. " ,
2022-10-11 15:26:20 +00:00
413 : " The data value transmitted exceeds the capacity limit. " ,
414 : " The length of the requested URL exceeds the capacity limit for this server. The request cannot be processed. " ,
415 : " The server does not support the media type transmitted in the request. " ,
417 : " The server could not meet the requirements of the Expect header " ,
418 : " This server is a teapot, not a coffee machine " ,
429 : " This user has exceeded an allotted request count. Try again later. " ,
500 : " The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. " ,
}
ERROR_TITLES = {
2022-11-05 23:13:59 +00:00
400 : " Naughty Request " ,
401 : " 🚫 Unauthorized 🚫 " ,
403 : " Forbidden🙅 ♀️ " ,
404 : " Not Found - where did it go? " ,
405 : " Method Not Allowed, BAD. " ,
406 : " Too Many Pings fuck off " ,
409 : " Cumflict " ,
2022-11-16 05:32:57 +00:00
410 : " Gone... and Forgotten " ,
2022-11-05 23:13:59 +00:00
413 : " Gayload Too Large " ,
415 : " Weird Media Type " ,
2022-10-12 09:00:18 +00:00
418 : " I ' m a teapot " ,
2022-10-11 15:26:20 +00:00
429 : " Too Many Requests " ,
2022-11-05 23:13:59 +00:00
500 : " Balls-Deep Server Error " ,
2022-10-11 15:26:20 +00:00
}
ERROR_MSGS = {
400 : " That request was bad and you should feel bad. " ,
2022-11-05 23:13:59 +00:00
401 : " What you ' re trying to do requires an account. I think. The original error message said something about a castle and I hated that. If you see this error and you ' re logged into an account, something went pretty wrong somewhere. " ,
2022-10-11 15:26:20 +00:00
403 : " YOU AREN ' T WELCOME HERE GO AWAY " ,
404 : " Someone typed something wrong and it was probably you, please do better. " ,
2022-10-29 02:07:43 +00:00
405 : " idk how anyone gets this error but if you see this, remember to follow @carpathianflorist<br>the original error text here talked about internet gremlins and wtf " ,
2023-04-24 10:31:09 +00:00
406 : " Max ping limit is 5 for comments and 50 for posts " ,
2022-10-11 15:26:20 +00:00
409 : " There ' s a conflict between what you ' re trying to do and what you or someone else has done and because of that you can ' t do what you ' re trying to do. So maybe like... don ' t try and do that? Sorry not sorry " ,
2022-11-16 05:32:57 +00:00
410 : " You were too slow. The link FUCKING DIED. Request a new one and be more efficient. " ,
2022-11-05 23:13:59 +00:00
413 : " That ' s a heckin ' chonker of a file! Please make it smaller or maybe like upload it somewhere else idk<BR>jc wrote this one hi jc!<br>- carp " ,
2022-10-11 15:26:20 +00:00
415 : " Please upload only Image, Video, or Audio files! " ,
2022-10-12 09:00:18 +00:00
418 : " this really shouldn ' t happen now that we autoconvert webm files but if it does there ' s a cool teapot marsey so there ' s that " ,
2022-10-11 15:26:20 +00:00
429 : " go spam somewhere else nerd " ,
2022-11-05 23:13:59 +00:00
500 : " Hiiiii it ' s carp! I think this error means that there ' s a timeout error. And I think that means something took too long to load so it decided not to work at all. If you keep seeing this on the same page <I>but not other pages</I>, then something is probably wrong with that specific function. It may not be called a function, but that sounds right to me. Anyway, <s>ping me and I ' ll whine to someone smarter to fix it. Don ' t bother them.</s> <B>After a year and a half of infuriating pings, the new instructions are to quit whining and just wait until it works again oh my god shut UP.</B><BR><BR> Thanks ily <3 " ,
2022-10-11 15:26:20 +00:00
}
ERROR_MARSEYS = {
400 : " marseybrainlet " ,
401 : " marseydead " ,
403 : " marseytroll " ,
404 : " marseyconfused " ,
405 : " marseyretard " ,
406 : " marseyrage " ,
409 : " marseynoyou " ,
2022-11-16 05:32:57 +00:00
410 : " marseyrave " ,
2022-10-12 08:52:08 +00:00
413 : " marseychonker2 " ,
2022-10-11 15:26:20 +00:00
415 : " marseydetective " ,
418 : " marseytea " ,
429 : " marseyrentfree " ,
500 : " marseycarp3 " ,
}
2022-07-09 04:32:48 +00:00
EMOJI_SRCS = [ ' files/assets/emojis.json ' ]
2022-06-18 15:37:01 +00:00
PIN_LIMIT = 3
2022-10-05 08:35:35 +00:00
POST_TITLE_LENGTH_LIMIT = 500 # do not make larger than 500 without altering the table
POST_TITLE_HTML_LENGTH_LIMIT = 1500 # do not make larger than 1500 without altering the table
2023-02-28 19:36:14 +00:00
def POST_BODY_LENGTH_LIMIT ( v ) :
if v . patron : return 100000
2023-03-17 11:20:01 +00:00
return 50000
2023-02-28 19:36:14 +00:00
POST_BODY_HTML_LENGTH_LIMIT = 200000 # do not make larger than 200000 without altering the table
2022-10-09 07:20:28 +00:00
COMMENT_BODY_LENGTH_LIMIT = 10000 # do not make larger than 10000 characters without altering the table
2023-04-29 13:33:29 +00:00
COMMENT_BODY_HTML_LENGTH_LIMIT = 40000 # do not make larger than 20000 characters without altering the table
2022-12-10 18:30:15 +00:00
CSS_LENGTH_LIMIT = 10000 # do not make larger than 20000 characters without altering the table
2022-10-09 12:54:46 +00:00
COMMENT_MAX_DEPTH = 200
2022-10-09 07:20:28 +00:00
TRANSFER_MESSAGE_LENGTH_LIMIT = 200 # do not make larger than 10000 characters (comment limit) without altering the table
2022-10-14 10:26:48 +00:00
MIN_REPOST_CHECK_URL_LENGTH = 9 # also change the constant in checkRepost() of submit.js
2022-11-16 14:00:04 +00:00
CHAT_LENGTH_LIMIT = 1000
2022-12-11 23:44:34 +00:00
SUB_BANNER_LIMIT = 10
2023-03-03 04:19:52 +00:00
BIO_FRIENDS_ENEMIES_LENGTH_LIMIT = 5000 # do not make larger than 5000 characters without altering the table
BIO_FRIENDS_ENEMIES_HTML_LENGTH_LIMIT = 20000 # do not make larger than 20000 characters without altering the table
2022-11-05 02:16:08 +00:00
COSMETIC_AWARD_COIN_AWARD_PCT = 0.10
2022-12-11 23:44:34 +00:00
2022-11-26 20:20:30 +00:00
TRUESCORE_CHAT_MINIMUM = 0
TRUESCORE_GHOST_MINIMUM = 0
2023-05-03 14:55:23 +00:00
TRUESCORE_DONATE_MINIMUM = 1
2023-03-19 08:08:44 +00:00
TRUESCORE_RESTRICTED_HOLES_MINIMUM = 100
2022-10-05 08:35:35 +00:00
2022-06-20 20:25:03 +00:00
LOGGEDIN_ACTIVE_TIME = 15 * 60
2022-07-09 12:01:44 +00:00
PFP_DEFAULT_MARSEY = True
2023-06-23 11:37:22 +00:00
NEW_USER_AGE = 7 * 86400
2023-03-11 07:44:18 +00:00
NOTIFICATION_SPAM_AGE_THRESHOLD = 0
2023-02-19 13:26:48 +00:00
COMMENT_SPAM_LENGTH_THRESHOLD = 0
2022-11-30 19:25:32 +00:00
UNDER_SIEGE_AGE_THRESHOLD = 10 * 60
2022-07-09 10:09:33 +00:00
HOLE_NAME = ' hole '
HOLE_STYLE_FLAIR = False
HOLE_REQUIRED = False
HOLE_COST = 0
2023-02-24 06:31:06 +00:00
GROUP_COST = 10000
2022-07-09 10:09:33 +00:00
HOLE_INACTIVITY_DELETION = False
2022-06-18 15:37:01 +00:00
2022-12-10 14:00:03 +00:00
PRIVILEGED_USER_BOTS = ( )
2022-07-08 19:03:04 +00:00
AUTOJANNY_ID = 1
SNAPPY_ID = 2
LONGPOSTBOT_ID = 3
ZOZBOT_ID = 4
2022-06-18 15:37:01 +00:00
PIZZASHILL_ID = 0
2022-11-09 20:59:10 +00:00
IMPASSIONATA_ID = 0
2023-01-23 12:40:44 +00:00
PROGSTACK_ID = 4
2022-06-18 15:37:01 +00:00
CARP_ID = 0
2022-08-13 03:11:44 +00:00
AEVANN_ID = 0
2022-06-18 15:37:01 +00:00
SNAKES_ID = 0
2022-10-06 03:59:33 +00:00
JUSTCOOL_ID = 0
2022-06-18 15:37:01 +00:00
LAWLZ_ID = 0
2022-12-10 14:00:03 +00:00
TGTW_ID = 0
2022-12-19 20:54:45 +00:00
IDIO_ID = 0
2023-05-04 16:24:22 +00:00
SCHIZO_ID = 0
2023-01-29 16:29:17 +00:00
SNALLY_ID = 0
2023-05-06 12:18:26 +00:00
LNTERNETCUSTODIAN_ID = 0
2022-12-10 14:00:03 +00:00
2023-03-18 16:10:14 +00:00
IMMUNE_TO_AWARDS = { }
2022-11-17 22:50:06 +00:00
MODMAIL_ID = 2
2022-12-10 14:00:03 +00:00
GIFT_NOTIF_ID = 5
SIGNUP_FOLLOW_ID = 0
2022-06-18 15:37:01 +00:00
2022-06-22 18:01:00 +00:00
POLL_THREAD = 0
2023-04-25 05:15:10 +00:00
CHANGELOG_THREAD = 0
2023-04-27 16:39:29 +00:00
BUGFIXING_THREAD = 0
2022-12-11 16:24:50 +00:00
POLL_BET_COINS = 200
2023-04-23 13:52:39 +00:00
POLL_MAX_OPTIONS = 200
2022-06-18 15:37:01 +00:00
WELCOME_MSG = f " Welcome to { SITE_NAME } ! "
LOTTERY_TICKET_COST = 12
LOTTERY_SINK_RATE = 3
LOTTERY_DURATION = 60 * 60 * 24 * 7
2022-07-13 12:56:30 +00:00
SIDEBAR_THREAD = 0
BANNER_THREAD = 0
BADGE_THREAD = 0
SNAPPY_THREAD = 0
2022-10-10 06:37:42 +00:00
NOTIFICATION_THREAD = 1
2022-07-13 12:56:30 +00:00
2022-12-07 20:53:52 +00:00
MAX_IMAGE_SIZE_BANNER_RESIZED_MB = 1
2022-10-12 08:52:08 +00:00
MAX_IMAGE_AUDIO_SIZE_MB = 8
MAX_IMAGE_AUDIO_SIZE_MB_PATRON = 16
2023-06-07 03:09:09 +00:00
MAX_VIDEO_SIZE_MB = 32
2023-06-07 03:09:36 +00:00
MAX_VIDEO_SIZE_MB_PATRON = 100
2022-12-07 08:30:11 +00:00
MAX_IMAGE_CONVERSION_TIMEOUT = 30 # seconds
2022-10-12 06:27:17 +00:00
2022-11-26 02:03:53 +00:00
ANTISPAM_BYPASS_IDS = set ( )
2022-10-24 17:27:25 +00:00
2022-10-29 03:20:48 +00:00
PAGE_SIZE = 25
LEADERBOARD_LIMIT = PAGE_SIZE
2022-11-05 06:00:02 +00:00
HOUSE_JOIN_COST = 500
HOUSE_SWITCH_COST = 2000
2023-05-14 22:16:01 +00:00
TIER_TO_NAME = {
2023-06-08 03:45:06 +00:00
1 : " Beneficiary " ,
2023-05-03 15:29:31 +00:00
2 : " Paypig " ,
3 : " Renthog " ,
4 : " Landchad " ,
5 : " Terminally online turboautist " ,
6 : " Marsey ' s Sugar Daddy " ,
7 : " JIDF Bankroller " ,
8 : " Rich Bich " ,
2022-11-27 21:49:20 +00:00
}
2023-05-14 22:16:01 +00:00
TIER_TO_MONEY = {
2 : 5 ,
3 : 10 ,
4 : 20 ,
5 : 50 ,
6 : 100 ,
7 : 200 ,
8 : 500 ,
}
TIER_TO_MBUX = {
2 : 2500 ,
3 : 5000 ,
4 : 10000 ,
5 : 25000 ,
6 : 50000 ,
7 : 100000 ,
8 : 250000 ,
}
2023-01-22 08:04:49 +00:00
BADGE_BLACKLIST = { # only grantable by admins higher than PERMS['IGNORE_BADGE_BLACKLIST']
2022-11-30 21:55:48 +00:00
1 , 2 , 6 , 10 , 11 , 12 , # Alpha, Verified Email, Beta, Recruiter x3
16 , 17 , 143 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , # Marsey Artist x3 / Patron Tiers
2022-12-07 19:03:06 +00:00
94 , 95 , 96 , 97 , 98 , 109 , 67 , 68 , 83 , 84 , 87 , 90 , 179 , 185 , # Award Status except Y'all-seeing eye
2022-11-27 21:49:20 +00:00
137 , # Lottery Winner
2022-11-07 01:41:32 +00:00
}
2022-12-10 14:00:03 +00:00
NOTIFIED_USERS = { }
2022-11-11 13:52:18 +00:00
if SITE == ' rdrama.net ' :
2023-03-11 07:44:18 +00:00
NOTIFICATION_SPAM_AGE_THRESHOLD = 0.5 * 86400
2022-12-25 03:28:57 +00:00
TELEGRAM_ID = " rdramanet "
2022-12-25 03:09:24 +00:00
DEFAULT_TIME_FILTER = " day "
2022-07-22 01:18:20 +00:00
FEATURES [ ' PRONOUNS ' ] = True
FEATURES [ ' HOUSES ' ] = True
2022-11-06 10:27:44 +00:00
FEATURES [ ' USERS_PERMANENT_WORD_FILTERS ' ] = True
2022-11-15 09:19:08 +00:00
FEATURES [ ' ASSET_SUBMISSIONS ' ] = True
2022-07-22 01:18:20 +00:00
2022-07-13 12:56:30 +00:00
SIDEBAR_THREAD = 37696
BANNER_THREAD = 37697
BADGE_THREAD = 37833
SNAPPY_THREAD = 37749
2022-10-10 06:37:42 +00:00
NOTIFICATION_THREAD = 6489
2022-09-02 23:58:55 +00:00
2022-11-26 20:20:30 +00:00
TRUESCORE_CHAT_MINIMUM = 10
TRUESCORE_GHOST_MINIMUM = 10
2022-11-13 11:43:08 +00:00
2022-09-25 11:34:34 +00:00
HOLE_COST = 50000
2022-06-18 15:37:01 +00:00
HOLE_INACTIVITY_DELETION = True
2022-06-28 06:26:52 +00:00
2022-12-10 14:00:03 +00:00
PRIVILEGED_USER_BOTS = ( 12125 , 16049 )
2022-07-08 19:03:04 +00:00
AUTOJANNY_ID = 1046
2022-06-18 15:37:01 +00:00
SNAPPY_ID = 261
LONGPOSTBOT_ID = 1832
ZOZBOT_ID = 1833
PIZZASHILL_ID = 2424
2022-11-09 20:59:10 +00:00
IMPASSIONATA_ID = 5800
2023-01-23 12:40:44 +00:00
PROGSTACK_ID = 15531
2022-06-18 15:37:01 +00:00
CARP_ID = 995
AEVANN_ID = 1
SNAKES_ID = 10288
2022-10-06 03:59:33 +00:00
JUSTCOOL_ID = 4999
2022-06-18 15:37:01 +00:00
LAWLZ_ID = 3833
2022-12-10 14:00:03 +00:00
TGTW_ID = 2008
2022-12-19 20:54:45 +00:00
IDIO_ID = 30
2023-05-04 16:24:22 +00:00
SCHIZO_ID = 8494
2023-01-29 16:29:17 +00:00
SNALLY_ID = 3336
2023-05-06 12:18:26 +00:00
LNTERNETCUSTODIAN_ID = 8768
2022-12-10 14:00:03 +00:00
2023-03-18 16:10:14 +00:00
IMMUNE_TO_AWARDS = { PIZZASHILL_ID , CARP_ID }
2022-12-10 14:00:03 +00:00
NOTIFIED_USERS = {
' aevan ' : AEVANN_ID ,
' avean ' : AEVANN_ID ,
2023-04-25 11:54:59 +00:00
' capy ' : AEVANN_ID ,
2023-06-22 09:10:09 +00:00
' the rodent ' : AEVANN_ID ,
2022-12-10 14:00:03 +00:00
' carp ' : CARP_ID ,
' clit ' : CARP_ID ,
' snakes ' : SNAKES_ID ,
' sneks ' : SNAKES_ID ,
' snekky ' : SNAKES_ID ,
' snekchad ' : SNAKES_ID ,
' jc ' : JUSTCOOL_ID ,
' justcool ' : JUSTCOOL_ID ,
' lawlz ' : LAWLZ_ID ,
' transgirltradwife ' : TGTW_ID ,
' impassionata ' : IMPASSIONATA_ID ,
' pizzashill ' : PIZZASHILL_ID ,
2022-12-19 20:54:45 +00:00
' idio3 ' : IDIO_ID ,
' idio ' : IDIO_ID ,
' telegram ' : IDIO_ID ,
2023-05-04 16:24:22 +00:00
' schizo ' : SCHIZO_ID ,
' joan ' : 28 ,
' pewkie ' : 28 ,
2023-02-18 19:39:28 +00:00
' homocracy ' : 147 ,
2022-12-10 14:00:03 +00:00
' donger ' : 541 ,
' geese ' : 1710 ,
' soren ' : 2546 ,
' marseyismywaifu ' : 3377 ,
' mimw ' : 3377 ,
' heymoon ' : 3635 ,
' jollymoon ' : 3635 ,
' chiobu ' : 5214 ,
' mccox ' : 8239 ,
2023-02-18 23:00:40 +00:00
' august ' : 1830 ,
2023-02-20 18:03:09 +00:00
' marco ' : 152 ,
2023-06-11 17:35:36 +00:00
' klen ' : 2050 ,
2022-12-10 14:00:03 +00:00
}
2022-06-18 15:37:01 +00:00
2022-11-26 02:03:53 +00:00
ANTISPAM_BYPASS_IDS = { 1703 , 13427 }
2022-09-16 22:02:30 +00:00
GIFT_NOTIF_ID = CARP_ID
2022-06-22 18:01:00 +00:00
POLL_THREAD = 79285
2023-04-25 05:15:10 +00:00
CHANGELOG_THREAD = 165657
2023-04-27 16:39:29 +00:00
BUGFIXING_THREAD = 166300
2022-06-22 18:01:00 +00:00
2023-06-23 18:19:28 +00:00
WELCOME_MSG = " Hi there! It ' s me, your soon-to-be favorite rDrama user @carpathianflorist here to give you a brief rundown on some of the sick features we have here. You ' ll probably want to start by following me, though. So go ahead and click my name and then smash that Follow button. This is actually really important, so go on. Hurry. \n \n Thanks! \n \n Next up: If you ' re a member of the media, similarly just shoot me a DM and I ' ll set about verifying you and then we can take care of your sad journalism stuff. \n \n **FOR EVERYONE ELSE** \n \n Begin by navigating to [the settings page](/settings/profile) (we ' ll be prettying this up so it ' s less convoluted soon, don ' t worry) and getting some basic customization done. \n \n ### Themes \n \n Definitely change your theme right away, the default one (Coffee) is pretty enough, but why not use something *exotic* like Win98, or *flashy* like Tron? Even Coffee is super tasteful and way more fun than the default. More themes to come when we get around to it! \n \n ### Avatar/pfp \n \n You ' ll want to set this pretty soon. Set the banner too while you ' re at it. Your profile is important! \n \n ### Flairs \n \n Since you ' re already on the settings page, you may as well set a flair, too. As with your username, you can - obviously - choose the color of this, either with a hex value or just from the preset colors. And also like your username, you can change this at any time. Paypigs can even further relive the glory days of 90s-00s internet and set obnoxious signatures. \n \n ### PROFILE ANTHEMS \n \n Speaking of profiles, hey, remember MySpace? Do you miss autoplaying music assaulting your ears every time you visited a friend ' s page? Yeah, we brought that back. Enter a YouTube URL, wait a few seconds for it to process, and then BAM! you ' ve got a profile anthem which people cannot mute. Unless they spend 20,000 dramacoin in the shop for a mute button. Which you can then remove from your profile by spending 40,000 dramacoin on an unmuteable anthem. Get fucked poors! \n \n ### Dramacoin? \n \n Dramacoin is basically our take on the karma system. Except unlike the karma system, it ' s not gay and boring and stupid and useless. Dramacoin can be spent at [Marsey ' s Dramacoin Emporium](/shop/awards) on upgrades to your user experience (many more coming than what ' s already listed there), and best of all on tremendously annoying awards to fuck with your fellow dramautists. We ' re always adding more, so check back regularly in case you happen to miss one of the announcement posts. \n \n Like karma, dramacoin is obtained by getting upvotes on your threads and comments. *Unlike* karma, it ' s also obtained by getting downvotes on your threads and comments. Downvotes don ' t really do anything here - they pay the same amount of dramacoin and they increase thread/comment ranking just the same as an upvote. You just use them to express petty disapproval and hopefully start a fight. Because all votes are visible here. To hell with your anonymity. \n \n Dramacoin can also be traded amongst users from their profiles. Note that there is a 3 % transaction fee. \n \n ### Badges \n \n Remember all those neat little metallic icons you saw on my profile when you were following me? If not, scroll back up and go have a look. And doublecheck to make sure you pressed the Follow button. Anyway, those are badges. You earn them by doing a variety of things. Some of them even offer benefits, like discounts at the shop. A [complete list of badges and their requirements can be found here](/badges), though I add more pretty regularly, so keep an eye on the [changelog](/post/165657). \n \n ### Other stuff \n \n We ' re always adding new features, and we take a fun-first approach to development. If you have a suggestion for something that would be fun, funny, annoying - or best of all, some combination of all three - definitely make a thread about it. Or just DM me if you ' re shy. Weirdo. Anyway there ' s also the [leaderboards](/leaderboard), boring stuff like two-factor authentication you can toggle on somewhere in the settings page (psycho), the ability to save posts and comments, more
2022-12-25 03:12:35 +00:00
REDDIT_NOTIFS_USERS = {
' idio3 ' : IDIO_ID ,
' aevann ' : AEVANN_ID ,
' carpflo ' : CARP_ID ,
' carpathianflorist ' : CARP_ID ,
' carpathian florist ' : CARP_ID ,
' the_homocracy ' : 147 ,
' justcool393 ' : JUSTCOOL_ID
}
2022-10-17 19:13:33 +00:00
elif SITE == ' watchpeopledie.tv ' :
2023-03-11 07:44:18 +00:00
NOTIFICATION_SPAM_AGE_THRESHOLD = 0.5 * 86400
2023-02-24 02:54:31 +00:00
EMAIL = " wpd@watchpeopledie.tv "
2022-12-25 03:28:57 +00:00
TELEGRAM_ID = " wpdtv "
2022-12-25 03:09:24 +00:00
DEFAULT_TIME_FILTER = " day "
2022-12-25 03:28:57 +00:00
DESCRIPTION = " People die and this is the place to see it. You only have one life, don ' t make the mistakes seen here. "
2022-10-23 08:48:19 +00:00
PIN_LIMIT = 4
2023-02-26 10:20:32 +00:00
WELCOME_MSG = """ Hi, you! Welcome to WatchPeopleDie.tv, this really cool site where you can go to watch people die. I ' m @CLiTPEELER! If you have any questions about how things work here, or suggestions on how to make them work better than they already do, definitely slide on into my DMs (no fat chicks). \n \n There ' s an enormously robust suite of fun features we have here and we ' re always looking for more to add. Way, way too many to go over in an automated welcome message. And you ' re probably here for the videos of people dying more than any sort of weird, paradoxical digital community aspect anyway, so I won ' t bore you with a tedious overview of them. Just head on over to [your settings page](https://watchpeopledie.tv/settings/profile) and have a look at some of the basic profile stuff, at least. You can change your profile picture, username, flair, colors, banners, bio, profile anthem (autoplaying song on your page, like it ' s MySpace or some shit, hell yeah), CSS, all sorts of things. \n \n Or you can just go back to the main feed and carry on with watching people die. That ' s what the site is for, after all. Have fun! \n \n Anyway, in closing, WPD is entirely open source. We don ' t really need new full-time coders or anything, but if you ' d like to take a look at our repo - or even submit a PR to change, fix, or add some things - go right ahead! Our codebase lives at https://fsdfsd.net/rDrama/rDrama \n \n Well, that ' s all. Thanks again for signing up. It ' s an automated message and all, but I really do mean that. Thank you, specifically. I love you. Romantically. Deeply. Passionately. \n \n Have fun! """
2022-08-30 21:17:08 +00:00
2022-08-25 20:34:05 +00:00
FEATURES [ ' PATRON_ICONS ' ] = True
2023-02-01 18:52:34 +00:00
FEATURES [ ' NSFW_MARKING ' ] = False
2023-03-16 04:07:39 +00:00
FEATURES [ ' BOTS ' ] = False
2022-08-25 20:34:05 +00:00
2022-07-09 10:09:33 +00:00
PERMS [ ' HOLE_CREATE ' ] = 2
2022-10-20 14:42:52 +00:00
PERMS [ ' POST_EDITING ' ] = 2
2023-01-25 15:41:46 +00:00
PERMS [ ' USER_BLACKLIST ' ] = 6
2022-11-26 20:31:20 +00:00
2022-12-11 23:44:34 +00:00
SUB_BANNER_LIMIT = 69420
2023-03-17 07:24:37 +00:00
NOTIFICATION_THREAD = 27855
2022-12-06 18:24:41 +00:00
2022-11-26 20:31:20 +00:00
ERROR_TITLES . update ( {
400 : " Bad Request " ,
401 : " Unauthorized " ,
2023-01-24 06:40:45 +00:00
403 : " Not Found " ,
2022-11-26 20:31:20 +00:00
404 : " Not Found " ,
405 : " Method Not Allowed " ,
406 : " Too Many Pings " ,
409 : " Mortal Conflict " ,
410 : " Dead " ,
413 : " Payload Too Large " ,
415 : " Unsupported Media Type " ,
500 : " Internal Server Error " ,
} )
2023-06-06 17:15:31 +00:00
ERROR_MSGS = {
2023-01-24 06:40:45 +00:00
400 : " That request is invalid. " ,
401 : " You need to login or sign up to do that. " ,
403 : " That wasn ' t found " ,
404 : " That wasn ' t found. " ,
405 : " You can ' t use this method here... if you keep getting this error tell us it ' s prolly something borked. " ,
2023-06-06 17:15:31 +00:00
406 : " Max ping limit is 5 for comments and 50 for posts " ,
2022-11-26 20:31:20 +00:00
409 : " There ' s a conflict between what you ' re trying to do and what you or someone else has done and because of that you can ' t do what you ' re trying to do. " ,
2023-01-24 06:40:45 +00:00
410 : " This link is dead. Request a new one to try again. " ,
413 : " You need to upload a smaller file please. " ,
2023-06-06 17:15:31 +00:00
415 : " Please upload only Image, Video, or Audio files! " ,
418 : " this really shouldn ' t happen now that we autoconvert webm files but if it does there ' s a cool teapot marsey so there ' s that " ,
2023-01-24 06:40:45 +00:00
429 : " Please wait a bit before doing that. " ,
2023-06-06 17:15:31 +00:00
500 : " Internal Server Error. Something went very wrong when trying to fulfill your request. Try refreshing the page. If it still doesn ' t work, shoot <a href= ' /@CLiTPEELER ' >@CLiTPEELER</a> a message. " ,
}
2022-07-09 10:09:33 +00:00
2023-01-24 06:40:45 +00:00
ERROR_MARSEYS [ 403 ] = " marseyconfused "
2023-02-08 02:13:00 +00:00
POLL_THREAD = 22937
2022-11-07 22:00:37 +00:00
2022-09-29 18:08:36 +00:00
SIDEBAR_THREAD = 5403
BANNER_THREAD = 9869
2022-11-26 20:20:30 +00:00
TRUESCORE_CHAT_MINIMUM = 10
TRUESCORE_GHOST_MINIMUM = 10
2022-11-13 11:43:08 +00:00
2022-06-23 09:02:49 +00:00
HOLE_NAME = ' flair '
2022-06-23 09:40:01 +00:00
HOLE_STYLE_FLAIR = True
2022-06-26 01:01:21 +00:00
HOLE_REQUIRED = True
2022-07-07 03:45:33 +00:00
2022-07-10 12:05:12 +00:00
AUTOJANNY_ID = 1
2022-07-09 11:03:23 +00:00
SNAPPY_ID = 3
LONGPOSTBOT_ID = 4
ZOZBOT_ID = 5
2022-12-25 05:46:38 +00:00
CARP_ID = 48
2022-06-18 15:37:01 +00:00
AEVANN_ID = 9
SNAKES_ID = 32
2022-09-16 22:02:30 +00:00
GIFT_NOTIF_ID = CARP_ID
2022-10-10 06:37:42 +00:00
SIGNUP_FOLLOW_ID = CARP_ID
2022-09-26 05:19:37 +00:00
2023-05-14 22:16:01 +00:00
TIER_TO_NAME = {
2023-06-08 03:45:06 +00:00
1 : " Beneficiary " ,
2023-05-03 15:29:31 +00:00
2 : " Victim " ,
3 : " Corpse " ,
4 : " Zombie " ,
5 : " Ghost " ,
6 : " Survivor " ,
7 : " Jigsaw " ,
8 : " P̵͇̕S̶̔̇Ȳ̴͙C̶͋͗H̵͒̉O̴̎̍ " ,
2022-11-07 01:41:32 +00:00
}
2023-02-09 04:02:39 +00:00
elif SITE == ' devrama.net ' :
AEVANN_ID = 7
2023-03-11 07:18:25 +00:00
FEATURES [ ' ASSET_SUBMISSIONS ' ] = True
FEATURES [ ' PRONOUNS ' ] = True
FEATURES [ ' HOUSES ' ] = True
FEATURES [ ' USERS_PERMANENT_WORD_FILTERS ' ] = True
2023-03-25 21:42:42 +00:00
PERMS [ " SITE_SETTINGS " ] = 4
2022-06-18 15:37:01 +00:00
else : # localhost or testing environment implied
2022-11-15 09:19:08 +00:00
FEATURES [ ' ASSET_SUBMISSIONS ' ] = True
2022-07-18 06:43:20 +00:00
FEATURES [ ' PRONOUNS ' ] = True
FEATURES [ ' HOUSES ' ] = True
2022-11-06 10:41:04 +00:00
FEATURES [ ' USERS_PERMANENT_WORD_FILTERS ' ] = True
2022-12-11 23:44:34 +00:00
SUB_BANNER_LIMIT = 69420
2022-11-06 12:04:00 +00:00
HOUSES = ( " None " , " Furry " , " Femboy " , " Vampire " , " Racist " ) if FEATURES [ ' HOUSES ' ] else ( " None " )
2022-11-06 09:44:58 +00:00
2023-05-12 22:29:34 +00:00
BOT_IDs = { AUTOJANNY_ID , SNAPPY_ID , LONGPOSTBOT_ID , ZOZBOT_ID }
2022-06-18 15:37:01 +00:00
2023-06-07 03:44:14 +00:00
COLORS = { ' ff459a ' , ' 805ad5 ' , ' 62ca56 ' , ' 38a169 ' , ' 80ffff ' , ' 2a96f3 ' , ' eb4963 ' , ' ff0000 ' , ' f39731 ' , ' 30409f ' , ' 3e98a7 ' , ' e4432d ' , ' 7b9ae4 ' , ' ec72de ' , ' 7f8fa6 ' , ' f8db58 ' , ' 8cdbe6 ' , DEFAULT_COLOR }
2022-06-18 15:37:01 +00:00
2022-12-11 23:44:34 +00:00
### COMMENT NOTIFICATIONS ###
2022-06-18 15:37:01 +00:00
FORTUNE_REPLIES = ( ' <b style= " color:#6023f8 " >Your fortune: Allah Wills It</b> ' , ' <b style= " color:#d302a7 " >Your fortune: Inshallah, Only Good Things Shall Come To Pass</b> ' , ' <b style= " color:#e7890c " >Your fortune: Allah Smiles At You This Day</b> ' , ' <b style= " color:#7fec11 " >Your fortune: Your Bussy Is In For A Blasting</b> ' , ' <b style= " color:#43fd3b " >Your fortune: You Will Be Propositioned By A High-Tier Twink</b> ' , ' <b style= " color:#9d05da " >Your fortune: Repent, You Have Displeased Allah And His Vengeance Is Nigh</b> ' , ' <b style= " color:#f51c6a " >Your fortune: Reply Hazy, Try Again</b> ' , ' <b style= " color:#00cbb0 " >Your fortune: lmao you just lost 100 coins</b> ' , ' <b style= " color:#2a56fb " >Your fortune: Yikes 😬</b> ' , ' <b style= " color:#0893e1 " >Your fortune: You Will Be Blessed With Many Black Bulls</b> ' , ' <b style= " color:#16f174 " >Your fortune: NEETmax, The Day Is Lost If You Venture Outside</b> ' , ' <b style= " color:#fd4d32 " >Your fortune: A Taste Of Jannah Awaits You Today</b> ' , ' <b style= " color:#bac200 " >Your fortune: Watch Your Back</b> ' , ' <b style= " color:#6023f8 " >Your fortune: Outlook good</b> ' , ' <b style= " color:#d302a7 " >Your fortune: Godly Luck</b> ' , ' <b style= " color:#e7890c " >Your fortune: Good Luck</b> ' , ' <b style= " color:#7fec11 " >Your fortune: Bad Luck</b> ' , ' <b style= " color:#43fd3b " >Your fortune: Good news will come to you by mail</b> ' , ' <b style= " color:#9d05da " >Your fortune: Very Bad Luck</b> ' , ' <b style= " color:#00cbb0 " >Your fortune: キタ━━━━━━(゚∀゚)━━━━━━ !!!!</b> ' , ' <b style= " color:#2a56fb " >Your fortune: Better not tell you now</b> ' , ' <b style= " color:#0893e1 " >Your fortune: You will meet a dark handsome stranger</b> ' , ' <b style= " color:#16f174 " >Your fortune: ( ´ _ゝ`)フーン</b> ' , ' <b style= " color:#fd4d32 " >Your fortune: Excellent Luck</b> ' , ' <b style= " color:#bac200 " >Your fortune: Average Luck</b> ' )
FACTCHECK_REPLIES = ( ' <b style= " color:#6023f8 " >Factcheck: This claim has been confirmed as correct by experts. </b> ' , ' <b style= " color:#d302a7 " >Factcheck: This claim has been classified as misogynistic.</b> ' , ' <b style= " color:#e7890c " >Factcheck: This claim is currently being debunked.</b> ' , ' <b style= " color:#7fec11 " >Factcheck: This claim is 100 % true.</b> ' , ' <b style= " color:#9d05da " >Factcheck: This claim hurts trans lives.</b> ' , ' <b style= " color:#f51c6a " >Factcheck: [REDACTED].</b> ' , ' <b style= " color:#00cbb0 " >Factcheck: This claim is both true and false.</b> ' , ' <b style= " color:#2a56fb " >Factcheck: You really believe that shit? Lmao dumbass nigga 🤣</b> ' , ' <b style= " color:#0893e1 " >Factcheck: None of this is real.</b> ' , ' <b style= " color:#16f174 " >Factcheck: Yes.</b> ' , ' <b style= " color:#fd4d32 " >Factcheck: This claim has not been approved by experts.</b> ' , ' <b style= " color:#bac200 " >Factcheck: This claim is a gross exageration of reality.</b> ' , ' <b style= " color:#ff2200 " >Factcheck: WARNING! THIS CLAIM HAS BEEN CLASSIFIED AS DANGEROUS. PLEASE REMAIN STILL, AN AGENT WILL COME TO MEET YOU SHORTLY.</b> ' )
2022-09-03 00:10:15 +00:00
EIGHTBALL_REPLIES = ( ' <b style= " color:#7FEC11 " >The 8-Ball Says: It is certain.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: It is decidedly so.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Without a doubt.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Yes definitely.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: You may rely on it.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: As I see it, yes.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Most likely.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Outlook good.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Yes.</b> ' , ' <b style= " color:#7FEC11 " >The 8-Ball Says: Signs point to yes.</b> ' , ' <b style= " color:#E7890C " >The 8-Ball Says: Reply hazy, try again.</b> ' , ' <b style= " color:#E7890C " >The 8-Ball Says: Ask again later.</b> ' , ' <b style= " color:#E7890C " >The 8-Ball Says: Better not tell you now.</b> ' , ' <b style= " color:#E7890C " >The 8-Ball Says: Cannot predict now.</b> ' , ' <b style= " color:#E7890C " >The 8-Ball Says: Concentrate and ask again.</b> ' , ' <b style= " color:#FD4D32 " >The 8-Ball Says: Don \' t count on it.</b> ' , ' <b style= " color:#FD4D32 " >The 8-Ball Says: My reply is no.</b> ' , ' <b style= " color:#FD4D32 " >The 8-Ball Says: My sources say no.</b> ' , ' <b style= " color:#FD4D32 " >The 8-Ball Says: Outlook not so good.</b> ' , ' <b style= " color:#FD4D32 " >The 8-Ball Says: Very doubtful.</b> ' )
2022-07-11 12:14:18 +00:00
2022-06-18 15:37:01 +00:00
2022-12-11 23:44:34 +00:00
### END COMMENT NOTIFICATIONS ###
2022-06-18 15:37:01 +00:00
discounts = {
# Big Spender badges, 2pp additive discount each
69 : 0.02 ,
70 : 0.02 ,
71 : 0.02 ,
72 : 0.02 ,
73 : 0.02 ,
# Lootbox badges, 1pp additive discount each
76 : 0.01 ,
77 : 0.01 ,
78 : 0.01 ,
2023-05-12 21:26:48 +00:00
#Lifetime donated badges
257 : 0.02 ,
258 : 0.02 ,
259 : 0.02 ,
260 : 0.02 ,
261 : 0.02 ,
2022-06-18 15:37:01 +00:00
}
CF_HEADERS = { " Authorization " : f " Bearer { CF_KEY } " , " Content-Type " : " application/json " }
2022-10-30 18:45:53 +00:00
ADMIGGER_THREADS = { SIDEBAR_THREAD , BANNER_THREAD , BADGE_THREAD , SNAPPY_THREAD }
2022-06-18 15:37:01 +00:00
2022-10-08 00:43:04 +00:00
proxies = { " http " : PROXY_URL , " https " : PROXY_URL }
2022-06-18 15:37:01 +00:00
2023-05-01 16:58:51 +00:00
approved_embed_hosts = [
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
### GENERAL PRINCIPLES #####################################################
# 0) The goal is to prevent user info leaks. Worst is a username + IP.
# 1) Cannot point to a server controlled by a site user.
# 2) Cannot have open redirects based on query string. (tightest constraint)
# 3) #2 but pre-stored, ex: s.lain.la 302 with jannie DM attack.
2023-04-29 20:50:47 +00:00
# 4) Use the exact subdomain.
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
### TODO: Run a media proxy and kill most of these. Impossible to review.
### First-Party
2022-06-18 15:37:01 +00:00
' rdrama.net ' ,
2023-04-29 21:19:34 +00:00
' i.rdrama.net ' ,
2022-10-17 19:13:33 +00:00
' watchpeopledie.tv ' ,
2023-04-29 21:19:34 +00:00
' i.watchpeopledie.tv ' ,
' videos.watchpeopledie.tv ' ,
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
### Third-Party Image Hosts
# TODO: Might be able to keep these even if we media proxy?
2023-06-22 13:12:06 +00:00
' i.imgur.com ' ,
' i.imgur.io ' ,
2023-04-29 20:50:47 +00:00
' pomf2.lain.la/f ' ,
' media.giphy.com/media ' , # used by the GIF Modal
' media0.giphy.com/media ' ,
' media1.giphy.com/media ' ,
' media2.giphy.com/media ' ,
' media3.giphy.com/media ' ,
' media4.giphy.com/media ' ,
' media.tenor.com ' ,
' c.tenor.com ' ,
' thumbs.gfycat.com ' ,
' i.postimg.cc ' , # WPD chat seems to like it
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
' files.catbox.moe ' ,
### Third-Party Media
# TODO: Preferably kill these. Media proxy.
# DO NOT ADD: wordpress.com, wp.com (maybe) | Or frankly anything. No more.
2023-04-29 20:50:47 +00:00
' i.redd.it ' ,
' preview.redd.it ' ,
' external-preview.redd.it ' ,
' pbs.twimg.com/media ' ,
' i.pinimg.com ' ,
' kiwifarms.net/attachments ' ,
' uploads.kiwifarms.net/data/attachments ' ,
' upload.wikimedia.org/wikipedia ' ,
' live.staticflickr.com ' ,
' substackcdn.com/image ' ,
' i.kym-cdn.com/photos/images ' ,
2023-06-23 18:15:09 +00:00
' i.kym-cdn.com/entries/icons ' ,
2023-04-29 20:50:47 +00:00
' 37.media.tumblr.com ' ,
' 64.media.tumblr.com ' ,
' 66.media.tumblr.com ' ,
' 78.media.tumblr.com ' ,
' i.ytimg.com/vi ' ,
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
### Third-Party Resources (For e.g. Profile Customization)
# TODO: Any reasonable way to proxy these instead?
' fonts.googleapis.com ' , # Google font CDN
2023-04-29 20:50:47 +00:00
' raw.githubusercontent.com ' , # using repos as media sources. no obvious exploit
2023-05-01 16:58:51 +00:00
]
if SITE_IMAGES not in approved_embed_hosts :
approved_embed_hosts = [ SITE_IMAGES ] + approved_embed_hosts
2022-06-18 15:37:01 +00:00
2023-05-01 16:58:51 +00:00
if SITE not in approved_embed_hosts :
approved_embed_hosts = [ SITE ] + approved_embed_hosts
2022-06-18 15:37:01 +00:00
2022-07-02 10:44:05 +00:00
def is_site_url ( url ) :
Narrow approved_embed_hosts for security.
Probably will break some peoples' profilecss and irritate the
newsposters, but in light of recent live proven exploits to disclose
user IP & username pairs to remote servers, the broad list of embed
hosts was unsustainable and impossible to prove safe.
We extend is_safe_url to allow whitelisting subdomains, specifically
to solve the s.lain.la open redirect exploit. Also, open media proxies
like external-content.duckduckgo.com were concerning enough, despite
likely being safe, to warrant removal. Anything infrequently used and
difficult to review, or has a reasonable alternative, was also removed.
In general: we want people to be rehosting, and if we want to allow
more external content, we need to run a media proxy. The central issue
is that any user-configurable 302 is a potential disclosure risk, and
Lord knows how many ways there were to get <arbitrarynewssite>.com to
do so. Maybe zero, but the problem is we just don't know.
2022-12-05 23:57:35 +00:00
return ( url
and ' \\ ' not in url
and ( ( url . startswith ( ' / ' ) and not url . startswith ( ' // ' ) )
or url . startswith ( f ' { SITE_FULL } / ' ) ) )
2022-07-02 10:44:05 +00:00
2022-06-18 15:37:01 +00:00
def is_safe_url ( url ) :
2023-04-29 20:50:47 +00:00
if is_site_url ( url ) :
return True
if any ( url . startswith ( f " https:// { x } / " ) for x in approved_embed_hosts ) :
return True
return False
2022-06-18 15:37:01 +00:00
2022-06-24 15:08:57 +00:00
hosts = " | " . join ( approved_embed_hosts ) . replace ( ' . ' , ' \ . ' )
2022-07-01 05:55:53 +00:00
has_sidebar = path . exists ( f ' files/templates/sidebar_ { SITE_NAME } .html ' )
has_logo = path . exists ( f ' files/assets/images/ { SITE_NAME } /logo.webp ' )
2022-07-16 18:37:07 +00:00
2022-09-19 18:52:50 +00:00
forced_hats = {
" rehab " : ( " Roulette " , " I ' m a recovering ludomaniac! " ) ,
" progressivestack " : ( " Attention Whore " , " I won the oppression olympics! " ) ,
" longpost " : ( " The Pizzashill " , " We need to get rid of the character limit! " ) ,
" bird " : ( " Bluecheck " , " Three sentences is too much for me... " ) ,
" marseyawarded " : ( " Three Lil Marseys " , " :marseynotes: :marseynotes: :I prefer to speak in cats: " ) ,
" bite " : ( " Vampire Mask " , " When other little girls wanted to be ballet dancers I kind of wanted to be a vampire. " ) ,
" rainbow " : ( " Globohomo " , " Homosexuality is no longer optional! " ) ,
2022-09-20 00:55:25 +00:00
" owoify " : ( " Cat Ears (wiggly) " , " Nuzzles, pounces on you, UwU, you ' re so warm!.. " ) ,
2022-09-19 18:52:50 +00:00
" earlylife " : ( " The Merchant " , " SHUT IT DOWN, the goys know! " ) ,
" marsify " : ( " Marsified " , " I can ' t pick my own Marseys, help! " ) ,
2022-09-23 21:47:32 +00:00
" is_suspended " : ( " Behind Bars " , " This user is banned and needs to do better! " ) ,
Add the "Misogynist" award to harass incels (#154)
Whazzup? This PR is the final solution to the incel problem. There's an old indian proverb that says: "never judge a man until you've walked two moons in his mocassins". In this case, it should be: "never judge a woman until you've walked 24 hrs in her high-heels".
The misogynist award is a comment-transforming award that "feminizes" comments. It does the following:
- makes text pink
- makes text lowercase
- removes "complicated" punctuation
- makes paragraphs into run-on sentences
- adds stereotypical girly remarks to the beginning or end of a paragraph.
For example:
INPUT
> What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo.
OUTPUT
> im literally screaming, what the fuck did you just fucking say about me, you little bitch? ill have you know i graduated top of my class in the navy seals, and ive been involved in numerous secret raids on al-quaeda, and i have over 300 confirmed kills, i am trained in gorilla warfare and im the top sniper in the entire us armed forces, you are nothing to me but just another target, i will wipe you the fuck out with precision the likes of which has never been seen before on this earth, mark my fucking words, you think you can get away with saying that shit to me over the internet? think again, fucker, as we speak i am contacting my secret network of spies across the usa and your ip is being traced right now so you better prepare for the storm, maggot, the storm that wipes out the pathetic little thing you call your life, youre fucking dead, kid, i can be anywhere, anytime, and i can kill you in over seven hundred ways, and thats just with my bare hands, not only am i extensively trained in unarmed combat, but i have access to the entire arsenal of the united states marine corps and i will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit, if only you could have known what unholy retribution your little clever comment was about to bring down upon you, maybe you would have held your fucking tongue, but you couldnt, you didnt, and now youre paying the price, you goddamn idiot, i will shit fury all over you and you will drown in it, youre fucking dead, kiddo
It also sets the user's pfp to a random white woman. Well, psuedorandom - it's based off of the user's id, so each user will only ever have one pfp assigned to them, which I think is nifty.
Finally, it changes the name of the user toa girly name.
There is one small problem with the PR, which is simply that I manually added a badge for testing purposes. If you like this PR, I will submit the badge throught the proper chanels and fix it.
![image](/attachments/641c7276-ffe4-4e69-b3e9-aec9f4f94191)
Co-authored-by: Chuck Sneed <sneed@formerlychucks.net>
Reviewed-on: https://fsdfsd.net/rDrama/rDrama/pulls/154
Co-authored-by: HeyMoon <heymoon@noreply.fsdfsd.net>
Co-committed-by: HeyMoon <heymoon@noreply.fsdfsd.net>
2023-06-21 12:36:07 +00:00
" queen " : ( " Emoji Crown (hearts and shooting stars) " , " This user is getting in touch with her feminine side 🥰 " ) ,
2023-06-23 11:07:47 +00:00
" chud " : ( ( " Egg_irl " , " This user is getting in touch with xir identity! " ) ,
2022-11-26 20:14:31 +00:00
( " Trans Flag " , " Just in case you forgot, trans lives matter. " ) ,
( " Trans Flag II " , " Your egg is cracked; wear it with pride! " ) ,
( " Pride Flag " , " Never forget that this is a primarily gay community. Dude bussy lmao. " ) ,
( " Pride Flag II " , " This user is a proud supporter of LGBTQ+ rights. " ) )
2022-09-29 05:43:29 +00:00
}
2022-10-19 10:39:03 +00:00
EMAIL_REGEX_PATTERN = ' [A-Za-z0-9._ % +-] { 1,64}@[A-Za-z0-9.-] { 2,63} \ .[A-Za-z] { 2,63} '
2022-10-29 22:53:42 +00:00
2023-03-07 01:51:48 +00:00
IMAGE_FORMATS = ( ' png ' , ' jpg ' , ' jpeg ' , ' webp ' , ' gif ' )
2023-01-01 03:38:37 +00:00
VIDEO_FORMATS = ( ' mp4 ' , ' webm ' , ' mov ' , ' avi ' , ' mkv ' , ' flv ' , ' m4v ' , ' 3gp ' )
AUDIO_FORMATS = ( ' mp3 ' , ' wav ' , ' ogg ' , ' aac ' , ' m4a ' , ' flac ' )
2022-11-22 21:42:52 +00:00
2022-11-22 21:58:57 +00:00
if not IS_LOCALHOST and SECRET_KEY == DEFAULT_CONFIG_VALUE :
2022-11-22 21:42:52 +00:00
from warnings import warn
warn ( " Secret key is the default value! Please change it to a secure random number. Thanks <3 " , RuntimeWarning )
2023-02-26 11:08:52 +00:00
2023-06-20 08:36:18 +00:00
GLOBAL = environ . get ( " GLOBAL " , " " ) . strip ( )
GLOBAL2 = environ . get ( " GLOBAL2 " , " " ) . strip ( )
2023-03-06 20:49:01 +00:00
STARS = ' \n \n ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ \n \n '
2023-03-18 13:34:04 +00:00
2023-06-22 15:56:20 +00:00
EMOJI_KINDS = ( " Marsey " , " Platy " , " Wolf " , " Donkey Kong " , " Tay " , " Capy " , " Carp " , " Marsey Flags " , " Marsey Alphabet " , " Classic " , " Rage " , " Wojak " , " Misc " )
2023-04-25 15:30:44 +00:00
t = datetime . datetime . now ( )
fistmas_begin = datetime . datetime . strptime ( f ' 1/12/ { t . year } ' , ' %d / % m/ % Y ' )
fistmas_end = datetime . datetime . strptime ( f ' 30/12/ { t . year } ' , ' %d / % m/ % Y ' )
def IS_FISTMAS ( ) :
return fistmas_begin < datetime . datetime . now ( ) < fistmas_end
homoween_begin = datetime . datetime . strptime ( f ' 15/10/ { t . year } ' , ' %d / % m/ % Y ' )
homoween_end = datetime . datetime . strptime ( f ' 1/11/ { t . year } ' , ' %d / % m/ % Y ' )
def IS_HOMOWEEN ( ) :
return homoween_begin < datetime . datetime . now ( ) < homoween_end
dkd_begin = datetime . datetime . strptime ( f ' 25/4/ { t . year } ' , ' %d / % m/ % Y ' )
dkd_end = datetime . datetime . strptime ( f ' 2/5/ { t . year } ' , ' %d / % m/ % Y ' )
def IS_DKD ( ) :
return SITE_NAME == ' rDrama ' and dkd_begin < datetime . datetime . now ( ) < dkd_end
2023-04-27 12:08:11 +00:00
birthgay_begin = datetime . datetime . strptime ( f ' 20/5/ { t . year } ' , ' %d / % m/ % Y ' )
2023-04-29 17:19:58 +00:00
birthgay_end = datetime . datetime . strptime ( f ' 22/5/ { t . year } ' , ' %d / % m/ % Y ' )
2023-04-25 15:30:44 +00:00
def IS_BIRTHGAY ( ) :
2023-05-20 00:08:02 +00:00
return False and ( SITE_NAME == ' rDrama ' and birthgay_begin < datetime . datetime . now ( ) < birthgay_end )
2023-04-27 12:08:11 +00:00
birthdead_begin = datetime . datetime . strptime ( f ' 26/4/ { t . year } ' , ' %d / % m/ % Y ' )
2023-05-02 16:14:26 +00:00
birthdead_end = datetime . datetime . strptime ( f ' 28/4/ { t . year } ' , ' %d / % m/ % Y ' )
2023-04-27 12:08:11 +00:00
def IS_BIRTHDEAD ( ) :
return SITE_NAME == ' WPD ' and birthdead_begin < datetime . datetime . now ( ) < birthdead_end
def IS_EVENT ( ) :
if IS_FISTMAS ( ) :
return " fistmas "
elif IS_HOMOWEEN ( ) :
return " homoween "
elif IS_DKD ( ) :
return " DKD "
elif IS_BIRTHGAY ( ) :
return " birthgay "
elif IS_BIRTHDEAD ( ) :
return " birthdead "
return None
2023-04-27 14:54:06 +00:00
SNAPPY_EDGY = """ You will never be a real house. You have no award, you have no members, you have no symbol. You are a chuddite losers twisted by downmarseys and soren into a crude mockery of Carp ' s perfection.
All the “ validation ” you get is two - faced and half - hearted . Behind your back people mock you . Your jannies are disgusted and ashamed of you , your “ friends ” laugh at your foolish appearance on groomercord .
Dramatards are utterly repulsed by you . Thousands of years of evolution have allowed lurkers to sniff out fanfiction with incredible efficiency . Even your founders look uncanny and unnatural to a lurker . Your house structure is a dead giveaway . And even if you manage to get a member to join , he ' ll turn tail and bolt the second he gets enough marseycoin for a real house.
You will never be happy . You wrench out a fake smile every single morning and tell yourself it ' s going to be ok, but deep inside you feel the depression creeping up like a weed, ready to crush you under the unbearable weight.
Eventually it ' ll be too much to bear - you ' ll buy a rope , tie a noose , put it around your neck , and plunge into the cold abyss . Jannies will find you , heartbroken but relieved that they no longer have to live with the unbearable shame and disappointment . They ' ll bury you with a headstone marked with your real house, and every passerby for the rest of eternity will know a racist or vampire is buried there. Your body will decay and go back to the dust, and all that will remain of your legacy is a skeleton that is unmistakably soy.
This is your fate . This is what you chose . There is no turning back .
"""
2023-04-28 09:07:28 +00:00
CHUD_PHRASES = (
" Trans lives matter " ,
" Black lives matter " ,
" Black trans lives matter " ,
" The future is female " ,
" I say this as a feminist ally " ,
2023-05-04 16:28:56 +00:00
" I stand with Israel " ,
2023-04-28 09:07:28 +00:00
" Vaccines work " ,
" Trans women are women " ,
" Furry rights are human rights " ,
" Trans furry lives matter " ,
" Trump for prison " ,
" Hillary 2024 " ,
" Jewish lives matter " ,
" White extinction is long overdue " ,
" Climate action now " ,
2023-05-01 22:16:34 +00:00
" Long live the CCP " ,
2023-05-01 22:16:49 +00:00
" I stand with Ukraine " ,
2023-04-28 09:07:28 +00:00
)
2023-05-15 00:04:14 +00:00
HEADERS = { " User-Agent " : " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 " }
2023-06-22 17:29:56 +00:00
2023-06-23 18:08:10 +00:00
GIRL_NAMES = {
' A ' : [ ' Ashley ' , ' Alexis ' , ' Alyssa ' , ' Abigail ' , ' Anna ' , ' Amanda ' , ' Alexandra ' , ' Allison ' , ' Amber ' , ' Andrea ' , ' Autumn ' , ' Angela ' , ' Alexa ' , ' Alexandria ' , ' Amy ' , ' Ariana ' , ' Audrey ' , ' Angel ' , ' Alicia ' , ' Adriana ' , ' Arianna ' , ' Ana ' , ' Angelica ' , ' Angelina ' , ' Alexia ' , ' Alejandra ' , ' Avery ' , ' Ashlyn ' , ' Ava ' , ' Alondra ' , ' Ariel ' , ' Amaya ' , ' Abby ' , ' Amelia ' , ' Aaliyah ' , ' April ' , ' Adrianna ' , ' Asia ' , ' Aubrey ' , ' Alison ' , ' Allyson ' , ' Alexus ' , ' Alana ' , ' Alissa ' , ' Aliyah ' , ' Anne ' , ' Annie ' , ' Anastasia ' , ' Ashlee ' , ' Alaina ' , ' Addison ' , ' Ashleigh ' , ' Ashton ' , ' Anahi ' , ' Ashlynn ' , ' Allie ' , ' Alisha ' , ' Alice ' , ' Abbey ' , ' Alayna ' , ' Ayanna ' , ' Annika ' , ' Alyson ' , ' Annabelle ' , ' Alina ' , ' Angelique ' , ' Aurora ' , ' Alma ' , ' Ann ' , ' Alanna ' , ' Angie ' , ' Amari ' , ' Aileen ' , ' Athena ' , ' Adrienne ' , ' Arielle ' , ' Abbigail ' , ' Aimee ' , ' Alivia ' , ' Amya ' , ' Aspen ' , ' Aniya ' , ' Anya ' , ' Abbie ' , ' Araceli ' , ' Aleah ' , ' Ally ' , ' Alisa ' , ' Antonia ' , ' Anika ' , ' Alessandra ' , ' Aisha ' , ' Ayana ' , ' America ' , ' Abigayle ' , ' Aliya ' , ' Alena ' , ' Aylin ' , ' Aniyah ' , ' Alia ' , ' Anita ' , ' Alexandrea ' , ' Annette ' , ' Amani ' , ' Armani ' , ' Anissa ' , ' Aubree ' , ' Ansley ' , ' Alysa ' , ' Alize ' , ' Amara ' , ' Arlene ' , ' Aiyana ' , ' Allyssa ' , ' Adeline ' , ' Annalise ' , ' Amira ' , ' Alexys ' , ' Abril ' , ' Ayla ' , ' Asha ' , ' Aryanna ' , ' Anaya ' , ' Arely ' , ' Alysha ' , ' Aracely ' , ' Alex ' , ' Ali ' , ' Alycia ' , ' Anjali ' , ' Amiya ' , ' Aja ' , ' Annabel ' , ' Aliza ' , ' Ashly ' , ' Abigale ' , ' Abagail ' , ' Aria ' , ' Ashtyn ' , ' Annamarie ' , ' Amina ' , ' Antoinette ' ] ,
' B ' : [ ' Brianna ' , ' Brooke ' , ' Brittany ' , ' Bailey ' , ' Breanna ' , ' Briana ' , ' Britney ' , ' Brittney ' , ' Bethany ' , ' Bianca ' , ' Brenda ' , ' Brooklyn ' , ' Bridget ' , ' Brenna ' , ' Bryanna ' , ' Baylee ' , ' Brandi ' ,
' Brandy ' , ' Bailee ' , ' Brisa ' , ' Barbara ' , ' Brooklynn ' , ' Breana ' , ' Brynn ' , ' Blanca ' , ' Bria ' , ' Beatriz ' , ' Brianne ' , ' Brielle ' , ' Bella ' , ' Brook ' , ' Berenice ' , ' Baby ' , ' Bridgette ' , ' Bryana ' , ' Brionna ' , ' Bonnie ' , ' Belen ' , ' Beatrice ' , ' Blair ' , ' Breonna ' , ' Breanne ' ] ,
' C ' : [ ' Chloe ' , ' Courtney ' , ' Caroline ' , ' Christina ' , ' Caitlin ' , ' Catherine ' , ' Claire ' , ' Cheyenne ' , ' Cassandra ' , ' Cassidy ' , ' Caitlyn ' , ' Crystal ' , ' Chelsea ' , ' Cynthia ' , ' Carly ' , ' Camryn ' , ' Claudia ' , ' Cameron ' , ' Casey ' , ' Christine ' , ' Cierra ' , ' Cindy ' , ' Carolina ' , ' Camille ' , ' Carmen ' , ' Celeste ' , ' Ciara ' , ' Cecilia ' , ' Charlotte ' , ' Carolyn ' , ' Callie ' , ' Clarissa ' , ' Cristina ' , ' Cassie ' , ' Clara ' , ' Cheyanne ' , ' Cara ' , ' Carla ' , ' Carley ' , ' Carissa ' , ' Colleen ' , ' Charity ' , ' Chelsey ' , ' Cora ' , ' Chasity ' , ' Carlie ' , ' Carrie ' , ' Chyna ' , ' Clare ' , ' Cristal ' , ' Corinne ' , ' Ciera ' , ' Carina ' , ' Christian ' , ' Cayla ' , ' Candace ' , ' Celia ' , ' Calista ' , ' Carlee ' , ' Carson ' , ' Camila ' , ' Christy ' , ' Celine ' , ' Chandler ' , ' Candice ' , ' Carol ' , ' Casandra ' , ' Carli ' , ' Catalina ' , ' Celina ' , ' Cecelia ' , ' Chaya ' , ' Christa ' , ' Citlalli ' , ' Chanel ' , ' Cali ' , ' Caitlynn ' , ' Christiana ' , ' Cortney ' , ' Caleigh ' ,
' Chantel ' , ' Cielo ' , ' Cydney ' ] ,
' D ' : [ ' Destiny ' , ' Danielle ' , ' Diana ' , ' Daisy ' , ' Daniela ' , ' Diamond ' , ' Desiree ' , ' Delaney ' , ' Dominique ' , ' Dakota ' , ' Deanna ' , ' Dana ' , ' Destinee ' , ' Denise ' , ' Deja ' , ' Daniella ' , ' Deborah ' , ' Devin ' , ' Destiney ' , ' Destini ' ,
' Dulce ' , ' Desirae ' , ' Daphne ' , ' Devon ' , ' Donna ' , ' Delilah ' , ' Devyn ' , ' Diane ' , ' Damaris ' , ' Dorothy ' , ' Drew ' , ' Darlene ' , ' Dasia ' , ' Dariana ' , ' Dianna ' , ' Darby ' , ' Darian ' , ' Dayana ' , ' Dallas ' , ' Deasia ' , ' Dawn ' , ' Dejah ' , ' Daisha ' , ' Destany ' , ' Daija ' , ' Delia ' , ' Dayna ' ] ,
' E ' : [ ' Emily ' , ' Elizabeth ' , ' Emma ' , ' Erin ' , ' Erica ' , ' Erika ' , ' Evelyn ' , ' Esmeralda ' , ' Elena ' , ' Elise ' , ' Ella ' , ' Eva ' , ' Esther ' , ' Emilee ' , ' Ellie ' , ' Eleanor ' , ' Eliza ' , ' Elisabeth ' , ' Ellen ' , ' Emely ' , ' Emilie ' , ' Elaina ' , ' Elisa ' , ' Eden ' , ' Esperanza ' , ' Eliana ' , ' Eve ' , ' Ebony ' , ' Edith ' , ' Elaine ' , ' Essence ' , ' Emilia ' , ' Eileen ' , ' Ericka ' , ' Estrella ' , ' Elissa ' , ' Elyse ' , ' Eryn ' , ' Elyssa ' , ' Elsa ' , ' Emmalee ' , ' Estefania ' , ' Emerald ' ] ,
' F ' : [ ' Faith ' , ' Fatima ' , ' Francesca ' , ' Felicity ' , ' Fiona ' , ' Felicia ' , ' Fernanda ' , ' Frances ' , ' Fabiola ' ] ,
' G ' : [ ' Grace ' , ' Gabrielle ' , ' Gabriella ' , ' Gabriela ' , ' Giselle ' , ' Gianna ' , ' Gracie ' , ' Guadalupe ' , ' Genesis ' , ' Gillian ' , ' Georgia ' , ' Gina ' , ' Gloria ' , ' Gisselle ' , ' Genevieve ' , ' Gwendolyn ' , ' Gretchen ' , ' Greta ' , ' Gabriel ' , ' Giovanna ' , ' Graciela ' , ' Gia ' ] ,
' H ' : [ ' Hannah ' , ' Haley ' , ' Hailey ' , ' Heather ' , ' Hope ' , ' Hayley ' , ' Hanna ' , ' Holly ' , ' Haylee ' , ' Hallie ' , ' Heaven ' , ' Helen ' , ' Heidi ' , ' Haleigh ' , ' Harley ' , ' Hailee ' , ' Hunter ' , ' Halle ' , ' Halie ' , ' Hana ' , ' Haylie ' , ' Helena ' , ' Hayden ' , ' Harmony ' , ' Hailie ' , ' Haven ' , ' Hillary ' , ' Hazel ' , ' Hadley ' ] ,
' I ' : [ ' Isabella ' , ' Isabel ' , ' Isabelle ' , ' Imani ' , ' Ivy ' , ' India ' , ' Iris ' , ' Irene ' , ' Isis ' , ' Itzel ' , ' Izabella ' , ' Iliana ' , ' Isabela ' , ' Ingrid ' , ' Ivana ' , ' Iyana ' ] ,
' J ' : [ ' Jessica ' , ' Jennifer ' , ' Jasmine ' , ' Julia ' , ' Jordan ' , ' Jenna ' , ' Jacqueline ' , ' Jada ' , ' Jade ' , ' Jillian ' , ' Jocelyn ' , ' Jamie ' , ' Jordyn ' , ' Julie ' , ' Jasmin ' , ' Jazmin ' , ' Jazmine ' , ' Joanna ' , ' Juliana ' , ' Julianna ' , ' Jayla ' , ' Jaqueline ' , ' Josephine ' , ' Josie ' , ' Jacquelyn ' , ' Jenny ' , ' Julissa ' , ' Jaden ' , ' Jessie ' , ' Janet ' , ' Jane ' , ' Jayda ' , ' Jaclyn ' , ' Joy ' , ' Johanna ' , ' Janelle ' , ' Janae ' , ' Justine ' , ' Jayden ' , ' Julianne ' , ' Justice ' , ' Jewel ' , ' Judith ' , ' Jaelyn ' , ' Juliet ' , ' Jadyn ' , ' Joselyn ' , ' Juliette ' , ' Jazlyn ' , ' Jazmyn ' , ' Joyce ' , ' Janessa ' , ' Jalyn ' , ' Jaida ' , ' Jenifer ' , ' Jacey ' , ' Jackeline ' , ' Jaime ' , ' Jaiden ' , ' Janice ' , ' Jaquelin ' , ' Jeanette ' , ' Jacklyn ' , ' Jesse ' , ' Jolie ' , ' Juanita ' , ' Jaycee ' , ' Jasmyn ' , ' Jaylin ' , ' Joelle ' , ' Joana ' , ' Jazmyne ' , ' Jakayla ' , ' Jana ' , ' Joanne ' , ' Janiya ' , ' Jena ' , ' Jailyn ' , ' Jayde ' , ' Jill ' ] ,
' K ' : [ ' Kayla ' , ' Kaitlyn ' , ' Katherine ' , ' Katelyn ' , ' Kimberly ' , ' Kaylee ' , ' Kelsey ' , ' Kathryn ' , ' Katie ' , ' Kylie ' , ' Kelly ' , ' Kiara ' , ' Kennedy ' , ' Kristen ' , ' Karen ' , ' Kaitlin ' , ' Karina ' , ' Kendra ' , ' Kendall ' , ' Kara ' , ' Kylee ' , ' Kyra ' , ' Karla ' , ' Kathleen ' , ' Kristina ' , ' Kate ' , ' Katelynn ' , ' Kyla ' , ' Katrina ' , ' Kirsten ' , ' Kiana ' , ' Kassandra ' , ' Kira ' , ' Kristin ' , ' Kailey ' , ' Kassidy ' , ' Katlyn ' , ' Kamryn ' , ' Krystal ' , ' Kayleigh ' , ' Kaitlynn ' , ' Kierra ' , ' Kaylie ' , ' Kasey ' , ' Krista ' , ' Kaleigh ' , ' Kali ' , ' Karissa ' , ' Kelsie ' , ' Kiersten ' , ' Kiera ' , ' Kaylin ' , ' Kiley ' , ' Kaila ' , ' Kailee ' , ' Kenya ' , ' Kaley ' , ' Kelli ' , ' Kyleigh ' , ' Kaylyn ' , ' Kailyn ' , ' Karlee ' , ' Keely ' , ' Katelin ' , ' Kianna ' , ' Kacie ' , ' Karli ' , ' Kayley ' , ' Katarina ' , ' Kellie ' , ' Kaelyn ' , ' Kathy ' , ' Katharine ' , ' Karlie ' , ' Kourtney ' , ' Kenzie ' , ' Karly ' , ' Kristine ' , ' Kaylynn ' , ' Kelsi ' , ' Kaya ' , ' Kayli ' , ' Kallie ' , ' Kasandra ' , ' Kari ' , ' Kaylah ' , ' Kennedi ' , ' Karley ' , ' Kristy ' , ' Kiarra ' , ' Kacey ' , ' Keara ' , ' Kalyn ' , ' Kaela ' , ' Katia ' , ' Kinsey ' , ' Kaia ' , ' Katerina ' , ' Keira ' , ' Kaci ' , ' Kameron ' , ' Katy ' , ' Kirstin ' ,
' Kori ' , ' Katlynn ' , ' Kaylan ' , ' Kenna ' , ' Keeley ' , ' Kenia ' ] ,
' L ' : [ ' Lauren ' , ' Laura ' , ' Leslie ' , ' Leah ' , ' Lindsey ' , ' Lily ' , ' Lillian ' , ' Lydia ' , ' Lindsay ' , ' Lauryn ' , ' Lisa ' , ' Liliana ' , ' Logan ' , ' Lucy ' , ' Linda ' , ' Lizbeth ' , ' Lacey ' , ' Lesly ' , ' Litzy ' , ' Layla ' , ' Lilly ' , ' Lesley ' , ' Lexi ' , ' Larissa ' , ' Lucia ' , ' Lorena ' , ' Leilani ' , ' Luz ' , ' Lena ' , ' Lexie ' , ' Leticia ' , ' Laurel ' , ' Leila ' , ' Leanna ' , ' Lyndsey ' , ' Laila ' , ' Lea ' , ' Lexus ' , ' Lizeth ' , ' Loren ' , ' Laney ' , ' Lizette ' , ' Lilian ' , ' Lila ' , ' Lillie ' , ' Lia ' , ' Lyric ' , ' Liana ' , ' London ' , ' Lara ' , ' Lisette ' , ' Lori ' , ' Lilliana ' , ' Lourdes ' , ' Luisa ' , ' Leann ' , ' Laisha ' ] ,
' M ' : [ ' Madison ' , ' Megan ' , ' Morgan ' , ' Maria ' , ' Mackenzie ' , ' Mary ' , ' Michelle ' , ' Madeline ' , ' Makayla ' , ' Melissa ' , ' Mariah ' , ' Marissa ' , ' Mia ' , ' Molly ' , ' Mikayla ' , ' Margaret ' , ' Miranda ' , ' Maya ' , ' Melanie ' , ' Madelyn ' , ' Mckenzie ' , ' Meghan ' , ' Michaela ' , ' Monica ' , ' Mya ' , ' Mckenna ' , ' Maggie ' , ' Makenzie ' , ' Mallory ' , ' Macy ' , ' Makenna ' , ' Miriam ' , ' Madeleine ' , ' Mercedes ' , ' Meredith ' , ' Marisa ' , ' Mariana ' , ' Monique ' , ' Marina ' , ' Meagan ' , ' Martha ' , ' Marie ' , ' Mikaela ' , ' Madalyn ' , ' Marisol ' , ' Melody ' , ' Mckayla ' , ' Maddison ' , ' Madisyn ' , ' Madyson ' , ' Mayra ' , ' Macie ' , ' Malia ' , ' Marilyn ' , ' Marlene ' , ' Macey ' , ' Miracle ' , ' Madelynn ' , ' Melina ' , ' Maia ' , ' Maritza ' , ' Mollie ' , ' Montana ' , ' Mara ' , ' Micaela ' , ' Micah ' , ' Madilyn ' , ' Maribel ' , ' Madisen ' , ' Margarita ' , ' Moriah ' , ' Mariam ' , ' Meaghan ' , ' Marley ' , ' Melinda ' , ' Marian ' , ' Mariela ' , ' Maura ' , ' Mattie ' , ' Maci ' , ' Maegan ' , ' Maeve ' , ' Marianna ' , ' Myah ' , ' Monserrat ' , ' Maranda ' , ' Michele ' , ' Magdalena ' , ' Mireya ' , ' Misty ' , ' Martina ' , ' Maryam ' , ' Myra ' , ' Marlee ' , ' Mandy ' , ' Maiya ' , ' Melisa ' , ' Marlen ' ] ,
' N ' : [ ' Nicole ' , ' Natalie ' , ' Naomi ' , ' Nina ' , ' Natalia ' , ' Nancy ' , ' Nadia ' , ' Natasha ' , ' Nia ' , ' Noelle ' , ' Nichole ' ,
' Nora ' , ' Nathalie ' , ' Nikki ' , ' Nicolette ' , ' Noemi ' , ' Nayeli ' , ' Nataly ' , ' Noelia ' , ' Nya ' , ' Nyah ' , ' Nikita ' , ' Nadine ' , ' Norma ' , ' Nyasia ' , ' Neha ' ] ,
' O ' : [ ' Olivia ' , ' Odalys ' ] ,
' P ' : [ ' Paige ' , ' Payton ' , ' Peyton ' , ' Patricia ' , ' Priscilla ' , ' Paola ' , ' Precious ' , ' Phoebe ' , ' Pamela ' , ' Paris ' , ' Paulina ' , ' Piper ' , ' Perla ' , ' Paula ' , ' Presley ' , ' Princess ' , ' Parker ' , ' Patience ' , ' Paloma ' ] ,
' Q ' : [ ' Quinn ' ] ,
' R ' : [ ' Rachel ' , ' Rebecca ' , ' Riley ' , ' Rebekah ' , ' Raven ' , ' Rachael ' , ' Ruby ' , ' Reagan ' , ' Rylee ' , ' Rose ' , ' Rosa ' , ' Ruth ' , ' Raquel ' , ' Renee ' , ' Rhiannon ' , ' Regan ' , ' Regina ' , ' Ryan ' , ' Reyna ' , ' Robin ' , ' Raegan ' , ' Rosemary ' , ' Rylie ' , ' Robyn ' , ' Rosalinda ' , ' Rebeca ' , ' Rocio ' , ' Reilly ' , ' Rachelle ' , ' Ryleigh ' , ' Ryann ' , ' Reina ' , ' Randi ' , ' Reanna ' , ' Rita ' , ' Reese ' ,
' Roxanne ' , ' Raina ' , ' Rhianna ' , ' Rayna ' ] ,
' S ' : [ ' Sarah ' , ' Samantha ' , ' Sydney ' , ' Savannah ' , ' Stephanie ' , ' Sophia ' , ' Sierra ' , ' Sara ' , ' Shelby ' , ' Sabrina ' , ' Skylar ' , ' Summer ' , ' Shannon ' , ' Sophie ' , ' Sofia ' , ' Selena ' , ' Serena ' , ' Savanna ' , ' Sadie ' , ' Skyler ' , ' Sandra ' , ' Sidney ' , ' Shania ' , ' Shayla ' , ' Susan ' , ' Sharon ' , ' Serenity ' , ' Sasha ' , ' Skye ' , ' Sage ' , ' Sylvia ' , ' Sonia ' , ' Shyanne ' , ' Sydnee ' , ' Sydni ' , ' Sarai ' , ' Shayna ' , ' Simone ' , ' Savanah ' , ' Stacy ' , ' Sienna ' , ' Sandy ' , ' Stella ' , ' Skyla ' , ' Salma ' , ' Sydnie ' , ' Stacey ' , ' Sheila ' , ' Shawna ' , ' Sally ' , ' Susana ' , ' Shea ' , ' Stephany ' , ' Savana ' , ' Shyann ' , ' Shaina ' , ' Selina ' , ' Sarina ' , ' Shaylee ' , ' Sheridan ' , ' Shakira ' , ' Shirley ' , ' Silvia ' , ' Stefanie ' , ' Samara ' , ' Sonya ' , ' Shaniya ' , ' Saige ' , ' Scarlett ' , ' Sky ' ] ,
' T ' : [ ' Taylor ' , ' Trinity ' , ' Tiffany ' , ' Tara ' , ' Tatiana ' , ' Tori ' , ' Tessa ' , ' Tabitha ' , ' Teresa ' , ' Tiana ' , ' Tiara ' , ' Talia ' , ' Tatyana ' , ' Tia ' , ' Tyler ' , ' Tamara ' , ' Theresa ' , ' Tatum ' , ' Tamia ' , ' Tyra ' , ' Taryn ' , ' Tania ' , ' Tianna ' , ' Tayler ' , ' Tierra ' ,
' Toni ' , ' Tess ' , ' Tanya ' , ' Tina ' , ' Thalia ' , ' Tracy ' , ' Teagan ' , ' Tatianna ' , ' Taya ' , ' Trisha ' ] ,
' U ' : [ ' Unique ' ] ,
' V ' : [ ' Victoria ' , ' Vanessa ' , ' Veronica ' , ' Valerie ' , ' Valeria ' , ' Vivian ' , ' Virginia ' , ' Viviana ' , ' Valentina ' , ' Violet ' ] ,
' W ' : [ ' Whitney ' , ' Wendy ' , ' Willow ' ] ,
' X ' : [ ' Xena ' ] ,
' Y ' : [ ' Yesenia ' , ' Yasmine ' , ' Yasmin ' , ' Yvette ' , ' Yolanda ' , ' Yadira ' , ' Yvonne ' , ' Yamilet ' , ' Yazmin ' , ' Yasmeen ' , ' Yessenia ' ] ,
' Z ' : [ ' Zoe ' , ' Zoey ' , ' Zaria ' , ' Zoie ' ]
}