Lain Soykaf
1ae5c2b020
Transmogrifier: Encode Emoji id to be valid.
2024-06-12 12:41:33 +04:00
Mark Felder
5c8afbe646
Fix tests
2024-06-11 18:55:10 -04:00
Mark Felder
6a9d9da26f
Cyclical complexity
2024-06-11 18:38:41 -04:00
Mark Felder
603a575766
The user is not always preloaded into the notification
2024-06-11 18:14:07 -04:00
Mark Felder
568819c08a
WebPush refactoring: separate build and deliver steps
2024-06-11 17:58:02 -04:00
feld
f47a124698
Merge branch 'webpush-polls' into 'develop'
...
Render nice web push notifications for polls
See merge request pleroma/pleroma!4144
2024-06-11 20:24:15 +00:00
Mark Felder
5313255b1a
Use conn.request_path for more legible error log
2024-06-11 16:07:22 -04:00
Mark Felder
c1b84edefc
Increase web push character limit for the body
2024-06-08 22:48:38 -04:00
Mark Felder
dcc50da400
Stream the notifications as part of the job
2024-06-08 22:40:08 -04:00
Mark Felder
3211557f74
Render nice web push notifications for polls
2024-06-08 22:08:12 -04:00
Mark Felder
b1ef6e5e9a
Cleanup to make the code easier to follow
2024-06-08 19:50:01 -04:00
Mark Felder
86fa0889bc
Remove unnecessary mastodon_type hack
2024-06-08 19:30:27 -04:00
Mark Felder
db88bf30d5
Add spec for send/1
2024-06-08 19:20:38 -04:00
Mark Felder
07cb89823f
More robust validation the vapid config is set
2024-06-08 18:59:51 -04:00
Mark Felder
471412ad34
Stream end of poll notification over websockets and web push
2024-06-08 13:19:41 -04:00
Mark Felder
b1c52c3062
Rename Notification.send/1 to Notification.stream/1
...
Also update other places where we use the term "send" instead of "stream". This should make it clearer that we are streaming these over websockets / web push and not sending an activity.
2024-06-08 13:14:25 -04:00
feld
b23b007d00
Merge branch 'feld/cleanup' into 'develop'
...
Minor cleanup commits
See merge request pleroma/pleroma!4142
2024-06-07 21:52:55 +00:00
feld
a4bd89c77e
Merge branch 'spex/notification-types' into 'develop'
...
Spex: Add missing notification types to the api spec
See merge request pleroma/pleroma!4141
2024-06-07 20:42:50 +00:00
feld
f44987bd0f
Merge branch 'bugfix/rich_media_config' into 'develop'
...
RichMedia: Respect configuration on status previews
See merge request pleroma/pleroma!4130
2024-06-07 20:37:19 +00:00
Mark Felder
5ed07aba7a
Add missing pool to the type
2024-06-07 16:34:32 -04:00
Mark Felder
6ded017dee
Do not start unused ConcurrentLimiter processes
2024-06-07 16:34:13 -04:00
Mark Felder
b52d772a6e
Add some useful logging for ApiSpec errors
2024-06-07 16:26:56 -04:00
Mark Felder
5915062874
Add missing notification types to the api spec
2024-06-07 15:50:11 -04:00
feld
bf8b251dc1
Merge branch 'cowboy-streaming' into 'develop'
...
Allow Cowboy to stream the response instead of chunk it
See merge request pleroma/pleroma!4138
2024-06-05 12:18:56 +00:00
Mark Felder
858d528cc1
Allow Cowboy to stream the response instead of chunk it
2024-06-04 23:08:05 -04:00
lain
acde8d0e0c
Merge branch 'ipfs-dialyzer-fixes' into 'develop'
...
IPFS uploader: dialyzer fixes
See merge request pleroma/pleroma!4129
2024-06-01 11:30:42 +00:00
Floatingghost
0302431888
Use proper workers for fetching pins instead of an ad-hoc task
...
BUG: https://git.pleroma.social/pleroma/pleroma/-/issues/3276
2024-05-31 09:09:04 -04:00
Mark Felder
cfc8d7aade
IPFS uploader: dialyzer fixes
...
lib/pleroma/uploaders/ipfs.ex:43:no_return
Function put_file/1 has no local return.
________________________________________________________________________________
lib/pleroma/uploaders/ipfs.ex:49:call
The function call will not succeed.
Pleroma.HTTP.post(
binary(),
_mp :: %Tesla.Multipart{
:boundary => binary(),
:content_type_params => [binary()],
:parts => [
%Tesla.Multipart.Part{
:body => binary(),
:dispositions => [any()],
:headers => [any()]
},
...
]
},
[],
[{:params, [{:"cid-version", <<49>>}]}]
)
will never return since the success typing is:
(binary(), binary(), [{binary(), binary()}], Keyword.t()) ::
{:error, _}
| {:ok,
%Tesla.Env{
:__client__ => %Tesla.Client{
:adapter => nil | {_, _} | {_, _, _},
:fun => _,
:post => [any()],
:pre => [any()]
},
:__module__ => atom(),
:body => _,
:headers => [{_, _}],
:method => :delete | :get | :head | :options | :patch | :post | :put | :trace,
:opts => [{_, _}],
:query => [{_, _}],
:status => nil | integer(),
:url => binary()
}}
and the contract is
(Pleroma.HTTP.Request.url(), String.t(), Pleroma.HTTP.Request.headers(), :elixir.keyword()) ::
{:ok, Tesla.Env.t()} | {:error, any()}
2024-05-30 15:14:27 -04:00
Mark Felder
f5065eaf99
Fix Logger.warn deprecation error on OTP25
2024-05-30 11:09:42 -04:00
Mark Felder
14b4bd69a8
Add additional flags to the Pleroma.Search.Indexer Mix task
2024-05-29 10:44:40 -04:00
Haelwenn (lanodan) Monnier
65c8763907
RichMedia: Add extra checks on configuration
2024-05-29 08:02:06 +02:00
Haelwenn (lanodan) Monnier
c16ef40f13
RichMedia: Respect configuration on status previews
2024-05-29 08:02:04 +02:00
feld
3b639b467e
Merge branch 'dialyzer-fixes' into 'develop'
...
Dialyzer fixes
See merge request pleroma/pleroma!4128
2024-05-28 17:26:58 +00:00
Mark Felder
79c418bcb7
Dialyzer: fix invalid @spec
2024-05-28 11:07:28 -04:00
Mark Felder
6b6a2adb07
Dialyzer: The function call will not succeed.
...
:idna.encode/1 expects a charlist even though it will accept a binary string. That functionality is undocumented / not part of its typespec, so we should turn it into a charlist first. Also switch to using match?/2
lib/pleroma/user.ex:2056:call
The function call will not succeed.
:idna.encode(_host :: binary())
will never return since the success typing is:
(string()) :: string()
and the contract is
(string()) :: string()
2024-05-28 10:49:43 -04:00
Mark Felder
6551ca2db7
Dialyzer: overlapping_contract
...
Wrong @spec name for remove_from_block/2
lib/pleroma/user.ex:2721:overlapping_contract
Overloaded contract for Pleroma.User.add_to_block/2 has
overlapping domains; such contracts are currently unsupported and
are simply ignored.
2024-05-28 10:40:54 -04:00
Mark Felder
8743c6c640
Dialyzer: The pattern can never match the type
...
We will never pass :plain to query_with/4, so remove that match and change it to query_with/3
lib/pleroma/search/database_search.ex:127:pattern_match
The pattern can never match the type.
Pattern:
_q, :rum, _search_query, :plain
Type:
%Ecto.Query{
:aliases => _,
:assocs => _,
:combinations => _,
:distinct => _,
:from => _,
:group_bys => _,
:havings => _,
:joins => _,
:limit => _,
:lock => _,
:offset => _,
:order_bys => _,
:prefix => _,
:preloads => _,
:select => _,
:sources => _,
:updates => _,
:wheres => _,
:windows => _,
:with_ctes => _
},
:rum,
_,
:websearch
2024-05-28 10:36:00 -04:00
Mark Felder
1b3c84e241
Dialyzer: no_local_return
...
WebPushEncryption.send_web_push/4 was written to raise on erroroneus input, so we must guard against that.
lib/pleroma/web/push/impl.ex:65:no_return Function push_message/4 has no local return.
2024-05-28 10:19:35 -04:00
Mark Felder
17ebb2df84
Dialyzer: fix pattern matches preventing video thumbnailing from working
...
lib/pleroma/web/media_proxy/media_proxy_controller.ex:154:pattern_match
The pattern can never match the type.
Pattern:
{:ok, _thumbnail_binary}
Type:
{:error, boolean() | {:ffmpeg, :command_not_found}}
2024-05-28 10:19:22 -04:00
Mark Felder
18835bf701
Use the configured http client options for mediaproxy
2024-05-28 09:38:36 -04:00
Mark Felder
f8ce639e3f
Dialyzer: guard clause can never succeed
...
lib/pleroma/web/activity_pub/mrf/dnsrbl_policy.ex:106:guard_fail
The guard clause:
when _ ::
[
binary()
| [string() | char()]
| {string() | integer(), string()}
| {{byte(), byte(), byte(), byte()}, integer(), binary()}
| {integer(), integer(), integer(), string() | byte()}
| {integer(), integer(), string(), string(), string(), string()}
| {string(), string(), integer(), integer(), integer(), integer(), integer()}
| {char(), char(), char(), char(), char(), char(), char(), char()}
] === nil
can never succeed.
2024-05-28 09:30:19 -04:00
Mark Felder
42c5f7c74e
Dialyzer: fix invalid @spec
...
The callback already defines the @spec and these do not match it.
lib/pleroma/upload/filter/exiftool/strip_location.ex:12:callback_spec_type_mismatch
The @spec return type does not match the expected return type
for filter/1 callback in Pleroma.Upload.Filter behaviour.
Actual:
@spec filter(...) :: {:ok, _}
Expected:
@spec filter(...) :: {:error, _} | {:ok, :filtered | :noop} | {:ok, :filtered, struct()}
2024-05-28 08:55:18 -04:00
Lain Soykaf
cc42b50c5b
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-feature/akkoma-prune-old-posts
2024-05-28 16:51:19 +04:00
Mark Felder
0b864c3696
Dialyzer: fix invalid @spec
...
lib/pleroma/notification.ex:492:invalid_contract
The @spec for the function does not match the success typing of the function.
Function:
Pleroma.Notification.get_notified_from_activity/2
Success typing:
@spec get_notified_from_activity(_, _) :: [any()]
2024-05-28 08:49:34 -04:00
Lain Soykaf
f5978da676
HTTPSignaturePlugTest: Rewrite to use mox.
2024-05-28 14:00:25 +04:00
Lain Soykaf
3b4be5daa2
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-secure-mode
2024-05-28 12:31:12 +04:00
lain
25903a4996
Merge branch 'auth-fetch-exception' into 'develop'
...
HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions
See merge request pleroma/pleroma!4007
2024-05-28 04:42:35 +00:00
lain
8ff0c32903
Merge branch 'httpfixes' into 'develop'
...
Some HTTP and connection pool improvements
See merge request pleroma/pleroma!4124
2024-05-28 04:38:01 +00:00
Lain Soykaf
73d58c22d4
Linting
2024-05-28 08:09:19 +04:00
Mark Felder
bb86a01b9b
Credo
2024-05-27 15:20:47 -04:00