Commit graph

332 commits

Author SHA1 Message Date
justcool393
3f2e8629df ratelimiting: check after required request g attributes are set 2022-12-17 09:21:40 -08:00
Ben Rog-Wilhelm
af31abd545 Fix: Volunteer config not parsed properly. 2022-12-05 00:49:34 -08:00
justcool393
0c632d73b7
Rework error system a bit to remove a bunch of duplicated code (#434) 2022-12-01 20:58:27 -06:00
Ben Rog-Wilhelm
5fef5ca908 Volunteer Janitor: Add global enable/disable. 2022-12-01 18:53:24 -08:00
Ben Rog-Wilhelm
0a8bbae290 Volunteer Janitor: Record accepted tasks. 2022-12-01 18:53:24 -08:00
Ben Rog-Wilhelm
c3f4b540d0 Disable file caching in debug mode. 2022-11-28 07:48:14 -08:00
Ben Rog-Wilhelm
7e25af2fa0 Fix: Changes to the User table cause unavoidable breakages in the Leaderboard system. 2022-11-21 10:09:17 -06:00
Ben Rog-Wilhelm
18437003cf Beef up the Production check a little and do true comparison correctly. 2022-11-21 09:43:07 -06:00
justcool393
86c0eea85a security: add ENFORCE_PRODUCTION
can provide a safety check so debug mode never gets enabled on production environments by accident
2022-11-21 06:11:03 -06:00
Ben Rog-Wilhelm
1437bc3092 Rig up a query-frequency analyzer with the most commonly seen callstack, including Jinja demangling. 2022-11-11 09:43:15 -06:00
FatherInire
b46ada9f72
Fix some deprecations and factor out a helper function (#387) 2022-10-27 22:15:48 -05:00
Inire
4e2047624b Hide votes for posts and comments under 24 hours old 2022-10-27 21:50:08 -05:00
Julian Rota
c16cf799ed Change Android background color from pink to white 2022-09-13 19:45:37 -05:00
Michael House
9fe2ffd72e
Added comments-per-page config. 2022-09-09 17:11:12 -05:00
Ben Rog-Wilhelm
276ae4aafd
Add Flask profiler. 2022-09-06 00:44:15 -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
fd3fd7e04e Fix Limiter not using remote address as key. 2022-09-04 19:11:24 -05: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
2d03dd1984 Remove remaining gumroad stuff 2022-08-22 09:54:35 -05:00
painejohn
cbcc2aac6f
139: Disabled multimedia embedding
This change disables multimedia embedding:

- In comments and comments replies.
- In new submissions.
- In comment & submission preview

And it's all toggle-able via an envvar, except for the JS bits,
but I linked those to the github issue, so should be easy to find
in the future.

The way it works is:

- removes markdown image/video syntax,
  eg. `![](https://example.org/someimage.jpg)` into ``
- changes link text into anchors, eg.
  `https://example.org/someimage.jpg` into
  `[https://example.org/someimage.jpg](https://example.org/someimage.jpg)`
- removes html img/video/audio tags, eg.
  `<img href="https://example.org/someimage.jpg" />` into ``
- when embedding gifs via the giphy modal in "new submission", it will
  insert only an anchor to the gif
- when attaching an image, it will upload the image, then add only an
  anchor to the post/comment body

I tested this manually, but not sure if I got all the test cases. What I
checked was:

- create comment w/ image/video/audio media using markdown -> success
- create comment reply w/ image/video/audio media using markdown ->
  success
- create comment w/ link to img/imgur/youtube/audio -> success
- create comment w/ attachment -> success
- create comment reply w/ attachment -> success
- create comment w/ img/video tag -> success
- create comment reply w/ image/video tag -> success
- create post submission w/ image/video/media using markdown -> success
- create post submission w/ link to img/imgur/youtube/audio -> success
- create post submission w/ attachment -> success
- create post submission w/ giphy gif -> success

Also, updated the formatting page.

Co-authored-by: Ben Rog-Wilhelm <zorba-github@pavlovian.net>
2022-08-07 01:30:47 -05:00
painejohn
4e8fef2ef0 115: Add cap on number of mentions
This caps the number of mentions in a submission or comment to
MENTION_LIMIT, which is set to 100 by default. When limit is exceeded,
returns a helpful message to the user.
2022-08-07 00:54:47 -05:00
Ben Rog-Wilhelm
800ae8d2dc Split SITE_NAME into computer-readable SITE_ID and human-readable SITE_TITLE. 2022-07-31 18:53:18 -05:00
Ben Rog-Wilhelm
b9ab682d18 Allow use of mail servers besides Gmail. 2022-07-03 10:14:09 -05:00
faul-sname
4892b58d10
Add migrations using alembic.
* #39 Add Flask-Migrate dep

* #39 Make it such that flask db init can run

https://github.com/miguelgrinberg/Flask-Migrate/issues/196#issuecomment-381343393

* Run flask db init, update migrations.env, commit artifacts

* Set up a script such that you can `docker-compose exec files bash -c 'cd /service; FLASK_APP="files/cli:app" flask '` and have it do whatever flask thing you want

* Fix circular dependency

* import * is evil

* Initial alembic migration, has issues with constraints and nullable columns

* Bring alts table up to date with alembic autogenerate

* Rerun flask db revision autogenerate

* Bring award_relationships table up to date with alembic autogenerate

* [#39/alembic] files/classes/__init__.py is evil but is at least explicitly evil now

* #39 fix model in files/classes/badges.py

* #39 fix model in files/classes/domains.py and files/classes/clients.py

* #39 fix models: comment saves, comment flags

* #39 fix models: comments

* Few more imports

* #39 columns that are not nullable should be flagged as not nullable

* #39 Add missing indexes to model defs

* [#39] add missing unique constraints to model defs

* [#39] Temporarily undo any model changes which cause the sqlalchemy model to be out of sync with the actual dump

* #39 Deforeignkeyify the correct column to make alembic happy

* #39 flask db revision --autogenerate now creates an empty migration

* #39 Migration format such that files are listed in creation order

* #39 Better first revision

* #39 Revert the model changes that were required to get to zero differences between db revision --autogenerate and the existing schema

* #39 The first real migration

* #39 Ensure that foreign key constraints are named in migration

* #39 Alembic migrations for FK constraints, column defs

* [#39] Run DB migrations before starting tests

* [#39] New test to ensure migrations are up to date

* [#39] More descriptive test failure message

* Add -T flag to docker-compose exec

* [#39] Run alembic migrations when starting the container
2022-05-17 18:55:17 -05:00
FatherInire
a12123ca01
Initial e2e testing
Authored by @FatherInire
2022-05-13 02:55:29 -05:00
JamPaladin
74476d6223
Add TheMotte theme and make it default.
I created a new theme, "TheMotte" in /assests/css. Someone with any design
skill at all should try improving this. Currently it is a copy of light.css

__main__.py defines the experience for a user without an account. I removed the
check for an OS environment variable, and defaulted to the new theme.

/classes/user.py defines the default for a new account. I removed the check for an OS
environment variable, and defaulted to the new theme.

/routes/settings.py has a list of the themes that checks them for... something.
I added the new one here, just in case.

/templates/settings_profile.html has a hardcoded list that controls which
themes appear in the user settings page. Added the new theme here, so you can
select it.
2022-05-09 07:29:31 -05:00
Ben Rog-Wilhelm
1ee9c1bfa7
Convert text file line endings to LF. 2022-05-09 07:20:47 -05:00
Michael House
37765f8449 Fixed some bugs likely caused by using a newer version of docker-compose 2022-05-02 21:01:35 -05:00
Aevann1
007f984a89 fds 2022-04-26 15:01:05 +02:00
Aevann1
72cb84d1cd Revert "vxc"
This reverts commit c21f04d664.
2022-04-25 23:59:12 +02:00
Aevann1
0009766fd9 dsf 2022-04-25 23:57:37 +02:00
Aevann1
c21f04d664 vxc 2022-04-25 18:38:06 +02:00
Aevann1
265a13a601 site settings 2022-04-12 21:05:50 +02:00
Aevann1
ccacd78fa8 fart mode 2022-04-12 19:29:52 +02:00
Aevann1
440eb0aad1 fds 2022-04-07 03:18:46 +02:00
Aevann1
72e35b06dd fsd 2022-04-07 01:03:18 +02:00
Aevann1
6890aae6b9 fd 2022-04-07 00:54:09 +02:00
Aevann1
bb3906b35a sdf 2022-04-05 18:53:32 +02:00
Aevann1
86cb4b7c0c fds 2022-04-05 18:52:49 +02:00
Aevann1
e71095f563 fsfd 2022-04-05 18:49:05 +02:00
Aevann1
f624833251 fds 2022-04-05 18:29:27 +02:00
Aevann1
52e326c60e devrama 2022-04-04 19:52:14 +02:00
Aevann1
4dd23f91ca what a mess 2022-03-24 21:44:12 +02:00
Aevann1
0329d52ef5 fsd 2022-03-22 16:09:02 +02:00
Aevann1
0ff1a663e8 bu 2022-03-20 00:16:13 +02:00
Aevann1
ab2f49c2fc fds 2022-03-05 22:57:41 +02:00
Aevann1
82709f5011 even worse 2022-03-05 22:54:27 +02:00
Aevann1
6e2702547d worse PR 2022-03-05 22:54:07 +02:00
Aevann1
5e43716cb0 vc 2022-02-22 11:15:45 +02:00
Aevann1
2c2af49635 fgh 2022-02-19 23:42:55 +02:00