Refactor formatter (#17828)
* Refactor formatter * Move custom emoji pre-rendering logic to view helpers * Move more methods out of Formatter * Fix code style issues * Remove Formatter * Add inline poll options to RSS feeds * Remove unused helper method * Fix code style issues * Various fixes and improvements * Fix test
This commit is contained in:
parent
2dd30804b6
commit
cefa526c6d
44 changed files with 932 additions and 1024 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
class ActivityPub::ActorSerializer < ActivityPub::Serializer
|
||||
include RoutingHelper
|
||||
include FormattingHelper
|
||||
|
||||
context :security
|
||||
|
||||
|
@ -102,7 +103,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
|
|||
end
|
||||
|
||||
def summary
|
||||
object.suspended? ? '' : Formatter.instance.simplified_format(object)
|
||||
object.suspended? ? '' : html_aware_format(object.note, object.local?)
|
||||
end
|
||||
|
||||
def icon
|
||||
|
@ -185,6 +186,8 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
|
|||
end
|
||||
|
||||
class Account::FieldSerializer < ActivityPub::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
attributes :type, :name, :value
|
||||
|
||||
def type
|
||||
|
@ -192,7 +195,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
|
|||
end
|
||||
|
||||
def value
|
||||
Formatter.instance.format_field(object.account, object.value)
|
||||
html_aware_format(object.value, object.account.value?, with_rel_me: true, with_domains: true, multiline: false)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::NoteSerializer < ActivityPub::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
context_extensions :atom_uri, :conversation, :sensitive, :voters_count
|
||||
|
||||
attributes :id, :type, :summary,
|
||||
|
@ -39,11 +41,11 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
|
|||
end
|
||||
|
||||
def content
|
||||
Formatter.instance.format(object)
|
||||
status_content_format(object)
|
||||
end
|
||||
|
||||
def content_map
|
||||
{ object.language => Formatter.instance.format(object) }
|
||||
{ object.language => content }
|
||||
end
|
||||
|
||||
def replies
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
class REST::AccountSerializer < ActiveModel::Serializer
|
||||
include RoutingHelper
|
||||
include FormattingHelper
|
||||
|
||||
attributes :id, :username, :acct, :display_name, :locked, :bot, :discoverable, :group, :created_at,
|
||||
:note, :url, :avatar, :avatar_static, :header, :header_static,
|
||||
|
@ -14,10 +15,12 @@ class REST::AccountSerializer < ActiveModel::Serializer
|
|||
attribute :suspended, if: :suspended?
|
||||
|
||||
class FieldSerializer < ActiveModel::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
attributes :name, :value, :verified_at
|
||||
|
||||
def value
|
||||
Formatter.instance.format_field(object.account, object.value)
|
||||
html_aware_format(object.value, object.account.local?, with_rel_me: true, with_domains: true, multiline: false)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -32,7 +35,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def note
|
||||
object.suspended? ? '' : Formatter.instance.simplified_format(object)
|
||||
object.suspended? ? '' : html_aware_format(object.note, object.local?)
|
||||
end
|
||||
|
||||
def url
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::AnnouncementSerializer < ActiveModel::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
attributes :id, :content, :starts_at, :ends_at, :all_day,
|
||||
:published_at, :updated_at
|
||||
|
||||
|
@ -25,7 +27,7 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def content
|
||||
Formatter.instance.linkify(object.text)
|
||||
linkify(object.text)
|
||||
end
|
||||
|
||||
def reactions
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::StatusEditSerializer < ActiveModel::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
has_one :account, serializer: REST::AccountSerializer
|
||||
|
||||
attributes :content, :spoiler_text, :sensitive, :created_at
|
||||
|
@ -11,7 +13,7 @@ class REST::StatusEditSerializer < ActiveModel::Serializer
|
|||
attribute :poll, if: -> { object.poll_options.present? }
|
||||
|
||||
def content
|
||||
Formatter.instance.format(object)
|
||||
status_content_format(object)
|
||||
end
|
||||
|
||||
def poll
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::StatusSerializer < ActiveModel::Serializer
|
||||
include FormattingHelper
|
||||
|
||||
attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id,
|
||||
:sensitive, :spoiler_text, :visibility, :language,
|
||||
:uri, :url, :replies_count, :reblogs_count,
|
||||
|
@ -71,7 +73,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def content
|
||||
Formatter.instance.format(object)
|
||||
status_content_format(object)
|
||||
end
|
||||
|
||||
def url
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue