Commit graph

13659 commits

Author SHA1 Message Date
Jack Byrne
0ec522d897 Remove thumbnail on /post pages for text (self) posts
The thumbnail is ugly and as far as I can tell pointless,
so it should be removed.
2022-09-09 21:28:47 -05:00
TLSM
72b46a6888 Implement client-side collapsed comment memory.
Fixes #290. h/t Suspicious Turtle for initial implementation.
2022-09-09 19:47:26 -05:00
Michael House
9fe2ffd72e
Added comments-per-page config. 2022-09-09 17:11:12 -05:00
JulianRota
93400e531e
Require admin for blocks section 2022-09-09 17:09:13 -05:00
TLSM
48d5e92a25 Densify comment whitespace (low-hanging fruit).
Pending a more thorough comments rework, make comment listings denser:
  - Reduce margin between comments from 28px to 3.5px.
  - Reduce padding around comment text from 10px to 5px.
  - Shrink comment-actions text size by 20% to maintain visual balance.
  - Add some padding to frontpage list entries, because the size of
    voting arrows was holding the size up. Should be about the same
    as before action icons were shrinked.

Also wound up semi-unrelated fixing the comment nesting border-left
colors on TheMotte mobile, coffee, win98, dramblr, and midnight.
All changes tested most thoroughly on those themes.
2022-09-08 05:09:41 -05:00
Ben Rog-Wilhelm
5c6ac1d4b4 Loosen admin requirements for changing usernotes. 2022-09-08 05:08:14 -05:00
iro84657
2767d556ca Clean up handling of "view more comments" button 2022-09-07 17:30:18 -05:00
DinoInNameOnly
4b935addb8 Remove the rule against weaponizing the block feature. #166 2022-09-07 03:31:40 -05:00
Ben Rog-Wilhelm
20fa9ce79f Move a bunch of moderation tools to admin level 2 2022-09-06 18:51:24 -05:00
TLSM
f5c3d944e8 Fix short child comments auto-collapsing.
Bug accidentally introduced with 70c8a942b6, when a removed clause
in Comment.collapse_for_user was treated as always True, rather than
as always False--which would've removed this entire line, as this
commit does now.

Original intent of the logic was for auto-collapsing game comments
like blackjack and slots that necessarily entailed somewhat spammy
commenting behavior.
2022-09-06 17:51:58 -05:00
TLSM
e0e4c79048 Add secondary navbar for orphaned pages.
Originally motivated by fixing #263 (add a mod list), the root cause
of which was that we had a number of orphaned pages, one being the
admins list.

In the upstream, we moved links to a number of infrequently-accessed
pages to a secondary nav in the sidebar. This commit implements a
similar approach to provide links to the admin list and modlog. To
make the nav less visually unbalanced, Random Post/User were also
moved out of the header.

To provide mobile support, this secondary nav is presented in the
hamburger menu. This also provides a place to link /rules, which
otherwise has no link on mobile (that I can readily find).

Finally, the original intent of providing a mod list motivates some
style changes to admins.html to get rid of visible truescore, make
names appear consistently with names elsewhere, and ensure links to
leaderboard aren't accidentally leaked.
2022-09-06 12:40:20 -05:00
TLSM
e407c29ec7 Fix #267: /comments respects shadowbans, filters.
Resolves root problem of non-admin users seeing comments they shouldn't
by JOINing on the appropriate fields and including them in the WHERE
clause of the query.

In the process, was also able to remove some unperformant queries
that used (potentially extremely long) lists passed to WHERE clauses in
lieu of proper JOINs.
2022-09-06 12:35:22 -05:00
TLSM
e40228d7ee Remove slur replacer toggle from settings.
The Slur Replacer feature from rDrama has already been removed, but
the toggle for it in settings remained. A user in Discord pointed out
it was confusing and potentially disconcerting to have a default-on
toggle to 'enable slurs'.
2022-09-06 12:35:22 -05:00
TLSM
7a6f95a3b1 Fix #241: admin action rate limits too low.
Explicitly exempts admin action routes from rate limiting because
the limits were being hit during normal user behavior.

While verbose, alternatives like grouping admin routes into e.g. a
Flask blueprint to modify their behavior as a collective would have
been a larger refactor than seemed wise at the moment.

Also, some routes that were limited at 1/second were originally set
as such as a makeshift debounce for people double-clicking buttons.
This was discussed and deemed an acceptable risk compared to making
the mod queue more frustrating to go through.
2022-09-06 12:35:22 -05:00
TLSM
13a6444f67 Fix #265: show sidebar on post/comment pages.
Logic already existed for this and is operative on the upstream.
However, it was restricted to only show sidebars for posts inside
subs ("holes"). We simply remove that check so it works on posts
without a sub set, namely all of the ones on TheMotte.
2022-09-06 12:35:22 -05:00
Ben Rog-Wilhelm
276ae4aafd
Add Flask profiler. 2022-09-06 00:44:15 -05:00
TLSM
eea23f1e7c Fix #260: sort replies to comments by new. 2022-09-05 23:44:18 -05:00
TLSM
1d705588d4 Remove obfuscated auto-shadowban on keyword. 2022-09-05 23:44:18 -05:00
TLSM
70c8a942b6 Remove games.
Unfortunately not totally dead code paths, and special case behavior
for them complicated commenting and sorting logic in a number of
places.
2022-09-05 23:44:18 -05:00
TLSM
3e8904757a Remove coins from popovers, disable coin routes.
The last places coins were visible to non-admins were in user popovers
and, potentially, via direct access of /@<username>/coins. These have
been removed.

Additionally, there are a number of routes which, despite being removed
from the UI, were still operative and usable. These are disabled
pending possible(?) future uses of coins.
2022-09-05 23:44:18 -05:00
TLSM
dbaf0a1bfd Remove unused polls code to reduce query volume.
Due to use of Submission.{choices, options, bet_options} in realbody,
generating submission_listings resulted in extremely high volume of
SELECT queries.

In local testing with 6 posts, one of which had a poll with 2 options,
the removal of these calls reduced quantity of queries on the homepage
from 84 to 22.

Given that it was previously decided to remove the polls feature after
a regression while adding comment filtering, the remaining dead code
paths for polls were also removed.
2022-09-05 23:44:18 -05:00
Julian Rota
cf9819ca5b Hide the reply section after submitting a response 2022-09-05 12:03:16 -05:00
TLSM
bb142eda53 Change feed title to use human-readable SITE_TITLE. 2022-09-05 00:44:13 -05:00
TLSM
ef65a3f341 Fix #246: new comment counts on desktop listings.
Logic to provide new comment count indicators on submission_listings
exists but seems to have been lost on desktop (though working on
mobile) during some frontpage design changes. We now add it back.
2022-09-05 00:44:13 -05:00
TLSM
f86bb38154 Fix #245: hide styling for controversial comments. 2022-09-05 00:44:13 -05:00
TLSM
2f8afbf4f8 Reorder header icons to prioritize notifications. 2022-09-05 00:44:13 -05:00
TLSM
129d644a3f Add active user counter logic; add to admin tools.
Ports in lightly modified logic from the upstream which tracks active
sessions to provide counters and listings to understand site traffic
in the admin panel.
2022-09-05 00:44:13 -05:00
TLSM
ecbd8179b9 Fix #238: remove "Get Them Help" button. 2022-09-05 00:44:13 -05:00
TLSM
2077ac4f83 Port in valid RSS feed creation from upstream. 2022-09-05 00:44:13 -05:00
TLSM
e12b0eea1a Remove treasure rewards for comments.
Given that coins are not visible in many contexts, the conspicuous
appearance of treasure chests (random coin rewards on 1% of comments)
seems out of place. This removes the logic which rewards treasure,
the visible display of treasure, and drops the column containing
treasure information which has already been awarded to at least one
comment on prod.
2022-09-04 19:12:30 -05:00
TLSM
cccb26cb3f Fix contrast: blockquotes, prev/next, new comments.
Style changes in three contexts, especially for contrast/visibility:
  - Highlighting for new comments is now _much_ lighter.
  - Blockquotes display similarly to reddit-style: slightly muted
    text with a grey bar to the left but no background otherwise.
  - Prev/Next pagination for listings now readable and distinct.

Only applied to TheMotte.css, since it seems the one with complaints.
2022-09-04 19:12:30 -05:00
TLSM
b31e1874dd Fix #230: present pinned posts first in all sorts. 2022-09-04 19:11:42 -05:00
TLSM
fd3fd7e04e Fix Limiter not using remote address as key. 2022-09-04 19:11:24 -05:00
JulianRota
9657adbebf
Merge pull request #227 from TLSM/rework-assets
Rework assets to use automatic cachebusting (#127).
2022-09-01 00:28:39 -04:00
TLSM
a35697e55e
Replace nearly all ?v= cachebusts with assetcache.
Using the new assetcache module, we replace (almost) all instances
of `?v=` cachebusting query parameters in Python and in Jinja templates.
The primary exceptions were: user site backgrounds, and some
infrequently changed graphics referenced literally from .js files.
2022-08-30 17:02:46 -04:00
TLSM
6f3b995455
assetcache: add interface for non-Jinja consumers.
Rather than generating the URL in helpers/jinja2.py, we move the logic
to helpers/assetcache.py because there are consumers of asset URLs
in Python code (for better or for worse).
2022-08-30 16:23:09 -04:00
TLSM
fcb51c09d3
Implement assetcache module with asset hashing.
Provides a module `assetcache` to support automatic cachebusting of
static web assets, rather than the current approach of incrementing
a version number.

On module load, it walks the file/assets/ dir, computes a CRC32 of
each asset, and provides those hashes via `assetcache_get(path)` at
runtime. The primary consumer of hashes at present is the new `asset`
filter for Jinja2, which accepts a relative asset path and returns the
full path, with cache busting, suitable for final use in the template.

Ex: `{{ 'css/main.css' | asset }}`
2022-08-30 16:00:24 -04:00
TLSM
c00533dc6e
Remove unused copyrighted assets. 2022-08-30 14:59:23 -04:00
TLSM
b2773cbb40
Clarify permabanned forbidden messages.
Fixes #221. Provides custom message behavior for the user DM route
and slightly refactors the `@is_not_permabanned` wrapper to not be
deliberately misleading to users.
2022-08-30 13:35:02 -04:00
TLSM
e1244e9496 Fix flask-limiter having null limit_key.
Recently, unrelated changes led to enabling logging for flask-limiter
accidentally, at which point it was discovered that it wasn't actually
limiting requests due to Limiter.key_func = get_CF not being proper
for either prod (not behind Cloudflare) or localhost (likewise).

We instead use the remote_addr attached directly to the request using
the existing flask-limiter function to do so.

Detailed troubleshooting at:
https://github.com/themotte/rDrama/issues/222#issuecomment-1229489062
2022-08-30 06:37:56 -05:00
Julian Rota
27d48226de Remove lack of comment count increment if comment is a reply to self 2022-08-29 14:16:49 -05:00
Julian Rota
288183012e Fix misspelling of "culture ware" 2022-08-29 14:16:18 -05:00
Ben Rog-Wilhelm
de4d923b32 Fix some mod log errors and make it more durable to future changes. 2022-08-27 11:23:12 -05:00
Ben Rog-Wilhelm
74a21234b5
Make the Comments indicator into a link. 2022-08-27 06:33:05 -05:00
TLSM
de29d63a55 Improve tooltip legibility on TheMotte theme. 2022-08-27 06:15:38 -05:00
TLSM
0b332e31bf Fix timestamp tooltips not appearing.
Another JS load order bug, previously fixed upstream. bs_trigger() in
header.js must be run after DOM content is loaded to properly set the
events for tooltips to appear on hover. This commit uses standard
document ready event boilerplate to ensure this happens, regardless
of script load order.
2022-08-27 06:15:38 -05:00
Ben Rog-Wilhelm
210d4d3bc1 Bump cachebusters 2022-08-22 22:14:21 -05:00
Ben Rog-Wilhelm
280e7275a6 Rejigger theme pretty heavily. I apologize for this change not being neatly split apart in any way. 2022-08-22 22:02:39 -05:00
Julian Rota
f4a8b78d56 Fix an error with trying to sanitize really ugly HTML 2022-08-22 09:55:14 -05:00
Julian Rota
2d03dd1984 Remove remaining gumroad stuff 2022-08-22 09:54:35 -05:00