diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 2f2d51f8cc..d7500b663a 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -60,6 +60,7 @@ class Api::V1::StatusesController < Api::BaseController spoiler_text: status_params[:spoiler_text], markdown: status_params[:markdown], visibility: status_params[:visibility], + force_visibility: status_params[:force_visibility], searchability: status_params[:searchability], language: status_params[:language], scheduled_at: status_params[:scheduled_at], @@ -136,6 +137,7 @@ class Api::V1::StatusesController < Api::BaseController :sensitive, :spoiler_text, :visibility, + :force_visibility, :searchability, :language, :markdown, diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 6fbb463572..3d4f88c5e9 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -97,10 +97,12 @@ class REST::InstanceSerializer < ActiveModel::Serializer def fedibird_capabilities capabilities = [ :emoji_reaction, - :visibility_public_unlisted, + :kmyblue_extra_media_attachments, + :kmyblue_visibility_public_unlisted, :enable_wide_emoji, :enable_wide_emoji_reaction, - :searchability, + :kmyblue_searchability, + :kmyblue_markdown, ] capabilities << :profile_search unless Chewy.enabled? diff --git a/app/serializers/rest/v1/instance_serializer.rb b/app/serializers/rest/v1/instance_serializer.rb index 7db03edf08..d2c49ba0e3 100644 --- a/app/serializers/rest/v1/instance_serializer.rb +++ b/app/serializers/rest/v1/instance_serializer.rb @@ -107,9 +107,12 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer def fedibird_capabilities capabilities = [ :emoji_reaction, - :visibility_public_unlisted, + :kmyblue_extra_media_attachments, + :kmyblue_visibility_public_unlisted, :enable_wide_emoji, :enable_wide_emoji_reaction, + :kmyblue_searchability, + :kmyblue_markdown, ] capabilities << :profile_search unless Chewy.enabled? diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index e7c9574a4f..29093b7a78 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -22,6 +22,7 @@ class PostStatusService < BaseService # @option [Status] :thread Optional status to reply to # @option [Boolean] :sensitive # @option [String] :visibility + # @option [Boolean] :force_visibility # @option [String] :searchability # @option [String] :spoiler_text # @option [Boolean] :markdown @@ -68,7 +69,7 @@ class PostStatusService < BaseService @text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present? @visibility = @options[:visibility] || @account.user&.setting_default_privacy @visibility = :unlisted if (@visibility&.to_sym == :public || @visibility&.to_sym == :public_unlisted) && @account.silenced? - @visibility = :public_unlisted if @visibility&.to_sym == :public && !@options[:application]&.superapp && @account.user&.setting_public_post_to_unlisted + @visibility = :public_unlisted if @visibility&.to_sym == :public && !@options[:force_visibility] && !@options[:application]&.superapp && @account.user&.setting_public_post_to_unlisted @searchability= searchability @markdown = !!@options[:markdown] @scheduled_at = @options[:scheduled_at]&.to_datetime