diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-07-11 21:41:23 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-07-11 21:41:23 +0200 |
commit | cdf20f4367226bc5682a0b040fa62f56d6f58fb5 (patch) | |
tree | 630fca746dc138284eb7402c878f212578ebd74c /app | |
parent | f040b9aee3f84cb3ba8926fed81d47df3f1094a7 (diff) | |
parent | a2ce7508c95f473a77d46a99fc1e090c0defadcc (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `app/serializers/rest/instance_serializer.rb`: Upstream changed the fields returned by /api/v1/instance by adding a `configuration` field holding a lot of useful information making our `max_toot_chars` and `poll_limits` fields obsolete. Keeping those around for now for compatibility. - `app/validators/status_length_validator.rb`: No real conflict, just URL_PLACEHOLDER_CHARS introduced too close to MAX_CHARS which is defined differently in glitch-soc. Ported upstream changes.
Diffstat (limited to 'app')
-rw-r--r-- | app/models/report_filter.rb | 14 | ||||
-rw-r--r-- | app/serializers/rest/instance_serializer.rb | 29 | ||||
-rw-r--r-- | app/validators/status_length_validator.rb | 3 | ||||
-rw-r--r-- | app/views/admin/reports/index.html.haml | 6 |
4 files changed, 50 insertions, 2 deletions
diff --git a/app/models/report_filter.rb b/app/models/report_filter.rb index c32d4359e..a91a6baeb 100644 --- a/app/models/report_filter.rb +++ b/app/models/report_filter.rb @@ -6,6 +6,7 @@ class ReportFilter account_id target_account_id by_target_domain + target_origin ).freeze attr_reader :params @@ -34,8 +35,21 @@ class ReportFilter Report.where(account_id: value) when :target_account_id Report.where(target_account_id: value) + when :target_origin + target_origin_scope(value) else raise "Unknown filter: #{key}" end end + + def target_origin_scope(value) + case value.to_sym + when :local + Report.where(target_account: Account.local) + when :remote + Report.where(target_account: Account.remote) + else + raise "Unknown value: #{value}" + end + end end diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index ae8b80fb7..48bbb55c8 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -5,7 +5,8 @@ class REST::InstanceSerializer < ActiveModel::Serializer attributes :uri, :title, :short_description, :description, :email, :version, :urls, :stats, :thumbnail, :max_toot_chars, :poll_limits, - :languages, :registrations, :approval_required, :invites_enabled + :languages, :registrations, :approval_required, :invites_enabled, + :configuration has_one :contact_account, serializer: REST::AccountSerializer @@ -66,6 +67,32 @@ class REST::InstanceSerializer < ActiveModel::Serializer { streaming_api: Rails.configuration.x.streaming_api_base_url } end + def configuration + { + statuses: { + max_characters: StatusLengthValidator::MAX_CHARS, + max_media_attachments: 4, + characters_reserved_per_url: StatusLengthValidator::URL_PLACEHOLDER_CHARS, + }, + + media_attachments: { + supported_mime_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES + MediaAttachment::AUDIO_MIME_TYPES, + image_size_limit: MediaAttachment::IMAGE_LIMIT, + image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT, + video_size_limit: MediaAttachment::VIDEO_LIMIT, + video_frame_rate_limit: MediaAttachment::MAX_VIDEO_FRAME_RATE, + video_matrix_limit: MediaAttachment::MAX_VIDEO_MATRIX_LIMIT, + }, + + polls: { + max_options: PollValidator::MAX_OPTIONS, + max_characters_per_option: PollValidator::MAX_OPTION_CHARS, + min_expiration: PollValidator::MIN_EXPIRATION, + max_expiration: PollValidator::MAX_EXPIRATION, + }, + } + end + def languages [I18n.default_locale] end diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb index 11997024f..2a3ac8862 100644 --- a/app/validators/status_length_validator.rb +++ b/app/validators/status_length_validator.rb @@ -2,7 +2,8 @@ class StatusLengthValidator < ActiveModel::Validator MAX_CHARS = (ENV['MAX_TOOT_CHARS'] || 500).to_i - URL_PLACEHOLDER = "\1#{'x' * 23}" + URL_PLACEHOLDER_CHARS = 23 + URL_PLACEHOLDER = "\1#{'x' * URL_PLACEHOLDER_CHARS}" def validate(status) return unless status.local? && !status.reblog? diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index 721c55f71..619173373 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -7,6 +7,12 @@ %ul %li= filter_link_to t('admin.reports.unresolved'), resolved: nil %li= filter_link_to t('admin.reports.resolved'), resolved: '1' + .filter-subset + %strong= t('admin.reports.target_origin') + %ul + %li= filter_link_to t('admin.accounts.location.all'), target_origin: nil + %li= filter_link_to t('admin.accounts.location.local'), target_origin: 'local' + %li= filter_link_to t('admin.accounts.location.remote'), target_origin: 'remote' = form_tag admin_reports_url, method: 'GET', class: 'simple_form' do .fields-group |