Commit graph

257 commits

Author SHA1 Message Date
Haelwenn
46ae62d159 Merge branch 'patch-5' into 'develop'
Mastodon API: URI encode hashtag name in generated URLs

See merge request pleroma/pleroma!1642
2019-09-11 17:47:19 +00:00
rinpatch
43f02dfe38 Revert "Parallelize template rendering"
This reverts commit 1ad71592ad.

Since it had no limit on the number on concurrent processes it OOM killed
instances while rendering hellthreads. When I tried introducing a
concurrency limit with Task.async_stream/manual folds it lead to about 3 times
worse performance on threads larger than 1000 activities (we are talking
30s vs 1.2 minutes), I think this is not worth the about 1.5 times
performance increase on smaller threads when using it.
2019-09-10 22:01:45 +03:00
e5c6bf3673 Mastodon API: URI encode hashtag name in generated URLs
Otherwise hashtags with word characters other than those allowed in URLs (e.g. Japanese characters) produce hashtag URLs that are invalid.
2019-09-07 19:50:45 +00:00
rinpatch
b312ca3d52 Mastodon API Poll view: Fix handling of polls without an end date 2019-09-05 12:03:39 +03:00
rinpatch
3face45467 Mastodon API: Add pleroma.thread_muted to Status entity
Needed for pleroma-fe!941
2019-09-04 14:17:23 +03:00
lain
cc6c0b4ba6 Merge remote-tracking branch 'origin/develop' into sixohsix/pleroma-post_expiration 2019-08-24 15:48:33 +02:00
lain
7ab2dbbdb6 Merge branch 'pleroma-conversations' into 'develop'
Extended Pleroma Conversations

See merge request pleroma/pleroma!1535
2019-08-16 12:55:33 +00:00
rinpatch
1ad71592ad Parallelize template rendering 2019-08-15 18:05:50 +03:00
lain
560dbad538 Merge remote-tracking branch 'origin/develop' into pleroma-conversations 2019-08-14 15:30:40 +02:00
rinpatch
c1b6952d2a Mastodon API: Preloading and normalization optimizations
- Try to normalize the activity instead of object wherever possible
- Put the `user` key on non-home timelines as well so bookmarks and
thread mutes are preloaded there as well
- Skip trying to get the user when rendering mentions if the id ==
as:Public or user's follower collection
- Preload the object when getting replied to activities and do not crash
if it's not present

This almost solves the problem of Pleroma hammering the db with a lot
of queries when rendering timelines, the things left are
1. When rendering mentions and the user is not in cache, save it for
later and request all uncached users in one go
2. Somehow get rid of needing to get the latest follow activity to
detect the value of `requested` in a relationship. (create a database
view for user relationship and cache it maybe?)
2019-08-13 20:34:34 +03:00
rinpatch
0802a08871 Mastodon API: Fix thread mute detection
It was calling CommonAPI.thread_muted? with post author's account
instead of viewer's one.
2019-08-10 16:27:46 +03:00
lain
7483679a7b StatusView: Return direct conversation id. 2019-07-31 15:12:29 +02:00
Sergey Suprunenko
b20020da16 Show the url advertised in the Activity in the Status JSON response 2019-07-24 19:28:21 +00:00
Mike Verdone
2c83eb0b15 Revert "squash! Expose expires_at datetime in mastoAPI only for the activity actor"
This reverts commit 2981821db8.
2019-07-24 17:09:59 +02:00
Mike Verdone
2981821db8 squash! Expose expires_at datetime in mastoAPI only for the activity actor
NOTE: rewrite the commit msg
2019-07-24 16:51:09 +02:00
Mike Verdone
3cb471ec06 Expose expires_at datetime in mastoAPI only for the activity actor
In the "pleroma" section of the MastoAPI for status activities you can
see an expires_at item that states when the activity will expire, or
nothing if the activity will not expire.

The expires_at date is only visible to the person who posted the
activity. This is the conservative approach in case some attacker
decides to write a logger for expiring posts. However, in the future of
OCAP, signed requests, and all that stuff, this attack might not be that
likely. Some other pleroma dev should remove the restriction in the code
at that time, if they're satisfied with the security implications of
doing so.
2019-07-24 14:47:22 +02:00
lain
1ed24bcc76 Status View: Poll ids are strings.
All ids in mastodon are strings, in general.
2019-07-16 12:47:40 +09:00
Sergey Suprunenko
ff55e3c16f Create mentions only for explicitly mentioned users 2019-07-10 13:29:50 +00:00
Maksim
008c55e4e9 add test for search_controller/ 100% coverage 2019-07-10 08:28:03 +00:00
rinpatch
72b88c82bc Mastodon API: Fix embedded relationships not being rendered inside of statuses 2019-07-08 12:07:08 +03:00
rinpatch
1fd8e19d76 Remove a TODO comment as the tests for poll view were written 2019-06-02 23:46:17 +03:00
rinpatch
444406167b Mastodon API: actually check for poll votes 2019-06-01 21:41:23 +03:00
rinpatch
65db5e9f52 Resolve merge conflicts 2019-06-01 16:29:58 +03:00
Sergey Suprunenko
1690be991e Replace missing non-nullable Card attributes with empty strings 2019-05-30 21:03:31 +00:00
rinpatch
e6b175ed6c Fix credo issues 2019-05-22 21:57:46 +03:00
rinpatch
f28747858b Actual vote count in poll view 2019-05-21 14:27:09 +03:00
Aaron Tinio
eb02edcad9 Add virtual :thread_muted? field
that may be set when fetching activities
2019-05-21 00:35:46 +08:00
rinpatch
1d90f9b969 Remove tags/mentions/rich text from poll options because Mastodon and
add custom emoji
2019-05-19 17:06:44 +03:00
rinpatch
5ece901af3 Resolve merge conflicts and remove IO.inspects 2019-05-18 13:37:38 +03:00
rinpatch
642a67dd44 Render polls in statuses 2019-05-17 11:44:47 +03:00
lain
cbb3451023 CommonAPI: Refactor visibility, forbid public to private replies. 2019-05-15 16:30:08 +02:00
rinpatch
4c5125dedc Remove bookmarks assoc and add a fake bookmark assoc instead 2019-05-07 19:33:22 +00:00
rinpatch
3a7c14645e - Actually use preloaded bookmarks in views
- Preload bookmarks in bookmark timeline
- Rework bookmark preload tests
2019-05-07 19:33:22 +00:00
rinpatch
c3e9fcf098 Fix bookmarks depending on embeded object and move checking if the
status is bookmarked to SQL
2019-04-27 23:06:46 +03:00
Alex S
85953c0836 fixes for tests 2019-04-25 13:46:40 +07:00
Alex S
73d01857e3 bookmarks in separate table 2019-04-25 13:38:24 +07:00
kaniini
10c40e13d2 Merge branch 'mastoapi/add-in-reply-to-screen-name' into 'develop'
Add `in_reply_to_account_acct` to MastoAPI status entity

See merge request pleroma/pleroma!1086
2019-04-23 02:43:53 +00:00
rinpatch
f60d072bbb Add pleroma.in_reply_to_account_acct to MastoAPI status entity 2019-04-22 11:54:27 +03:00
rinpatch
d21d921def Replace Object.normalize(activity.data[object] with Object.normalize(acitivty) to benefit from preloading 2019-04-22 11:27:29 +03:00
eugenijm
375fd21055 Set correct values in the MastoAPI reblog status view 2019-04-21 05:40:22 +03:00
rinpatch
ad681877df Make credo happy 2019-04-17 14:52:01 +03:00
rinpatch
b09ae02c04 Added some more normalization calls all in mastodon api controller 2019-04-17 13:04:58 +03:00
rinpatch
627e5a0a49 Merge branch 'develop' into feature/database-compaction 2019-04-17 12:22:32 +03:00
eugenijm
679a8ef629 Assign reblogged in the Mastodon reblog status view 2019-04-14 11:35:15 +03:00
Alexander Strizhakov
e03d24af96 in_reply_to_id - null 2019-04-12 02:21:32 +00:00
William Pitcock
3b8e5bcbeb fix most tests 2018-12-04 04:52:09 +00:00
William Pitcock
e9b718cea2 mastodon api: status view: use Object.normalize() 2018-12-04 04:52:09 +00:00
Haelwenn (lanodan) Monnier
3e50bb667f
Pleroma.Web.MastodonAPI.StatusView: Content isn’t nullable 2018-11-03 14:42:47 +01:00
William Pitcock
4d8f076125 mastodon api: add support for rendering Page objects 2018-11-01 10:00:16 +00:00
Haelwenn (lanodan) Monnier
755f166406
Pleroma.Web.MastodonAPI.StatusView: Do not fail when URL isn’t a string 2018-11-01 09:55:38 +01:00
William Pitcock
5c6ec2d9fc twitter/mastodon api: always use mediaproxy URLs in attachments
if using local media, the mediaproxy will not replace the URL anyway.
2018-10-29 15:19:32 +00:00
Haelwenn (lanodan) Monnier
b0a940d5a2
[Pleroma.Web.MastodonAPI.StatusView]: Remove unused arguments 2018-10-25 05:24:03 +02:00
Haelwenn (lanodan) Monnier
0c10be8731
[Pleroma.Web.MastodonAPI.StatusView]: Remove nils from lists.json 2018-10-25 05:24:03 +02:00
Haelwenn (lanodan) Monnier
3b0e9287a5
[Pleroma.Web.MastodonAPI.StatusView]: Return nil as fallback for missing views 2018-10-25 05:24:01 +02:00
William Pitcock
958e085acb mastodon api: add support for user-supplied html policy 2018-09-22 02:53:02 +00:00
Haelwenn (lanodan) Monnier
43d0b7bf7a
[Pleroma.Web.MastodonAPI.StatusView] add replies_count 2018-09-20 16:10:46 +02:00
William Pitcock
0cac493fdc mastodon api: default attachment type to image if one is not present 2018-09-19 04:59:25 +00:00
kaniini
c2650f0ffb Merge branch 'feature/html-scrub-policy' into 'develop'
html scrub policy

See merge request pleroma/pleroma!339
2018-09-16 01:05:09 +00:00
39aed5348a Add visible_in_picker to status emojis 2018-09-10 23:32:19 +00:00
William Pitcock
ac486fc59b everywhere: use Pleroma.HTML module instead of HtmlSanitizeEx directly 2018-09-10 00:14:47 +00:00
Haelwenn (lanodan) Monnier
5dde6e4a00
[Pleroma.Web.MastodonAPI.StatusView] Fix rendering peertube videos 2018-08-22 01:46:26 +02:00
Haelwenn (lanodan) Monnier
046741c60d
[Pleroma.Web.MastodonAPI.StatusView] Support Peertube Video titles 2018-08-21 18:34:56 +02:00
Haelwenn (lanodan) Monnier
3b8ef24532
Fix attachement rendering 2018-08-21 18:24:10 +02:00
lain
a6b021a52b
Render peertube videos in mastodon. 2018-08-21 18:24:10 +02:00
William Pitcock
cd19d37a90 mastodon api: use object name as alt text 2018-07-17 03:40:46 +00:00
lambda
4a922305af Merge branch 'feature/article-support' into 'develop'
article support (plume, etc)

See merge request pleroma/pleroma!240
2018-07-12 05:58:39 +00:00
Haelwenn (lanodan) Monnier
7a351cb36f
[Pleroma.Web.MastodonAPI.StatusView]: Fill the url field for statuses
Closes: https://git.pleroma.social/pleroma/pleroma/issues/231
2018-07-12 01:57:25 +02:00
William Pitcock
971bb4f2bd activity interpretation: formatting 2018-06-27 13:38:19 +00:00
William Pitcock
ea982e7503 mastodon api: add interpreter for Article activity types 2018-06-27 13:38:00 +00:00
Haelwenn (lanodan) Monnier
72c2915ecd
Pleroma.Web.MastodonAPI.StatusView: Fix status.json so it renders threads 2018-06-15 22:14:17 +02:00
csaurus
2ce48c1a42 Formatting 2018-05-13 15:36:41 -04:00
csaurus
9aabff4883 Fix tests. 2018-05-13 15:33:59 -04:00
31ea9cbcd8 Group def renders together to fix warning 2018-05-04 22:28:13 +00:00
aaacebd906 Fix unused variables, imports, and aliases 2018-05-04 21:42:20 +00:00
Morgan Bazalgette
5e4bb4ad92
masto api: run emojis through mediaproxy
fixes #107
2018-04-02 12:04:11 +02:00
lain
4afbef39f4 Format the code. 2018-03-30 15:01:53 +02:00
lain
37e5014d3e Reduce OP fetching queries. 2018-03-27 18:18:24 +02:00
lain
ff7afe46b9 Don't try to fetch OP if none is there. 2018-03-27 17:43:08 +02:00
lain
09de76ad5a Return "audio" info in mastodon api. 2018-03-25 17:08:54 +02:00
lain
fbe9aa3506 Strip html from emoji stuff. 2018-03-23 19:52:08 +01:00
William Pitcock
000b3f1837 mastodon api: fix rendering the mentions JSON
Signed-off-by: lain <lain@soykaf.club>
2018-03-16 11:25:41 +01:00
lain
486e205810 Remove some noise. 2018-02-20 08:52:31 +01:00
lain
d4b08dd838 MastodonAPI: Post with visibility settings 2018-02-18 14:56:36 +01:00
lain
539340d914 Handle sensitive property. 2018-02-18 14:14:16 +01:00
lain
912ca56e59 Mastodon StatusView: Return correct visibility. 2018-02-18 13:51:51 +01:00
href
5f35fdcf5d
media proxy: good enough wip 2017-11-28 20:50:34 +01:00
eal
fa19de97ba MastoAPI: no more than 4 attachments. 2017-11-20 22:49:20 +02:00
Roger Braun
ced0d64d75 MastoAPI: Make attachment ids strings. 2017-11-15 18:58:39 +01:00
Roger Braun
a1923d20e8 MastoAPI: Fix reblog emojis. 2017-11-11 11:18:05 +01:00
Roger Braun
6e9c22c0af MastoAPI: Use string ids everywhere. 2017-11-10 17:18:19 +01:00
Roger Braun
44295dd49a MastoAPI: Include CW. 2017-10-31 17:49:47 +01:00
Roger Braun
968a546d4a MastoAPI: Return id as string instead of integer. 2017-10-31 14:51:41 +01:00
Roger Braun
ce7f9f527c MastoAPI: Always return an url for statuses.
External url if available, id if not.
2017-10-31 14:40:12 +01:00
Roger Braun
64bc38e009 MastoAPI: Add emoji output. 2017-10-23 16:27:51 +02:00
Roger Braun
ae38b72e24 MastoAPI: Fix reblog view. 2017-09-17 14:25:34 +02:00
Roger Braun
6000f61727 MastoAPI: Add repeats to statusview. 2017-09-17 13:54:14 +02:00
Roger Braun
d659fcc195 MastoAPI: Fix date in account view. 2017-09-15 17:50:47 +02:00
Roger Braun
3aaf6608c6 MastoAPI: Set user id on replies. 2017-09-15 08:49:31 +02:00
Roger Braun
a8701282d4 MastoAPI: fake out 'application' property. 2017-09-14 09:14:08 +02:00
Roger Braun
6258c6b6b3 MastoAPI: Also return text_url in attachments. 2017-09-14 08:38:48 +02:00
Roger Braun
ad5001828e Oh no! More datetime fixes! 2017-09-13 17:18:08 +02:00
Roger Braun
14b4029b1d Reparse time to ensure correct format. 2017-09-13 16:38:29 +02:00
Roger Braun
94be93aad0 Allign datetime format with mastodon. 2017-09-13 16:26:02 +02:00
Roger Braun
1bc58230ee Remove milliseconds from mastodon api response. 2017-09-12 13:31:17 +02:00
Roger Braun
7331733d30 Use signed integer as attachment id. 2017-09-12 11:43:36 +02:00
Roger Braun
b58b35bf56 Use hash of attachment url as id.
Pretty hacky, let's see if we can get away with this.
2017-09-12 11:28:12 +02:00
Roger Braun
fc10875895 Add attachments to mastoapi statuses. 2017-09-10 11:51:01 +02:00
Roger Braun
454dc18570 Add favoriting to Mastodon API. 2017-09-09 18:09:37 +02:00
Roger Braun
66e4c710d4 Add reblogging to MastodonAPI. 2017-09-09 17:48:57 +02:00
Roger Braun
2b7efff71b Add Mastodon StatusView. 2017-09-09 12:10:29 +02:00
rinpatch
4a6855d9ee Provide plaintext representations of content/cw in MastoAPI 2017-01-01 03:10:08 +03:00
rinpatch
f0f30019e1 Refactor html caching functions to have a key instead of a module, use more correct terminology and fix summaries in mastoapi 2019-04-05 15:19:44 +03:00
eugenijm
568e348588 Increment replies_count on replies (MastoAPI) 2019-03-26 15:27:04 +03:00
William Pitcock
3cc2554fa3 mastodon api: add conversation_id extension (ref #674) 2019-03-21 23:25:41 +00:00
rinpatch
d7a34b604b Extend MastoAPI to provide attachment mimetypes 2019-03-15 11:58:12 +03:00
lain
4811eefa6e MastoAPI StatusView: Add locality indicator. 2019-03-11 13:48:27 +01:00
lain
c1ae495878 Add user muted status info to MastodonAPI. 2019-02-27 16:46:47 +01:00
lain
59c27f29c8 Add some nicer urls in status view. 2019-02-20 17:36:16 +01:00
rinpatch
96c725328b Remove a limit on attachments in Mastodon API and document the changes in responses from vanilla mastodon 2019-02-16 20:38:25 +03:00
ac72b578da Merge branch 'develop' into feature/thread-muting 2019-02-11 12:10:49 +01:00
c01ef574c1 Refactor as per Rin's suggestions, add endpoint tests 2019-02-11 12:04:02 +01:00
cc21fc5f53 refactor, status view updating, error handling 2019-02-10 10:42:30 +01:00
Haelwenn (lanodan) Monnier
6a6a5b3251
de-group alias/es 2019-02-09 16:31:17 +01:00
Haelwenn (lanodan) Monnier
8bcfac93a8
Make credo happy 2019-02-09 14:59:20 +01:00
William Pitcock
65a4b9fbea mastodon api: rich media: don't clobber %URI struct with a string 2019-02-06 18:02:15 +00:00
William Pitcock
1d94b67e40 mastodon api: fix rendering of cards without image URLs (closes #597) 2019-02-05 18:30:27 +00:00
rinpatch
68d461b3a9 Check if rich media uri is relative 2019-02-02 12:24:24 +03:00
rinpatch
833404f0f5 Use with instead of if in the card 2019-02-02 12:04:18 +03:00
rinpatch
e4d18f328b merge only if page_url is an absolute path 2019-02-02 11:53:46 +03:00
rinpatch
cbadf9d333 Fix rich media relative path 2019-02-02 11:38:37 +03:00
Haelwenn
00d4333373 Merge branch 'features/glitch-soc-frontend' into 'develop'
Features/glitch soc frontend

See merge request pleroma/pleroma!192
2019-01-31 10:16:11 +00:00
Haelwenn
ebb3496386 Merge branch 'feature/rich-media-part-2-electric-boogaloo' into 'develop'
Rich Media support, part 2.

See merge request pleroma/pleroma!719
2019-01-29 05:11:08 +00:00
href
df2f7b39dd
re f83bae7c: remove unnecessary filter 2019-01-28 12:24:14 +01:00
William Pitcock
ddc7ae2c1a mastodon api: card: force OGP images through mediaproxy 2019-01-28 06:42:27 +00:00
William Pitcock
8e42251e06 rich media: add helpers module, use instead of MastodonAPI module 2019-01-28 06:04:54 +00:00
William Pitcock
5a37ddc2dc mastodon api: embed card in status object 2019-01-28 05:53:17 +00:00
William Pitcock
132d815f1f mastodon api: factor out status card fetching, move status card rendering to statusview, add opengraph extended data 2019-01-28 05:53:17 +00:00
Haelwenn (lanodan) Monnier
cda1470e02
[MastoAPI][GlitchAPI] Add bookmarks 2019-01-28 04:47:32 +01:00
href
f83bae7c22
Views: wrap activity rendering in a rescue
this avoids complete timeline breakage when an activity fucks up
rendering.
2019-01-27 19:16:20 +01:00
lain
2de208817c Merge branch 'develop' into rename/pleroma_activity_consistency 2019-01-23 13:05:58 +01:00
Haelwenn (lanodan) Monnier
98c8184c1f
Activity: get_create_activity_by_object_ap_id/1 → get_create_by_object_ap_id/1 2019-01-21 08:00:41 +01:00
Haelwenn (lanodan) Monnier
2fdbd4d137
Activity: create_activity_by_object_id_query/1 → create_by_object_ap_id/1 when is_list 2019-01-21 08:00:40 +01:00
William Pitcock
75dfa1f0b0 mastodon api: get_visibility(): DMs never have a cc list. 2019-01-20 02:27:48 +00:00
lain
943324b661 MastoAPI: Don't break on missing users. 2019-01-16 15:13:09 +01:00
Egor Kislitsyn
e679da4c34 add pinned property to StatusView 2019-01-08 15:27:02 +07:00
Rin Toshaka
846082e54f Different caches based on the module. Remove scrubber version since it is not relevant anymore 2019-01-05 00:19:46 +01:00
William Pitcock
980b5288ed update copyright years to 2019 2018-12-31 15:41:47 +00:00
Rin Toshaka
7e09c2bd7d Move scrubber cache-related functions to Pleroma.HTML 2018-12-31 08:19:48 +01:00
Rin Toshaka
535fddd286 Friendship ended with Postgresql now Cachex is my best friend 2018-12-30 19:33:36 +01:00
Rin Toshaka
d9f40b05b3 Added get_stripped_html_for_object. Renamed a few things 2018-12-30 16:51:16 +01:00