Commit Graph

191 Commits

Author SHA1 Message Date
Michael Manfre 9b6ceee490
Apply Mastodon style link text shortening (#426) 2023-01-16 11:59:46 -07:00
Corry Haines cfe18932b8
Match sanitizing for posts to Mastodon (#422)
Creates filter for REWRITTEN_TAGS that converts them to `p` rather than ripping them out entirely, and formats `ul` as break-separated list

Both changes align sanitization to Mastodon's "strict" sanitizer at https://github.com/mastodon/mastodon/blob/main/lib/sanitize_ext/sanitize_config.rb#L73

I don't love the complexity of the Filter, but Bleach doesn't give us great options to work with. The code operates within an iterator without the useful "sibling" methods that Ruby's equivalent has. Also, Bleach runs filters _after_ sanitizing (unlike Ruby's which runs before) so we have to pass all the elements through the sanitizer, then rewrite them after the fact.
2023-01-15 22:32:04 -07:00
Andrew Godwin 9dded19172 Add admin notification for new identities 2023-01-15 14:48:17 -07:00
Andrew Godwin e68158202e Fix signature typechecking 2023-01-11 11:00:18 -07:00
Andrew Godwin ecec5d6c0a Implement snowflake IDs for some models.
Still needs fixes to the client API paginator.
2023-01-08 18:05:29 -07:00
Andrew Godwin fa003e2be6 Save all animation frames if they make it through 2023-01-08 14:28:25 -07:00
Corry Haines d8cee4097f
Modify emoji loader for cache-optimized return value (#371)
Also fixes an apparent bug in `imageify_emojis.replacer` where `include_local` was not being used correctly (previous code path never returned anything.
2023-01-07 15:19:47 -07:00
Michael Manfre 69b0430819
Add custom_head config to inject HTML in to page <head> (#350) 2023-01-04 16:42:03 -07:00
Andrew Godwin a7a292a84c Pagination styling and "max users" signup limit 2023-01-03 01:32:00 -07:00
Andrew Godwin bb0ee1b152 Purge failing inbox messages too 2023-01-01 13:10:54 -07:00
Tyler Kennedy b19f05859d
Apply image orientation metadata before resizing. (#345) 2023-01-01 11:40:56 -07:00
Andrew Godwin 63fcd0b665 Fix data integrity schema 2022-12-31 11:56:50 -07:00
Andrew Godwin 4956c7cd7a Add more schemas into our local store 2022-12-31 10:46:38 -07:00
NaphalSec 05adbace24
email templates (#328) 2022-12-30 16:03:11 -07:00
Andrew Godwin 011c51b3c4 Implement progressive thread parent fetching 2022-12-30 11:48:42 -07:00
Andrew Godwin ea6f272047 Infinite scroll, and footer in sidebar if exists 2022-12-29 11:33:41 -07:00
Corry Haines 165d84abbf
Fixes developed from mypy_django script (#312) 2022-12-29 10:35:14 -07:00
Tyler Kennedy cc7824394b
Fixes for the Toot! client (#248) (#275)
* Various Toot! fixes
* Use a fallback 1x1 pixel image for missing headers, same as Mastodon. The header and header_static are _not_ optional nor nullable according to the spec.
* Try removing some fields which probably shouldn't be set.
* Pagination with next/prev.
2022-12-29 10:31:32 -07:00
Andrew Godwin a2f0634cb2 Include URI in post error
Fixes #307
2022-12-28 12:06:32 -07:00
Andrew Godwin 6137149f55 Improve cache busting proxy URLs with file exts
Fixes #287.
2022-12-28 11:57:54 -07:00
Corry Haines 296780d5cc
Use cache-busting URLs for proxied files (#294)
Migrates (in a backwards-compatible way) from `/proxy/identity_image/271/` to `/proxy/identity_image/271/f5d8e72f2b/`.
dently).
2022-12-28 11:39:40 -07:00
Andrew Godwin 1fc5740696 Add funkwhale namespace 2022-12-27 19:47:17 -07:00
Michael Manfre c6c3914cc7
Include Identity metadata fields in ActivityPub messages (#295) 2022-12-27 17:42:30 -07:00
Michael Manfre ca40a0d150
Set User-Agent and Accept for outbound requests (#293) 2022-12-27 16:50:39 -07:00
Andrew Godwin 44dc7a2ce4 Remove extra newlines in post content
Fixes #282
2022-12-27 11:53:44 -07:00
Corry Haines b53504fe64
Basic OpenGraph support (#267)
Creates an OpenGraph template include in base.html including the basic tags expected on all pages.

Then allows any page to add additional expected tags via `context`.

Currently, profiles and posts are enriched to show complete opengraph metadata, and render correctly in Discord.

Note: This does not show posts in Slack like Twitter/Mastodon do. I believe this is due to Slack preferring oembed when present, which is a mastodon API endpoint we may need to create at some point.
2022-12-26 10:39:33 -07:00
Andrew Godwin d32a686eb1 Persist CWs in replies, expand linked at once
Fixes #268
2022-12-26 10:03:13 -07:00
Michael Manfre 50c07f491e
Guard Post mentions processing from unfetched Identities (#272) 2022-12-25 14:37:31 -07:00
Michael Manfre d2766860c5
Views that return fixed content only generate the content once (#271) 2022-12-25 14:26:15 -07:00
Michael Manfre 8ab0e97a86
Some servers send object as dict for PostInteraction and Follow (#261)
* Some servers send object as dict for PostInteraction and Follow

* Add core.ld.get_str_or_id helper
2022-12-24 21:24:46 -07:00
Michael Manfre ab398758a9
Fixed mention linking with mixed case usernames (#265) 2022-12-24 21:04:25 -07:00
Tyler Kennedy 801c807a2b
Simple user stylesheet support. (#258) 2022-12-24 07:28:39 -07:00
Michael Manfre d88db5efbf
BunnyCDN doesn't return content-type (#251) 2022-12-23 22:17:43 -07:00
Michael Manfre aca77314d1
Fixes #239 - Add option to hide Boost and Like counts (#247) 2022-12-23 22:16:26 -07:00
Andrew Godwin 699b6fc29e "Remove posts from front page" option 2022-12-22 14:16:08 -07:00
Andrew Godwin a058140d11 New "plain" page style for most logged out pages 2022-12-22 13:06:35 -08:00
Andrew Godwin 025fd5cf07 Emoji refactor
Emojis are now prefetched from the post, and if not, looked up
individually by shortcode, to prevent loading hundreds.
2022-12-22 16:55:31 +00:00
Andrew Godwin 9c376395db Invites overhaul
No email tie, added uses and expires, now works by URL.
2022-12-22 07:03:21 +00:00
Andrew Godwin ca3dc82a62 Don't linkify hashtags in usernames and metadata
Fixes #228
2022-12-22 01:10:56 +00:00
Andrew Godwin bf5a46df38 Provide some stuff we know of for Mastodon schema
Should fix GoToSocial pulls. Refs #223.
2022-12-21 18:23:52 +00:00
Andrew Godwin f82b82502c Install debug toolbar in debug mode 2022-12-20 15:26:39 +00:00
Andrew Godwin 51d34eda9c Significantly better hashtag link parsing
Fixes #203
2022-12-20 13:55:14 +00:00
Andrew Godwin 4635874c12 Relax accept header for gup.pe 2022-12-20 13:21:50 +00:00
Andrew Godwin 78d2283458 Move linkifying to all http-prefixed links 2022-12-20 13:21:50 +00:00
Andrew Godwin 4ad4f468a4 Refactor HTML rendering into one place
Also suppress using external <a> tags for now, until we can separate
them from hashtags properly.
2022-12-20 11:39:45 +00:00
Andrew Godwin ee669ff568 Don't make images larger on upload! 2022-12-20 06:39:37 +00:00
Andrew Godwin c3a60bbf13 Remove identity avatar fetching 2022-12-19 20:55:27 +00:00
Andrew Godwin 3de188e406 Fix Accept header and supply actor outbox
Should help with Mitra among others. Refs #207.
2022-12-19 02:47:35 +00:00
Tyler Kennedy cfa97b9740
Mitra Fixes (#207)
Don't send a list when populating Accept header. This seems to work fine on Mastodon and friends, and fixes a bug with the Mitra server until resolved upstream.
2022-12-19 11:21:04 +00:00
Andrew Godwin 5e343d2129 Tweak to predictable image namer 2022-12-18 23:47:49 +00:00
Tyler Kennedy b5895e4d28
Stop saving infinite files. (#208)
Use a consistent name for Identity.icon as a quick fix to stop flooding object storage.
2022-12-19 10:53:13 +00:00
Andrew Godwin 5ba9ed6428 Allow signing content-length header 2022-12-18 16:12:57 -07:00
Andrew Godwin 770aa1531a Do actual ISO date parsing
Fixes #187
2022-12-18 10:45:32 -07:00
Andrew Godwin b6a8737d2e Some more JSON-LD namespace fixing 2022-12-17 17:48:33 -07:00
Michael Manfre ea99f65c26
Icon and image for Identity could be a list 2022-12-17 15:42:29 -07:00
Andrew Godwin 24b5d08f9b Update all main pages to no-store 2022-12-17 15:35:22 -07:00
Andrew Godwin 4d71da7ae1 Allow for remote policy pages 2022-12-17 15:30:51 -07:00
Andrew Godwin 256ebe56d5 Don't download files with no content-length 2022-12-17 12:16:37 -07:00
Andrew Godwin 62f2b867b9 Fix serving of system actor
Fixes #183
2022-12-17 12:00:47 -07:00
Andrew Godwin f262f582cb Ooh, ooh, ignore server errors too 2022-12-16 20:14:44 -07:00
Andrew Godwin 108afaf6ce We don't care about 404 errors quite as much 2022-12-16 20:14:02 -07:00
Andrew Godwin e5b76c120e Fetch emoji for user profiles 2022-12-16 20:04:28 -07:00
Andrew Godwin 4a28e1708e Make the collectstatic hack slightly better 2022-12-16 19:51:19 -07:00
Andrew Godwin 45c6978bc3 User admin and LD schema fixes 2022-12-16 16:38:52 -07:00
Andrew Godwin c0cd5a5553 Some hashtag json-ld fiddling 2022-12-15 18:58:11 -07:00
Andrew Godwin 9ad9bdd936 Implement post rate limits, move to signed cookies
Also improve the test harness a little
Fixes #112
2022-12-15 15:55:33 -07:00
TAKAHASHI Shuuji 61fbda0ebf
Set the correct `Content-Type` header for static WebP images (#171) 2022-12-15 10:31:25 -07:00
Michael Manfre af3142ac3a
Basic Emoji suppport (#157) 2022-12-15 00:50:54 -07:00
Andrew Godwin 69f1b3168a Improve cacheability 2022-12-15 00:43:39 -07:00
Andrew Godwin 16005e14ef Make GCS backend handle webp right, and use gs://
Fixes #164
2022-12-14 21:21:18 -07:00
Gabriel Rodríguez Alberich d1ce056288
Show follows and following counts on profile page
And let their visibility be configured
2022-12-14 10:15:46 -07:00
Tyler Kennedy 0d8b7db272
Set the content type and disposition of webp files uploaded to S3 2022-12-13 23:26:19 -07:00
Andrew Godwin 5bc9ff39ac Fix static file URLs 2022-12-12 11:56:49 -07:00
Andrew Godwin 8ffe4bc145 A better way of handling URIs between local/remote 2022-12-12 11:56:49 -07:00
Andrew Godwin 20239b5cb7 Basic post mutation 2022-12-12 11:56:49 -07:00
Michael Manfre a576c5b5ed
Improve djadmin filtering and search (#149) 2022-12-08 10:29:51 -07:00
Michael Manfre 39a40e4dae
Set a Takahe User-Agent header for signed requests (#142) 2022-12-06 21:59:05 -07:00
Michael Manfre c87ad8116f
settings.SETUP.SENTRY_CAPTURE_MESSAGES (#133) 2022-12-06 16:54:45 -07:00
Michael Manfre e2b234d9ed
Setting to enable Sentry capture_messages (#128) 2022-12-06 09:50:42 -07:00
Michael Manfre b8460b0acd
Only cache unauthenticated page views (#117) 2022-12-05 22:23:07 -07:00
Andrew Godwin 9fe2e6676c Add a middleware to detect LD Accept headers 2022-12-05 20:02:35 -07:00
Andrew Godwin a31f676b46 Policy pages and signup tests.
Fixes #113
2022-12-05 19:24:46 -07:00
Michael Manfre 238268eb31
Add pylibmc and pymemcache to requirements and make timeout not lazy (#116) 2022-12-05 14:48:02 -07:00
Paolo Melchiorre 22e25ac454
Add django-upgrade to pre-commit (#114) 2022-12-05 14:44:50 -07:00
Michael Manfre d6eb16a398
Added caching and initial settings 2022-12-05 10:55:30 -07:00
Paolo Melchiorre a9bb4a7122
Add pyupgrade with --py310-plus in pre-commit (#103) 2022-12-05 10:38:37 -07:00
Michael Manfre 3f8045f412
[WIP] Sentry improvements (#108)
Stator clears scope during the main loop to behave more like
transactions. Transaction names are set.

Sentry tags:
* 'takahe.version'
* 'takahe.app' values 'web' or 'stator'

Added settings:
* TAKAHE_SENTRY_SAMPLE_RATE
* TAKAHE_SENTRY_TRACES_SAMPLE_RATE
2022-12-04 18:08:23 -07:00
Andrew Godwin c3d4d0f547 Image upload polishing and webp 2022-12-04 10:46:41 -07:00
Michael Manfre 61c1058d67
Add TAKAHE_DEFAULT_TIMEOUT with default of 5.0 (#99) 2022-12-04 09:32:25 -07:00
Andrew Godwin 864b730164 Accept dates with milliseconds in them 2022-12-04 07:31:22 -07:00
Andrew Godwin b3df5e763c Switch to secrets module for upload names 2022-12-03 14:07:30 -07:00
Andrew Godwin 6f2f28a3a7 Image attachment uploads 2022-12-01 18:47:04 -07:00
Michael Manfre fb8f2d1098
Hashtags 2022-11-28 21:41:36 -07:00
Andrew Godwin 3b079526a2 User fetching and inbox message cleaning 2022-11-27 17:05:31 -07:00
Andrew Godwin 348c03e7da Default replies to unlisted, new users to public 2022-11-27 15:40:17 -07:00
Andrew Godwin 8e9e3ecf69 Some cleanup around editing 2022-11-27 12:09:08 -07:00
Tyler Kennedy c758858392
Simplified settings
Migrated settings to typed pydantic settings
2022-11-26 10:04:04 -07:00
Michael Manfre d60ba9a051
Added default post visibility 2022-11-25 19:33:46 -07:00
Andrew Godwin 1cf1f2e543 Implement user discoverability 2022-11-25 18:32:45 -07:00
Michael Manfre 9014d53399
StatorRunner will refresh Config.system on each schedule_interval 2022-11-22 21:06:21 -07:00