Merge pull request #44 from iro84657/remove-special-cases

Remove all site-specific special cases
This commit is contained in:
Ben Rog-Wilhelm 2022-05-09 02:27:49 -05:00 committed by GitHub
commit cb8ecac28e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 156 additions and 1133 deletions

View file

@ -451,7 +451,6 @@ class Submission(Base):
def realtitle(self, v):
if self.club and not (v and (v.paid_dues or v.id == self.author_id)):
if v: return random.choice(TROLLTITLES).format(username=v.username)
elif SITE == 'cringetopia.org': return f'Please make an account to see this post'
else: return f'{CC} MEMBERS ONLY'
elif self.title_html: title = self.title_html
else: title = self.title

View file

@ -28,11 +28,6 @@ cardview = bool(int(environ.get("CARD_VIEW", 1)))
class User(Base):
__tablename__ = "users"
if SITE == "pcmemes.net":
basedcount = Column(Integer, default=0)
pills = deferred(Column(String, default=""))
id = Column(Integer, primary_key=True)
username = Column(String)
namecolor = Column(String, default=DEFAULT_COLOR)

View file

@ -13,8 +13,7 @@ if SITE == "localhost": SITE_FULL = 'http://' + SITE
else: SITE_FULL = 'https://' + SITE
if SITE == 'pcmemes.net': CC = "SPLASH MOUNTAIN"
else: CC = "COUNTRY CLUB"
CC = "COUNTRY CLUB"
CC_TITLE = CC.title()
AJ_REPLACEMENTS = {
@ -28,86 +27,66 @@ AJ_REPLACEMENTS = {
' TO ': " TOO ",
}
if SITE_NAME == 'Cringetopia':
SLURS = {
"retarded": "neurodivergent",
"retard": "neurodivergent",
"faggotry": "cute twinkry",
"faggot": "cute twink",
"n1gger": "🏀",
"nlgger": "🏀",
"nigger": "🏀",
"uss liberty incident": "tragic accident aboard the USS Liberty",
"lavon affair": "Lavon Misunderstanding",
"i hate marsey": "i love marsey",
"autistic": "neurodivergent",
"holohoax": "i tried to claim the Holocaust didn't happen because I am a pencil-dicked imbecile and the word filter caught me lol",
"i hate carp": "i love Carp",
"heil hitler": "hello kitty",
SLURS = {
"retarded": "r-slurred",
"retard": "r-slur",
"gayfag": "gaystrag",
"poorfag": "poorstrag",
"richfag": "richstrag",
"newfag": "newstrag",
"oldfag": "oldstrag",
"faggotry": "cute twinkry",
"faggot": "cute twink",
"pedophile": "libertarian",
"kill yourself": "keep yourself safe",
"n1gger": "BIPOC",
"nlgger": "BIPOC",
"nigger": "BIPOC",
"steve akins": "penny verity oaken",
"trannie": "🚂🚃🚃",
"tranny": "🚂🚃🚃",
"troon": "🚂🚃🚃",
"nonewnormal": "HorseDewormerAddicts",
"kikery": "https://sciencedirect.com/science/article/abs/pii/S016028960600033X",
"kike": "https://sciencedirect.com/science/article/abs/pii/S016028960600033X",
"latinos": "latinx",
"latino": "latinx",
"latinas": "latinx",
"latina": "latinx",
"hispanics": "latinx",
"hispanic": "latinx",
"uss liberty incident": "tragic accident aboard the USS Liberty",
"lavon affair": "Lavon Misunderstanding",
"shylock": "Israeli friend",
"mohammad": "Prophet Mohammad (PBUH)",
"muhammad": "Prophet Mohammad (PBUH)",
"i hate marsey": "i love marsey",
"dancing israelis": "i love Israel",
"sodomite": "total dreamboat",
"pajeet": "sexy Indian dude",
"landlord": "landchad",
"tenant": "renthog",
"renter": "rentoid",
"autistic": "neurodivergent",
"holohoax": "i tried to claim the Holocaust didn't happen because I am a pencil-dicked imbecile and the word filter caught me lol",
"groomercord": "discord (actually a pretty cool service)",
"pedocord": "discord (actually a pretty cool service)",
"i hate carp": "i love Carp",
"manlet": "little king",
"gamer": "g*mer",
"journalist": "journ*list",
"journalism": "journ*lism",
"wuhan flu": "SARS-CoV-2 syndemic",
"china flu": "SARS-CoV-2 syndemic",
"china virus": "SARS-CoV-2 syndemic",
"kung flu": "SARS-CoV-2 syndemic",
"elon musk": "rocket daddy",
"fake and gay": "fake and straight",
" fag ": " cute twink ",
}
else:
SLURS = {
"retarded": "r-slurred",
"retard": "r-slur",
"gayfag": "gaystrag",
"poorfag": "poorstrag",
"richfag": "richstrag",
"newfag": "newstrag",
"oldfag": "oldstrag",
"faggotry": "cute twinkry",
"faggot": "cute twink",
"pedophile": "libertarian",
"kill yourself": "keep yourself safe",
"n1gger": "BIPOC",
"nlgger": "BIPOC",
"nigger": "BIPOC",
"steve akins": "penny verity oaken",
"trannie": "🚂🚃🚃",
"tranny": "🚂🚃🚃",
"troon": "🚂🚃🚃",
"nonewnormal": "HorseDewormerAddicts",
"kikery": "https://sciencedirect.com/science/article/abs/pii/S016028960600033X",
"kike": "https://sciencedirect.com/science/article/abs/pii/S016028960600033X",
"latinos": "latinx",
"latino": "latinx",
"latinas": "latinx",
"latina": "latinx",
"hispanics": "latinx",
"hispanic": "latinx",
"uss liberty incident": "tragic accident aboard the USS Liberty",
"lavon affair": "Lavon Misunderstanding",
"shylock": "Israeli friend",
"mohammad": "Prophet Mohammad (PBUH)",
"muhammad": "Prophet Mohammad (PBUH)",
"i hate marsey": "i love marsey",
"dancing israelis": "i love Israel",
"sodomite": "total dreamboat",
"pajeet": "sexy Indian dude",
"landlord": "landchad",
"tenant": "renthog",
"renter": "rentoid",
"autistic": "neurodivergent",
"holohoax": "i tried to claim the Holocaust didn't happen because I am a pencil-dicked imbecile and the word filter caught me lol",
"groomercord": "discord (actually a pretty cool service)",
"pedocord": "discord (actually a pretty cool service)",
"i hate carp": "i love Carp",
"manlet": "little king",
"gamer": "g*mer",
"journalist": "journ*list",
"journalism": "journ*lism",
"wuhan flu": "SARS-CoV-2 syndemic",
"china flu": "SARS-CoV-2 syndemic",
"china virus": "SARS-CoV-2 syndemic",
"kung flu": "SARS-CoV-2 syndemic",
"elon musk": "rocket daddy",
"fake and gay": "fake and straight",
" rapist ": " male feminist ",
" pedo ": " libertarian ",
" kys ": " keep yourself safe ",
" fag ": " cute twink ",
" rapist ": " male feminist ",
" pedo ": " libertarian ",
" kys ": " keep yourself safe ",
" fag ": " cute twink ",
}
single_words = "|".join([slur.lower() for slur in SLURS.keys()])
@ -119,156 +98,37 @@ AGENDAPOSTER_PHRASE = 'trans lives matter'
AGENDAPOSTER_MSG = """Hi @{username},\n\nYour {type} has been automatically removed because you forgot to include `{AGENDAPOSTER_PHRASE}`.\n\nDon't worry, we're here to help! We won't let you post or comment anything that doesn't express your love and acceptance towards the trans community. Feel free to resubmit your {type} with `{AGENDAPOSTER_PHRASE}` included. \n\n*This is an automated message; if you need help, you can message us [here](/contact).*"""
if SITE in {'rdrama.net','devrama.xyz'}:
NOTIFICATIONS_ID = 1046
AUTOJANNY_ID = 2360
SNAPPY_ID = 261
LONGPOSTBOT_ID = 1832
ZOZBOT_ID = 1833
AUTOPOLLER_ID = 6176
AUTOBETTER_ID = 7668
AUTOCHOICE_ID = 9167
BASEDBOT_ID = 0
NOTIFICATIONS_ID = 1
AUTOJANNY_ID = 2
SNAPPY_ID = 3
LONGPOSTBOT_ID = 4
ZOZBOT_ID = 5
AUTOPOLLER_ID = 6
AUTOBETTER_ID = 7
AUTOCHOICE_ID = 8
BASEDBOT_ID = 0
A_ID = 1230
KIPPY_ID = 7150
GIFT_NOTIF_ID = 995
PIZZASHILL_ID = 2424
PIZZA_VOTERS = (747,1963,9712)
IDIO_ID = 30
CARP_ID = 995
JOAN_ID = 28
MOOSE_ID = 1904
AEVANN_ID = 1
HOMO_ID = 147
SOREN_ID = 2546
Q_ID = 1480
LAWLZ_ID = 3833
LLM_ID = 253
DAD_ID = 2513
MOM_ID = 4588
DONGER_ID = 541
BUG_THREAD = 18459
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\nThanks!\n\nNext 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\nDefinitely change your theme right away, the default one (Midnight) 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\nYou'll want to set this pretty soon. Set the banner too while you're at it. Your profile is important!\n\n### Flairs\n\nSince 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](https://marsey1.gumroad.com/l/tfcvri) can even further relive the glory days of 90s-00s internet and set obnoxious signatures.\n\n### PROFILE ANTHEMS\n\nSpeaking 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\nDramacoin 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) 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\nLike 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\nDramacoin can also be traded amongst users from their profiles. Note that there is a 3% transaction fee.\n\n### Badges\n\nRemember 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.\n\n### Other stuff\n\nWe'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 than a thousand emojis already (most of which are rDrama originals), and on and on and on and on. This is just the basics, mostly to help you get acquainted with some of the things you can do here to make it more easy on the eyes, customizable, and enjoyable. If you don't enjoy it, just go away! We're not changing things to suit you! Get out of here loser! And no, you can't delete your account :na:\n\nI love you.<BR>*xoxo Carp* 💋"
ROLES={
"owner": "864612849199480914",
"admin": "846509661288267776",
"linked": "890342909390520382",
"1": "868129042346414132",
"2": "875569477671067688",
"3": "869434199575236649",
"4": "868140288013664296",
"5": "947236580794450010",
"6": "947236351445725204",
"7": "886781932430565418",
}
elif SITE == "pcmemes.net":
NOTIFICATIONS_ID = 1046
AUTOJANNY_ID = 1050
SNAPPY_ID = 261
LONGPOSTBOT_ID = 1832
ZOZBOT_ID = 1833
AUTOPOLLER_ID = 2129
AUTOBETTER_ID = 1867
AUTOCHOICE_ID = 2072
BASEDBOT_ID = 800
A_ID = 0
KIPPY_ID = 1592
PIZZASHILL_ID = 0
PIZZA_VOTERS = ()
GIFT_NOTIF_ID = 1592
IDIO_ID = 0
CARP_ID = 0
JOAN_ID = 0
MOOSE_ID = 0
AEVANN_ID = 1
HOMO_ID = 0
SOREN_ID = 0
Q_ID = 0
LAWLZ_ID = 0
LLM_ID = 0
DAD_ID = 0
MOM_ID = 0
DONGER_ID = 0
BUG_THREAD = 4103
WELCOME_MSG = "Welcome to pcmemes.net! Don't forget to turn off the slur filter [here](/settings/content#slurreplacer)"
ROLES={}
elif SITE == 'cringetopia.org':
NOTIFICATIONS_ID = 1
AUTOJANNY_ID = 2
SNAPPY_ID = 3
LONGPOSTBOT_ID = 4
ZOZBOT_ID = 5
AUTOPOLLER_ID = 6
AUTOBETTER_ID = 7
AUTOCHOICE_ID = 8
BASEDBOT_ID = 0
A_ID = 0
KIPPY_ID = 0
GIFT_NOTIF_ID = 43
PIZZASHILL_ID = 0
PIZZA_VOTERS = ()
IDIO_ID = 0
CARP_ID = 43
JOAN_ID = 0
MOOSE_ID = 0
AEVANN_ID = 9
HOMO_ID = 0
SOREN_ID = 0
Q_ID = 0
LAWLZ_ID = 0
LLM_ID = 0
DAD_ID = 0
MOM_ID = 0
DONGER_ID = 0
BUG_THREAD = 0
WELCOME_MSG = "Hi there! It's me, your soon-to-be favorite Cringetopia 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\nThanks!\n\nNext 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\nDefinitely change your theme right away, the default one (Midnight) 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\nYou'll want to set this pretty soon. Set the banner too while you're at it. Your profile is important!\n\n### Flairs\n\nSince 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.\n\n### PROFILE ANTHEMS\n\nSpeaking 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 coins in the shop for a mute button. Which you can then remove from your profile by spending 40,000 coins on an unmuteable anthem. Get fucked poors!\n\n### Coins?\n\nCoins is basically our take on the karma system. Except unlike the karma system, it's not gay and boring and stupid and useless. Coins can be spent at [Marsey's Dramacoin Emporium](/shop) 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 autists. We're always adding more, so check back regularly in case you happen to miss one of the announcement posts.\n\nLike karma, Coins 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 Coins 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\nCoins can also be traded amongst users from their profiles. Note that there is a 3% transaction fee.\n\n### Badges\n\nRemember 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.\n\n### Other stuff\n\nWe'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 than a thousand emojis, and on and on and on and on. This is just the basics, mostly to help you get acquainted with some of the things you can do here to make it more easy on the eyes, customizable, and enjoyable. If you don't enjoy it, just go away! We're not changing things to suit you! Get out of here loser! And no, you can't delete your account :na:\n\nI love you.<BR>*xoxo Carp* 💋"
ROLES={
"owner": "809580734578819072",
"admin": "846509661288267776",
"linked": "890342909390520382",
"1": "868129042346414132",
"2": "875569477671067688",
"3": "869434199575236649",
"4": "868140288013664296",
"5": "947236580794450010",
"6": "947236351445725204",
"7": "886781932430565418",
}
else:
NOTIFICATIONS_ID = 1
AUTOJANNY_ID = 2
SNAPPY_ID = 3
LONGPOSTBOT_ID = 4
ZOZBOT_ID = 5
AUTOPOLLER_ID = 6
AUTOBETTER_ID = 7
AUTOCHOICE_ID = 8
BASEDBOT_ID = 0
A_ID = 0
KIPPY_ID = 0
GIFT_NOTIF_ID = 9
PIZZASHILL_ID = 0
PIZZA_VOTERS = ()
IDIO_ID = 0
CARP_ID = 0
JOAN_ID = 0
MOOSE_ID = 0
AEVANN_ID = 9
HOMO_ID = 0
SOREN_ID = 0
Q_ID = 0
LAWLZ_ID = 0
LLM_ID = 0
DAD_ID = 0
MOM_ID = 0
DONGER_ID = 0
BUG_THREAD = 0
WELCOME_MSG = f"Welcome to {SITE_NAME}!"
ROLES={}
A_ID = 0
KIPPY_ID = 0
GIFT_NOTIF_ID = 9
PIZZASHILL_ID = 0
PIZZA_VOTERS = ()
IDIO_ID = 0
CARP_ID = 0
JOAN_ID = 0
MOOSE_ID = 0
AEVANN_ID = 9
HOMO_ID = 0
SOREN_ID = 0
Q_ID = 0
LAWLZ_ID = 0
LLM_ID = 0
DAD_ID = 0
MOM_ID = 0
DONGER_ID = 0
BUG_THREAD = 0
WELCOME_MSG = f"Welcome to {SITE_NAME}!"
ROLES={}
IMGUR_KEY = environ.get("IMGUR_KEY").strip()
PUSHER_ID = environ.get("PUSHER_ID", "").strip()
@ -615,39 +475,9 @@ AWARDS = {
},
}
if SITE_NAME == 'PCM':
PCM_AWARDS = {
"croag": {
"kind": "croag",
"title": "Croag",
"description": "Summons Croag on the post.",
"icon": "fas fa-head-side",
"color": "text-gold",
"price": 500
},
"toe": {
"kind": "toe",
"title": "Toe Hype",
"description": "Summons Blade's toe on the post.",
"icon": "fas fa-socks",
"color": "text-blue",
"price": 500
},
"crab": {
"kind": "crab",
"title": "Crab",
"description": "Rave time!",
"icon": "fas fa-crab",
"color": "text-danger",
"price": 4000
}
}
AWARDS = {**PCM_AWARDS, **AWARDS}
AWARDS2 = deepcopy(AWARDS)
for k, val in AWARDS.items():
if val['description'] == '???' and not (k == 'ghost' and SITE_NAME == 'PCM'): AWARDS2.pop(k)
if SITE == 'pcmemes.net' and k in ('ban','pizzashill','marsey','bird','grass','chud'): AWARDS2.pop(k)
if val['description'] == '???': AWARDS2.pop(k)
AWARDS3 = {}
@ -682,8 +512,7 @@ NOTIFIED_USERS = {
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>')
if SITE_NAME == 'rDrama': patron = 'Paypig'
else: patron = 'Patron'
patron = 'Patron'
REDDIT_NOTIFS = {
'idio3': IDIO_ID,
@ -717,16 +546,10 @@ marseys_const = [x[0] for x in db.query(Marsey.name).filter(Marsey.name!='chudse
marseys_const2 = marseys_const + ['chudsey','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','exclamationpoint','period','questionmark']
db.close()
if SITE_NAME == 'PCM':
valid_username_chars = 'a-zA-Z0-9_\-А'
valid_username_regex = re.compile("^[a-zA-Z0-9_\-А-я]{3,25}$", flags=re.A)
mention_regex = re.compile('(^|\s|<p>)@(([a-zA-Z0-9_\-А-я]){3,25})', flags=re.A)
mention_regex2 = re.compile('<p>@(([a-zA-Z0-9_\-А-я]){3,25})', flags=re.A)
else:
valid_username_chars = 'a-zA-Z0-9_\-'
valid_username_regex = re.compile("^[a-zA-Z0-9_\-]{3,25}$", flags=re.A)
mention_regex = re.compile('(^|\s|<p>)@(([a-zA-Z0-9_\-]){1,25})', flags=re.A)
mention_regex2 = re.compile('<p>@(([a-zA-Z0-9_\-]){1,25})', flags=re.A)
valid_username_chars = 'a-zA-Z0-9_\-'
valid_username_regex = re.compile("^[a-zA-Z0-9_\-]{3,25}$", flags=re.A)
mention_regex = re.compile('(^|\s|<p>)@(([a-zA-Z0-9_\-]){1,25})', flags=re.A)
mention_regex2 = re.compile('<p>@(([a-zA-Z0-9_\-]){1,25})', flags=re.A)
valid_password_regex = re.compile("^.{8,100}$", flags=re.A)

View file

@ -4,8 +4,7 @@ from .const import *
command_word = "!slots"
casino_word = "!slotsmb"
if SITE_NAME == 'rDrama': minimum_bet = 100
else: minimum_bet = 10
minimum_bet = 10
maximum_bet = INFINITY
payout_to_symbols = {
2: ["👣", "🍀", "🌈", "⭐️"],

View file

@ -132,42 +132,6 @@ def merge_all(v, id):
return redirect(user.url)
if SITE_NAME == 'PCM':
@app.get('/admin/sidebar')
@admin_level_required(3)
def get_sidebar(v):
try:
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
except:
sidebar = None
return render_template('admin/sidebar.html', v=v, sidebar=sidebar)
@app.post('/admin/sidebar')
@limiter.limit("1/second;30/minute;200/hour;1000/day")
@admin_level_required(3)
def post_sidebar(v):
text = request.values.get('sidebar', '').strip()
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'w+', encoding="utf-8") as f: f.write(text)
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
ma = ModAction(
kind="change_sidebar",
user_id=v.id,
)
g.db.add(ma)
g.db.commit()
return render_template('admin/sidebar.html', v=v, sidebar=sidebar, msg='Sidebar edited successfully!')
@app.post("/@<username>/make_admin")
@admin_level_required(3)
def make_admin(v, username):
@ -401,8 +365,6 @@ def remove_meme_admin(v, username):
@limiter.limit("1/day")
@admin_level_required(3)
def monthly(v):
if SITE_NAME == 'rDrama' and v.id != AEVANN_ID: abort (403)
data = {'access_token': GUMROAD_TOKEN}
emails = [x['email'] for x in requests.get(f'https://api.gumroad.com/v2/products/{GUMROAD_ID}/subscribers', data=data, timeout=5).json()["subscribers"]]
@ -420,16 +382,6 @@ def monthly(v):
send_repeatable_notification(u.id, f"@{v.username} has given you {procoins} Marseybux for the month of {month}! You can use them to buy awards in the [shop](/shop).")
else: print(u.username)
if request.host == 'pcmemes.net':
u = g.db.query(User).filter_by(id=KIPPY_ID).one()
u.procoins += 50000
g.db.add(u)
if request.host == 'rdrama.net':
u = g.db.query(User).filter_by(id=A_ID).one()
u.procoins += 25000
g.db.add(u)
ma = ModAction(
kind="monthly",
user_id=v.id

View file

@ -597,8 +597,6 @@ def award_comment(cid, v):
@app.get("/admin/awards")
@admin_level_required(2)
def admin_userawards_get(v):
if request.host == 'pcmemes.net' and v.admin_level < 3: abort(403)
if v.admin_level != 3:
return render_template("admin/awards.html", awards=list(AWARDS3.values()), v=v)
@ -608,8 +606,6 @@ def admin_userawards_get(v):
@limiter.limit("1/second;30/minute;200/hour;1000/day")
@admin_level_required(2)
def admin_userawards_post(v):
if request.host == 'pcmemes.net' and v.admin_level < 3: abort(403)
try: u = request.values.get("username").strip()
except: abort(404)

View file

@ -82,8 +82,6 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None, sub=None):
if not pid:
if comment.parent_submission: pid = comment.parent_submission
elif SITE_NAME == 'rDrama': pid = 6489
elif request.host == 'pcmemes.net': pid = 2487
else: pid = 1
try: pid = int(pid)
@ -331,7 +329,7 @@ def api_comment(v):
if parent.author.any_block_exists(v) and v.admin_level < 2:
return {"error": "You can't reply to users who have blocked you, or users you have blocked."}, 403
is_bot = bool(request.headers.get("Authorization")) or (SITE == 'pcmemes.net' and v.id == SNAPPY_ID)
is_bot = bool(request.headers.get("Authorization"))
if '!slots' not in body.lower() and '!blackjack' not in body.lower() and '!wordle' not in body.lower() and parent_post.id not in ADMIGGERS and not is_bot and not v.marseyawarded and AGENDAPOSTER_PHRASE not in body.lower() and len(body) > 10:
now = int(time.time())
@ -421,39 +419,6 @@ def api_comment(v):
g.db.add(c_choice)
if request.host == 'pcmemes.net' and c.body.lower().startswith("based"):
pill = based_regex.match(body)
if level == 1: basedguy = get_account(parent_post.author_id)
else: basedguy = get_account(c.parent_comment.author_id)
basedguy.basedcount += 1
if pill:
if basedguy.pills: basedguy.pills += f", {pill.group(1)}"
else: basedguy.pills += f"{pill.group(1)}"
g.db.add(basedguy)
body2 = f"@{basedguy.username}'s Based Count has increased by 1. Their Based Count is now {basedguy.basedcount}."
if basedguy.pills: body2 += f"\n\nPills: {basedguy.pills}"
body_based_html = sanitize(body2)
c_based = Comment(author_id=BASEDBOT_ID,
parent_submission=parent_submission,
distinguish_level=6,
parent_comment_id=c.id,
level=level+1,
is_bot=True,
body_html=body_based_html,
top_comment_id=c.top_comment_id,
ghost=parent_post.ghost
)
g.db.add(c_based)
g.db.flush()
n = Notification(comment_id=c_based.id, user_id=v.id)
g.db.add(n)
if parent_post.id not in ADMIGGERS:
if v.agendaposter and not v.marseyawarded and AGENDAPOSTER_PHRASE not in c.body.lower():
@ -487,118 +452,6 @@ def api_comment(v):
g.db.add(n)
if SITE_NAME == 'rDrama' and len(c.body) >= 1000 and "<" not in body and "</blockquote>" not in body_html:
body = random.choice(LONGPOST_REPLIES)
if body.startswith(''):
body = body[1:]
vote = CommentVote(user_id=LONGPOSTBOT_ID,
vote_type=-1,
comment_id=c.id,
real = True
)
g.db.add(vote)
c.downvotes = 1
body_html2 = sanitize(body)
c2 = Comment(author_id=LONGPOSTBOT_ID,
parent_submission=parent_submission,
parent_comment_id=c.id,
level=level+1,
is_bot=True,
body_html=body_html2,
top_comment_id=c.top_comment_id,
ghost=parent_post.ghost
)
g.db.add(c2)
longpostbot = g.db.query(User).filter_by(id = LONGPOSTBOT_ID).one_or_none()
longpostbot.comment_count += 1
longpostbot.coins += 1
g.db.add(longpostbot)
g.db.flush()
n = Notification(comment_id=c2.id, user_id=v.id)
g.db.add(n)
if SITE_NAME == 'rDrama' and random.random() < 0.001:
body = "zoz"
body_html2 = sanitize(body)
c2 = Comment(author_id=ZOZBOT_ID,
parent_submission=parent_submission,
parent_comment_id=c.id,
level=level+1,
is_bot=True,
body_html=body_html2,
top_comment_id=c.top_comment_id,
ghost=parent_post.ghost,
distinguish_level=6
)
g.db.add(c2)
g.db.flush()
n = Notification(comment_id=c2.id, user_id=v.id)
g.db.add(n)
body = "zle"
body_html2 = sanitize(body)
c3 = Comment(author_id=ZOZBOT_ID,
parent_submission=parent_submission,
parent_comment_id=c2.id,
level=level+2,
is_bot=True,
body_html=body_html2,
top_comment_id=c.top_comment_id,
ghost=parent_post.ghost,
distinguish_level=6
)
g.db.add(c3)
g.db.flush()
body = "zozzle"
body_html2 = sanitize(body)
c4 = Comment(author_id=ZOZBOT_ID,
parent_submission=parent_submission,
parent_comment_id=c3.id,
level=level+3,
is_bot=True,
body_html=body_html2,
top_comment_id=c.top_comment_id,
ghost=parent_post.ghost,
distinguish_level=6
)
g.db.add(c4)
zozbot = g.db.query(User).filter_by(id = ZOZBOT_ID).one_or_none()
zozbot.comment_count += 3
zozbot.coins += 3
g.db.add(zozbot)
if not v.shadowbanned:
notify_users = NOTIFY_USERS(body, v)

View file

@ -17,9 +17,6 @@ def join_discord(v):
if v.shadowbanned: return {"error": "Internal server error"}
if SITE_NAME == 'rDrama' and v.admin_level < 2 and v.patron == 0 and v.truecoins < 150:
return "You must receive 150 upvotes/downvotes from other users before being able to join the Discord server."
now=int(time.time())
state=generate_hash(f"{now}+{v.id}+discord")

View file

@ -176,11 +176,11 @@ def front_all(v, sub=None, subdomain=None):
if v:
defaultsorting = v.defaultsorting
if sub or SITE_NAME != 'rDrama': defaulttime = 'all'
defaulttime = 'all'
else: defaulttime = v.defaulttime
else:
defaultsorting = "new"
if sub or SITE_NAME != 'rDrama': defaulttime = 'all'
defaulttime = 'all'
else: defaulttime = defaulttimefilter
sort=request.values.get("sort", defaultsorting)
@ -344,8 +344,7 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, ccmode="false"
if not (v and v.shadowbanned):
posts = posts.join(User, User.id == Submission.author_id).filter(User.shadowbanned == None)
if request.host == 'rdrama.net': num = 5
else: num = 1
num = 1
if sort == "hot":
ti = int(time.time()) + 3600

View file

@ -20,8 +20,7 @@ from shutil import copyfile
from sys import stdout
if SITE_NAME == 'PCM': snappyquotes = []
else: snappyquotes = [f':#{x}:' for x in marseys_const2]
snappyquotes = [f':#{x}:' for x in marseys_const2]
if path.exists(f'snappy_{SITE_NAME}.txt'):
with open(f'snappy_{SITE_NAME}.txt', "r", encoding="utf-8") as f:
@ -89,9 +88,7 @@ def publish(pid, v):
cache.delete_memoized(frontlist)
cache.delete_memoized(User.userpagelisting)
if SITE == 'cringetopia.org':
send_cringetopia_message(post.permalink)
elif v.admin_level > 0 and ("[changelog]" in post.title.lower() or "(changelog)" in post.title.lower()):
if v.admin_level > 0 and ("[changelog]" in post.title.lower() or "(changelog)" in post.title.lower()):
send_discord_message(post.permalink)
cache.delete_memoized(changeloglist)
@ -703,98 +700,6 @@ def thumbnail_thread(pid):
db.add(post)
db.commit()
if SITE_NAME == 'rDrama':
for t in ("submission","comment"):
word = random.choice(('rdrama','marsey'))
try:
data = requests.get(f'https://api.pushshift.io/reddit/{t}/search?html_decode=true&q={word}&size=1', timeout=5).json()["data"]
except: break
for i in data:
if i["subreddit"] == 'PokemonGoRaids': continue
body_html = f'''<p>New site mention: <a href="https://old.reddit.com{i["permalink"]}?context=89" rel="nofollow noopener noreferrer" target="_blank">https://old.reddit.com{i["permalink"]}?context=89</a></p>'''
existing_comment = db.query(Comment.id).filter_by(author_id=NOTIFICATIONS_ID, parent_submission=None, body_html=body_html).one_or_none()
if existing_comment: break
new_comment = Comment(author_id=NOTIFICATIONS_ID,
parent_submission=None,
body_html=body_html,
distinguish_level=6
)
db.add(new_comment)
db.flush()
new_comment.top_comment_id = new_comment.id
admins = db.query(User).filter(User.admin_level > 0).all()
for admin in admins:
notif = Notification(comment_id=new_comment.id, user_id=admin.id)
db.add(notif)
k,val = random.choice(tuple(REDDIT_NOTIFS.items()))
try:
data = requests.get(f'https://api.pushshift.io/reddit/{t}/search?html_decode=true&q={k}&size=1', timeout=5).json()["data"]
except: break
for i in data:
body_html = f'''<p>New mention of you: <a href="https://old.reddit.com{i["permalink"]}?context=89" rel="nofollow noopener noreferrer" target="_blank">https://old.reddit.com{i["permalink"]}?context=89</a></p>'''
existing_comment = db.query(Comment.id).filter_by(author_id=NOTIFICATIONS_ID, parent_submission=None,body_html=body_html).one_or_none()
if existing_comment: break
new_comment = Comment(author_id=NOTIFICATIONS_ID,
parent_submission=None,
body_html=body_html,
distinguish_level=6
)
db.add(new_comment)
db.flush()
new_comment.top_comment_id = new_comment.id
notif = Notification(comment_id=new_comment.id, user_id=val)
db.add(notif)
if SITE == 'pcmemes.net':
for t in ("submission","comment"):
try:
data = requests.get(f'https://api.pushshift.io/reddit/{t}/search?html_decode=true&q=pcmemes.net&size=1', timeout=5).json()["data"]
except: break
for i in data:
body_html = f'''<p>New site mention: <a href="https://old.reddit.com{i["permalink"]}?context=89" rel="nofollow noopener noreferrer" target="_blank">https://old.reddit.com{i["permalink"]}?context=89</a></p>'''
existing_comment = db.query(Comment.id).filter_by(author_id=NOTIFICATIONS_ID, parent_submission=None, body_html=body_html).one_or_none()
if existing_comment: break
new_comment = Comment(author_id=NOTIFICATIONS_ID,
parent_submission=None,
body_html=body_html,
distinguish_level=6
)
db.add(new_comment)
db.flush()
new_comment.top_comment_id = new_comment.id
admins = db.query(User).filter(User.admin_level > 2).all()
for admin in admins:
notif = Notification(comment_id=new_comment.id, user_id=admin.id)
db.add(notif)
db.commit()
db.close()
stdout.flush()
@ -1099,7 +1004,7 @@ def submit_post(v, sub=None):
if embed and len(embed) > 1500: embed = None
is_bot = bool(request.headers.get("Authorization")) or (SITE == 'pcmemes.net' and v.id == SNAPPY_ID)
is_bot = bool(request.headers.get("Authorization"))
if request.values.get("ghost") and v.coins >= 100:
v.coins -= 100
@ -1274,9 +1179,7 @@ def submit_post(v, sub=None):
cache.delete_memoized(frontlist)
cache.delete_memoized(User.userpagelisting)
if SITE == 'cringetopia.org':
send_cringetopia_message(post.permalink)
elif v.admin_level > 0 and ("[changelog]" in post.title.lower() or "(changelog)" in post.title.lower()) and not post.private:
if v.admin_level > 0 and ("[changelog]" in post.title.lower() or "(changelog)" in post.title.lower()) and not post.private:
send_discord_message(post.permalink)
cache.delete_memoized(changeloglist)

View file

@ -37,22 +37,13 @@ def logged_out(old = ""):
@app.get("/marseys")
@auth_required
def marseys(v):
if SITE_NAME == 'rDrama':
marseys = g.db.query(Marsey, User).join(User, User.id==Marsey.author_id)
sort = request.values.get("sort", "usage")
if sort == "usage": marseys = marseys.order_by(Marsey.count.desc(), User.username)
else: marseys = marseys.order_by(User.username, Marsey.count.desc())
else:
marseys = g.db.query(Marsey).order_by(Marsey.count.desc())
marseys = g.db.query(Marsey).order_by(Marsey.count.desc())
return render_template("marseys.html", v=v, marseys=marseys)
@app.get("/marsey_list")
@cache.memoize(timeout=600, make_name=make_name)
def marsey_list():
if SITE_NAME == 'rDrama':
marseys = [f"{x.name} : {y} {x.tags}" for x, y in g.db.query(Marsey, User.username).join(User, User.id==Marsey.author_id).order_by(Marsey.count.desc())]
else:
marseys = [f"{x.name} : {x.tags}" for x in g.db.query(Marsey).order_by(Marsey.count.desc())]
marseys = [f"{x.name} : {x.tags}" for x in g.db.query(Marsey).order_by(Marsey.count.desc())]
return str(marseys).replace("'",'"')
@ -112,94 +103,6 @@ def participation_stats(v):
"users who posted, commented, or voted in the past 7 days": len(active_users),
}
if SITE_NAME == 'rDrama':
furries1 = g.db.query(User.id).filter(User.house.like('Furry%')).count()
femboys1 = g.db.query(User.id).filter(User.house.like('Femboy%')).count()
vampires1 = g.db.query(User.id).filter(User.house.like('Vampire%')).count()
racists1 = g.db.query(User.id).filter(User.house.like('Racist%')).count()
furries2 = g.db.query(func.sum(User.truecoins)).filter(User.house.like('Furry%')).scalar()
femboys2 = g.db.query(func.sum(User.truecoins)).filter(User.house.like('Femboy%')).scalar()
vampires2 = g.db.query(func.sum(User.truecoins)).filter(User.house.like('Vampire%')).scalar()
racists2 = g.db.query(func.sum(User.truecoins)).filter(User.house.like('Racist%')).scalar()
stats2 = {"House furry members": furries1,
"House femboy members": femboys1,
"House vampire members": vampires1,
"House racist members": racists1,
"House furry total truescore": furries2,
"House femboy total truescore": femboys2,
"House vampire total truescore": vampires2,
"House racist total truescore": racists2,
}
stats.update(stats2)
ids = (NOTIFICATIONS_ID, AUTOJANNY_ID, SNAPPY_ID, LONGPOSTBOT_ID, ZOZBOT_ID)
bots = g.db.query(User).filter(User.id.in_(ids))
for u in bots:
g.db.add(u)
if u.patron_utc and u.patron_utc < time.time():
u.patron = 0
u.patron_utc = 0
send_repeatable_notification(u.id, "Your paypig status has expired!")
if u.discord_id: remove_role(v, "1")
if u.unban_utc and u.unban_utc < time.time():
u.is_banned = 0
u.unban_utc = 0
u.ban_evade = 0
send_repeatable_notification(u.id, "You have been unbanned!")
if u.agendaposter and u.agendaposter < time.time():
u.agendaposter = 0
send_repeatable_notification(u.id, "Your chud theme has expired!")
badge = u.has_badge(28)
if badge: g.db.delete(badge)
if u.flairchanged and u.flairchanged < time.time():
u.flairchanged = None
send_repeatable_notification(u.id, "Your flair lock has expired. You can now change your flair!")
badge = u.has_badge(96)
if badge: g.db.delete(badge)
if u.marseyawarded and u.marseyawarded < time.time():
u.marseyawarded = None
send_repeatable_notification(u.id, "Your marsey award has expired!")
badge = u.has_badge(98)
if badge: g.db.delete(badge)
if u.longpost and u.longpost < time.time():
u.longpost = None
send_repeatable_notification(u.id, "Your pizzashill award has expired!")
badge = u.has_badge(97)
if badge: g.db.delete(badge)
if u.bird and u.bird < time.time():
u.bird = None
send_repeatable_notification(u.id, "Your bird site award has expired!")
badge = u.has_badge(95)
if badge: g.db.delete(badge)
if u.progressivestack and u.progressivestack < time.time():
u.progressivestack = None
send_repeatable_notification(u.id, "Your progressive stack has expired!")
badge = u.has_badge(94)
if badge: g.db.delete(badge)
if u.rehab and u.rehab < time.time():
u.rehab = None
send_repeatable_notification(u.id, "Your rehab has finished!")
badge = u.has_badge(109)
if badge: g.db.delete(badge)
if u.deflector and u.deflector < time.time():
u.deflector = None
send_repeatable_notification(u.id, "Your deflector has expired!")
g.db.commit()
return render_template("admin/content_stats.html", v=v, title="Content Statistics", data=stats)

View file

@ -223,14 +223,10 @@ def remove_mod(v, sub):
@app.get("/create_sub")
@is_not_permabanned
def create_sub(v):
if SITE_NAME == 'rDrama' and v.admin_level < 3: abort(403)
if request.host == 'rdrama.net': cost = 0
else:
num = v.subs_created + 1
for a in v.alts:
num += a.subs_created
cost = num * 100
num = v.subs_created + 1
for a in v.alts:
num += a.subs_created
cost = num * 100
return render_template("sub/create_sub.html", v=v, cost=cost)
@ -238,18 +234,14 @@ def create_sub(v):
@app.post("/create_sub")
@is_not_permabanned
def create_sub2(v):
if SITE_NAME == 'rDrama' and v.admin_level < 3: abort(403)
name = request.values.get('name')
if not name: abort(400)
name = name.strip().lower()
if request.host == 'rdrama.net': cost = 0
else:
num = v.subs_created + 1
for a in v.alts:
num += a.subs_created
cost = num * 100
num = v.subs_created + 1
for a in v.alts:
num += a.subs_created
cost = num * 100
if not valid_sub_regex.fullmatch(name):
return render_template("sub/create_sub.html", v=v, cost=cost, error="Sub name not allowed."), 400

View file

@ -478,13 +478,8 @@ def leaderboard(v):
sq = g.db.query(User.id, func.rank().over(order_by=User.received_award_count.desc()).label("rank")).subquery()
pos5 = g.db.query(sq.c.id, sq.c.rank).filter(sq.c.id == v.id).limit(1).one()[1]
if request.host == 'pcmemes.net':
users6 = users.order_by(User.basedcount.desc()).limit(25).all()
sq = g.db.query(User.id, func.rank().over(order_by=User.basedcount.desc()).label("rank")).subquery()
pos6 = g.db.query(sq.c.id, sq.c.rank).filter(sq.c.id == v.id).limit(1).one()[1]
else:
users6 = None
pos6 = None
users6 = None
pos6 = None
users7 = users.order_by(User.coins_spent.desc()).limit(25).all()
sq = g.db.query(User.id, func.rank().over(order_by=User.coins_spent.desc()).label("rank")).subquery()
@ -509,16 +504,8 @@ def leaderboard(v):
if pos11[1] < 25 and v not in (x[0] for x in users11):
pos11 = (26, pos11[1])
if SITE_NAME == 'rDrama':
sq = g.db.query(Marsey.author_id, func.count(Marsey.author_id).label("count"), func.rank().over(order_by=func.count(Marsey.author_id).desc()).label("rank")).group_by(Marsey.author_id).subquery()
users12 = g.db.query(User, sq.c.count).join(sq, User.id==sq.c.author_id).order_by(sq.c.count.desc())
pos12 = g.db.query(User.id, sq.c.rank, sq.c.count).join(sq, User.id==sq.c.author_id).filter(User.id == v.id).one_or_none()
if pos12: pos12 = (pos12[1],pos12[2])
else: pos12 = (users12.count()+1, 0)
users12 = users12.limit(25).all()
else:
users12 = None
pos12 = None
users12 = None
pos12 = None
try:
pos13 = [x[0].id for x in users13].index(v.id)

View file

@ -51,13 +51,6 @@
<li><a href="/daily_chart">Daily Stat Chart</a></li>
</ul>
{% if SITE_NAME == 'PCM' %}
<h4>Configuration</h4>
<ul>
<li><a href="/admin/sidebar">Edit Sidebar</a></li>
</ul>
{% endif %}
{% if v.admin_level > 2 %}
<pre></pre>
<div class="custom-control custom-switch">

View file

@ -63,7 +63,5 @@
</form>
<pre></pre>
{% if SITE_NAME != 'rDrama' or v.id == AEVANN_ID %}
<div><a class="btn btn-danger" role="button" onclick="post_toast(this,'/admin/monthly')">Grant Monthly Marseybux</a></div>
{% endif %}
<div><a class="btn btn-danger" role="button" onclick="post_toast(this,'/admin/monthly')">Grant Monthly Marseybux</a></div>
{% endblock %}

View file

@ -431,7 +431,7 @@
<a class="btn caction nobackground px-1 text-muted" href="{{c.permalink}}"><i class="fas fa-book-open"></i>Context</a>
<button class="btn caction py-0 nobackground px-1 text-muted copy-link" data-clipboard-text="{% if request.host == 'rdrama.net' %}https://chapotraphouse.club{{c.shortlink}}{% else %}{{c.permalink}}{% endif %}"><i class="fas fa-copy"></i>Copy link</button>
<button class="btn caction py-0 nobackground px-1 text-muted copy-link" data-clipboard-text="{{c.permalink}}"><i class="fas fa-copy"></i>Copy link</button>
{% if v %}
<button class="btn caction py-0 nobackground px-1 text-muted" role="button" onclick="openReplyBox('reply-to-{{c.id}}')"><i class="fas fa-reply" aria-hidden="true"></i>Reply</button>
@ -635,7 +635,7 @@
<a class="list-group-item" href="{{c.permalink}}"><i class="fas fa-book-open mr-2"></i>Context</a>
<a role="button" class="list-group-item copy-link" data-bs-dismiss="modal" data-clipboard-text="{% if request.host == 'rdrama.net' %}https://chapotraphouse.club{{c.shortlink}}{% else %}{{c.permalink}}{% endif %}"><i class="fas fa-copy mr-2"></i>Copy link</a>
<a role="button" class="list-group-item copy-link" data-bs-dismiss="modal" data-clipboard-text="{{c.permalink}}"><i class="fas fa-copy mr-2"></i>Copy link</a>
{% if v %}
<a role="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportCommentModal" onclick="report_commentModal('{{c.id}}','{{c.author_name}}')" class="list-group-item"><i class="fas fa-flag mr-2"></i>Report</a>

View file

@ -52,18 +52,6 @@
</style>
{% endif %}
{% if SITE_NAME == 'rDrama' %}
<style>
.mod:before {
content: '(((';
}
.mod:after {
content: ')))';
}
</style>
{% endif %}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -239,7 +227,7 @@
</head>
<body id="{% if request.path != '/comments' %}{% block pagetype %}frontpage{% endblock %}{% endif %}" {% if SITE_NAME == 'rDrama' and v and (v.is_banned or v.agendaposter) %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/anime/1.webp?v=3) center center fixed; background-color: var(--background)"{% elif v and v.background %}style="{% if path != '/formatting' %}overflow-x: hidden; {% endif %} background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
<body id="{% if request.path != '/comments' %}{% block pagetype %}frontpage{% endblock %}{% endif %}" {% if v and v.background %}style="{% if path != '/formatting' %}overflow-x: hidden; {% endif %} background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
{% block Banner %}
{% if '@' not in request.path %}

View file

@ -8,13 +8,6 @@
<li class="nav-item">
<a class="nav-link active emojitab" data-bs-toggle="tab" href="#emoji-tab-favorite">Favorite</a>
</li>
{% if SITE_NAME == 'Cringetopia' %}
<li class="nav-item">
<a class="nav-link emojitab" data-bs-toggle="tab" href="#emoji-tab-cringetopia">Cringetopia</a>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link emojitab" data-bs-toggle="tab" href="#emoji-tab-marsey">Marsey</a>
</li>
@ -62,11 +55,6 @@
<div class="tab-pane fade show active" id="emoji-tab-favorite">
<div class="d-flex flex-wrap py-3 pl-2" id="EMOJIS_favorite"></div>
</div>
{% if SITE_NAME == 'Cringetopia' %}
<div class="tab-pane fade" id="emoji-tab-cringetopia">
<div class="d-flex flex-wrap py-3 pl-2" id="EMOJIS_cringetopia"></div>
</div>
{% endif %}
<div class="tab-pane fade" id="emoji-tab-marsey">
<div class="d-flex flex-wrap py-3 pl-2" id="EMOJIS_marsey"></div>
</div>

View file

@ -12,7 +12,7 @@
<div class="text-center px-3 my-8">
<img alt=":#marseymerchant:" loading="lazy" class="mb-2" src="/e/marseymerchant.webp">
<h1 class="h5">401 Not Authorized</h1>
<p class="text-muted">This page is only available to {% if SITE_NAME == 'rDrama' %}paypigs{% else %}patrons{% endif %}:</p>
<p class="text-muted">This page is only available to patrons:</p>
<a rel="nofollow noopener noreferrer" href="{{config('GUMROAD_LINK')}}">{{config('GUMROAD_LINK')}}</a>
</div>
</div>

View file

@ -1,38 +1,23 @@
<nav class="shadow shadow-md fixed-top">
{% if SITE_NAME == 'rDrama' %}
<style>
body {padding-top: 85.88px !important}
@media (max-width: 767.98px) {
body {
padding-top: 69.55px !important
}
<style>
body {padding-top: 60.89px !important}
@media (max-width: 767.98px) {
body {
padding-top: 44.55px !important
}
</style>
{% else %}
<style>
body {padding-top: 60.89px !important}
@media (max-width: 767.98px) {
body {
padding-top: 44.55px !important
}
}
</style>
{% endif %}
{% if SITE_NAME == 'rDrama' %}
{% include "journoid_banner.html" %}
{% endif %}
}
</style>
<div class="navbar navbar-expand-md navbar-light" id="navbar">
<div class="container-fluid" style="padding:0;">
<a href="/" class="navbar-brand mr-auto {% if SITE_NAME in ('PCM','WPD') and not sub %}flex-grow-1{% endif %}">
<a href="/" class="navbar-brand mr-auto">
<img alt="header icon" height=33 src="/assets/images/{{SITE_NAME}}/headericon.webp?v=1019">
</a>
{% if sub %}
<a href="/h/{{sub.name}}" class="font-weight-bold ml-1 flex-grow-1 mt-1" style="font-size:max(14px,1.2vw)">/h/{{sub.name}}</a>
{% elif SITE_NAME not in ('PCM','WPD') %}
{% else %}
<style>
{% if g.webview %}
@media (min-width: 480px) {
@ -173,17 +158,8 @@
<a class="dropdown-item" rel="nofollow noopener noreferrer" href="https://github.com/Aevann1/rDrama"><i class="fab fa-github fa-fw mr-3"></i>Source code</a>
{% if SITE_NAME in ['rDrama', 'PCM'] %}
<a class="dropdown-item" rel="nofollow noopener noreferrer" href="/report_bugs"><i class="fas fa-bug fa-fw mr-3"></i>Bugs/Suggestions</a>
{% endif %}
<a class="dropdown-item" rel="nofollow noopener noreferrer" href="{{config('GUMROAD_LINK')}}"><i class="fas fa-dollar-sign fa-fw mr-3"></i>Donate</a>
{% if SITE_NAME == 'rDrama' %}
<a class="dropdown-item" href="/discord"><i class="fab fa-discord fa-fw mr-3"></i>Discord</a>
{% endif %}
{% if SITE_NAME != 'Cringetopia' %}
<a class="dropdown-item" rel="nofollow noopener noreferrer" href="{{config('GUMROAD_LINK')}}"><i class="fas fa-dollar-sign fa-fw mr-3"></i>Donate</a>
{% endif %}
{% if SITE_NAME == 'rDrama' %}<a class="dropdown-item" href="/archives"><i class="fas fa-book fa-fw mr-3"></i>Archives</a>{% endif %}
<a class="dropdown-item" href="/contact"><i class="fas fa-file-signature fa-fw mr-3"></i>Contact us</a>
</div>
<div class="px-2">
@ -233,13 +209,8 @@
<a class="nav-item nav-link" rel="nofollow noopener noreferrer" href="https://github.com/Aevann1/rDrama"><i class="fab fa-github fa-fw mr-3"></i>Source code</a>
{% if SITE_NAME == 'rDrama' %}
<a class="nav-item nav-link" href="/discord"><i class="fab fa-discord fa-fw mr-3"></i>Discord</a>
{% endif %}
{% if SITE_NAME != 'Cringetopia' %}
<a class="nav-item nav-link" rel="nofollow noopener noreferrer" href="{{config('GUMROAD_LINK')}}"><i class="fas fa-dollar-sign fa-fw mr-3"></i>Donate</a>
{% endif %}
{% if SITE_NAME == 'rDrama' %}<a class="nav-item nav-link" href="/archives"><i class="fas fa-book fa-fw mr-3"></i>Archives</a>{% endif %}
<a class="nav-item nav-link" rel="nofollow noopener noreferrer" href="{{config('GUMROAD_LINK')}}"><i class="fas fa-dollar-sign fa-fw mr-3"></i>Donate</a>
<a class="nav-item nav-link" href="/contact"><i class="fas fa-file-signature fa-fw mr-3"></i>Contact us</a>
<li class="nav-item border-top border-bottom mt-2 pt-2">

View file

@ -56,16 +56,6 @@
{% block navbar %}
<div class="d-flex align-items-center">
{% if v and SITE_NAME == 'rDrama' %}
{% if v.paid_dues %}
{% if ccmode=="true"%}
<a data-bs-toggle="tooltip" data-bs-placement="bottom" title="Only show country club posts" class="btn btn-primary text-primary mx-2" href="?sort={{sort}}&t={{t}}&ccmode=false"><i class="fas fa-golf-club mr-2 "></i>CC</a>
{% else %}
<a data-bs-toggle="tooltip" data-bs-placement="bottom" title="Only show country club posts" class="btn btn-secondary mx-2" href="?sort={{sort}}&t={{t}}&ccmode=true"><i class="fas fa-golf-club mr-2 "></i>CC</a>
{% endif %}
{% endif %}
{% endif %}
<div class="dropdown dropdown-actions mx-2">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{% if t=="hour" %}<i class="fas fa-clock mr-2 "></i>

View file

@ -11,30 +11,17 @@
<th>Name</th>
<th>Marsey</th>
<th><a href="?sort=usage">Usage</a></th>
{% if SITE_NAME == 'rDrama' %}<th><a href="?sort=author">Author</a></th>{% endif %}
</tr>
</thead>
<tbody id="followers-table">
{% if SITE_NAME == 'rDrama' %}
{% for marsey, author in marseys %}
<tr>
<td>{{loop.index}}</td>
<td>{{marsey.name}}</td>
<td><img class="marsey" loading="lazy" data-bs-toggle="tooltip" alt=":{{marsey.name}}:" title=":{{marsey.name}}:" src="/e/{{marsey.name}}.webp"></td>
<td>{{marsey.count}}</td>
<td><a style="color:#{{author.namecolor}};font-weight:bold" href="/@{{author.username}}"><img loading="lazy" src="{{author.profile_url}}" class="pp20"><span {% if author.patron %}class="patron" style="background-color:#{{author.namecolor}}"{% endif %}>{{author.username}}</span></a></td>
</tr>
{% endfor %}
{% else %}
{% for marsey in marseys %}
<tr>
<td>{{loop.index}}</td>
<td>{{marsey.name}}</td>
<td><img class="marsey" loading="lazy" data-bs-toggle="tooltip" alt=":{{marsey.name}}:" title=":{{marsey.name}}:" src="/e/{{marsey.name}}.webp"></td>
<td>{{marsey.count}}</td>
</tr>
{% endfor %}
{% endif %}
{% for marsey in marseys %}
<tr>
<td>{{loop.index}}</td>
<td>{{marsey.name}}</td>
<td><img class="marsey" loading="lazy" data-bs-toggle="tooltip" alt=":{{marsey.name}}:" title=":{{marsey.name}}:" src="/e/{{marsey.name}}.webp"></td>
<td>{{marsey.count}}</td>
</tr>
{% endfor %}
</tbody>
</table>

View file

@ -12,7 +12,7 @@
<a class="list-inline-item text-muted d-none d-md-inline-block" role="button" data-bs-toggle="modal" data-bs-target="#awardModal" data-url='/award_post/{{p.id}}'><i class="fas fa-gift fa-fw"></i>Give Award</a>
{% endif %}
<a class="list-inline-item copy-link" role="button" data-clipboard-text="{% if request.host == 'rdrama.net' %}https://chapotraphouse.club{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy"></i>Copy link</a>
<a class="list-inline-item copy-link" role="button" data-clipboard-text="{{p.permalink}}"><i class="fas fa-copy"></i>Copy link</a>
{% if v %}
<a id="subscribe-{{p.id}}" class="{% if p.id in v.subscribed_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/subscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')"><i class="fas fa-eye"></i>Subscribe</a>

View file

@ -8,7 +8,7 @@
{% if not p.ghost or v.id == AEVANN_ID %}<a class="btn-block" href="/votes?link={{p.fullname}}"><button class="nobackground btn btn-link btn-block btn-lg text-left text-muted"><i class="fas fa-arrows-v text-center text-muted mr-3"></i>Votes</button></a>{% endif %}
<button data-bs-dismiss="modal" class="copy-link nobackground btn btn-link btn-block btn-lg text-left text-muted" data-clipboard-text="{% if request.host == 'rdrama.net' %}https://chapotraphouse.club{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="far fa-copy text-center text-muted mr-3"></i>Copy link</button>
<button data-bs-dismiss="modal" class="copy-link nobackground btn btn-link btn-block btn-lg text-left text-muted" data-clipboard-text="{{p.permalink}}"><i class="far fa-copy text-center text-muted mr-3"></i>Copy link</button>
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')"><i class="far fa-flag text-center text-muted mr-3"></i>Report</button>

View file

@ -59,7 +59,7 @@
{% endif %}
</head>
<body id="settings" {% if SITE_NAME == 'rDrama' and v and (v.is_banned or v.agendaposter) %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/anime/1.webp?v=3) center center fixed; background-color: var(--background)"{% elif v and v.background %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
<body id="settings" {% if v and v.background %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
{% include "header.html" %}
<div class="container">

View file

@ -48,7 +48,7 @@
{% endif %}
</head>
<body id="settings2" {% if SITE_NAME == 'rDrama' and v and (v.is_banned or v.agendaposter) %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/anime/1.webp?v=3) center center fixed; background-color: var(--background)"{% elif v and v.background %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
<body id="settings2" {% if v and v.background %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
{% include "header.html" %}

View file

@ -23,58 +23,6 @@
<div class="settings">
{% if SITE_NAME == 'rDrama' %}
<h2 class="h5" name="referral">House</h2>
<div class="settings-section rounded">
<div class="d-lg-flex border-bottom">
<div class="title w-lg-25">
<label for="theme">House</label>
</div>
<div class="body w-lg-100">
{% if v.house %}
{% set cost=2000 %}
<p>Change your house (cost: {{cost}} coins or marseybux).</p>
{% else %}
{% set cost=500 %}
<p>Join a house (cost: {{cost}} coins or marseybux).</p>
{% endif %}
<div class="input-group mb2">
<select {% if v.coins < cost and v.procoins < cost %}disabled{% endif %} autocomplete="off" id='house' class="form-control" form="profile-settings" name="house" onchange="post_toast(this,'/settings/profile?house='+document.getElementById('house').value, '1')">
{% for entry in ("None","Furry","Femboy","Vampire","Racist") %}
<option value="{{entry}}" {% if v.house==entry %} selected {% endif %}>
{{entry}}
</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
{% endif %}
<h2 class="h5" name="referral">Theme</h2>
<div class="settings-section rounded">
@ -129,11 +77,7 @@
<div class="input-group mb2">
<select autocomplete="off" id='theme' class="form-control" form="profile-settings" name="theme" onchange="post_toast(this,'/settings/profile?theme='+document.getElementById('theme').value, '1')">
{% if SITE_NAME == 'rDrama' %}
{% set themes = ["dramblr", "classic", "classic_dark", "transparent", "win98", "dark", "light", "coffee", "tron", "4chan", "midnight"] %}
{% else %}
{% set themes = ["dramblr", "reddit", "transparent", "win98", "dark", "light", "coffee", "tron", "4chan", "midnight"] %}
{% endif %}
{% set themes = ["dramblr", "reddit", "transparent", "win98", "dark", "light", "coffee", "tron", "4chan", "midnight"] %}
{% for entry in themes %}
<option value="{{entry}}" {% if v.theme==entry %} selected {% endif %}>
@ -310,41 +254,6 @@
</div>
{% if SITE_NAME == 'rDrama' %}
<h2 class="h5" name="referral">Linked Accounts</h2>
<p class="text-small text-muted">Manage your connections to other services.</p>
<div class="settings-section rounded">
<div class="d-lg-flex">
<div class="title w-lg-25">
<label>Discord</label>
</div>
<div class="body w-lg-100">
{% if v.discord_id %}
<form action="/settings/remove_discord" method="post">
<input type="hidden" name="formkey" value="{{v.formkey}}">
<input type="submit" class="btn btn-secondary text-capitalize mr-2 mb-0 mt-2" value="Disconnect Discord">
</form>
<div class="text-small-extra text-muted mt-3">Disconnecting your Discord account will remove you from the {{SITE_NAME}} Discord server.</div>
{% else %}
<a href="/discord" class="btn btn-primary">Link Discord</a>
<div class="text-small-extra text-muted mt-3">Link your Discord account to join the {{SITE_NAME}} Discord server.</div>
{% endif %}
</div>
</div>
</div>
{% endif %}
<h2 class="h5" name="referral">RSS Feed</h2>
<p class="text-small text-muted">Subscribe to the {{SITE_NAME}} RSS feed.</p>

View file

@ -44,18 +44,14 @@
</div>
<div class="footer">
<div class="d-flex">
{% if SITE_NAME != 'Cringetopia' %}
<a class="btn btn-success" role="button" onclick="post_toast(this,'/settings/gumroad')">Claim paypig rewards</a>
{% endif %}
<a class="btn btn-success" role="button" onclick="post_toast(this,'/settings/gumroad')">Claim paypig rewards</a>
{% if v.email %}
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Update email">
{% else %}
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Add email">
{% endif %}
</div>
{% if SITE_NAME != 'Cringetopia' %}
<span class="text-small-extra text-muted pl-1">Must be same email as gumroad</span>
{% endif %}
<span class="text-small-extra text-muted pl-1">Must be same email as gumroad</span>
</div>
</form>
</div>

View file

@ -132,81 +132,6 @@
</div>
{% endif %}
{% endif %}
{% if SITE_NAME == 'PCM' and p.award_count("toe") %}
<style>
.toeimg {
width: 100px;
height: auto;
}
@media (max-width: 992px) {
.toeimg {
width: 30px;
height: auto;
}
}
.toe {
position:fixed;
z-index:9999;
pointer-events: none;
width: 100% !important;
height: 100% !important;
}
@keyframes moveX {
from { left: 0; } to { left: 98%; }
}
@keyframes moveY {
from { top: 0; } to { top: 98%; }
}
.toe1 {
animation: moveX 4s linear 0s infinite alternate, moveY 6.8s linear 0s infinite alternate !important;
animation-delay:0s;
}
</style>
<div class="toe toe1" height="100%" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</div>
{% if p.award_count("toe") > 1 %}
<style>
.toe2 {
animation: moveX 5s linear 0s infinite alternate, moveY 8s linear 0s infinite alternate !important;
animation-delay:1s;
}
</style>
<div class="toe toe2" height="100%" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</div>
{% endif %}
{% if p.award_count("toe") > 2 %}
<style>
.toe3 {
animation: moveX 4s linear 0s infinite alternate, moveY 5s linear 0s infinite alternate !important;
animation-delay:2s;
}
</style>
<div class="toe toe3" height="100%" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</div>
{% endif %}
{% if p.award_count("toe") > 3 %}
<style>
.toe4 {
animation: moveX 5s linear 0s infinite alternate, moveY 6.8s linear 0s infinite alternate !important;
animation-delay:3s;
}
</style>
<div class="toe toe4" height="100%" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</div>
{% endif %}
{% endif %}
{% else %}
{% if p.award_count("wholesome") %}
<style>
@ -260,59 +185,6 @@
</marquee>
{% endif %}
{% endif %}
{% if SITE_NAME == 'PCM' and p.award_count("toe") %}
<style>
.toe {
position:fixed;
z-index:9999;
pointer-events: none;
width: 100% !important;
height: 100% !important;
}
.toeimg {
width: 100px;
height: auto;
}
@media (max-width: 992px) {
.toeimg {
width: 30px;
height: auto;
}
}
</style>
<div class="toe" height="100%" width="100%">
<marquee class="toe" scrollamount=10 behavior="alternate" direction="up" height="100%" width="100%">
<marquee direction="right" scrollamount=10 behavior="alternate" height="100%" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</marquee>
</marquee>
</div>
{% if p.award_count("toe") > 1 %}
<marquee class="toe" scrollamount=10 behavior="alternate" direction="down" height="100%">
<marquee direction="right" scrollamount=10 behavior="alternate" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</marquee>
</marquee>
{% endif %}
{% if p.award_count("toe") > 2 %}
<marquee class="toe" scrollamount=10 behavior="alternate" direction="up" height="100%">
<marquee direction="left" scrollamount=10 behavior="alternate" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</marquee>
</marquee>
{% endif %}
{% if p.award_count("toe") > 3 %}
<marquee class="toe" scrollamount=10 behavior="alternate" direction="down" height="100%">
<marquee direction="left" scrollamount=10 behavior="alternate" width="100%">
<img alt="Blade's toe" class="toeimg" src="/assets/images/{{SITE_NAME}}/toe.webp?v=1">
</marquee>
</marquee>
{% endif %}
{% endif %}
{% endif %}
@ -379,61 +251,6 @@
{% endif %}
{% if SITE_NAME == 'PCM' and p.award_count("croag") %}
<style>
.croag {
position:fixed;
z-index:9999;
pointer-events: none;
}
.croag1 {
top: 15%
}
.croag2 {
top: 40%
}
.croag3 {
top: 65%
}
.croag4 {
top: 90%
}
.croagimg {
width: 169px;
height: 68px;
}
@media (max-width: 992px) {
.croagimg {
width: 100px;
height: 40px;
}
}
</style>
<marquee class="croag croag1" direction="left" scrollamount=10 width="100%">
<img alt="croag" class="croagimg mirrored" src="/assets/images/{{SITE_NAME}}/croag.webp?v=1">
</marquee>
{% if p.award_count("croag") > 1 %}
<marquee class="croag croag2" direction="right" scrollamount=10 width="100%">
<img alt="croag" class="croagimg" src="/assets/images/{{SITE_NAME}}/croag.webp?v=1">
</marquee>
{% endif %}
{% if p.award_count("croag") > 2 %}
<marquee class="croag croag3" direction="left" scrollamount=10 width="100%">
<img alt="croag" class="croagimg mirrored" src="/assets/images/{{SITE_NAME}}/croag.webp?v=1">
</marquee>
{% endif %}
{% if p.award_count("croag") > 3 %}
<marquee class="croag croag4" direction="right" scrollamount=10 width="100%">
<img alt="croag" class="croagimg" src="/assets/images/{{SITE_NAME}}/croag.webp?v=1">
</marquee>
{% endif %}
{% endif %}
{% if p.award_count("scooter") %}
<style>
.scooterimg {
@ -593,11 +410,7 @@
{% block content %}
{% if request.host == 'pcmemes.net' %}
{% set cc='SPLASH MOUNTAIN' %}
{% else %}
{% set cc='COUNTRY CLUB' %}
{% endif %}
{% set cc='COUNTRY CLUB' %}
<div class="row mb-3" style="background-color:var(--gray-600)">

View file

@ -2,11 +2,7 @@
{% include "award_modal.html" %}
{% endif %}
{% if request.host == 'pcmemes.net' %}
{% set cc='SPLASH MOUNTAIN' %}
{% else %}
{% set cc='COUNTRY CLUB' %}
{% endif %}
{% set cc='COUNTRY CLUB' %}
{% if not v or v.highlightcomments %}
<script src="/assets/js/new_comments_count.js?v=242"></script>

View file

@ -12,11 +12,7 @@
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/images/{{SITE_NAME}}/icon.webp?v=1015">
{% if request.host == 'pcmemes.net' %}
{% set cc='Splash Mountain' %}
{% else %}
{% set cc='Country Club' %}
{% endif %}
{% set cc='Country Club' %}
{% block title %}
<title>Create a post - {{SITE_NAME}}</title>
@ -56,7 +52,7 @@
{% endif %}
{% endblock %}
<body id="submit" {% if SITE_NAME == 'rDrama' and v and (v.is_banned or v.agendaposter) %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/anime/1.webp?v=3) center center fixed; background-color: var(--background)"{% elif v and v.background %}style="overflow-x: hidden; background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background)display: block{% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
<body id="submit" {% if v and v.background %}style="overflow-x: hidden; background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background)display: block{% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
{% include "header.html" %}
@ -102,7 +98,7 @@
<div id="urlblock">
<label for="URL" class="mt-3">URL</label>
<input autocomplete="off" class="form-control" id="post-url" aria-describedby="URLHelp" name="url" type="url" placeholder="Optional if you have text." value="{{request.values.get('url','')}}" required oninput="checkForRequired();hide_image();savetext();checkRepost(this){% if SITE_NAME != 'PCM' %};autoSuggestTitle(){% endif %}">
<input autocomplete="off" class="form-control" id="post-url" aria-describedby="URLHelp" name="url" type="url" placeholder="Optional if you have text." value="{{request.values.get('url','')}}" required oninput="checkForRequired();hide_image();savetext();checkRepost(this);autoSuggestTitle()">
<small id="system" class="form-text text-muted">To post an image, use a direct image link such as i.imgur.com</small>
</div>
<div id="image-upload-block">