diff --git a/files/assets/css/classic.css b/files/assets/css/classic.css index 52829046a..46841788a 100644 --- a/files/assets/css/classic.css +++ b/files/assets/css/classic.css @@ -1,60 +1,64 @@ -:root { - --white: #f1f1f1 !important; - --black1: #888 !important; - --black2: #222222 !important; - --black3: #4f4f4f !important; - --gray : #ccc !important; - --gray-400 : white !important; - --red: #b40457 !important; - --blue: #369 !important; - --upvote: #ff8b60 !important; - --downvote: #9393ff !important; - --sticky: #228822 !important; - - --primary: var(--black1) !important; - --bg1: url('../images/classic1.webp') !important; - --bg2: url('../images/classic2.webp') !important; -} - -/*navbar*/ -.navbar-light, .navbar .container-fluid, #mobile-bottom-navigation-bar { - background-color: var(--white) !important; -} - -.form-inline.search input { - background-color: white !important; -} - -.nav.settings-nav { - background-color: var(--red); -} - -.nav-link.active { - color: var(--white) !important; - box-shadow: inset 0 -2px 0 var(--white) !important; -} - -.nav-link { - color: var(--gray) !important; -} - /*common*/ -body, .card, #main-content-row { - background-color: var(--white) !important; - background-image: var(--bg2) !important; - color: var(--black1); +:root { + --muted: #666 ; + --black: #444; + --primary: #b40457; + --grey1: #888; + --grey2: #999; + --upvote: #ff8b60; + --downvote: #9393ff; + --sticky: #228822; } -.posts .card { - border-color: var(--gray) !important; +body { + background-image: url(/i/classic2.webp); } -.btn-primary, .btn-secondary { - background-color: var(--red) !important; - color: white !important; - border-color: transparent; +* { + border-color: var(--muted) !important; } +#frontpage .container, #thread .container { + max-width: 2160px; +} + +.sidebar { + background-color: white; + border-radius: 0px; + margin-top: 0; + margin-right: 0; +} + +.no-gutters { + margin-top: 1rem; +} + +.navbar { + background-color: white !important +} + +.btn-primary { + background-color: var(--primary) !important; + color:white; +} + +.dropdown-menu { + background-color: white; +} + +.dropdown-item i { + color: var(--muted) !important; +} + +#mobile-bottom-navigation-bar { + background-color: white !important; +} + +input, textarea, .form-control { + background-color:white !important; +} + +/*decoration*/ .score-up, .active.arrow-up::before, .arrow-up::after, .arrow-up:hover::before { color: var(--upvote) !important; } @@ -64,479 +68,102 @@ body, .card, #main-content-row { } .arrow-up::before, .arrow-down::before, .score { - color: var(--black1); + color: var(--muted); } -.controversial { - color: var(--red) !important; +.pronouns { + background-color: white; } -a { - color: var(--blue); -} - -.post-title a { - color: var(--blue) !important; -} - -.fa-thumbtack.text-admin, .card.stickied .post-title a:not(:visited) { - color: var(--sticky) !important; -} - -.flaggers, .flaggers a { - background-color: white !important; - color: var(--black3) !important; - border-color: var(--gray); -} - -.dropdown-menu, .dropdown-menu a { - color: var(--black3); - background-color: white; -} - -.popover, .pop-username, .pop-bio, .popover-user-profile, .popover-user-profile * { - background-color: var(--white); - color: var(--black3); - border-color: var(--black1) !important; -} - -.text-muted { - color: var(--gray) !important; -} - -/*frontpage*/ -#frontpage .container { - max-width: 2160px; - padding-left: 20px; - padding-right: 20px; -} - -#frontpage .d-lg-flex, -#frontpage .font-weight-bold.py-3 { - display: none !important; -} - -#frontpage .sidebar { - background-color: white !important; - color: black; -} - -#frontpage .col .h-100 .custom-gutters .row .col { - background-image: var(--bg1) !important; - color: white !important; -} - -#frontpage .dropdown .btn { - background-color:transparent !important; - color:yellow; - text-shadow: -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black, 1px 1px 0 black !important; - border-color: transparent; - font-size: 1.3rem; -} - -#frontpage .dropdown-toggle, #frontpage i.fas.mr-1 { - color:yellow !important; -} - -/*post*/ -.post-meta, .post-actions a, .post-actions button, .nav-link .fas, label, small, .comment-actions * { - color: var(--black1) !important; -} - -.comment, .comment-text, .comment-section, .comment-body, .post-body { - background-color: white; - color: var(--black2) !important; -} - -#post-text { - margin: 15px; -} - -.anchor.comment { - border-left: 2px dotted var(--black1) !important; -} - -.comment-collapse-desktop { - border-left: none !important; -} - -blockquote { - border-left: 2px solid #c5c1ad !important; - background-color: white !important; - color: #4f4f4f !important; -} - -.form-control, .comment-box.form-control.rounded { - background-color: white !important; - color: var(--black2) !important; -} - -.comment-box, .form-control{ - border-color: var(--black1) !important; -} - -.text-info.new-comments { - color: #ff4500 !important; -} - -#thread #dropdownMenuButton { - background-color: var(--red) !important; - color: white !important; - border-color: transparent; -} - -.btn.format { - background-color: transparent !important; - color: var(--black1) !important; - border-color: transparent !important; -} - -/*userpage*/ -#userpage .nav.settings-nav { - background-color: transparent; -} - -#userpage .nav-link { - color: var(--red) !important; -} - -#userpage .nav-link.active { - box-shadow: inset 0 -2px 0 var(--red) !important; -} - -/*leaderboard*/ -#settings2 .container, #settings2 .container-fluid { - background-color: transparent !important; -} - -#settings2 .bg-white { - background-color: var(--white) !important; -} - -#settings2 .text-muted { - color: var(--black1) !important; -} - -#settings2 .nav.settings-nav { - margin: auto !important; -} - -#settings2 .table { - color: var(--black1); -} - -/*shop*/ -#message .container { - background-color: transparent !important; -} - -#message .table { - color: var(--black1); -} - -/*submit*/ -#submit .container { - background-color: transparent !important -} - -#submit .text-muted { - color: var(--black1) !important; -} - -#submit #create_button { - background-color: var(--red) !important; - color: white !important; - border-color: transparent; -} - -#submit .btn.format { - background-color: transparent !important; - color: var(--black1) !important; - border-color: transparent !important; -} - -#submit .row.fixed-bottom { - background-color: var(--white) !important -} - -/*settings*/ -#settings .text-small, #settings .text-small-extra { - color: var(--black1) !important; -} - -#settings .custom-control-label::before { - background-color: var(--gray) !important; -} - -#settings .custom-control-input:checked ~ .custom-control-label::before { - opacity: 1; - background-color: var(--black1) !important; - border: var(--blue) solid 0.1px; -} - -/*assorted patches I don't feel like categorizing*/ -#followers-table td { - color: var(--black3); -} - -.btn-danger { - border-color: #E53E3E !important; - color: red !important; -} - -.btn.caction .score-up { - color: var(--upvote) !important; -} - -.btn.caction .score-down { - color: var(--downvote) !important; -} - -.user-info .text-muted { - color: var(--black1) !important; -} - -.shop .btn { - background-color: var(--black1) !important; -} - -#mobile-bottom-navigation-bar .text-primary { - color: var(--red) !important; -} - -#mobile-bottom-navigation-bar .text-muted { - color: var(--black1) !important; -} - -#settings2 .nav-link.active .fas { - color: var(--white) !important; -} - -#navbarResponsive .nav-link { - color: var(--black1) !important; -} - -.mobile-nav-icon { - color: var(--black1); -} - -/*patch*/ -#frontpage .container { - margin-top: -5px -} - -.table { - color: var(--black3) -} - -:root { - --gold: #f59e0b !important; - --pink: #ec72de !important; - --purple: #9333ea !important; - --bluecheck: #1DA1F2 !important; - --red-hover: #d2106c !important -} - -#settings2 .text-muted { - color: var(--black3)!important; -} - -.fa-robot { - color: var(--purple) !important; +.fa-thumbtack.text-admin { + color: var(--sticky); } .fa-broom { color: var(--sticky) !important; } -.post-title span.patron { - background-color: var(--purple) -} - -.btn-primary:hover, .btn-secondary:hover { - background-color: var(--red-hover) !important; - color: white!important; - border-color: var(--red-hover) -} - -.dropdown-menu a:hover { - color: var(--red); - background-color: #fff; - font-weight: bold; -} - -#frontpage .card-header div { - z-index: 2 !important; -} - -#navbarResponsive .nav-link:hover i { - color: var(--red) !important; -} - -.btn-secondary:focus, .btn-secondary.focus { - box-shadow: none; - background-color: white!important; - color: var(--red)!important; - border-color: var(--red); -} - -.shop .btn { - border-color: var(--gray) !important; - background-color: var(--red) !important; -} - -.nav-link.active { - font-weight: bold; -} - -a.text-danger, button.text-danger { - color: #dc3545 !important -} - -a.text-info, button.text-info { - color: var(--sticky) !important -} - -label.custom-control-label::after, label.custom-control-label::before { - background-color: var(--black1) !important -} - -.custom-control-input:checked ~ .custom-control-label::after { - background-color: var(--gray) !important; -} - -#settings .sticky { - top: 70px; -} - -.border-bottom { - border-bottom: 1px solid var(--gray) !important; -} - -a.nav-link:hover { - color: white !important -} - -.nav.settings-nav { - border: 1px solid var(--red-hover) -} - -#thread .anchor.comment { - border-left: 2px solid var(--gray)!important; -} - -.anchor.comment.mt-0 { - border-left: none !important; -} - -.notifs .anchor.comment { - border-left: none !important; -} - -.notifs .comment-collapse-desktop { - border-left: 2px solid var(--gray)!important; -} - -#userpage .nav.settings-nav { - border:none; -} - -#userpage .btn-danger { - background-color:red !important; - color: white !important; - border-color: var(--gold) !important -} - -#userpage .btn-success { - background-color: var(--sticky) !important; - color: white !important; - border-color: var(--gold) !important -} - -#userpage .container-fluid.pb-0.text-center.bg-white.d-md-none { - margin-top: -32px !important; -} - -#userpage .profile-pic-65 { - border-radius: 0; - border-color: transparent !important; -} - -#settings2 .nav.settings-nav .fas { - color: var(--gray) !important -} - -#settings2 .nav-link.active .fas { - color: white !important -} - -#settings2 .btn .fas { - color: white !important -} - -#frontpage .settings .d-lg-flex { - display: block !important; -} - -#frontpage .container .col-lg-8 { - background-image: none !important; -} - -#post-text a, #post-text img { - margin-left: 0px; - margin-right: 0px; - margin-top: 0px; -} - .tooltip { - color:black !important; + background-color:white; } -#frontpage .btn.btn-secondary.text-small-m { - color: #ff0 !important; - text-shadow: -1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000 !important; - background: transparent !important; -} - - -.d-flex.justify-content-between.align-items-center.pt-3.pb-2.sorting { - float: left !important; - padding-top: 0 !important; +/*front page*/ +a.btn-block[href~="/submit"] { + display:none; } .sorting { - padding-bottom: 0 !important; + float:left !important; + padding-top: 5px !important; } -.comment-anchor:target, .unread { - background: #88888833 !important; - padding: 12px; +#frontpage #main-content-col .row:first-child { + background-image: url(/i/classic1.webp); + background-position:center; + background-repeat: repeat-x; + margin-top: -12px; + margin-bottom:-15px; } -#chat-window { - background-color: white !important; +.sorting .btn { + color: white; + text-shadow: -1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black; + border:none; } -.chat-message { - color: var(--black2) !important; +#frontpage .sorting .text-primary { + color: yellow !important; + text-decoration: underline; + background-color:transparent !important; } -.sidebar -{ - background-color: #f3f3f3 !important; - border-radius: 0px; - margin-top: 5px; +#frontpage #dropdownMenuButton, #frontpage #dropdownMenuButton2, .sorting .dropdown i { + color: yellow; } -/* award modal text legibility */ -#awardModalBody .text-muted { - color: var(--black3) !important; +.card { + border-color: var(--grey2) !important; } -#awardModalBody .card .pt-2 { - color: var(--black3) !important; +.modal-content { + background-color: white } -h5.post-title a:visited { - color: #6e6e6e !important; -} \ No newline at end of file +#frontpage .post-title a:not(:visited) { + color: #369; +} + +#frontpage .card.stickied .post-title a { + color: var(--sticky); +} + +/*posts*/ +#thread .container, #thread .card { + background: transparent !important; +} + +@media (min-width: 992px){ + #thread #main-content-col { + padding-left:3rem; + padding-right: 3rem; + } +} + +.comment-section, .comment { + background-color: white; +} + +blockquote { + background-color: var(--grey1); + color: white; +} + +/*userpage*/ +.jumbotron { + color: var(--grey2); +} + +/*casino*/ +#casino-game-wrapper .row-cols-1, #casino-game-wrapper .row-cols-2 { + background-image: none !important; +} diff --git a/files/assets/images/badges/175.webp b/files/assets/images/badges/175.webp new file mode 100644 index 000000000..4f5f10883 Binary files /dev/null and b/files/assets/images/badges/175.webp differ diff --git a/files/assets/images/emojis/marseyautumn.webp b/files/assets/images/emojis/marseyautumn.webp new file mode 100644 index 000000000..ecc1cda78 Binary files /dev/null and b/files/assets/images/emojis/marseyautumn.webp differ diff --git a/files/assets/images/emojis/marseyautumn2.webp b/files/assets/images/emojis/marseyautumn2.webp new file mode 100644 index 000000000..95c725a2c Binary files /dev/null and b/files/assets/images/emojis/marseyautumn2.webp differ diff --git a/files/assets/images/emojis/marseybeanpizzashill.webp b/files/assets/images/emojis/marseybeanpizzashill.webp new file mode 100644 index 000000000..21b9d9e08 Binary files /dev/null and b/files/assets/images/emojis/marseybeanpizzashill.webp differ diff --git a/files/assets/images/emojis/marseybeantyrone.webp b/files/assets/images/emojis/marseybeantyrone.webp new file mode 100644 index 000000000..90e37d4ac Binary files /dev/null and b/files/assets/images/emojis/marseybeantyrone.webp differ diff --git a/files/assets/images/emojis/marseyfursona2.webp b/files/assets/images/emojis/marseyfursona2.webp new file mode 100644 index 000000000..7ca2658c6 Binary files /dev/null and b/files/assets/images/emojis/marseyfursona2.webp differ diff --git a/files/assets/images/emojis/marseyratso.webp b/files/assets/images/emojis/marseyratso.webp new file mode 100644 index 000000000..20fedb7a1 Binary files /dev/null and b/files/assets/images/emojis/marseyratso.webp differ diff --git a/files/assets/images/hats/Bored Ape.webp b/files/assets/images/hats/Bored Ape.webp new file mode 100644 index 000000000..cfcbb197e Binary files /dev/null and b/files/assets/images/hats/Bored Ape.webp differ diff --git a/files/assets/images/hats/Chen.webp b/files/assets/images/hats/Chen.webp new file mode 100644 index 000000000..7c790c702 Binary files /dev/null and b/files/assets/images/hats/Chen.webp differ diff --git a/files/assets/images/hats/MUSHROOM CLOUD.webp b/files/assets/images/hats/MUSHROOM CLOUD.webp new file mode 100644 index 000000000..1dd68bfbe Binary files /dev/null and b/files/assets/images/hats/MUSHROOM CLOUD.webp differ diff --git a/files/assets/images/hats/Senjutsu.webp b/files/assets/images/hats/Senjutsu.webp new file mode 100644 index 000000000..d75125489 Binary files /dev/null and b/files/assets/images/hats/Senjutsu.webp differ diff --git a/files/assets/images/rDrama/sidebar/782.webp b/files/assets/images/rDrama/sidebar/782.webp new file mode 100644 index 000000000..8feae70c3 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/782.webp differ diff --git a/files/assets/images/rDrama/sidebar/783.webp b/files/assets/images/rDrama/sidebar/783.webp new file mode 100644 index 000000000..94fed737e Binary files /dev/null and b/files/assets/images/rDrama/sidebar/783.webp differ diff --git a/files/helpers/const.py b/files/helpers/const.py index 89cc64e91..b51a548d0 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -119,7 +119,6 @@ AGENDAPOSTER_MSG_HTML = """

Hi here.

""" - ################################################################################ ### SITE SPECIFIC CONSTANTS ################################################################################ @@ -155,6 +154,7 @@ FEATURES = { 'MARKUP_COMMANDS': True, 'REPOST_DETECTION': True, 'PATRON_ICONS': False, + 'ORDER': False } EMOJI_MARSEYS = True @@ -217,6 +217,7 @@ SNAPPY_THREAD = 0 if SITE == 'rdrama.net': FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True + FEATURES['ORDER'] = True SIDEBAR_THREAD = 37696 BANNER_THREAD = 37697 @@ -314,6 +315,7 @@ elif SITE == 'watchpeopledie.co': else: # localhost or testing environment implied FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True + FEATURES['ORDER'] = True if CARP_ID: GIFT_NOTIF_ID = CARP_ID elif AEVANN_ID: GIFT_NOTIF_ID = AEVANN_ID diff --git a/files/routes/__init__.py b/files/routes/__init__.py index f9c046e1c..7a5242785 100644 --- a/files/routes/__init__.py +++ b/files/routes/__init__.py @@ -21,4 +21,4 @@ from .casino import * from .polls import * from .notifications import * from .hats import * -from .asset_submissions import * +from .asset_submissions import * \ No newline at end of file diff --git a/files/routes/static.py b/files/routes/static.py index eb3fa40ca..3b970664d 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -180,6 +180,37 @@ def static_megathread_index(v): def api(v): return render_template("api.html", v=v) + +@app.get("/order") +@auth_desired +def order(v): + if not FEATURES['ORDER']: abort(404) + if v: return redirect("/") + return render_template("order.html", v=v) + +@app.post("/order") +@limiter.limit("1/hour;2/day") +def submit_order(): + if not FEATURES['ORDER']: abort(404) + + body = request.values.get("message") + if not body: abort(400) + + body = 'This message has been sent automatically to all admins via [/order](/order)\n\nMessage:\n\n' + body + body = body.strip() + body_html = sanitize(body) + new_comment = Comment(author_id=AUTOJANNY_ID, parent_submission=None, level=1, body_html=body_html, sentto=2) + g.db.add(new_comment) + g.db.flush() + + new_comment.top_comment_id = new_comment.id + + for admin in g.db.query(User).filter(User.admin_level > 2, User.id != AEVANN_ID).all(): + notif = Notification(comment_id=new_comment.id, user_id=admin.id) + g.db.add(notif) + + return {"success": True} + @app.get("/contact") @app.get("/contactus") @app.get("/contact_us") diff --git a/files/templates/header.html b/files/templates/header.html index 3a71f9388..8b990369b 100644 --- a/files/templates/header.html +++ b/files/templates/header.html @@ -56,7 +56,6 @@ } {% endif %} - {% else %} - + {% endif %} + {% else %} + {% if FEATURES['ORDER'] %} + + {% endif %} diff --git a/files/templates/order.html b/files/templates/order.html new file mode 100644 index 000000000..f4fcd6a3b --- /dev/null +++ b/files/templates/order.html @@ -0,0 +1,218 @@ +{% extends "default.html" %} + +{% block content %} + + +
+

+
Request a quote +
+

+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
We respect your privacy. Learn + more.
+
+ + + +
+ +
+
+

Order Received

+

We will get back to you as quickly as possible with a quote.

+
+
+ + + + + + +{% endblock %} \ No newline at end of file diff --git a/files/templates/util/assetcache.html b/files/templates/util/assetcache.html index e7d208bcd..21873ad80 100644 --- a/files/templates/util/assetcache.html +++ b/files/templates/util/assetcache.html @@ -3,7 +3,7 @@ set CACHE_VER = { 'css/main.css': 4025, 'css/catalog.css': 4007, 'css/4chan.css': 4007, - 'css/classic.css': 4007, + 'css/classic.css': 4009, 'css/classic_dark.css': 4007, 'css/coffee.css': 4007, 'css/dark.css': 4007, diff --git a/schema.sql b/schema.sql index 1bc9aaea6..3f786d84c 100644 --- a/schema.sql +++ b/schema.sql @@ -2654,6 +2654,7 @@ INSERT INTO public.badge_defs VALUES (167, 'OwOified', 'This user''s comments ge INSERT INTO public.badge_defs VALUES (169, 'Early Life Checked', 'The Early Life section of this user is on full display', NULL); INSERT INTO public.badge_defs VALUES (172, 'God Save The Kween', 'Commemorative badge awarded for outliving Her Maj', NULL); INSERT INTO public.badge_defs VALUES (174, 'George', '@Marsey went to Spokane to fight @TrailerParkBride, but George the Mountain Lion was the real winner.', NULL); +INSERT INTO public.badge_defs VALUES (175, 'Pressuring Peer', 'You have applied pressure to poor souls undergoing rehabilitation [n] times. Shame on you!', 1663105259); INSERT INTO public.badge_defs VALUES (4, 'White Hat', 'Discreetly reported an exploit', NULL); INSERT INTO public.badge_defs VALUES (1, 'Alpha User', 'Joined during open alpha', NULL); INSERT INTO public.badge_defs VALUES (2, 'Verified Email', 'Verified Email', NULL); @@ -2760,7 +2761,7 @@ INSERT INTO public.badge_defs VALUES (134, '1 Year Old 🥰', 'This user has was -- Name: badge_defs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: - -- -SELECT pg_catalog.setval('public.badge_defs_id_seq', 174, true); +SELECT pg_catalog.setval('public.badge_defs_id_seq', 175, true); --