Skip to content

Commit d1372b0

Browse files
committed
Add bigot troll easter egg
1 parent 4e1c340 commit d1372b0

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

app/template_filters.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@
33
# Copyright (C) 2018-2025 rubenwardy <rw@rubenwardy>
44

55
from datetime import datetime as dt
6+
from datetime import timedelta as datetime_timedelta
67
from urllib.parse import urlparse
78

89
from flask import request, has_request_context
910
from flask_babel import format_timedelta, gettext, get_locale, format_decimal
1011
from flask_login import current_user
1112
from markupsafe import Markup
13+
from sqlalchemy import and_
1214

1315
from . import app
1416
from app.markdown import get_headings
15-
from .models import Permission, Package, PackageState, PackageRelease, ReleaseState
17+
from app.models import db, Permission, Package, PackageState, PackageRelease, ReleaseState, PackageReview, \
18+
PackageReviewVote
1619
from app.utils.flask import abs_url_for, url_set_query, url_set_anchor, url_current, abs_url as do_abs_url
1720
from app.utils.luanti_hypertext import normalize_whitespace as do_normalize_whitespace
1821
from app.utils.misc import format_file_size as format_file_size_impl
@@ -45,6 +48,31 @@ def inject_todo():
4548
return dict(todo_list_count=todo_list_count)
4649

4750

51+
@app.context_processor
52+
def inject_bigotry_troll():
53+
if not current_user or not current_user.is_authenticated:
54+
return dict()
55+
56+
sensitive_package_ids = (db.session.query(Package.id)
57+
.filter_by(sensitive_package=True, state=PackageState.APPROVED)
58+
.subquery())
59+
60+
one_hour_ago = dt.utcnow() - datetime_timedelta(hours=1)
61+
62+
count = (PackageReview.query
63+
.filter(PackageReview.package_id.in_(sensitive_package_ids))
64+
.join(PackageReviewVote,
65+
and_(
66+
PackageReviewVote.review_id == PackageReview.id,
67+
PackageReviewVote.user_id == current_user.id,
68+
PackageReviewVote.is_positive != (PackageReview.rating > 3),
69+
PackageReviewVote.created_at < one_hour_ago,
70+
))
71+
.count())
72+
73+
return dict(bigotry_troll=count > 5)
74+
75+
4876
@app.template_filter()
4977
def throw(err):
5078
raise Exception(err)

app/templates/base.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,18 @@
3737
<link rel="alternate" type="application/atom+xml"
3838
href="{{ abs_url_for('feeds.releases_all_atom') }}" title="{{ _('ContentDB package updates') }}">
3939

40+
{% if bigotry_troll %}
41+
<style>
42+
.navbar.bg-primary {
43+
background: linear-gradient(red 16.66%, orange 0 33.33%, yellow 0 50%, green 0 66.66%, blue 0 83.33%, indigo 0);
44+
}
45+
46+
.navbar.bg-primary .nav-item, .navbar.bg-primary .navbar-brand {
47+
background: black;
48+
}
49+
</style>
50+
{% endif %}
51+
4052
{% block headextra %}{% endblock %}
4153
</head>
4254
<body>

0 commit comments

Comments
 (0)