#63 NodeInfoでのfedibird_capabilities公開

This commit is contained in:
KMY 2023-10-06 18:59:10 +09:00
parent 235bef36d0
commit dd88cef84b
4 changed files with 37 additions and 51 deletions

View file

@ -0,0 +1,31 @@
# frozen_string_literal: true
module KmyblueCapabilitiesHelper
def fedibird_capabilities
capabilities = [
:enable_wide_emoji,
:kmyblue_searchability,
:searchability,
:kmyblue_markdown,
:kmyblue_reaction_deck,
:kmyblue_visibility_login,
:status_reference,
:visibility_mutual,
:visibility_limited,
:kmyblue_limited_scope,
:kmyblue_antenna,
:kmyblue_bookmark_category,
:kmyblue_quote,
:kmyblue_searchability_limited,
]
capabilities << :profile_search unless Chewy.enabled?
if Setting.enable_emoji_reaction
capabilities << :emoji_reaction
capabilities << :enable_wide_emoji_reaction
end
capabilities << :kmyblue_visibility_public_unlisted if Setting.enable_public_unlisted_visibility
capabilities
end
end

View file

@ -2,6 +2,7 @@
class NodeInfo::Serializer < ActiveModel::Serializer
include RoutingHelper
include KmyblueCapabilitiesHelper
attributes :version, :software, :protocols, :services, :usage, :open_registrations, :metadata
@ -38,7 +39,9 @@ class NodeInfo::Serializer < ActiveModel::Serializer
end
def metadata
{}
{
fedibird_capabilities: fedibird_capabilities,
}
end
private

View file

@ -8,6 +8,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
end
include RoutingHelper
include KmyblueCapabilitiesHelper
attributes :domain, :title, :version, :source_url, :description,
:usage, :thumbnail, :languages, :configuration,
@ -105,31 +106,6 @@ class REST::InstanceSerializer < ActiveModel::Serializer
}
end
# for third party apps
def fedibird_capabilities
capabilities = [
:enable_wide_emoji,
:enable_wide_emoji_reaction,
:kmyblue_searchability,
:searchability,
:kmyblue_markdown,
:kmyblue_reaction_deck,
:kmyblue_visibility_login,
:status_reference,
:visibility_mutual,
:visibility_limited,
:kmyblue_limited_scope,
:kmyblue_antenna,
:kmyblue_bookmark_category,
]
capabilities << :profile_search unless Chewy.enabled?
capabilities << :emoji_reaction if Setting.enable_emoji_reaction
capabilities << :kmyblue_visibility_public_unlisted if Setting.enable_public_unlisted_visibility
capabilities
end
private
def registrations_enabled?

View file

@ -2,6 +2,7 @@
class REST::V1::InstanceSerializer < ActiveModel::Serializer
include RoutingHelper
include KmyblueCapabilitiesHelper
attributes :uri, :title, :short_description, :description, :email,
:version, :urls, :stats, :thumbnail,
@ -114,31 +115,6 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
UserRole.everyone.can?(:invite_users)
end
# for third party apps
def fedibird_capabilities
capabilities = [
:enable_wide_emoji,
:enable_wide_emoji_reaction,
:kmyblue_searchability,
:searchability,
:kmyblue_markdown,
:kmyblue_reaction_deck,
:kmyblue_visibility_login,
:status_reference,
:visibility_mutual,
:visibility_limited,
:kmyblue_limited_scope,
:kmyblue_antenna,
:kmyblue_bookmark_category,
]
capabilities << :profile_search unless Chewy.enabled?
capabilities << :emoji_reaction if Setting.enable_emoji_reaction
capabilities << :kmyblue_visibility_public_unlisted if Setting.enable_public_unlisted_visibility
capabilities
end
private
def instance_presenter