Commit graph

6156 commits

Author SHA1 Message Date
Mouse Reeve 6e427cf372 Update version number 2023-04-03 21:31:41 -07:00
Jascha Ezra Urbach d35b1d91ba
Merge pull request #2766 from bookwyrm-social/redirect-in-admin
Uses referer redirect for some admin views
2023-04-01 11:06:42 +02:00
Hugh Rundle 499ff58a65
Merge pull request #2698 from rkmdCodes/main
Improving Feed link UI colours
2023-04-01 14:27:04 +11:00
Mouse Reeve 74df7511e7
Merge pull request #2768 from bookwyrm-social/grammar
Fixes effect/affect error
2023-03-29 18:46:14 -07:00
Mouse Reeve b5d6c94885
Merge pull request #2767 from bookwyrm-social/link-mention-clash
Clashes between links and mentions
2023-03-29 17:06:11 -07:00
Mouse Reeve b76da26c98 Fixes iteration over mentions dict 2023-03-29 10:13:44 -07:00
Mouse Reeve f1640399e3 Python formatting 2023-03-29 10:13:44 -07:00
Mouse Reeve f2ab8c2fe2 Fixes effect/affect error 2023-03-29 10:04:23 -07:00
Mouse Reeve 8cf7c5c392
Merge pull request #2750 from WesleyAC/get-audience-telemetry
Add more detailed telemetry for get_audience
2023-03-29 09:29:05 -07:00
Mouse Reeve 5ed46abcee
Merge branch 'main' into link-mention-clash 2023-03-29 09:25:34 -07:00
Mouse Reeve fe856bcf2c Updates regex on mentions and hashtags 2023-03-29 09:20:58 -07:00
Mouse Reeve 4fcb01805e Fixes test comparison string 2023-03-29 09:14:30 -07:00
Mouse Reeve 8a0e88db83 Adds test for links with # symbols 2023-03-29 08:39:41 -07:00
Mouse Reeve 42dd199084 Unit test that identifies clashes between links and mentions 2023-03-29 08:28:45 -07:00
Rajat Dwivedi 38e3f2e1b8
Merge branch 'main' into main 2023-03-29 16:37:57 +05:30
Rajat Dwivedi 33c13608a8 Refixing light and dark themes 2023-03-29 10:56:08 +00:00
Mouse Reeve 56cc0eb80f Adds Esperanto locale 2023-03-28 15:03:40 -07:00
Mouse Reeve b2801d44a5
Merge pull request #2752 from lostfictions/patch-1
Add message about shelf privacy in user settings
2023-03-27 06:21:33 -07:00
Mouse Reeve 30a3096b25
Merge pull request #2749 from bookwyrm-social/redirects
Add helper to refer views back to http referers safely
2023-03-27 06:20:26 -07:00
Jascha Ezra Urbach bbed08e182
Merge branch 'main' into main 2023-03-21 05:49:52 +01:00
s a70417a07f
Add message about shelf privacy in user settings 2023-03-20 22:10:50 -04:00
Wesley Aptekar-Cassels 7efbdb1865 Add more detailed telemetry for get_audience
This is still slow in some cases, despite #2723, so this information
should give useful data about how it could be optimized more.

This also adds some abstraction around getting the tracer, just to
follow the advice in the OpenTelemetry documentation not to use __name__
directly to set the tracer name. The advice is ignored in most of their
examples, so it probably doesn't matter, but IDK, seems reasonable to
try to follow it.

Related: #2720
2023-03-20 20:51:20 -04:00
Wesley Aptekar-Cassels ef64fedbd9 Only enable OTLP exporter when configured
This wasn't a problem in the past, since we only enabled automatic
instrumentation when this was set up, but it does cause errors when
trying to add manual instrumentation.
2023-03-20 20:51:20 -04:00
Mouse Reeve e9d08e7424
Merge pull request #2744 from WesleyAC/opentelemetry-console-exporter
Add OpenTelemetry console exporter option
2023-03-20 14:26:24 -07:00
Mouse Reeve 89bb541bef
Merge pull request #2704 from tebriel/azure-support
Enable Azure BlobStorage as an alternative to AWS S3
2023-03-20 14:12:57 -07:00
Mouse Reeve 6f1e80be60
Merge pull request #2741 from WesleyAC/optimize-csv-export-query
Optimize CSV export query
2023-03-20 14:11:46 -07:00
Mouse Reeve 05e154f93e Uses referer redirect for some admin views 2023-03-20 13:58:20 -07:00
Mouse Reeve 0cebc4388c Adds unit tests for referer helper 2023-03-20 12:47:21 -07:00
Mouse Reeve 219f78755f Fixes args in list view redirect 2023-03-20 11:15:27 -07:00
Mouse Reeve 4e9fad2091 Updates views that currently use the validator to use the redirect
helper
2023-03-20 10:27:52 -07:00
Mouse Reeve 2de115fc1e Add helper to refer views back to http referers safely
In most cases, we want to return back to where we came from after
performing an action. It's not safe to return to an arbitrary referer,
so this streamlines using the util validator to verify the redirect and
fall back on regular redirect params if the referer is outside our
domain.
2023-03-20 10:25:38 -07:00
Rajat Dwivedi 349c61f698 Updated the _tabs.scss file 2023-03-20 04:11:44 +00:00
Wesley Aptekar-Cassels 63ab3abe67 Add setting for OpenTelemetry console exporter
This is primarily useful for debugging changes to the OpenTelemetry
setup.
2023-03-18 15:47:30 -04:00
Wesley Aptekar-Cassels fea3b67a55 Raise error if using default SECRET_KEY in production 2023-03-18 15:44:20 -04:00
Wesley Aptekar-Cassels b3d3de5374 Use typecasting env functions
Many of these environment variables were probably not actually usable,
since they would be strings if set in the env file. Using the
typecasting functions fixes this, and generally shows the intention of
the code more clearly.
2023-03-18 15:35:08 -04:00
Wesley Aptekar-Cassels 60fee54da9 Optimize CSV export query
Splitting this into five separate queries avoids the large join that
prevents us from using indexes, and requires materializing to disk.

Fixes: #2157 (hopefully)
2023-03-13 15:45:21 -04:00
Mouse Reeve 9c1aaadab3 Update verison number and js cachebuster 2023-03-13 07:52:28 -07:00
Wesley Aptekar-Cassels 0b9e4d617e Use context processor for 500 page
By default, Django doesn't run any context processors for server errors,
to make the error path as simple as possible. However, this has the
downside that our template does not load correctly. To fix this, I added
a custom 500 error handler, which will run the context processor.

Fixes: #2736
2023-03-13 03:47:23 -04:00
Mouse Reeve 7ffe5b9440 Adds merge migration 2023-03-12 16:43:06 -07:00
Mouse Reeve 12af5992a3
Merge pull request #2524 from chdorner/feature/tag-support
Initial hashtag support
2023-03-12 16:37:39 -07:00
Mouse Reeve 48889ee6c4
Merge pull request #2695 from chdorner/book-edit-form-validation-notification
Show notification banner on top of form when book failed to update
2023-03-12 16:33:34 -07:00
Mouse Reeve 2e7eb0f3ce
Merge pull request #2702 from Ryuno-Ki/lazyload-images
Add attributes to images to hint async load
2023-03-12 16:31:27 -07:00
Mouse Reeve 6345beb90d
Merge pull request #2714 from WesleyAC/celery-ignore-results
Ignore Celery task results
2023-03-12 16:26:20 -07:00
Mouse Reeve 84b8a5c433
Merge pull request #2713 from WesleyAC/buffer-csv-export
Change CSV export to buffer instead of streaming
2023-03-12 16:17:53 -07:00
Mouse Reeve d17190fae3
Merge pull request #2718 from WesleyAC/broaden-dashboard-http-except
Broaden except section for HTTP request in dashboard
2023-03-12 16:10:01 -07:00
Mouse Reeve c28d523e6f
Merge branch 'main' into get-audience-perf 2023-03-12 15:40:53 -07:00
Mouse Reeve efe3cb9461
Merge pull request #2726 from WesleyAC/optimize-add-remove-book-statuses-task
Optimize add/remove book statuses task queries
2023-03-12 15:36:27 -07:00
Wesley Aptekar-Cassels 2a5f722f6e Optimize add/remove book statuses task queries
The queries as they previously existed required joining together 12
different tables, which is extremely expensive. Splitting it into four
queries means that the individual queries can effectively use the
indexes we have, and should be very fast no matter how many statuses are
in the database.

Removing the .distinct() call is fine, since we're adding them to a set
in Redis anyways, which will take care of the duplicates.

It's a bit ugly that we now make four separate calls to Redis (this
might result in things being slightly slower in cases where there are an
extremely small number of statuses), but doing things differently would
result in significantly more surgery to the existing code, so I've opted
to avoid that for the moment.

Fixes: #2725
2023-03-09 15:26:03 -05:00
Wesley Aptekar-Cassels 56243f6529 Optimize HomeStream.get_audience
This splits HomeStream.get_audience into two separate database queries,
in order to more effectively take advantage of the indexes we have.
Combining the user ID query and the user following query means that
Postgres isn't able to use the index we have on the userfollows table.

The query planner claims that the userfollows query should be about 20
times faster than it was previously, and the id query should take a
negligible amount of time, since it's selecting a single item by primary
key.

We don't need to worry about duplicates, since there is a constraint
preventing a user from following themself.

Fixes: #2720
2023-03-09 00:50:24 -05:00
Wesley Aptekar-Cassels 23698dafe5 Change get_audience to return list of user IDs
This will make it simpler to implement various optimizations.
2023-03-09 00:50:24 -05:00