Commit graph

10,210 commits

Author SHA1 Message Date
Lain Soykaf
36b3aa0a97 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into emoji-pack-upload 2025-08-08 17:17:29 +04:00
Lain Soykaf
80e0f07240 Emoji.Pack: Implement empty name and directory creation failure handling 2025-08-08 15:44:30 +04:00
Lain Soykaf
f203e7bb42 EmojiPackController: Refactor. 2025-08-07 13:51:33 +04:00
Lain Soykaf
b249340fce Emoji.Pack: Refactor and use safe_unzip. 2025-08-07 13:51:19 +04:00
Ekaterina Vaartis
8d0b29d718 Only calculate SHA when there's no pack json 2025-08-07 11:22:51 +03:00
Ekaterina Vaartis
26ac875bc8 Use path_join_name_safe for pathname joining 2025-08-07 11:04:58 +03:00
Ekaterina Vaartis
321bd75dca Add a way to upload emoji pack from zip/url easily
Essentially the same as the mix task
2025-08-06 22:50:58 +03:00
Mark Felder
f53538b430 Merge remote-tracking branch 'origin/develop' into hashtag-search 2025-08-01 17:15:42 -07:00
feld
34efff85da Merge branch 'gun' into 'develop'
Update Plug/Cowboy/Gun

See merge request pleroma/pleroma!4393
2025-08-02 00:00:32 +00:00
feld
bb78fb5f65 Merge branch 'deactivated-404-inbox' into 'develop'
Return 404 when an activity is sent to a deactivated user's /inbox

Closes #3370

See merge request pleroma/pleroma!4371
2025-08-01 21:26:12 +00:00
Mark Felder
d67ab670b0 Fix Gopher server to use modern :ranch 2025-08-01 13:57:06 -07:00
feld
5f93e85e0b Merge branch 'tesla-update' into 'develop'
Update Tesla to 1.15.3

See merge request pleroma/pleroma!4391
2025-08-01 20:03:27 +00:00
Mark Felder
3c36bcfaa6 Remove deprecated "use Tesla" macro usage 2025-08-01 12:19:41 -07:00
Mark Felder
eac8ef7951 Credo 2025-08-01 10:41:53 -07:00
Mark Felder
19f32f7b09 Strip hashtag prefixes
Users may actually type in a literal hashtag into the search, so this will ensure it still returns results.
2025-07-31 18:17:59 -07:00
Mark Felder
97e668f4aa Alpha sort the aliases 2025-07-31 18:07:05 -07:00
Mark Felder
b1acc9281a Use ranking to improve order of results 2025-07-31 18:02:33 -07:00
Mark Felder
93c144e397 Improve hashtag search with multi word queries 2025-07-31 17:46:32 -07:00
Mark Felder
26fe604942 Hashtag searches now return real results from the database 2025-07-31 17:35:11 -07:00
Mark Felder
425329bacd Add fix to ensure URL is encoded when reverse proxying 2025-07-30 17:32:08 -07:00
Mark Felder
49ba6c8865 Rework the URL encoding so it is a public function: Pleroma.HTTP.encode_url/1 2025-07-30 17:07:22 -07:00
Mark Felder
842090945a Ensure Hackney and Finch both get the default middleware 2025-07-30 15:42:49 -07:00
Mark Felder
404e091260 Credo 2025-07-30 13:48:16 -07:00
Mark Felder
4217ababfc Improve design so existing tests do not break 2025-07-30 13:17:50 -07:00
Mark Felder
11d27349e3 Fix HTTP client making invalid requests due to no percent encoding processing or validation. 2025-07-30 12:29:37 -07:00
feld
ece089abab Merge branch 'improved-reachability' into 'develop'
Reachability refactor

See merge request pleroma/pleroma!4366
2025-07-29 21:13:48 +00:00
Mark Felder
6da5ca9b2d Prevent test crash if it cannot successfully remove the console Logger backend 2025-07-22 15:21:20 -07:00
Mark Felder
28cff592b1 Fix dialyzer error in MRF remote report policy: Remove unreachable pattern match 2025-07-22 15:21:20 -07:00
Mark Felder
28146ee7d2 Fix dialyzer error in safe_zip: Remove impossible pattern match for {:get_type, _e} 2025-07-22 15:21:20 -07:00
Mark Felder
e0104132a7 Fix dialyzer error in object fetcher: Add proper guard clause for check_crossdomain_redirect/2
Also remove unnecessary and incorrect usage of Mix.env()
2025-07-22 15:21:20 -07:00
Mark Felder
1d4482047f Fix dialyzer error in translation provider: Change Map.t() to map() in callback spec 2025-07-22 15:21:20 -07:00
Mark Felder
47ebbc4d21 Fix dialyzer error in status controller: Add catch-all pattern for translate function 2025-07-22 12:38:43 -07:00
Mark Felder
daad35aeb9 Fix dialyzer error in scopes compiler: Add error handling for extract_all_scopes/0 2025-07-22 12:38:43 -07:00
Mark Felder
9ea55a3888 Fix dialyzer error in API spec: Use then/2 for OpenApiSpex.resolve_schema_modules/1 call 2025-07-22 12:38:43 -07:00
mkljczk
b082e1f86b Merge branch 'endorsement-state-fix' into 'develop'
Fix endorsement state display in relationship view

See merge request pleroma/pleroma!4381
2025-07-09 00:05:21 +02:00
nicole mikołajczyk
f031532c41 Fix endorsement state display in relationship view
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2025-07-08 23:13:40 +02:00
Mark Felder
17987e3990 Enforce an exact domain match for WebFinger resolution
The regex was not being terminated with an $
2025-07-03 12:08:36 -07:00
Mark Felder
59844d0202 Rename Instance.delete_users_and_activities/1 to Instance.delete/1 2025-06-28 13:37:06 -07:00
Mark Felder
df0880d8d1 Add Instances.delete_all_unreachable/0 2025-06-28 13:23:37 -07:00
Mark Felder
f06f0bedd3 Clean up ReachabilityWorker jobs and delete from Instances table when deleting all users and activities for an instance 2025-06-28 13:14:01 -07:00
Mark Felder
29f7607910 Add Instances.check_all_unreachable/0 and Instance.check_unreachable/1 2025-06-28 12:51:10 -07:00
Mark Felder
2267ace106 Ensure ReachabilityWorker jobs can be scheduled without needing awareness of the phase design 2025-06-27 18:12:18 -07:00
Mark Felder
ff5f88aae3 Instance.set_reachable/1 should delete any existing ReachabilityWorker jobs for that instance 2025-06-27 18:07:46 -07:00
Mark Felder
a5e11ad110 Custom pruning is not actually needed because an old job cannot exist in the table due to our use of [replace: true] when retrying jobs or walking it through the different phases 2025-06-27 17:24:02 -07:00
Mark Felder
6e4b5edc25 Reduce pruning of history to anything older than 2 days 2025-06-27 17:13:34 -07:00
Mark Felder
77dca7c3e5 Refactor ReachabilityWorker to use a 5-phase reachability testing approach
It will check reachability for an instance deemed unreachable at the following intervals:

4 attempts, once a minute
4 attempts, once every 15 minutes
4 attempts, once every 60 minutes
4 attempts, once every 8 hours
4 attempts, once every 24 hours

This should be effective and respectful of the resources of instances on the fediverse.

We have the Oban Pruner plugin enabled to keep the Oban Jobs table from growing indefinitely. It prunes every 15 minutes, but this will interfere with our ability to enforce uniqueness on the ReachabilityWorker jobs for a time period longer than 15 minutes. The solution is to exclude the ReachabilityWorker from the pruning operation and instead schedule a custom job that will prune the table for us once a day. The ReachabilityPruner cron task will clean up the history of the ReachabilityWorker jobs older than 6 days.
2025-06-27 17:00:02 -07:00
Mark Felder
59bfa83c9c Remove daily reachability scheduling for unreachable instances 2025-06-27 16:04:08 -07:00
Mark Felder
e58ecd3234 Merge remote-tracking branch 'origin/develop' into improved-reachability 2025-06-27 15:59:46 -07:00
feld
cf6587d344 Merge branch 'delete-instance-improvement' into 'develop'
Queue individual jobs for each user that needs to be deleted when deleting an instance.

See merge request pleroma/pleroma!4377
2025-06-27 20:25:41 +00:00
feld
f6c9b003fa Merge branch 'resurrect-mrf-quietreply' into 'develop'
Resurrect MRF.QuietReply

See merge request pleroma/pleroma!4368
2025-06-27 19:13:07 +00:00