diff --git a/docker-compose.yml b/docker-compose.yml index 12416fbff..53ee97c31 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,6 +42,7 @@ services: - DUES=0 - MAIL_USERNAME=blahblahblah@gmail.com - MAIL_PASSWORD=3435tdfsdudebussylmaoxxt43 + - CHRISTMAS=1 links: - "redis" - "postgres" diff --git a/env b/env index 7054dabfd..a3f4b83fb 100644 --- a/env +++ b/env @@ -30,4 +30,5 @@ export DUES="0" export DEFAULT_THEME="midnight" export DEFAULT_COLOR="ff66ac" # YOU HAVE TO PICK ONE OF THOSE COLORS OR SHIT WILL BREAK: ff66ac, 805ad5, 62ca56, 38a169, 80ffff, 2a96f3, eb4963, ff0000, f39731, 30409f, 3e98a7, e4432d, 7b9ae4, ec72de, 7f8fa6, f8db58 export MAIL_USERNAME="blahblahblah@gmail.com" -export MAIL_PASSWORD="3435tdfsdudebussylmaoxxt43" \ No newline at end of file +export MAIL_PASSWORD="3435tdfsdudebussylmaoxxt43" +export CHRISTMAS="0" \ No newline at end of file diff --git a/files/__main__.py b/files/__main__.py index 913d3f38b..724a7996d 100644 --- a/files/__main__.py +++ b/files/__main__.py @@ -16,9 +16,7 @@ import gevent from werkzeug.middleware.proxy_fix import ProxyFix import redis -if environ.get("CHRISTMAS"): templates = 'templates/CHRISTMAS' -else: templates = 'templates' -app = Flask(__name__, template_folder=templates) +app = Flask(__name__, template_folder='templates/CHRISTMAS') app.wsgi_app = ProxyFix(app.wsgi_app, x_for=3) app.url_map.strict_slashes = False diff --git a/files/templates/Bets.html b/files/templates/CHRISTMAS/Bets.html similarity index 100% rename from files/templates/Bets.html rename to files/templates/CHRISTMAS/Bets.html diff --git a/files/templates/Poll.html b/files/templates/CHRISTMAS/Poll.html similarity index 100% rename from files/templates/Poll.html rename to files/templates/CHRISTMAS/Poll.html diff --git a/files/templates/ProfilePopover.html b/files/templates/CHRISTMAS/ProfilePopover.html similarity index 100% rename from files/templates/ProfilePopover.html rename to files/templates/CHRISTMAS/ProfilePopover.html diff --git a/files/templates/CHRISTMAS/admin/admin_home.html b/files/templates/CHRISTMAS/admin/admin_home.html new file mode 100644 index 000000000..dfb3e5f92 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/admin_home.html @@ -0,0 +1,60 @@ +{% extends "default.html" %} + +{% block title %} +{{'SITE_NAME' | app_config}} + +{% endblock %} + +{% block content %} +
+

Admin Tools

+ +

Content

+ + +

Users

+ + +

Safety

+ + +

Grant

+ + +

API Access Control

+ + +

Statistics

+ + +

Configuration

+ + +
+ + +
+
+{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/alt_votes.html b/files/templates/CHRISTMAS/admin/alt_votes.html new file mode 100644 index 000000000..b448bce5b --- /dev/null +++ b/files/templates/CHRISTMAS/admin/alt_votes.html @@ -0,0 +1,89 @@ +{% extends "default.html" %} + +{% block title %} +{{'SITE_NAME' | app_config}} + +{% endblock %} + +{% block content %} +
+
+
+
+
+
+
Vote Info
+ +
+ + + + +
+ +{% if u1 and u2 %} + + +

Analysis

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@{{u1.username}} only(% unique)Both@{{u2.username}} only (% unique)
Post Upvotes{{data['u1_only_post_ups']}} ({{data['u1_post_ups_unique']}}%){{data['both_post_ups']}}{{data['u2_only_post_ups']}} ({{data['u2_post_ups_unique']}}%)
Post Downvotes{{data['u1_only_post_downs']}} ({{data['u1_post_downs_unique']}}%){{data['both_post_downs']}}{{data['u2_only_post_downs']}} ({{data['u2_post_downs_unique']}}%)
Comment Upvotes{{data['u1_only_comment_ups']}} ({{data['u1_comment_ups_unique']}}%){{data['both_comment_ups']}}{{data['u2_only_comment_ups']}} ({{data['u2_comment_ups_unique']}}%)
Comment Downvotes{{data['u1_only_comment_downs']}} ({{data['u1_comment_downs_unique']}}%){{data['both_comment_downs']}}{{data['u2_only_comment_downs']}} ({{data['u2_comment_downs_unique']}}%)
+ +

Link Accounts

+ +{% if u2 in u1.alts %} +

Accounts are known alts of eachother.

+{% else %} + +

Two accounts controlled by different people should have most uniqueness percentages at or above 70-80%

+

A sockpuppet account will have its uniqueness percentages significantly lower.

+ +Link Accounts +
+ + + + +
+ +{% endif %} + +{% endif %} + +
+{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/app.html b/files/templates/CHRISTMAS/admin/app.html new file mode 100644 index 000000000..f53e048f3 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/app.html @@ -0,0 +1,66 @@ +{% extends "default.html" %} + +{% block title %} +API App Administration + +{% endblock %} + +{% block content %} +
+ +
+
+
+ +
+
+ + + + + + + + + + + +
+
+ +
+ +{% if listing %} + {% include "submission_listing.html" %} +{% elif comments %} + {% include "comments.html" %} +{% endif %} + +
+ + + + + + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/apps.html b/files/templates/CHRISTMAS/admin/apps.html new file mode 100644 index 000000000..9b1202f32 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/apps.html @@ -0,0 +1,68 @@ +{% extends "default.html" %} + +{% block title %} +API App Administration + +{% endblock %} + +{% block content %} +
+ {% for app in apps %} +
+
+ +
+ + + + + + + {% if app.client_id %} + + + {% endif %} + + + + + + +
+
+
+
+ {% if not app.client_id %} + + Approve + Reject + + {% else %} + + Revoke + + {% endif %} +
+
+
+ {% endfor %} +
+ + + + + + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/awards.html b/files/templates/CHRISTMAS/admin/awards.html new file mode 100644 index 000000000..e4606f753 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/awards.html @@ -0,0 +1,73 @@ +{% extends "default.html" %} + +{% block title %} +Grant User Award +{% endblock %} + +{% block pagetype %}message{% endblock %} + +{% block content %} + +
+ + {% if error %} + + {% endif %} + {% if msg %} + + {% endif %} + +

+	

+	
User Award Grant
+ +
+ +
+ + + + + + + + + + + + {% for a in awards %} + + + + + + {% endfor %} +
IconTitleAmount
{{a['title']}}
+ + + +
+ +

+	{% if 'rdrama.net' not in request.host or v.admin_level > 2 %}
+		
Grant Monthly Marseybux
+ {% endif %} + +
+{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/badge_grant.html b/files/templates/CHRISTMAS/admin/badge_grant.html new file mode 100644 index 000000000..5bdc1596d --- /dev/null +++ b/files/templates/CHRISTMAS/admin/badge_grant.html @@ -0,0 +1,87 @@ +{% extends "default.html" %} + +{% block title %} +Badge Grant +{% endblock %} + +{% block pagetype %}message{% endblock %} + +{% block content %} +
+ + {% if error %} + + {% endif %} + {% if msg %} + + {% endif %} + +

+

+
Badge Grant
+ +
+ + + +
+ + + + + + + + + + + + +{% for k, v in badge_types.items() %} + + + + + + +{% endfor %} +
SelectImageNameDefault Description
{{v['name']}}{{v['description']}}
+ +
+ + +
+ + + + +
+ +
+ + + +{% endblock %} diff --git a/files/templates/CHRISTMAS/admin/banned_domains.html b/files/templates/CHRISTMAS/admin/banned_domains.html new file mode 100644 index 000000000..dc931c16b --- /dev/null +++ b/files/templates/CHRISTMAS/admin/banned_domains.html @@ -0,0 +1,37 @@ +{% extends "default.html" %} + +{% block title %} + Banned Domains +{% endblock %} + +{% block content %} + +
+
+
+ + + + + + + + + + {% for domain in banned_domains %} + + + + + {% endfor %} +
DomainBan reason
{{domain.domain}}{{domain.reason}}
+ + +
+ + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/content_stats.html b/files/templates/CHRISTMAS/admin/content_stats.html new file mode 100644 index 000000000..4485750c2 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/content_stats.html @@ -0,0 +1,25 @@ +{% extends "default.html" %} + +{% block title %} +{{'SITE_NAME' | app_config}} + +{% endblock %} + +{% block content %} +

+
+
+	
+		
+		
+	
+
+{% for entry in data %}
+	
+		
+		
+	
+{% endfor %}
+
StatisticValue
{{entry}}{{data[entry]}}
+ +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/image_posts.html b/files/templates/CHRISTMAS/admin/image_posts.html new file mode 100644 index 000000000..7a3feb461 --- /dev/null +++ b/files/templates/CHRISTMAS/admin/image_posts.html @@ -0,0 +1,56 @@ +{% extends "userpage.html" %} + +{% block adminpanel %}{% endblock %} +{% block pagetype %}userpage{% endblock %} +{% block banner %}{% endblock %} +{% block mobileBanner %}{% endblock %} +{% block desktopBanner %}{% endblock %} +{% block desktopUserBanner %}{% endblock %} +{% block mobileUserBanner %}{% endblock %} + +{% block postNav %}{% endblock %} + +{% block fixedMobileBarJS %} +{% endblock %} + +{% block title %} +Image feed + +{% endblock %} + + +{% block content %} + +
+ +
+ + {% block listing %} +
+ {% include "submission_listing.html" %} +
+ {% endblock %} +
+
+{% endblock %} + +{% block pagenav %} + +{% endblock %} diff --git a/files/templates/CHRISTMAS/admin/new_users.html b/files/templates/CHRISTMAS/admin/new_users.html new file mode 100644 index 000000000..f20a160cd --- /dev/null +++ b/files/templates/CHRISTMAS/admin/new_users.html @@ -0,0 +1,9 @@ +{% extends "mine.html" %} + +{% block maincontent %} + + +{% include "user_listing.html" %} +{% endblock %} + +{% block navbar %}{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/admin/removed_posts.html b/files/templates/CHRISTMAS/admin/removed_posts.html new file mode 100644 index 000000000..4dbfabcbb --- /dev/null +++ b/files/templates/CHRISTMAS/admin/removed_posts.html @@ -0,0 +1,59 @@ +{% extends "admin/image_posts.html" %} + + +{% block title %} +Removed Content + +{% endblock %} + +{% block content %} + +
+
+
+
+
+

+				
Removed Posts
+ +
+ +
+ +
+
+
+ +
+ +
+ + {% block listing %} +
+ {% include "submission_listing.html" %} +
+ {% endblock %} +
+
+{% endblock %} + +{% block pagenav %} + +{% endblock %} diff --git a/files/templates/CHRISTMAS/admin/reported_comments.html b/files/templates/CHRISTMAS/admin/reported_comments.html new file mode 100644 index 000000000..c264aa8cf --- /dev/null +++ b/files/templates/CHRISTMAS/admin/reported_comments.html @@ -0,0 +1,24 @@ +{% extends "admin/reported_posts.html" %} + + + +{% block listing %} + + +
+ {% with comments=listing %} + {% include "comments.html" %} + {% endwith %} + {% if not listing %} +
+
+
+
There are no comments here (yet).
+
+
+
+ {% endif %} +
+ +{% endblock %} + diff --git a/files/templates/CHRISTMAS/admin/reported_posts.html b/files/templates/CHRISTMAS/admin/reported_posts.html new file mode 100644 index 000000000..b860f07ed --- /dev/null +++ b/files/templates/CHRISTMAS/admin/reported_posts.html @@ -0,0 +1,83 @@ +{% extends "userpage.html" %} + +{% block adminpanel %}{% endblock %} +{% block pagetype %}userpage{% endblock %} +{% block banner %}{% endblock %} +{% block mobileBanner %}{% endblock %} +{% block desktopBanner %}{% endblock %} +{% block desktopUserBanner %}{% endblock %} +{% block mobileUserBanner %}{% endblock %} + + {% block postNav %} +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ {% endblock %} + + +{% block fixedMobileBarJS %} +{% endblock %} + +{% block title %} +Reported Posts + +{% endblock %} + +{% block content %} + +
+ +
+ + {% block listing %} +
+ {% include "submission_listing.html" %} +
+ {% endblock %} +
+
+{% endblock %} + +{% block pagenav %} + +{% endblock %} diff --git a/files/templates/CHRISTMAS/admins.html b/files/templates/CHRISTMAS/admins.html new file mode 100644 index 000000000..a57b82259 --- /dev/null +++ b/files/templates/CHRISTMAS/admins.html @@ -0,0 +1,31 @@ +{% extends "settings2.html" %} + +{% block pagetitle %}Admins{% endblock %} + +{% block content %} + +
Admins
+

+
+	
+		
+			
+			
+		
+	
+	{% for user in admins %}
+	
+		
+		
+	
+	{% endfor %}
+
NameScore
+ + + {{user.username}} + + {% if user.admin_level == 1 and v and v.admin_level > 1 %} + + {% endif %} + {{user.truecoins}}
+{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/agendaposters.html b/files/templates/CHRISTMAS/agendaposters.html new file mode 100644 index 000000000..5a2168b70 --- /dev/null +++ b/files/templates/CHRISTMAS/agendaposters.html @@ -0,0 +1,19 @@ +{% extends "settings2.html" %} + +{% block content %} + + + + + + + +{% for user in users %} + + + + +{% endfor %} +
#Name
{{loop.index}}{{user.username}}
+ +{% endblock %} diff --git a/files/templates/CHRISTMAS/api.html b/files/templates/CHRISTMAS/api.html new file mode 100644 index 000000000..94dee7924 --- /dev/null +++ b/files/templates/CHRISTMAS/api.html @@ -0,0 +1,82 @@ +{% extends "default.html" %} + +{% block title %} +{{'SITE_NAME' | app_config}} - API + +{% endblock %} + +{% block content %} +
+
+
+
+

API Guide for Bots

+

+

This page explains how to obtain and use an access token.

+

Step 1: Create your Application

+

In the apps tab of Drama settings, fill in and submit the form to request an access token. You will need:

+ +

Don't worry too much about accuracy; you will be able to change all of these later.

+

Drama administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.

+

DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!

+

Step 2: Using the Access Token

+

To use the access token, include the following header in subsequent API requests to Drama: Authorization: access_token_goes_here

+

Python example:

+
	import requests
+
+	headers={"Authorization": "access_token_goes_here"}
+
+	url="https://rdrama.net/@carpathianflorist"
+
+	r=requests.get(url, headers=headers)
+
+	print(r.json())
+
+

The expected result of this would be a large JSON representation of the posts posted by @carpathianflorist

+
+
+
+
+
+
+
+
+
+

API Guide for Applications

+

+

The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their Drama account without having to provide their login information to the application.

+

This page explains how to obtain API application keys, how to prompt a user for authorization, and how to obtain and use access tokens.

+

Step 1: Create your Application

+

In the apps tab of Drama settings, fill in and submit the form to request new API keys. You will need:

+ +

Don't worry too much about accuracy; you will be able to change all of these later.

+

Drama administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.

+

DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!

+

Step 2: Prompt Your User for Authorization

+

Send your user to https://rdrama.net/authorize/?client_id=YOUR_CLIENT_ID

+

If done correctly, the user will see that your application wants to access their Drama account, and be prompted to approve or deny the request.

+

Step 3: Catch the redirect

+

The user clicks "Authorize". Drama will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.

+

Step 4: Using the Access Token

+

To use the access token, include the following header in subsequent API requests to Drama: Authorization: access_token_goes_here

+

Python example:

+
	import requests
+
+	headers={"Authorization": "access_token_goes_here"}
+
+	url="https://rdrama.net/@carpathianflorist"
+
+	r=requests.get(url, headers=headers)
+
+	print(r.json())
+
+

The expected result of this would be a large JSON representation of the submissions submitted by @carpathianflorist

+{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/authforms.html b/files/templates/CHRISTMAS/authforms.html new file mode 100644 index 000000000..aea28f07b --- /dev/null +++ b/files/templates/CHRISTMAS/authforms.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + {% block pagetitle %}{{'SITE_NAME' | app_config}}{% endblock %} + + + {% if v %} + + + {% if v.agendaposter %}{% elif v.css %}{% endif %} + {% else %} + + + {% endif %} + + + + + + + + +
+
+ +
+ +
+ +
+ + + +

{% block authtitle %}{% endblock %}

+ +

{% block authtext %}{% endblock %}

+ + {% if error %} + + {% endif %} + {% if msg %} + + {% endif %} + + {% block content %} + {% endblock %} + +
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+ +
+
+ + + + \ No newline at end of file diff --git a/files/templates/CHRISTMAS/award_modal.html b/files/templates/CHRISTMAS/award_modal.html new file mode 100644 index 000000000..988eea6cb --- /dev/null +++ b/files/templates/CHRISTMAS/award_modal.html @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file diff --git a/files/templates/awards/Christmas/Fireplace.html b/files/templates/CHRISTMAS/awards/Christmas/Fireplace.html similarity index 100% rename from files/templates/awards/Christmas/Fireplace.html rename to files/templates/CHRISTMAS/awards/Christmas/Fireplace.html diff --git a/files/templates/awards/Christmas/Gingerbread.html b/files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html similarity index 81% rename from files/templates/awards/Christmas/Gingerbread.html rename to files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html index 04e045fb1..fd1ec85f8 100644 --- a/files/templates/awards/Christmas/Gingerbread.html +++ b/files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html @@ -3,7 +3,7 @@
{% for i in range(count) %}
- animate marsey gingerbread icon + animate marsey gingerbread icon
{% endfor %}
\ No newline at end of file diff --git a/files/templates/awards/Christmas/Sleighs.html b/files/templates/CHRISTMAS/awards/Christmas/Sleighs.html similarity index 85% rename from files/templates/awards/Christmas/Sleighs.html rename to files/templates/CHRISTMAS/awards/Christmas/Sleighs.html index 9777b8afa..dcefe3234 100644 --- a/files/templates/awards/Christmas/Sleighs.html +++ b/files/templates/CHRISTMAS/awards/Christmas/Sleighs.html @@ -2,18 +2,18 @@ - + {% if p.award_count("train") > 1 %} - + {% endif %} {% if p.award_count("train") > 2 %} - + {% endif %} {% if p.award_count("train") > 3 %} - + {% endif %} diff --git a/files/templates/comments/CommentActions.html b/files/templates/CHRISTMAS/comments/CommentActions.html similarity index 100% rename from files/templates/comments/CommentActions.html rename to files/templates/CHRISTMAS/comments/CommentActions.html diff --git a/files/templates/comments/CommentEditForm.html b/files/templates/CHRISTMAS/comments/CommentEditForm.html similarity index 100% rename from files/templates/comments/CommentEditForm.html rename to files/templates/CHRISTMAS/comments/CommentEditForm.html diff --git a/files/templates/comments/CommentForm.html b/files/templates/CHRISTMAS/comments/CommentForm.html similarity index 100% rename from files/templates/comments/CommentForm.html rename to files/templates/CHRISTMAS/comments/CommentForm.html diff --git a/files/templates/comments/CommentMessageReplyForm.html b/files/templates/CHRISTMAS/comments/CommentMessageReplyForm.html similarity index 100% rename from files/templates/comments/CommentMessageReplyForm.html rename to files/templates/CHRISTMAS/comments/CommentMessageReplyForm.html diff --git a/files/templates/comments/CommentReplyForm.html b/files/templates/CHRISTMAS/comments/CommentReplyForm.html similarity index 100% rename from files/templates/comments/CommentReplyForm.html rename to files/templates/CHRISTMAS/comments/CommentReplyForm.html diff --git a/files/templates/CHRISTMAS/contact.html b/files/templates/CHRISTMAS/contact.html new file mode 100644 index 000000000..277f49fa7 --- /dev/null +++ b/files/templates/CHRISTMAS/contact.html @@ -0,0 +1,67 @@ +{% extends "default.html" %} + +{% block title %} +{{'SITE_NAME' | app_config}} - Contact + +{% endblock %} + +{% block content %} + +
+ + {% if request.values.get('error') or error %} + + {% endif %} + {% if request.values.get('msg') or msg %} + + {% endif %} + +

Contact {{'SITE_NAME' | app_config}} Admins

+ {% if v and v.is_activated and not v.is_suspended %} + +

Use this form to contact {{'SITE_NAME' | app_config}} Admins.

+ + + + +
+ + + + + + +
+ + + {% elif v %} + +

Please verify your email address in order to ensure we can respond to your message if needed. Then, refresh this page.

+ + {% else %} + +

In order to ensure that we can respond to your message, please first sign up or log in and make sure you have verified your email address. Then, refresh this page.

+ + {% endif %} + +

If you can see this line, we haven't been contacted by any law enforcement or governmental organizations in 2021 yet.

+ +
+ +{% endblock %} diff --git a/files/templates/CHRISTMAS/default.html b/files/templates/CHRISTMAS/default.html new file mode 100644 index 000000000..4165d2d93 --- /dev/null +++ b/files/templates/CHRISTMAS/default.html @@ -0,0 +1,353 @@ + + + + {% if v and v.agendaposter %} + + + {% endif %} + + + + + + + {% block title %} + {{'SITE_NAME' | app_config}} + + + + + + + + + + + + + + + + + + {% endblock %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% block stylesheets %} + + + + + + + + {% if v %} + + + + {% if v.agendaposter %} + + {% elif v.css %} + + {% endif %} + {% else %} + + + + {% endif %} + + {% endblock %} + + + + + + + + + +{% block Banner %} +{% endblock %} + +{% include "header-tw.html" %} + +{% block mobileUserBanner %} +{% endblock %} + +{% block mobileBanner %} +{% endblock %} + +{% block postNav %} +{% endblock %} + +
+
+ + {% block desktopUserBanner %} + {% endblock %} + + {% block desktopBanner %} + {% endblock %} + +
+ {% block subHeader %} + {% endblock %} +
+ + {% block subHeader2 %} + {% endblock %} + +
+
+ + {% block searchText %} + {% endblock %} + + {% block content %} + {% endblock %} + + {% block pagenav %} + {% endblock %} + + {% block sidebar %} + {% endblock %} +
+
+ + {% include "footer.html" %} +
+
+ +{% if v %} + +{% endif %} + +{% include "ProfilePopover.html" %} + +{% block mobilenavbar %} + {% include "mobile_navigation_bar.html" %} +{% endblock %} + +{% block actionsModal %} +{% endblock %} + +{% block reportCommentModal %} +{% endblock %} + +{% block GIFtoast %} +{% endblock %} + +{% block GIFpicker %} +{% endblock %} + + + +{% include "/toasts/toasts.html" %} + +{% block modals %} +{% endblock %} + +{% block popovers %} +{% endblock %} + +{% block fixedMobileBarJS %} +{% endblock %} + +{% block scripts %} +{% endblock %} + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if v %} + + +{% endif %} + + + diff --git a/files/templates/CHRISTMAS/delete_post_modal.html b/files/templates/CHRISTMAS/delete_post_modal.html new file mode 100644 index 000000000..5df4ac9dd --- /dev/null +++ b/files/templates/CHRISTMAS/delete_post_modal.html @@ -0,0 +1,39 @@ + + + diff --git a/files/templates/dropdowns/NavbarExtraLinks.html b/files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html similarity index 97% rename from files/templates/dropdowns/NavbarExtraLinks.html rename to files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html index e2dc296ed..c98f66a6a 100644 --- a/files/templates/dropdowns/NavbarExtraLinks.html +++ b/files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html @@ -41,7 +41,7 @@
  • - + Android App
  • diff --git a/files/templates/dropdowns/NavbarProfile.html b/files/templates/CHRISTMAS/dropdowns/NavbarProfile.html similarity index 92% rename from files/templates/dropdowns/NavbarProfile.html rename to files/templates/CHRISTMAS/dropdowns/NavbarProfile.html index ae605d20d..059b8e44b 100644 --- a/files/templates/dropdowns/NavbarProfile.html +++ b/files/templates/CHRISTMAS/dropdowns/NavbarProfile.html @@ -17,12 +17,12 @@
    - coin icon + coin icon {{v.coins}} {% if v.procoins %} - coin icon + coin icon {{v.procoins}} {% endif %} diff --git a/files/templates/dropdowns/ProfileAdminDropdown.html b/files/templates/CHRISTMAS/dropdowns/ProfileAdminDropdown.html similarity index 100% rename from files/templates/dropdowns/ProfileAdminDropdown.html rename to files/templates/CHRISTMAS/dropdowns/ProfileAdminDropdown.html diff --git a/files/templates/dropdowns/ProfileDropdown.html b/files/templates/CHRISTMAS/dropdowns/ProfileDropdown.html similarity index 100% rename from files/templates/dropdowns/ProfileDropdown.html rename to files/templates/CHRISTMAS/dropdowns/ProfileDropdown.html diff --git a/files/templates/dropdowns/SearchSorts.html b/files/templates/CHRISTMAS/dropdowns/SearchSorts.html similarity index 100% rename from files/templates/dropdowns/SearchSorts.html rename to files/templates/CHRISTMAS/dropdowns/SearchSorts.html diff --git a/files/templates/dropdowns/SubmissionSorts.html b/files/templates/CHRISTMAS/dropdowns/SubmissionSorts.html similarity index 100% rename from files/templates/dropdowns/SubmissionSorts.html rename to files/templates/CHRISTMAS/dropdowns/SubmissionSorts.html diff --git a/files/templates/CHRISTMAS/email/2fa_remove.html b/files/templates/CHRISTMAS/email/2fa_remove.html new file mode 100644 index 000000000..619e53aaf --- /dev/null +++ b/files/templates/CHRISTMAS/email/2fa_remove.html @@ -0,0 +1,34 @@ +{% extends "email/default.html" %} + +{% block title %}Remove Two-Factor Authentication{% endblock %} + +{% block preheader %}Remove Two-Factor Authentication.{% endblock %} + +{% block content %} +

    We received a request to remove two-factor authentication from your account. In 72 hours, click the link below.

    +

    If you didn't make this request, change your password and use the Log Out Everywhere feature in your Security Settings to permanently invalidate the link.

    + + + + + +

    Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.

    + + + + + +{% endblock %} diff --git a/files/templates/CHRISTMAS/email/default.html b/files/templates/CHRISTMAS/email/default.html new file mode 100644 index 000000000..f375d1bbb --- /dev/null +++ b/files/templates/CHRISTMAS/email/default.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + {% block preheader %}Thanks for joining {{'SITE_NAME' | app_config}}! Please take a sec to verify the email you used to sign up.{% endblock %} + + + + + + + diff --git a/files/templates/CHRISTMAS/email/email_change.html b/files/templates/CHRISTMAS/email/email_change.html new file mode 100644 index 000000000..01101d177 --- /dev/null +++ b/files/templates/CHRISTMAS/email/email_change.html @@ -0,0 +1,56 @@ +{% extends "email/default.html" %} + +{% block title %}Verify Your Email{% endblock %} + +{% block preheader %}Verify your new {{'SITE_NAME' | app_config}} email.{% endblock %} + +{% block content %} +

    You told us you wanted to change your {{'SITE_NAME' | app_config}} account email. To finish this process, please verify your new email address:

    + + + + + +

    For reference, here's your current information:

    + + + + + +

    Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.

    + + + + + +{% endblock %} diff --git a/files/templates/CHRISTMAS/email/email_verify.html b/files/templates/CHRISTMAS/email/email_verify.html new file mode 100644 index 000000000..e039ed539 --- /dev/null +++ b/files/templates/CHRISTMAS/email/email_verify.html @@ -0,0 +1,54 @@ +{% extends "email/default.html" %} + +{% block title %}Welcome to {{'SITE_NAME' | app_config}}!{% endblock %} + +{% block content %} +

    Thanks for joining {{'SITE_NAME' | app_config}}. We’re happy to have you on board. To get the most out of {{'SITE_NAME' | app_config}}, please verify your account email:

    + + + + + +

    For reference, here's your username.

    + + + + + +

    Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.

    + + + + + +{% endblock %} diff --git a/files/templates/CHRISTMAS/email/password_reset.html b/files/templates/CHRISTMAS/email/password_reset.html new file mode 100644 index 000000000..c5df8e03e --- /dev/null +++ b/files/templates/CHRISTMAS/email/password_reset.html @@ -0,0 +1,54 @@ +{% extends "email/default.html" %} + +{% block title %}Reset Your Password{% endblock %} +{% block preheader %}Reset your {{'SITE_NAME' | app_config}} password.{% endblock %} + +{% block content %} +

    To reset your password, click the button below:

    + + + + + +

    For reference, here's your login information:

    + + + + + + + + + + +{% endblock %} diff --git a/files/templates/CHRISTMAS/emoji_modal.html b/files/templates/CHRISTMAS/emoji_modal.html new file mode 100644 index 000000000..f764dc796 --- /dev/null +++ b/files/templates/CHRISTMAS/emoji_modal.html @@ -0,0 +1,105 @@ +
    + + + diff --git a/files/templates/CHRISTMAS/emojis.html b/files/templates/CHRISTMAS/emojis.html new file mode 100644 index 000000000..f0d577a24 --- /dev/null +++ b/files/templates/CHRISTMAS/emojis.html @@ -0,0 +1,26 @@ +{% extends "default.html" %} +{% block content %} +
    +
    +	
    +
    + + + + + + + + + +{% for emoji in emojis %} + + + + + +{% endfor %} + +
    #NameEmoji
    {{loop.index}}{{emoji}}:{{emoji}}:
    + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/errors/400.html b/files/templates/CHRISTMAS/errors/400.html new file mode 100644 index 000000000..ff08a4d0a --- /dev/null +++ b/files/templates/CHRISTMAS/errors/400.html @@ -0,0 +1,19 @@ +{% extends "default.html" %} + +{% block title %} +400 Bad Request +{% endblock %} + +{% block pagetype %}error-400{% endblock %} + +{% block content %} +
    +
    + +

    400 Bad Request

    +

    + That request was bad and you should feel bad. +

    +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/401.html b/files/templates/CHRISTMAS/errors/401.html new file mode 100644 index 000000000..2a2895e6f --- /dev/null +++ b/files/templates/CHRISTMAS/errors/401.html @@ -0,0 +1,21 @@ +{% extends "default.html" %} + +{% block title %} +401 Not Authorized +{% endblock %} + +{% block pagetype %}error-401{% endblock %} + +{% block content %} +
    +
    + +

    401 Not Authorized

    +

    + What you're trying to do requires an account. I think. The original error message said something about a castle and I hated that. +

    + Create an account + Login +
    +
    +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/errors/403.html b/files/templates/CHRISTMAS/errors/403.html new file mode 100644 index 000000000..55596acef --- /dev/null +++ b/files/templates/CHRISTMAS/errors/403.html @@ -0,0 +1,20 @@ +{% extends "default.html" %} + +{% block title %} +403 Forbidden +{% endblock %} + +{% block pagetype %}error-403{% endblock %} + +{% block content %} +
    +
    + +

    403 Forbidden

    +

    + YOU AREN'T WELCOME HERE GO AWAY +

    + Go to frontpage +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/404.html b/files/templates/CHRISTMAS/errors/404.html new file mode 100644 index 000000000..1f797432c --- /dev/null +++ b/files/templates/CHRISTMAS/errors/404.html @@ -0,0 +1,19 @@ +{% extends "default.html" %} + +{% block title %} +404 Page Not Found +{% endblock %} + +{% block pagetype %}error-404{% endblock %} + +{% block content %} +
    +
    + +

    404 Page Not Found

    +

    + Someone typed something wrong and it was probably you, please do better. +

    +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/405.html b/files/templates/CHRISTMAS/errors/405.html new file mode 100644 index 000000000..cf98e006a --- /dev/null +++ b/files/templates/CHRISTMAS/errors/405.html @@ -0,0 +1,23 @@ +{% extends "default.html" %} + +{% block title %} +405 Method Not Allowed +{% endblock %} + +{% block pagetype %}error-405{% endblock %} + +{% block content %} +
    +
    + +

    405 Method Not Allowed

    +

    + idk how anyone gets this error but if you see this, remember to follow @carpathianflorist +

    +

    + the original error text here talked about internet gremlins and wtf +

    + Go to frontpage +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/429.html b/files/templates/CHRISTMAS/errors/429.html new file mode 100644 index 000000000..a77719384 --- /dev/null +++ b/files/templates/CHRISTMAS/errors/429.html @@ -0,0 +1,20 @@ +{% extends "default.html" %} + +{% block title %} +429 Too Many Requests +{% endblock %} + +{% block pagetype %}error-429{% endblock %} + +{% block content %} +
    +
    + +

    429 Too Many Requests

    +

    + go spam somewhere else nerd +

    + Go to frontpage +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/500.html b/files/templates/CHRISTMAS/errors/500.html new file mode 100644 index 000000000..eda67c782 --- /dev/null +++ b/files/templates/CHRISTMAS/errors/500.html @@ -0,0 +1,20 @@ +{% extends "default.html" %} + +{% block title %} +500 Internal Server Error +{% endblock %} + +{% block pagetype %}error-500{% endblock %} + +{% block content %} +
    +
    + +

    500 Interal Server Error

    +

    + 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 but not other pages, then something is probably wrong with that specific function. It may not be called a function, but that sounds right to me. Anyway, ping me and I'll whine to someone smarter to fix it. Don't bother them. Thanks ily <3 +

    + Go to frontpage +
    +
    +{% endblock %} diff --git a/files/templates/CHRISTMAS/errors/nsfw.html b/files/templates/CHRISTMAS/errors/nsfw.html new file mode 100644 index 000000000..5708a682d --- /dev/null +++ b/files/templates/CHRISTMAS/errors/nsfw.html @@ -0,0 +1,27 @@ +{% extends "default.html" %} + +{% block title %} ++18 +{% endblock %} + +{% block pagetype %}error-451{% endblock %} + +{% block content %} +
    +
    + +

    Are you over 18?

    +

    + This post is rated +18 (Adult-Only). You must be 18 or older to continue. Are you sure you want to proceed? +

    +
    +
    + + +
    + No +
    +
    +
    +{% endblock %} + diff --git a/files/templates/CHRISTMAS/errors/patron.html b/files/templates/CHRISTMAS/errors/patron.html new file mode 100644 index 000000000..c1f6497f5 --- /dev/null +++ b/files/templates/CHRISTMAS/errors/patron.html @@ -0,0 +1,20 @@ +{% extends "default.html" %} + +{% block title %} +401 Not Authorized +{% endblock %} + +{% block pagetype %}error-401{% endblock %} + +{% block content %} +
    +
    + +

    401 Not Authorized

    +

    + This page is only available to {% if "rama" in request.host %}paypigs{% else %}patrons{% endif %}: +

    + {{'GUMROAD_LINK' | app_config}} +
    +
    +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/expanded_image_modal.html b/files/templates/CHRISTMAS/expanded_image_modal.html new file mode 100644 index 000000000..ac95d65f3 --- /dev/null +++ b/files/templates/CHRISTMAS/expanded_image_modal.html @@ -0,0 +1,28 @@ + + + \ No newline at end of file diff --git a/files/templates/CHRISTMAS/followers.html b/files/templates/CHRISTMAS/followers.html new file mode 100644 index 000000000..2c6b93629 --- /dev/null +++ b/files/templates/CHRISTMAS/followers.html @@ -0,0 +1,37 @@ +{% extends "default.html" %} +{% block content %} +
    +
    +
    +	
    +
    +
    @{{u.username}}'s followers
    +
    
    +
    +
    +	
    +		
    +		
    +		{% if v.id == u.id %}
    +			
    +		{% endif %}
    +	
    +
    +
    +{% for user in users %}
    +	
    +		
    +		
    +		{% if v.id == u.id %}
    +		
    +		{% endif %}
    +	
    +{% endfor %}
    +
    +
    #Name
    {{loop.index}}{{user.username}}
    Remove follow
    +
    +{% endblock %} + +{% block scripts %} + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/following.html b/files/templates/CHRISTMAS/following.html new file mode 100644 index 000000000..5b374a141 --- /dev/null +++ b/files/templates/CHRISTMAS/following.html @@ -0,0 +1,33 @@ +{% extends "default.html" %} +{% block content %} +
    +
    Users followed by @{{u.username}}
    +
    
    +
    +
    +	
    +		
    +		
    +		{% if v.id == u.id %}
    +			
    +		{% endif %}
    +	
    +
    +
    +{% for user in users %}
    +	
    +		
    +		
    +		{% if v.id == u.id %}
    +		
    +		{% endif %}
    +	
    +{% endfor %}
    +
    +
    #Name
    {{loop.index}}{{user.username}}
    Unfollow
    +
    +{% endblock %} + +{% block scripts %} + +{% endblock %} \ No newline at end of file diff --git a/files/templates/footer.html b/files/templates/CHRISTMAS/footer.html similarity index 100% rename from files/templates/footer.html rename to files/templates/CHRISTMAS/footer.html diff --git a/files/templates/CHRISTMAS/forgot_password.html b/files/templates/CHRISTMAS/forgot_password.html new file mode 100644 index 000000000..cdfee69bd --- /dev/null +++ b/files/templates/CHRISTMAS/forgot_password.html @@ -0,0 +1,31 @@ +{% extends "authforms.html" %} + +{% block pagetitle %}{{'SITE_NAME' | app_config}} Password Reset{% endblock %} + +{% block authtitle %}Reset your password.{% endblock %} + +{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{'SITE_NAME' | app_config}} account and change your password.{% endblock %} + +{% block content %} + +
    + +
    + + + + + + + + + + + +
    + +
    + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/formatting.html b/files/templates/CHRISTMAS/formatting.html new file mode 100644 index 000000000..6fe045293 --- /dev/null +++ b/files/templates/CHRISTMAS/formatting.html @@ -0,0 +1,524 @@ +{% extends "settings2.html" %} +{% block title %} +{{'SITE_NAME' | app_config}} - Formatting + +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Markdown Formatting

    + +You can use Markdown formatting: + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameWhat you typeWhat gets displayed
    Italics*text*text
    Bold**text**text
    Code`text`text
    Strikethrough~~text~~text
    Links[{{'SITE_NAME' | app_config}}]({{request.host_url}}){{'SITE_NAME' | app_config}}
    Imageshttps://i.imgur.com/Lf6dfPO.jpg
    Youtube Videoshttps://youtube.com/watch?v=3Hecr51ByE4
    MP4 Fileshttps://files.catbox.moe/v4om92.mp4
    WEBM Fileshttps://files.catbox.moe/v4om92.mp4
    Emojis:marseylove::marseylove:
    Mirrored Emojis:!marseylove::!marseylove:
    Large Emojis:#marseylove::!marseylove:
    Large Mirroed Emojis:#!marseylove::!marseylove:
    Poll Options$$bussy$$ +
    + + +
    +
    Blockquote> text
    text
    Headers 1-6# Header 1
    ## Header 2
    ### Header 3
    #### Header 4
    ##### Header 5
    ###### Header 6

    Header 1

    Header 2

    Header 3

    Header 4

    Header 5
    Header 6
    Ordered list1. First thing
    2. Second thing
    1. First thing
    2. Second thing
    Unordered list* First thing
    * Second thing
    • First thing
    • Second thing
    Code Block```
    Use three backticks above and below.
    Or, indent the lines with four spaces.
    ```
    +
    +				Use three backticks above and below.
    +				Or, indent the lines with four spaces.
    +				
    +
    Spoilers||bussy > gussy||

    bussy > gussy

    Username Mention@QuadNarca@QuadNarca
    Subreddit Mentionr/{{'SITE_NAME' | app_config}}r/{{'SITE_NAME' | app_config}}
    Redditor Mentionu/Bardfinnu/Bardfinn
    + +

    HTML Formatting

    + +And we allow custom HTML in most places: + +
    +
    +
    + +

    Allowed Tags

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameWhat you typeWhat gets displayed
    Span + My mother has <span style="color:blue">blue</span> eyes. + + My mother has blue eyes. +
    BoldThis will be <b>bold</b> + This will be bold +
    Blockquote + <blockquote>This is a blockquote</blockquote> + +
    + This is a blockquote +
    +
    Line Break +
    +Line 1
    +<br>
    +Line 2
    +				
    +
    + Line 1 +
    + Line 2 +
    Code + <code>This is code</code> + + This is code +
    Strikethrough + The last word will have a <del>strikethrough</del> + + The last word will have a strikethrough +
    Emphasis + We <em>cannot</em> live like this. + + We cannot live like this. +
    Headings +
    +<h1>This is heading 1</h1>
    +<h2>This is heading 2</h2>
    +<h3>This is heading 3</h3>
    +<h4>This is heading 4</h4>
    +<h5>This is heading 5</h5>
    +<h6>This is heading 6</h6>
    +				
    +
    +

    This is heading 1

    +

    This is heading 2

    +

    This is heading 3

    +

    This is heading 4

    +
    This is heading 5
    +
    This is heading 6
    +
    Horizontal Rule +
    +Text 1
    +<hr>
    +Text 2
    +				
    +
    + Text 1 +
    + Text 2 +
    Italics + <i>This</i> is how you get italics. + + This is how you get italics. +
    Lists +
    +<ul>
    +	<li>Bullet 1</li>
    +	<li>Bullet 2</li>
    +</ul>
    +<ol>
    +	<li>Number 1</li>
    +	<li>Number 2</li>
    +</ol>
    +				
    +
    +
      +
    • Bullet 1
    • +
    • Bullet 2
    • +
    +
      +
    1. Number 1
    2. +
    3. Number 2
    4. +
    +
    Paragraphs +
    +<p>Paragraph 1</p>
    +<p>Paragraph 2</p>
    +				
    +
    +

    Paragraph 1

    +

    Paragraph 2

    +
    Preformatted Text
    +<pre>
    +	Text in a pre element
    +	is displayed in a fixed-width
    +	font, and it preserves
    +	both	  spaces and
    +	line breaks
    +</pre>
    +			
    +
    +Text in a pre element
    +is displayed in a fixed-width
    +font, and it preserves
    +both	  spaces and
    +line breaks
    +				
    +
    Strong + <strong>This text is important!</strong> + + This text is important! +
    Subscript + This text contains <sub>subscript</sub> text. + + This text contains subscript text. +
    Superscript + E = mc<sup>2</sup> + + E = mc2 +
    Tables
    +<table>
    +	<thead>
    +		<tr>
    +			<td>Col 1</td>
    +			<td>Col 2</td>
    +			<td>Col 3</td>
    +		</tr>
    +	</thead>
    +	<tbody>
    +		<tr>
    +			<td>1</td>
    +			<td>2</td>
    +			<td>3</td>
    +		</tr>
    +		<tr>
    +			<td>4</td>
    +			<td>5</td>
    +			<td>6</td>
    +		</tr>
    +	</tbody>
    +</table>
    +
    + + + + + + + + + + + + + + + + + + + + +
    Col 1Col 2Col 3
    123
    456
    +
    Marquee + <marquee direction="up" behavior="scroll" scrollamount="10" height="100"> + This is a sample scrolling text that has scrolls in the upper direction. + </marquee> + + + This is a sample scrolling text that has scrolls in the upper direction. + +
    Links + This is a <a href='https://www.w3schools.com/tags/tag_a.asp'>link</a> + + This is a link +
    Images + <img src="https://i.imgur.com/SwVuagI_d.webp" width="200"> + + +
    + +

    Allowed Attributes

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Name
    href
    style
    src
    class
    title
    direction
    behavior
    scrollamount
    + +
    Allowed Styles
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Name
    color
    background-color
    font-weight
    transform
    -webkit-transform
    + +{% include "expanded_image_modal.html" %} + +{% endblock %} \ No newline at end of file diff --git a/files/templates/CHRISTMAS/gif_modal.html b/files/templates/CHRISTMAS/gif_modal.html new file mode 100644 index 000000000..98a160890 --- /dev/null +++ b/files/templates/CHRISTMAS/gif_modal.html @@ -0,0 +1,23 @@ + diff --git a/files/templates/header-tw.html b/files/templates/CHRISTMAS/header-tw.html similarity index 94% rename from files/templates/header-tw.html rename to files/templates/CHRISTMAS/header-tw.html index 5219b14bc..20af72dae 100644 --- a/files/templates/header-tw.html +++ b/files/templates/CHRISTMAS/header-tw.html @@ -33,8 +33,8 @@