Merge remote-tracking branch 'parent/main' into upstream-20231204

This commit is contained in:
KMY 2023-12-04 12:04:52 +09:00
commit 94c2396a34
179 changed files with 1036 additions and 775 deletions

View file

@ -104,19 +104,19 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
end
def original_discoverable
object.suspended? ? false : (object.discoverable || false)
object.unavailable? ? false : (object.discoverable || false)
end
def indexable
object.suspended? ? false : (object.indexable || false)
object.unavailable? ? false : (object.indexable || false)
end
def name
object.suspended? ? object.username : (object.display_name.presence || object.username)
object.unavailable? ? object.username : (object.display_name.presence || object.username)
end
def summary
object.suspended? ? '' : account_bio_format(object)
object.unavailable? ? '' : account_bio_format(object)
end
def icon
@ -140,23 +140,23 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
end
def avatar_exists?
!object.suspended? && object.avatar?
!object.unavailable? && object.avatar?
end
def header_exists?
!object.suspended? && object.header?
!object.unavailable? && object.header?
end
def manually_approves_followers
object.suspended? ? false : object.locked
object.unavailable? ? false : object.locked
end
def virtual_tags
object.suspended? ? [] : (object.emojis + object.tags)
object.unavailable? ? [] : (object.emojis + object.tags)
end
def virtual_attachments
object.suspended? ? [] : object.fields
object.unavailable? ? [] : object.fields
end
def moved_to
@ -164,11 +164,11 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
end
def moved?
!object.suspended? && object.moved?
!object.unavailable? && object.moved?
end
def also_known_as?
!object.suspended? && !object.also_known_as.empty?
!object.unavailable? && !object.also_known_as.empty?
end
def published

View file

@ -43,32 +43,32 @@ class InitialStateSerializer < ActiveModel::Serializer
if object.current_account
store[:me] = object.current_account.id.to_s
store[:unfollow_modal] = object.current_account.user.setting_unfollow_modal
store[:boost_modal] = object.current_account.user.setting_boost_modal
store[:delete_modal] = object.current_account.user.setting_delete_modal
store[:auto_play_gif] = object.current_account.user.setting_auto_play_gif
store[:display_media] = object.current_account.user.setting_display_media
store[:display_media_expand] = object.current_account.user.setting_display_media_expand
store[:expand_spoilers] = object.current_account.user.setting_expand_spoilers
store[:enable_emoji_reaction] = object.current_account.user.setting_enable_emoji_reaction && Setting.enable_emoji_reaction
store[:enable_login_privacy] = object.current_account.user.setting_enable_login_privacy
store[:enable_dtl_menu] = object.current_account.user.setting_enable_dtl_menu
store[:reduce_motion] = object.current_account.user.setting_reduce_motion
store[:disable_swiping] = object.current_account.user.setting_disable_swiping
store[:advanced_layout] = object.current_account.user.setting_advanced_layout
store[:use_blurhash] = object.current_account.user.setting_use_blurhash
store[:use_pending_items] = object.current_account.user.setting_use_pending_items
store[:show_trends] = Setting.trends && object.current_account.user.setting_trends
store[:bookmark_category_needed] = object.current_account.user.setting_bookmark_category_needed
store[:simple_timeline_menu] = object.current_account.user.setting_simple_timeline_menu
store[:unfollow_modal] = object_account_user.setting_unfollow_modal
store[:boost_modal] = object_account_user.setting_boost_modal
store[:delete_modal] = object_account_user.setting_delete_modal
store[:auto_play_gif] = object_account_user.setting_auto_play_gif
store[:display_media] = object_account_user.setting_display_media
store[:display_media_expand] = object_account_user.setting_display_media_expand
store[:expand_spoilers] = object_account_user.setting_expand_spoilers
store[:enable_emoji_reaction] = object_account_user.setting_enable_emoji_reaction && Setting.enable_emoji_reaction
store[:enable_login_privacy] = object_account_user.setting_enable_login_privacy
store[:enable_dtl_menu] = object_account_user.setting_enable_dtl_menu
store[:reduce_motion] = object_account_user.setting_reduce_motion
store[:disable_swiping] = object_account_user.setting_disable_swiping
store[:advanced_layout] = object_account_user.setting_advanced_layout
store[:use_blurhash] = object_account_user.setting_use_blurhash
store[:use_pending_items] = object_account_user.setting_use_pending_items
store[:show_trends] = Setting.trends && object_account_user.setting_trends
store[:bookmark_category_needed] = object_account_user.setting_bookmark_category_needed
store[:simple_timeline_menu] = object_account_user.setting_simple_timeline_menu
store[:hide_items] = [
object.current_account.user.setting_hide_favourite_menu ? 'favourite_menu' : nil,
object.current_account.user.setting_hide_recent_emojis ? 'recent_emojis' : nil,
object.current_account.user.setting_hide_blocking_quote ? 'blocking_quote' : nil,
object.current_account.user.setting_hide_emoji_reaction_unavailable_server ? 'emoji_reaction_unavailable_server' : nil,
object.current_account.user.setting_show_emoji_reaction_on_timeline ? nil : 'emoji_reaction_on_timeline',
object.current_account.user.setting_show_quote_in_home ? nil : 'quote_in_home',
object.current_account.user.setting_show_quote_in_public ? nil : 'quote_in_public',
object_account_user.setting_hide_favourite_menu ? 'favourite_menu' : nil,
object_account_user.setting_hide_recent_emojis ? 'recent_emojis' : nil,
object_account_user.setting_hide_blocking_quote ? 'blocking_quote' : nil,
object_account_user.setting_hide_emoji_reaction_unavailable_server ? 'emoji_reaction_unavailable_server' : nil,
object_account_user.setting_show_emoji_reaction_on_timeline ? nil : 'emoji_reaction_on_timeline',
object_account_user.setting_show_quote_in_home ? nil : 'quote_in_home',
object_account_user.setting_show_quote_in_public ? nil : 'quote_in_public',
].compact
else
store[:auto_play_gif] = Setting.auto_play_gif
@ -94,11 +94,11 @@ class InitialStateSerializer < ActiveModel::Serializer
if object.current_account
store[:me] = object.current_account.id.to_s
store[:default_privacy] = object.visibility || object.current_account.user.setting_default_privacy
store[:stay_privacy] = object.current_account.user.setting_stay_privacy
store[:default_searchability] = object.searchability || object.current_account.user.setting_default_searchability
store[:default_sensitive] = object.current_account.user.setting_default_sensitive
store[:default_language] = object.current_account.user.preferred_posting_language
store[:default_privacy] = object.visibility || object_account_user.setting_default_privacy
store[:stay_privacy] = object_account_user.setting_stay_privacy
store[:default_searchability] = object.searchability || object_account_user.setting_default_searchability
store[:default_sensitive] = object_account_user.setting_default_sensitive
store[:default_language] = object_account_user.preferred_posting_language
end
store[:text] = object.text if object.text
@ -114,11 +114,11 @@ class InitialStateSerializer < ActiveModel::Serializer
associations: [:account_stat, :user, { moved_to_account: [:account_stat, :user] }]
)
store[object.current_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
store[object.admin.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
store[object.owner.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.owner, serializer: REST::AccountSerializer) if object.owner
store[object.disabled_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.disabled_account, serializer: REST::AccountSerializer) if object.disabled_account
store[object.moved_to_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.moved_to_account, serializer: REST::AccountSerializer) if object.moved_to_account
store[object.current_account.id.to_s] = serialized_account(object.current_account) if object.current_account
store[object.admin.id.to_s] = serialized_account(object.admin) if object.admin
store[object.owner.id.to_s] = serialized_account(object.owner) if object.owner
store[object.disabled_account.id.to_s] = serialized_account(object.disabled_account) if object.disabled_account
store[object.moved_to_account.id.to_s] = serialized_account(object.moved_to_account) if object.moved_to_account
store
end
@ -133,6 +133,14 @@ class InitialStateSerializer < ActiveModel::Serializer
private
def object_account_user
object.current_account.user
end
def serialized_account(account)
ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer)
end
def instance_presenter
@instance_presenter ||= InstancePresenter.new
end

View file

@ -60,7 +60,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
end
def note
object.suspended? ? '' : account_bio_format(object)
object.unavailable? ? '' : account_bio_format(object)
end
def url
@ -72,19 +72,19 @@ class REST::AccountSerializer < ActiveModel::Serializer
end
def avatar
full_asset_url(object.suspended? ? object.avatar.default_url : object.avatar_original_url)
full_asset_url(object.unavailable? ? object.avatar.default_url : object.avatar_original_url)
end
def avatar_static
full_asset_url(object.suspended? ? object.avatar.default_url : object.avatar_static_url)
full_asset_url(object.unavailable? ? object.avatar.default_url : object.avatar_static_url)
end
def header
full_asset_url(object.suspended? ? object.header.default_url : object.header_original_url)
full_asset_url(object.unavailable? ? object.header.default_url : object.header_original_url)
end
def header_static
full_asset_url(object.suspended? ? object.header.default_url : object.header_static_url)
full_asset_url(object.unavailable? ? object.header.default_url : object.header_static_url)
end
def created_at
@ -96,19 +96,19 @@ class REST::AccountSerializer < ActiveModel::Serializer
end
def display_name
object.suspended? ? '' : object.display_name
object.unavailable? ? '' : object.display_name
end
def locked
object.suspended? ? false : object.locked
object.unavailable? ? false : object.locked
end
def bot
object.suspended? ? false : object.bot
object.unavailable? ? false : object.bot
end
def discoverable
object.suspended? ? false : object.discoverable
object.unavailable? ? false : object.discoverable
end
def subscribable
@ -116,23 +116,23 @@ class REST::AccountSerializer < ActiveModel::Serializer
end
def indexable
object.suspended? ? false : object.indexable
object.unavailable? ? false : object.indexable
end
def moved_to_account
object.suspended? ? nil : AccountDecorator.new(object.moved_to_account)
object.unavailable? ? nil : AccountDecorator.new(object.moved_to_account)
end
def emojis
object.suspended? ? [] : object.emojis
object.unavailable? ? [] : object.emojis
end
def fields
object.suspended? ? [] : object.fields
object.unavailable? ? [] : object.fields
end
def suspended
object.suspended?
object.unavailable?
end
def silenced
@ -144,7 +144,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
end
def roles
if object.suspended? || object.user.nil?
if object.unavailable? || object.user.nil?
[]
else
[object.user.role].compact.filter(&:highlighted?)

View file

@ -2,7 +2,10 @@
class REST::ApplicationSerializer < ActiveModel::Serializer
attributes :id, :name, :website, :scopes, :redirect_uri,
:client_id, :client_secret, :vapid_key
:client_id, :client_secret
# NOTE: Deprecated in 4.3.0, needs to be removed in 5.0.0
attribute :vapid_key
def id
object.id.to_s

View file

@ -49,6 +49,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
status: object.status_page_url,
},
vapid: {
public_key: Rails.configuration.x.vapid_public_key,
},
accounts: {
max_featured_tags: FeaturedTag::LIMIT,
},