@ -1,11 +1,7 @@ | |||||
# frozen_string_literal: true | # frozen_string_literal: true | ||||
class ManifestsController < ApplicationController | class ManifestsController < ApplicationController | ||||
before_action :set_instance_presenter | |||||
def show; end | |||||
def set_instance_presenter | |||||
@instance_presenter = InstancePresenter.new | |||||
def show | |||||
render json: InstancePresenter.new, serializer: ManifestSerializer | |||||
end | end | ||||
end | end |
@ -0,0 +1,52 @@ | |||||
# frozen_string_literal: true | |||||
class ManifestSerializer < ActiveModel::Serializer | |||||
include RoutingHelper | |||||
include ActionView::Helpers::TextHelper | |||||
attributes :name, :short_name, :description, | |||||
:icons, :theme_color, :background_color, | |||||
:display, :start_url, :scope | |||||
def name | |||||
object.site_title | |||||
end | |||||
def short_name | |||||
object.site_title | |||||
end | |||||
def description | |||||
strip_tags(object.site_description.presence || I18n.t('about.about_mastodon_html')) | |||||
end | |||||
def icons | |||||
[ | |||||
{ | |||||
src: '/android-chrome-192x192.png', | |||||
sizes: '192x192', | |||||
type: 'image/png', | |||||
}, | |||||
] | |||||
end | |||||
def theme_color | |||||
'#282c37' | |||||
end | |||||
def background_color | |||||
'#191b22' | |||||
end | |||||
def display | |||||
'standalone' | |||||
end | |||||
def start_url | |||||
'/web/timelines/home' | |||||
end | |||||
def scope | |||||
root_url | |||||
end | |||||
end |
@ -1,11 +0,0 @@ | |||||
object false | |||||
node(:name) { Setting.site_title } | |||||
node(:short_name) { Setting.site_title } | |||||
node(:description) { strip_tags(Setting.site_description.presence || I18n.t('about.about_mastodon_html')) } | |||||
node(:icons) { [{ src: '/android-chrome-192x192.png', sizes: '192x192', type: 'image/png' }] } | |||||
node(:theme_color) { '#282c37' } | |||||
node(:background_color) { '#d9e1e8' } | |||||
node(:display) { 'standalone' } | |||||
node(:start_url) { '/web/timelines/home' } | |||||
node(:scope) { root_url } |