Age | Commit message (Collapse) | Author |
|
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
# Conflicts:
# docs/development/API/differences_in_mastoapi_responses.md
|
|
Expose nonAnonymous field from Smithereen polls
See merge request pleroma/pleroma!3962
|
|
|
|
Add ForceMention mrf
See merge request pleroma/pleroma!4082
|
|
Include following/followers in backups
See merge request pleroma/pleroma!4085
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3245
|
|
Websocket refactor to use Phoenix.Socket.Transport
See merge request pleroma/pleroma!4064
|
|
Bugfix for ccworks AP bridge
Closes #3234
See merge request pleroma/pleroma!4043
|
|
It is not allowed to use the Sec-WebSocket-Protocol header for arbitrary values. This was possible due to the raw websocket handling we were doing with Cowboy, but Phoenix.Socket.Transport does not allow this as the value of this header is compared against a static list of subprotocols.
https://hexdocs.pm/phoenix/Phoenix.Endpoint.html#socket/3-websocket-configuration
Additionally I cannot find anywhere that we depended on this behavior. Setting the Sec-WebSocket-Protocol header does not appear to be a part of PleromaFE.
|
|
Also consolidate Tesla mocks into the HttpRequestMock module.
Tests were not exercising the real codepaths. The Rich Media Preview only works with https, but most of these tests were only mocking http.
|
|
|
|
The Rich Media Previews were not regenerated when a post was updated due to a cache invalidation issue. They are now cached by the activity id so they can be evicted with the other activity cache objects in the :scrubber_cache.
|
|
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
|
|
This should have always failed as it would not be an existing atom. Unclear how it worked since the upgrade to Phoenix 1.6.
|
|
This reverts commit 60d89cb40455f9f70b683849dd95311975b0b6f7.
|
|
lib/pleroma/web/media_proxy/media_proxy_controller.ex:55:no_return
Function handle_preview/2 has no local return.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:59:call
The function call will not succeed.
Pleroma.HTTP.request(<<72, 69, 65, 68>>, _media_proxy_url :: any(), [], [], [{:pool, :media}])
will never return since the success typing is:
(
:delete | :get | :head | :options | :patch | :post | :put | :trace,
binary(),
any(),
[{binary(), binary()}],
Keyword.t()
) :: any()
and the contract is
(
method(),
Pleroma.HTTP.Request.url(),
String.t(),
Pleroma.HTTP.Request.headers(),
:elixir.keyword()
) :: {:ok, Tesla.Env.t()} | {:error, any()}
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:95:unused_fun
Function handle_preview/3 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:111:unused_fun
Function handle_png_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:134:unused_fun
Function handle_jpeg_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:152:unused_fun
Function handle_video_preview/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:164:unused_fun
Function drop_static_param_and_redirect/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:173:unused_fun
Function fallback_on_preview_error/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:177:unused_fun
Function put_preview_response_headers/1 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:177:unused_fun
Function put_preview_response_headers/2 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:187:unused_fun
Function thumbnail_max_dimensions/0 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:196:unused_fun
Function min_content_length_for_preview/0 will never be called.
________________________________________________________________________________
lib/pleroma/web/media_proxy/media_proxy_controller.ex:200:unused_fun
Function media_preview_proxy_config/0 will never be called.
|
|
Bump dependencies
See merge request pleroma/pleroma!4044
|
|
lib/pleroma/web/admin_api/controllers/config_controller.ex:162:call
The function call will not succeed.
Phoenix.Controller.render(
_conn :: %{:body_params => %{:configs => _, _ => _}, _ => _},
<<105, 110, 100, 101, 120, 46, 106, 115, 111, 110>>,
%{:configs => [any()], :need_reboot => _}
)
will never return since the success typing is:
(
%Plug.Conn{
:adapter => {atom(), _},
:assigns => %{atom() => _},
:body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:halted => boolean(),
:host => binary(),
:method => binary(),
:owner => pid(),
:params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:path_info => [binary()],
:path_params => %{binary() => binary() | [any()] | map()},
:port => char(),
:private => %{atom() => _},
:query_params => %Plug.Conn.Unfetched{
:aspect => atom(),
binary() => binary() | [any()] | map()
},
:query_string => binary(),
:remote_ip =>
{byte(), byte(), byte(), byte()}
| {char(), char(), char(), char(), char(), char(), char(), char()},
:req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
:req_headers => [{_, _}],
:request_path => binary(),
:resp_body =>
nil
| binary()
| maybe_improper_list(
binary() | maybe_improper_list(any(), binary() | []) | byte(),
binary() | []
),
:resp_cookies => %{binary() => map()},
:resp_headers => [{_, _}],
:scheme => :http | :https,
:script_name => [binary()],
:secret_key_base => nil | binary(),
:state =>
:chunked | :file | :sent | :set | :set_chunked | :set_file | :unset | :upgraded,
:status => nil | non_neg_integer()
},
atom() | binary(),
atom() | binary() | [{_, _}] | map()
) :: %Plug.Conn{
:adapter => {atom(), _},
:assigns => %{atom() => _},
:body_params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:halted => boolean(),
:host => binary(),
:method => binary(),
:owner => pid(),
:params => %Plug.Conn.Unfetched{:aspect => atom(), binary() => _},
:path_info => [binary()],
:path_params => %{binary() => binary() | [any()] | map()},
:port => char(),
:private => %{atom() => _},
:query_params => %Plug.Conn.Unfetched{
:aspect => atom(),
binary() => binary() | [any()] | map()
},
:query_string => binary(),
:remote_ip =>
{byte(), byte(), byte(), byte()}
| {char(), char(), char(), char(), char(), char(), char(), char()},
:req_cookies => %Plug.Conn.Unfetched{:aspect => atom(), binary() => binary()},
:req_headers => [{_, _}],
:request_path => binary(),
:resp_body =>
nil
| binary()
| maybe_improper_list(
binary() | maybe_improper_list(any(), binary() | []) | byte(),
binary() | []
),
:resp_cookies => %{binary() => map()},
:resp_headers => [{_, _}],
:scheme => :http | :https,
:script_name => [binary()],
:secret_key_base => nil | binary(),
:state => :sent,
:status => nil | non_neg_integer()
}
and the contract is
(Plug.Conn.t(), binary() | atom(), Keyword.t() | map()) :: Plug.Conn.t()
|
|
lib/pleroma/signature.ex:30:pattern_match
The pattern can never match the type.
Pattern:
%{<<97, 112, 95, 105, 100>> => _ap_id}
Type:
{:error, _} | {:ok, map()}
|
|
lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex:9:callback_type_mismatch
Type mismatch for @callback ttl/2 in Pleroma.Web.RichMedia.Parser.TTL behaviour.
Expected type:
nil | integer()
Actual type:
{:error, <<_::64, _::size(8)>>} | {:ok, integer()}
|
|
This check was recently improved in Credo and it does make sense for readability.
The offending functions in Pleroma have been renamed and a couple missing the ? suffix have been fixed as well.
|
|
|
|
|
|
# Conflicts:
# docs/development/API/differences_in_mastoapi_responses.md
|
|
Handle object fetch failures gracefully
See merge request pleroma/pleroma!4015
|
|
OTP26 support
See merge request pleroma/pleroma!4025
|
|
|
|
on_exit/1 to ensure web push config gets restored
|
|
reliably retrieve the max_id value
|
|
parameter values
|
|
parameters before comparison
|
|
query parameters
|
|
MRF: Log sensible regex error for subdomain_match
See merge request pleroma/pleroma!4026
|
|
MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one
See merge request pleroma/pleroma!4029
|
|
|
|
Support objects with a nil contentMap (firefish)
Closes #3231
See merge request pleroma/pleroma!4030
|
|
the same instance are recipients
|
|
Closes: https://git.pleroma.social/pleroma/pleroma/-/issues/3231
|
|
|
|
|
|
|