From 8ef09813a2b46d99fe9c7e39beba2a68052c17d1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:18:54 -0500
Subject: [PATCH 01/55] Autofix Rubocop Style/EmptyMethod (#23732)
---
.rubocop_todo.yml | 10 ----------
.../20181024224956_migrate_account_conversations.rb | 3 +--
...529143559_preserve_old_layout_for_existing_users.rb | 3 +--
db/migrate/20200510110808_reset_web_app_secret.rb | 3 +--
4 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index c3a62c2d9..6fb471600 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2695,16 +2695,6 @@ Style/ConcatArrayLiterals:
Style/Documentation:
Enabled: false
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: compact, expanded
-Style/EmptyMethod:
- Exclude:
- - 'db/migrate/20181024224956_migrate_account_conversations.rb'
- - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- - 'db/migrate/20200510110808_reset_web_app_secret.rb'
-
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
Style/ExplicitBlockArgument:
diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb
index 9e6497d81..aca6638e1 100644
--- a/db/migrate/20181024224956_migrate_account_conversations.rb
+++ b/db/migrate/20181024224956_migrate_account_conversations.rb
@@ -100,8 +100,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
end
end
- def down
- end
+ def down; end
private
diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
index 72b7c609d..19e86fbfe 100644
--- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
+++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
@@ -12,6 +12,5 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2]
end
end
- def down
- end
+ def down; end
end
diff --git a/db/migrate/20200510110808_reset_web_app_secret.rb b/db/migrate/20200510110808_reset_web_app_secret.rb
index b274844c5..8c0c06a83 100644
--- a/db/migrate/20200510110808_reset_web_app_secret.rb
+++ b/db/migrate/20200510110808_reset_web_app_secret.rb
@@ -10,6 +10,5 @@ class ResetWebAppSecret < ActiveRecord::Migration[5.2]
web_app.save!
end
- def down
- end
+ def down; end
end
From 597767a9f7ca846be9fbca826aba362f8387a60f Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:19:40 -0500
Subject: [PATCH 02/55] Autofix Rubocop Rails/RedundantForeignKey (#23731)
---
.rubocop_todo.yml | 12 ------------
app/models/custom_filter.rb | 4 ++--
app/models/follow_recommendation.rb | 2 +-
app/models/report.rb | 2 +-
app/models/status.rb | 2 +-
app/models/user_ip.rb | 2 +-
.../20221101190723_backfill_admin_action_logs.rb | 2 +-
...0221206114142_backfill_admin_action_logs_again.rb | 2 +-
8 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 6fb471600..1a524e6fd 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2459,18 +2459,6 @@ Rails/RakeEnvironment:
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
-# Offense count: 8
-# This cop supports safe autocorrection (--autocorrect).
-Rails/RedundantForeignKey:
- Exclude:
- - 'app/models/custom_filter.rb'
- - 'app/models/follow_recommendation.rb'
- - 'app/models/report.rb'
- - 'app/models/status.rb'
- - 'app/models/user_ip.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
-
# Offense count: 29
# Configuration parameters: Include.
# Include: db/**/*.rb
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 5a4a974be..b70e53bd5 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -33,8 +33,8 @@ class CustomFilter < ApplicationRecord
enum action: [:warn, :hide], _suffix: :action
belongs_to :account
- has_many :keywords, class_name: 'CustomFilterKeyword', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
- has_many :statuses, class_name: 'CustomFilterStatus', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
+ has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
+ has_many :statuses, class_name: 'CustomFilterStatus', inverse_of: :custom_filter, dependent: :destroy
accepts_nested_attributes_for :keywords, reject_if: :all_blank, allow_destroy: true
validates :title, :context, presence: true
diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb
index e552b5a88..501f8ecb6 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -12,7 +12,7 @@ class FollowRecommendation < ApplicationRecord
self.primary_key = :account_id
belongs_to :account_summary, foreign_key: :account_id
- belongs_to :account, foreign_key: :account_id
+ belongs_to :account
scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
diff --git a/app/models/report.rb b/app/models/report.rb
index 525d22ad5..fe6c292c5 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -32,7 +32,7 @@ class Report < ApplicationRecord
belongs_to :action_taken_by_account, class_name: 'Account', optional: true
belongs_to :assigned_account, class_name: 'Account', optional: true
- has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy
+ has_many :notes, class_name: 'ReportNote', inverse_of: :report, dependent: :destroy
has_many :notifications, as: :activity, dependent: :destroy
scope :unresolved, -> { where(action_taken_at: nil) }
diff --git a/app/models/status.rb b/app/models/status.rb
index 102dfa994..e0ad29103 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -53,7 +53,7 @@ class Status < ApplicationRecord
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
belongs_to :account, inverse_of: :statuses
- belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account', optional: true
+ belongs_to :in_reply_to_account, class_name: 'Account', optional: true
belongs_to :conversation, optional: true
belongs_to :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', optional: true
diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb
index a8e802e13..1da615762 100644
--- a/app/models/user_ip.rb
+++ b/app/models/user_ip.rb
@@ -11,7 +11,7 @@
class UserIp < ApplicationRecord
self.primary_key = :user_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
def readonly?
true
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 48ef1e6e3..6ab76a8f7 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -62,7 +62,7 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
# Cannot use usual polymorphic support because of namespacing issues
belongs_to :status, foreign_key: :target_id
belongs_to :account, foreign_key: :target_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
belongs_to :domain_block, foreign_key: :target_id
belongs_to :domain_allow, foreign_key: :target_id
belongs_to :email_domain_block, foreign_key: :target_id
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
index 279053ab9..42b7f3625 100644
--- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -62,7 +62,7 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
# Cannot use usual polymorphic support because of namespacing issues
belongs_to :status, foreign_key: :target_id
belongs_to :account, foreign_key: :target_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
belongs_to :domain_block, foreign_key: :target_id
belongs_to :domain_allow, foreign_key: :target_id
belongs_to :email_domain_block, foreign_key: :target_id
From 21bf32635687770bc0026d769a69f49b89f8a0a2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:28:40 -0500
Subject: [PATCH 03/55] Autofix Rubocop Rails/Pluck (#23730)
---
.rubocop_todo.yml | 11 -----------
app/lib/importer/base_importer.rb | 2 +-
app/lib/link_details_extractor.rb | 8 ++++----
.../scheduler/accounts_statuses_cleanup_scheduler.rb | 2 +-
.../api/v1/notifications_controller_spec.rb | 12 ++++++------
.../api/v1/suggestions_controller_spec.rb | 2 +-
.../webauthn_credentials_controller_spec.rb | 2 +-
7 files changed, 14 insertions(+), 25 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1a524e6fd..954e42f9e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2435,17 +2435,6 @@ Rails/Output:
Exclude:
- 'lib/mastodon/ip_blocks_cli.rb'
-# Offense count: 14
-# This cop supports safe autocorrection (--autocorrect).
-Rails/Pluck:
- Exclude:
- - 'app/lib/importer/base_importer.rb'
- - 'app/lib/link_details_extractor.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/suggestions_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
-
# Offense count: 9
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
diff --git a/app/lib/importer/base_importer.rb b/app/lib/importer/base_importer.rb
index ea522c600..0cd1d3422 100644
--- a/app/lib/importer/base_importer.rb
+++ b/app/lib/importer/base_importer.rb
@@ -45,7 +45,7 @@ class Importer::BaseImporter
# Remove documents from the index that no longer exist in the database
def clean_up!
index.scroll_batches do |documents|
- ids = documents.map { |doc| doc['_id'] }
+ ids = documents.pluck('_id')
existence_map = index.adapter.target.where(id: ids).pluck(:id).each_with_object({}) { |id, map| map[id.to_s] = true }
tmp = ids.reject { |id| existence_map[id] }
diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb
index 74a7d0f3b..f8a0be636 100644
--- a/app/lib/link_details_extractor.rb
+++ b/app/lib/link_details_extractor.rb
@@ -188,7 +188,7 @@ class LinkDetailsExtractor
end
def language
- valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').map { |element| element['lang'] }.first)
+ valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').pick('lang'))
end
def icon
@@ -220,15 +220,15 @@ class LinkDetailsExtractor
end
def link_tag(name)
- document.xpath("//link[@rel=\"#{name}\"]").map { |link| link['href'] }.first
+ document.xpath("//link[@rel=\"#{name}\"]").pick('href')
end
def opengraph_tag(name)
- document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").map { |meta| meta['content'] }.first
+ document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").pick('content')
end
def meta_tag(name)
- document.xpath("//meta[@name=\"#{name}\"]").map { |meta| meta['content'] }.first
+ document.xpath("//meta[@name=\"#{name}\"]").pick('content')
end
def structured_data
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index bd92fe32c..cc5b6e137 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -67,7 +67,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
end
def compute_budget
- threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.map { |x| x['concurrency'] }.sum
+ threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.pluck('concurrency').sum
[PER_THREAD_BUDGET * threads, MAX_BUDGET].min
end
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index 46e177c0e..22ebfa3dd 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -70,19 +70,19 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end
it 'includes reblog' do
- expect(body_as_json.map { |x| x[:type] }).to include 'reblog'
+ expect(body_as_json.pluck(:type)).to include 'reblog'
end
it 'includes mention' do
- expect(body_as_json.map { |x| x[:type] }).to include 'mention'
+ expect(body_as_json.pluck(:type)).to include 'mention'
end
it 'includes favourite' do
- expect(body_as_json.map { |x| x[:type] }).to include 'favourite'
+ expect(body_as_json.pluck(:type)).to include 'favourite'
end
it 'includes follow' do
- expect(body_as_json.map { |x| x[:type] }).to include 'follow'
+ expect(body_as_json.pluck(:type)).to include 'follow'
end
end
@@ -125,7 +125,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
it 'returns everything but excluded type' do
expect(body_as_json.size).to_not eq 0
- expect(body_as_json.map { |x| x[:type] }.uniq).to_not include 'mention'
+ expect(body_as_json.pluck(:type).uniq).to_not include 'mention'
end
end
@@ -139,7 +139,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end
it 'returns only requested type' do
- expect(body_as_json.map { |x| x[:type] }.uniq).to eq ['mention']
+ expect(body_as_json.pluck(:type).uniq).to eq ['mention']
end
end
end
diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb
index 7805b6b4f..35ba155e7 100644
--- a/spec/controllers/api/v1/suggestions_controller_spec.rb
+++ b/spec/controllers/api/v1/suggestions_controller_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Api::V1::SuggestionsController, type: :controller do
json = body_as_json
expect(json.size).to be >= 1
- expect(json.map { |i| i[:id] }).to include(*[bob, jeff].map { |i| i.id.to_s })
+ expect(json.pluck(:id)).to include(*[bob, jeff].map { |i| i.id.to_s })
end
end
end
diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
index c3156c4e9..f060c3a4b 100644
--- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
@@ -140,7 +140,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
it 'includes existing credentials in list of excluded credentials' do
get :options
- excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].map { |credential| credential['id'] }
+ excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].pluck('id')
expect(excluded_credentials_ids).to match_array(user.webauthn_credentials.pluck(:external_id))
end
end
From a2fdb388eb412f3f90ec48bc990c7c2c24b8c072 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:32:10 -0500
Subject: [PATCH 04/55] Autofix Rubocop RSpec/ReturnFromStub (#23724)
---
.rubocop_todo.yml | 13 -------------
.../api/v1/accounts/credentials_controller_spec.rb | 2 +-
.../api/v1/apps/credentials_controller_spec.rb | 2 +-
.../favourited_by_accounts_controller_spec.rb | 2 +-
.../reblogged_by_accounts_controller_spec.rb | 2 +-
spec/controllers/api/v1/statuses_controller_spec.rb | 2 +-
spec/validators/blacklisted_email_validator_spec.rb | 2 +-
7 files changed, 6 insertions(+), 19 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 954e42f9e..73ebdbfd8 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1923,19 +1923,6 @@ RSpec/RepeatedExampleGroupDescription:
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
-# Offense count: 6
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: and_return, block
-RSpec/ReturnFromStub:
- Exclude:
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses_controller_spec.rb'
- - 'spec/validators/blacklisted_email_validator_spec.rb'
-
# Offense count: 18
# This cop supports safe autocorrection (--autocorrect).
RSpec/ScatteredLet:
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index d8aa00a07..a56b9d8fa 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -86,7 +86,7 @@ describe Api::V1::Accounts::CredentialsController do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
describe 'GET #show' do
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 0f811d5f3..470093c3c 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -30,7 +30,7 @@ describe Api::V1::Apps::CredentialsController do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
describe 'GET #show' do
diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
index 4dcaba6bd..c1c6f5f12 100644
--- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
index dc36d4ca0..90187a585 100644
--- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index e4e6e172a..e839c8494 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -219,7 +219,7 @@ RSpec.describe Api::V1::StatusesController, type: :controller do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index 351de0707..f9ee3b932 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
let(:errors) { double(add: nil) }
before do
- allow(user).to receive(:valid_invitation?) { false }
+ allow(user).to receive(:valid_invitation?).and_return(false)
allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email }
end
From 65ba0d92ef78f82a3cf5bf04f13b3d7393da015d Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:33:27 -0500
Subject: [PATCH 05/55] Enable Rubocop RSpec/NotToNot (#23723)
---
.rubocop.yml | 3 +
.rubocop_todo.yml | 123 ------------------
.../collections_controller_spec.rb | 4 +-
.../activitypub/inboxes_controller_spec.rb | 6 +-
...ccount_moderation_notes_controller_spec.rb | 2 +-
.../admin/accounts_controller_spec.rb | 12 +-
.../admin/change_email_controller_spec.rb | 2 +-
.../admin/confirmations_controller_spec.rb | 2 +-
.../admin/domain_blocks_controller_spec.rb | 2 +-
.../admin/report_notes_controller_spec.rb | 4 +-
.../settings/profiles_controller_spec.rb | 2 +-
.../well_known/nodeinfo_controller_spec.rb | 2 +-
.../lib/activitypub/activity/announce_spec.rb | 2 +-
spec/lib/request_spec.rb | 2 +-
spec/lib/status_filter_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 2 +-
spec/models/account_spec.rb | 10 +-
.../concerns/account_interactions_spec.rb | 6 +-
spec/models/concerns/remotable_spec.rb | 4 +-
spec/models/public_feed_spec.rb | 28 ++--
spec/models/setting_spec.rb | 4 +-
spec/models/tag_spec.rb | 6 +-
spec/models/user_spec.rb | 4 +-
spec/services/account_search_service_spec.rb | 2 +-
.../process_collection_service_spec.rb | 10 +-
.../process_status_update_service_spec.rb | 4 +-
spec/services/block_domain_service_spec.rb | 6 +-
.../clear_domain_media_service_spec.rb | 6 +-
spec/services/import_service_spec.rb | 2 +-
spec/services/post_status_service_spec.rb | 4 +-
spec/services/search_service_spec.rb | 6 +-
.../blacklisted_email_validator_spec.rb | 2 +-
.../disallowed_hashtags_validator_spec.rb | 4 +-
spec/validators/email_mx_validator_spec.rb | 2 +-
.../validators/follow_limit_validator_spec.rb | 4 +-
spec/validators/poll_validator_spec.rb | 4 +-
.../status_length_validator_spec.rb | 4 +-
.../unreserved_username_validator_spec.rb | 4 +-
spec/validators/url_validator_spec.rb | 2 +-
spec/workers/feed_insert_worker_spec.rb | 6 +-
40 files changed, 94 insertions(+), 214 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 3783ccf48..fc1969a64 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -94,6 +94,9 @@ Rails/Exit:
- 'lib/mastodon/cli_helper.rb'
- 'lib/cli.rb'
+RSpec/NotToNot:
+ EnforcedStyle: to_not
+
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 73ebdbfd8..9076891e2 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1440,129 +1440,6 @@ RSpec/NoExpectationExample:
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/services/precompute_feed_service_spec.rb'
-# Offense count: 370
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: not_to, to_not
-RSpec/NotToNot:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
- - 'spec/controllers/accounts_controller_spec.rb'
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/roles_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/filters_controller_spec.rb'
- - 'spec/controllers/api/v1/media_controller_spec.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/polls/votes_controller_spec.rb'
- - 'spec/controllers/api/v1/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
- - 'spec/controllers/api/v2/filters_controller_spec.rb'
- - 'spec/controllers/auth/challenges_controller_spec.rb'
- - 'spec/controllers/auth/confirmations_controller_spec.rb'
- - 'spec/controllers/auth/passwords_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/concerns/challengable_concern_spec.rb'
- - 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- - 'spec/controllers/oauth/tokens_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- - 'spec/controllers/statuses_controller_spec.rb'
- - 'spec/helpers/application_helper_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/tag_manager_spec.rb'
- - 'spec/lib/delivery_failure_tracker_spec.rb'
- - 'spec/lib/feed_manager_spec.rb'
- - 'spec/lib/html_aware_formatter_spec.rb'
- - 'spec/lib/request_pool_spec.rb'
- - 'spec/lib/status_reach_finder_spec.rb'
- - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb'
- - 'spec/lib/vacuum/backups_vacuum_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- - 'spec/lib/vacuum/statuses_vacuum_spec.rb'
- - 'spec/lib/vacuum/system_keys_vacuum_spec.rb'
- - 'spec/models/account/field_spec.rb'
- - 'spec/models/account_conversation_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/models/account_statuses_filter_spec.rb'
- - 'spec/models/concerns/remotable_spec.rb'
- - 'spec/models/concerns/status_threading_concern_spec.rb'
- - 'spec/models/follow_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/status_spec.rb'
- - 'spec/models/tag_feed_spec.rb'
- - 'spec/models/trends/statuses_spec.rb'
- - 'spec/models/trends/tags_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/webhook_spec.rb'
- - 'spec/policies/account_moderation_note_policy_spec.rb'
- - 'spec/policies/account_policy_spec.rb'
- - 'spec/policies/backup_policy_spec.rb'
- - 'spec/policies/custom_emoji_policy_spec.rb'
- - 'spec/policies/domain_block_policy_spec.rb'
- - 'spec/policies/email_domain_block_policy_spec.rb'
- - 'spec/policies/instance_policy_spec.rb'
- - 'spec/policies/invite_policy_spec.rb'
- - 'spec/policies/relay_policy_spec.rb'
- - 'spec/policies/report_note_policy_spec.rb'
- - 'spec/policies/report_policy_spec.rb'
- - 'spec/policies/settings_policy_spec.rb'
- - 'spec/policies/status_policy_spec.rb'
- - 'spec/policies/tag_policy_spec.rb'
- - 'spec/policies/user_policy_spec.rb'
- - 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/services/account_statuses_cleanup_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/app_sign_up_service_spec.rb'
- - 'spec/services/batched_remove_status_service_spec.rb'
- - 'spec/services/block_domain_service_spec.rb'
- - 'spec/services/bootstrap_timeline_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/favourite_service_spec.rb'
- - 'spec/services/fetch_link_card_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/fetch_remote_status_service_spec.rb'
- - 'spec/services/follow_service_spec.rb'
- - 'spec/services/mute_service_spec.rb'
- - 'spec/services/notify_service_spec.rb'
- - 'spec/services/remove_status_service_spec.rb'
- - 'spec/services/report_service_spec.rb'
- - 'spec/services/resolve_account_service_spec.rb'
- - 'spec/services/search_service_spec.rb'
- - 'spec/services/suspend_account_service_spec.rb'
- - 'spec/services/unallow_domain_service_spec.rb'
- - 'spec/services/unsuspend_account_service_spec.rb'
- - 'spec/services/update_status_service_spec.rb'
- - 'spec/support/examples/models/concerns/account_avatar.rb'
- - 'spec/support/examples/models/concerns/account_header.rb'
- - 'spec/validators/email_mx_validator_spec.rb'
- - 'spec/validators/note_length_validator_spec.rb'
- - 'spec/validators/reaction_validator_spec.rb'
- - 'spec/validators/status_length_validator_spec.rb'
- - 'spec/validators/unique_username_validator_spec.rb'
- - 'spec/workers/activitypub/fetch_replies_worker_spec.rb'
- - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-
# Offense count: 3
RSpec/PendingWithoutReason:
Exclude:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 4e35938db..bf81cdb93 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -60,7 +60,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'does not include contents of private pinned status' do
- expect(response.body).not_to include(private_pinned.text)
+ expect(response.body).to_not include(private_pinned.text)
end
context 'when account is permanently suspended' do
@@ -115,7 +115,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'does not include contents of private pinned status' do
- expect(response.body).not_to include(private_pinned.text)
+ expect(response.body).to_not include(private_pinned.text)
end
end
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 2f023197b..7f4d6b2d3 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
let(:synchronization_collection) { 'https://example.com/followers2' }
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
@@ -76,13 +76,13 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
let(:synchronization_url) { 'https://example.org/followers' }
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
context 'with matching digest' do
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
index d3f3263f8..b8d606322 100644
--- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb
+++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe Admin::AccountModerationNotesController, type: :controller do
let(:params) { { account_moderation_note: { target_account_id: target_account.id, content: '' } } }
it 'falls to create a note' do
- expect { subject }.not_to change { AccountModerationNote.count }
+ expect { subject }.to_not change { AccountModerationNote.count }
expect(subject).to render_template 'admin/accounts/show'
end
end
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 48204b7b6..35d79740a 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -84,7 +84,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
@@ -106,7 +106,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
@@ -115,7 +115,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
end
@@ -133,7 +133,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'succeeds in enabling account' do
is_expected.to redirect_to admin_account_path(account.id)
- expect(user.reload).not_to be_disabled
+ expect(user.reload).to_not be_disabled
end
end
@@ -183,7 +183,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to approve account' do
is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_approved
+ expect(user.reload).to_not be_approved
end
end
end
@@ -223,7 +223,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to reject account' do
is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_approved
+ expect(user.reload).to_not be_approved
end
end
end
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index 0814f327d..520842a19 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -35,7 +35,7 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do
expect(user.email).to eq previous_email
expect(user.unconfirmed_email).to eq 'test@example.com'
- expect(user.confirmation_token).not_to be_nil
+ expect(user.confirmation_token).to_not be_nil
expect(UserMailer).to have_received(:confirmation_instructions).with(user, user.confirmation_token, { to: 'test@example.com' })
diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb
index 6268903c4..7ca90f3e1 100644
--- a/spec/controllers/admin/confirmations_controller_spec.rb
+++ b/spec/controllers/admin/confirmations_controller_spec.rb
@@ -55,7 +55,7 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do
it 'does not resend confirmation mail' do
expect(subject).to redirect_to admin_accounts_path
expect(flash[:error]).to eq I18n.t('admin.accounts.resend_confirmation.already_confirmed')
- expect(UserMailer).not_to have_received(:confirmation_instructions)
+ expect(UserMailer).to_not have_received(:confirmation_instructions)
end
end
end
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 3b2fd6c5d..92fc19efa 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -54,7 +54,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
- expect(DomainBlockWorker).not_to have_received(:perform_async)
+ expect(DomainBlockWorker).to_not have_received(:perform_async)
expect(response).to render_template :new
end
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index fa7572d18..8a2603611 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -34,7 +34,7 @@ describe Admin::ReportNotesController do
it 'creates a report note and does not resolve report' do
expect { subject }.to change { ReportNote.count }.by(1)
- expect(report.reload).not_to be_action_taken
+ expect(report.reload).to_not be_action_taken
expect(subject).to redirect_to admin_report_path(report)
end
end
@@ -49,7 +49,7 @@ describe Admin::ReportNotesController do
it 'creates a report note and unresolves report' do
expect { subject }.to change { ReportNote.count }.by(1)
- expect(report.reload).not_to be_action_taken
+ expect(report.reload).to_not be_action_taken
expect(subject).to redirect_to admin_report_path(report)
end
end
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index fbbca8bb9..c7a6ad664 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -38,7 +38,7 @@ RSpec.describe Settings::ProfilesController, type: :controller do
put :update, params: { account: { avatar: fixture_file_upload('avatar.gif', 'image/gif') } }
expect(response).to redirect_to(settings_profile_path)
- expect(account.reload.avatar.instance.avatar_file_name).not_to be_nil
+ expect(account.reload.avatar.instance.avatar_file_name).to_not be_nil
expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id)
end
end
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 964a14706..e9436cd26 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -27,7 +27,7 @@ describe WellKnown::NodeInfoController, type: :controller do
json = body_as_json
- expect({ 'foo' => 0 }).not_to match_json_schema('nodeinfo_2.0')
+ expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0')
expect(json).to match_json_schema('nodeinfo_2.0')
expect(json[:version]).to eq '2.0'
expect(json[:usage]).to be_a Hash
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index 461c3757b..adb13acc2 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -139,7 +139,7 @@ RSpec.describe ActivityPub::Activity::Announce do
end
it 'does not fetch the remote status' do
- expect(a_request(:get, 'https://example.com/actor/hello-world')).not_to have_been_made
+ expect(a_request(:get, 'https://example.com/actor/hello-world')).to_not have_been_made
expect(Status.find_by(uri: 'https://example.com/actor/hello-world')).to be_nil
end
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index e555a8b5a..f63a836de 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -102,7 +102,7 @@ describe Request do
it 'accepts body less than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
- expect { subject.perform { |response| response.body_with_limit } }.not_to raise_error
+ expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error
end
it 'rejects body by given size' do
diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb
index 287fe00de..cdb482059 100644
--- a/spec/lib/status_filter_spec.rb
+++ b/spec/lib/status_filter_spec.rb
@@ -10,7 +10,7 @@ describe StatusFilter do
subject { described_class.new(status, nil) }
context 'when there are no connections' do
- it { is_expected.not_to be_filtered }
+ it { is_expected.to_not be_filtered }
end
context 'when status account is silenced' do
@@ -36,7 +36,7 @@ describe StatusFilter do
subject { described_class.new(status, account) }
context 'when there are no connections' do
- it { is_expected.not_to be_filtered }
+ it { is_expected.to_not be_filtered }
end
context 'when status account is blocked' do
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index d4a3a6b59..cc742b65e 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe TextFormatter do
let(:text) { "line\nfeed" }
it 'removes line feeds' do
- is_expected.not_to include "\n"
+ is_expected.to_not include "\n"
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 763835618..03ed12d78 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe Account, type: :model do
end
it 'does not raise an error' do
- expect { subject.suspend! }.not_to raise_error
+ expect { subject.suspend! }.to_not raise_error
end
end
end
@@ -206,7 +206,7 @@ RSpec.describe Account, type: :model do
end
it 'calls not ResolveAccountService#call' do
- expect_any_instance_of(ResolveAccountService).not_to receive(:call).with(acct)
+ expect_any_instance_of(ResolveAccountService).to_not receive(:call).with(acct)
account.refresh!
end
end
@@ -811,19 +811,19 @@ RSpec.describe Account, type: :model do
it 'is valid even if the username is longer than 30 characters' do
account = Fabricate.build(:account, domain: 'domain', username: Faker::Lorem.characters(number: 31))
account.valid?
- expect(account).not_to model_have_error_on_field(:username)
+ expect(account).to_not model_have_error_on_field(:username)
end
it 'is valid even if the display name is longer than 30 characters' do
account = Fabricate.build(:account, domain: 'domain', display_name: Faker::Lorem.characters(number: 31))
account.valid?
- expect(account).not_to model_have_error_on_field(:display_name)
+ expect(account).to_not model_have_error_on_field(:display_name)
end
it 'is valid even if the note is longer than 500 characters' do
account = Fabricate.build(:account, domain: 'domain', note: Faker::Lorem.characters(number: 501))
account.valid?
- expect(account).not_to model_have_error_on_field(:note)
+ expect(account).to_not model_have_error_on_field(:note)
end
end
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index b79c44594..b2d84308b 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -163,7 +163,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(true)
+ end.to_not change { mute.reload.hide_notifications? }.from(true)
end
end
@@ -183,7 +183,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(true)
+ end.to_not change { mute.reload.hide_notifications? }.from(true)
end
end
end
@@ -207,7 +207,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(false)
+ end.to_not change { mute.reload.hide_notifications? }.from(false)
end
end
diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb
index ca2d65d2d..964520427 100644
--- a/spec/models/concerns/remotable_spec.rb
+++ b/spec/models/concerns/remotable_spec.rb
@@ -147,8 +147,8 @@ RSpec.describe Remotable do
let(:code) { 500 }
it 'does not assign file' do
- expect(foo).not_to receive(:public_send).with("#{hoge}=", any_args)
- expect(foo).not_to receive(:public_send).with("#{hoge}_file_name=", any_args)
+ expect(foo).to_not receive(:public_send).with("#{hoge}=", any_args)
+ expect(foo).to_not receive(:public_send).with("#{hoge}_file_name=", any_args)
foo.hoge_remote_url = url
end
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index 0ffc343f1..be46639c5 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe PublicFeed, type: :model do
private_status = Fabricate(:status, visibility: :private)
expect(subject).to include(public_status.id)
- expect(subject).not_to include(private_status.id)
+ expect(subject).to_not include(private_status.id)
end
it 'does not include replies' do
@@ -19,7 +19,7 @@ RSpec.describe PublicFeed, type: :model do
reply = Fabricate(:status, in_reply_to_id: status.id)
expect(subject).to include(status.id)
- expect(subject).not_to include(reply.id)
+ expect(subject).to_not include(reply.id)
end
it 'does not include boosts' do
@@ -27,7 +27,7 @@ RSpec.describe PublicFeed, type: :model do
boost = Fabricate(:status, reblog_of_id: status.id)
expect(subject).to include(status.id)
- expect(subject).not_to include(boost.id)
+ expect(subject).to_not include(boost.id)
end
it 'filters out silenced accounts' do
@@ -36,7 +36,7 @@ RSpec.describe PublicFeed, type: :model do
silenced_status = Fabricate(:status, account: silenced_account)
expect(subject).to include(status.id)
- expect(subject).not_to include(silenced_status.id)
+ expect(subject).to_not include(silenced_status.id)
end
context 'without local_only option' do
@@ -87,7 +87,7 @@ RSpec.describe PublicFeed, type: :model do
it 'does not include remote instances statuses' do
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
end
@@ -96,13 +96,13 @@ RSpec.describe PublicFeed, type: :model do
it 'does not include remote instances statuses' do
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
it 'is not affected by personal domain blocks' do
viewer.block_domain!('test.com')
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
end
end
@@ -119,7 +119,7 @@ RSpec.describe PublicFeed, type: :model do
let(:viewer) { nil }
it 'does not include local instances statuses' do
- expect(subject).not_to include(local_status.id)
+ expect(subject).to_not include(local_status.id)
expect(subject).to include(remote_status.id)
end
end
@@ -128,7 +128,7 @@ RSpec.describe PublicFeed, type: :model do
let(:viewer) { Fabricate(:account, username: 'viewer') }
it 'does not include local instances statuses' do
- expect(subject).not_to include(local_status.id)
+ expect(subject).to_not include(local_status.id)
expect(subject).to include(remote_status.id)
end
end
@@ -146,7 +146,7 @@ RSpec.describe PublicFeed, type: :model do
@account.block!(blocked)
blocked_status = Fabricate(:status, account: blocked)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
it 'excludes statuses from accounts who have blocked the account' do
@@ -154,7 +154,7 @@ RSpec.describe PublicFeed, type: :model do
blocker.block!(@account)
blocked_status = Fabricate(:status, account: blocker)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
it 'excludes statuses from accounts muted by the account' do
@@ -162,7 +162,7 @@ RSpec.describe PublicFeed, type: :model do
@account.mute!(muted)
muted_status = Fabricate(:status, account: muted)
- expect(subject).not_to include(muted_status.id)
+ expect(subject).to_not include(muted_status.id)
end
it 'excludes statuses from accounts from personally blocked domains' do
@@ -170,7 +170,7 @@ RSpec.describe PublicFeed, type: :model do
@account.block_domain!(blocked.domain)
blocked_status = Fabricate(:status, account: blocked)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
context 'with language preferences' do
@@ -182,7 +182,7 @@ RSpec.describe PublicFeed, type: :model do
expect(subject).to include(en_status.id)
expect(subject).to include(es_status.id)
- expect(subject).not_to include(fr_status.id)
+ expect(subject).to_not include(fr_status.id)
end
it 'includes all languages when user does not have a setting' do
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 83ba415a8..077223094 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -38,7 +38,7 @@ RSpec.describe Setting, type: :model do
let(:cache_value) { 'cache-value' }
it 'calls not RailsSettings::Base#[]' do
- expect(RailsSettings::Base).not_to receive(:[]).with(key)
+ expect(RailsSettings::Base).to_not receive(:[]).with(key)
described_class[key]
end
@@ -104,7 +104,7 @@ RSpec.describe Setting, type: :model do
ActiveSupport::Notifications.subscribed callback, 'sql.active_record' do
described_class[key]
end
- expect(callback).not_to have_received(:call)
+ expect(callback).to_not have_received(:call)
end
it 'returns the cached value' do
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index 102d2f625..7043449c5 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -4,15 +4,15 @@ require 'rails_helper'
RSpec.describe Tag do
describe 'validations' do
it 'invalid with #' do
- expect(described_class.new(name: '#hello_world')).not_to be_valid
+ expect(described_class.new(name: '#hello_world')).to_not be_valid
end
it 'invalid with .' do
- expect(described_class.new(name: '.abcdef123')).not_to be_valid
+ expect(described_class.new(name: '.abcdef123')).to_not be_valid
end
it 'invalid with spaces' do
- expect(described_class.new(name: 'hello world')).not_to be_valid
+ expect(described_class.new(name: 'hello world')).to_not be_valid
end
it 'valid with aesthetic' do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index dde1503c0..c2f7e99ac 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -159,7 +159,7 @@ RSpec.describe User, type: :model do
it 'does not trigger the account.approved Web Hook' do
subject
- expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id)
+ expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id)
end
end
@@ -270,7 +270,7 @@ RSpec.describe User, type: :model do
it 'does not trigger the account.approved Web Hook' do
subject
- expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id)
+ expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id)
end
end
end
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index d3b5baad6..45e19d1ef 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -63,7 +63,7 @@ describe AccountSearchService, type: :service do
allow(ResolveAccountService).to receive(:new).and_return(service)
results = subject.call('newuser@remote.com', nil, limit: 10, resolve: false)
- expect(service).not_to have_received(:call)
+ expect(service).to_not have_received(:call)
end
end
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index fbfa6d6c6..d35d9596d 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -39,7 +39,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
end
it 'does not process payload' do
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, actor)
end
end
@@ -69,7 +69,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
it 'does not process payload if no signature exists' do
expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, forwarder)
end
@@ -87,7 +87,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
payload['signature'] = { 'type' => 'RsaSignature2017' }
expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, forwarder)
end
@@ -206,7 +206,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
end
it 'does not process forged payload' do
- expect(ActivityPub::Activity).not_to receive(:factory).with(
+ expect(ActivityPub::Activity).to_not receive(:factory).with(
hash_including(
'object' => hash_including(
'id' => 'https://example.com/users/bob/fake-status'
@@ -216,7 +216,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
anything
)
- expect(ActivityPub::Activity).not_to receive(:factory).with(
+ expect(ActivityPub::Activity).to_not receive(:factory).with(
hash_including(
'object' => hash_including(
'content' => '
puck was here
'
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 5d15f6ffe..ae7db88bf 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -214,11 +214,11 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
end
it 'does not create any edits' do
- expect { subject.call(status, json) }.not_to change { status.reload.edits.pluck(&:id) }
+ expect { subject.call(status, json) }.to_not change { status.reload.edits.pluck(&:id) }
end
it 'does not update the text, spoiler_text or edited_at' do
- expect { subject.call(status, json) }.not_to change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] }
+ expect { subject.call(status, json) }.to_not change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] }
end
end
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index 242b02fff..e24e48d41 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -67,9 +67,9 @@ RSpec.describe BlockDomainService, type: :service do
end
it 'leaves the domains status and attachments, but clears media' do
- expect { bad_status1.reload }.not_to raise_error
- expect { bad_status2.reload }.not_to raise_error
- expect { bad_attachment.reload }.not_to raise_error
+ expect { bad_status1.reload }.to_not raise_error
+ expect { bad_status2.reload }.to_not raise_error
+ expect { bad_attachment.reload }.to_not raise_error
expect(bad_attachment.file.exists?).to be false
end
end
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index 45b92e2c9..e90faf84d 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -14,9 +14,9 @@ RSpec.describe ClearDomainMediaService, type: :service do
end
it 'leaves the domains status and attachments, but clears media' do
- expect { bad_status1.reload }.not_to raise_error
- expect { bad_status2.reload }.not_to raise_error
- expect { bad_attachment.reload }.not_to raise_error
+ expect { bad_status1.reload }.to_not raise_error
+ expect { bad_status2.reload }.to_not raise_error
+ expect { bad_attachment.reload }.to_not raise_error
expect(bad_attachment.file.exists?).to be false
end
end
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index a12148833..2b1516ff0 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -234,7 +234,7 @@ RSpec.describe ImportService, type: :service do
subject.call(import)
expect(account.bookmarks.map(&:status).map(&:id)).to include(local_status.id)
expect(account.bookmarks.map(&:status).map(&:id)).to include(remote_status.id)
- expect(account.bookmarks.map(&:status).map(&:id)).not_to include(direct_status.id)
+ expect(account.bookmarks.map(&:status).map(&:id)).to_not include(direct_status.id)
expect(account.bookmarks.count).to eq 3
end
end
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 0b72253a5..2148f1819 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe PostStatusService, type: :service do
end
it 'does not change statuses count' do
- expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.not_to change { [account.statuses_count, previous_status.replies_count] }
+ expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.to_not change { [account.statuses_count, previous_status.replies_count] }
end
end
@@ -157,7 +157,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(account, text: '@alice @alice @alice hey @alice')
- end.not_to raise_error
+ end.to_not raise_error
end
it 'processes hashtags' do
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 6f32007e8..7ec334a56 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -13,8 +13,8 @@ describe SearchService, type: :service do
results = subject.call('', nil, 10)
expect(results).to eq(empty_results)
- expect(AccountSearchService).not_to have_received(:new)
- expect(Tag).not_to have_received(:search_for)
+ expect(AccountSearchService).to_not have_received(:new)
+ expect(Tag).to_not have_received(:search_for)
end
end
@@ -89,7 +89,7 @@ describe SearchService, type: :service do
allow(Tag).to receive(:search_for)
results = subject.call(query, nil, 10)
- expect(Tag).not_to have_received(:search_for)
+ expect(Tag).to_not have_received(:search_for)
expect(results).to eq empty_results
end
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index f9ee3b932..cb807fe24 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
let(:blocked_email) { false }
it 'does not add errors' do
- expect(subject).not_to have_received(:add).with(:email, :blocked)
+ expect(subject).to_not have_received(:add).with(:email, :blocked)
end
context 'when canonical e-mail is blocked' do
diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb
index 9deec0bb9..2c4ebc4f2 100644
--- a/spec/validators/disallowed_hashtags_validator_spec.rb
+++ b/spec/validators/disallowed_hashtags_validator_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
let(:reblog) { true }
it 'does not add errors' do
- expect(errors).not_to have_received(:add).with(:text, any_args)
+ expect(errors).to_not have_received(:add).with(:text, any_args)
end
end
@@ -31,7 +31,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
let(:disallowed_tags) { [] }
it 'does not add errors' do
- expect(errors).not_to have_received(:add).with(:text, any_args)
+ expect(errors).to_not have_received(:add).with(:text, any_args)
end
end
diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb
index 6640d6058..ffb6851d0 100644
--- a/spec/validators/email_mx_validator_spec.rb
+++ b/spec/validators/email_mx_validator_spec.rb
@@ -38,7 +38,7 @@ describe EmailMxValidator do
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
subject.validate(user)
- expect(user.errors).not_to have_received(:add)
+ expect(user.errors).to_not have_received(:add)
end
it 'adds an error if the email domain name contains empty labels' do
diff --git a/spec/validators/follow_limit_validator_spec.rb b/spec/validators/follow_limit_validator_spec.rb
index cc8fbb631..94ba0c47f 100644
--- a/spec/validators/follow_limit_validator_spec.rb
+++ b/spec/validators/follow_limit_validator_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe FollowLimitValidator, type: :validator do
let(:_nil) { true }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:base, any_args)
+ expect(errors).to_not have_received(:add).with(:base, any_args)
end
end
@@ -43,7 +43,7 @@ RSpec.describe FollowLimitValidator, type: :validator do
let(:limit_reached) { false }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:base, any_args)
+ expect(errors).to_not have_received(:add).with(:base, any_args)
end
end
end
diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb
index a76c63ccc..f3f4b1288 100644
--- a/spec/validators/poll_validator_spec.rb
+++ b/spec/validators/poll_validator_spec.rb
@@ -15,14 +15,14 @@ RSpec.describe PollValidator, type: :validator do
let(:expires_at) { 1.day.from_now }
it 'have no errors' do
- expect(errors).not_to have_received(:add)
+ expect(errors).to_not have_received(:add)
end
context 'expires just 5 min ago' do
let(:expires_at) { 5.minutes.from_now }
it 'not calls errors add' do
- expect(errors).not_to have_received(:add)
+ expect(errors).to_not have_received(:add)
end
end
end
diff --git a/spec/validators/status_length_validator_spec.rb b/spec/validators/status_length_validator_spec.rb
index db9c728a8..e132b5618 100644
--- a/spec/validators/status_length_validator_spec.rb
+++ b/spec/validators/status_length_validator_spec.rb
@@ -7,13 +7,13 @@ describe StatusLengthValidator do
it 'does not add errors onto remote statuses' do
status = double(local?: false)
subject.validate(status)
- expect(status).not_to receive(:errors)
+ expect(status).to_not receive(:errors)
end
it 'does not add errors onto local reblogs' do
status = double(local?: false, reblog?: true)
subject.validate(status)
- expect(status).not_to receive(:errors)
+ expect(status).to_not receive(:errors)
end
it 'adds an error when content warning is over 500 characters' do
diff --git a/spec/validators/unreserved_username_validator_spec.rb b/spec/validators/unreserved_username_validator_spec.rb
index e2f051b08..3c6f71c59 100644
--- a/spec/validators/unreserved_username_validator_spec.rb
+++ b/spec/validators/unreserved_username_validator_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
let(:username) { nil }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:username, any_args)
+ expect(errors).to_not have_received(:add).with(:username, any_args)
end
end
@@ -36,7 +36,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
let(:reserved_username) { false }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:username, any_args)
+ expect(errors).to_not have_received(:add).with(:username, any_args)
end
end
end
diff --git a/spec/validators/url_validator_spec.rb b/spec/validators/url_validator_spec.rb
index 85eadeb63..966261b50 100644
--- a/spec/validators/url_validator_spec.rb
+++ b/spec/validators/url_validator_spec.rb
@@ -27,7 +27,7 @@ RSpec.describe URLValidator, type: :validator do
let(:compliant) { true }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(attribute, any_args)
+ expect(errors).to_not have_received(:add).with(attribute, any_args)
end
end
end
diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb
index fb34970fc..1a723d63a 100644
--- a/spec/workers/feed_insert_worker_spec.rb
+++ b/spec/workers/feed_insert_worker_spec.rb
@@ -16,7 +16,7 @@ describe FeedInsertWorker do
result = subject.perform(nil, follower.id)
expect(result).to eq true
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
it 'skips push with missing account' do
@@ -25,7 +25,7 @@ describe FeedInsertWorker do
result = subject.perform(status.id, nil)
expect(result).to eq true
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
end
@@ -36,7 +36,7 @@ describe FeedInsertWorker do
result = subject.perform(status.id, follower.id)
expect(result).to be_nil
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
it 'pushes the status onto the home timeline without filter' do
From dbc6d7b276aa1ccc085f76caa43cc091311af6b7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:45:50 -0500
Subject: [PATCH 06/55] Autofix Rubocop Lint/UnusedBlockArgument (#23712)
---
.rubocop_todo.yml | 8 --------
spec/lib/activitypub/activity/add_spec.rb | 4 ++--
spec/lib/request_pool_spec.rb | 2 +-
3 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 9076891e2..e33d1d745 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -278,14 +278,6 @@ Lint/OrAssignmentToConstant:
Exclude:
- 'lib/sanitize_ext/sanitize_config.rb'
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
-Lint/UnusedBlockArgument:
- Exclude:
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/request_pool_spec.rb'
-
# Offense count: 33
Lint/UselessAssignment:
Exclude:
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index 0b08e2924..e21c871e6 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -48,7 +48,7 @@ RSpec.describe ActivityPub::Activity::Add do
end
it 'fetches the status and pins it' do
- allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil|
+ allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
expect(id).to eq true
expect(on_behalf_of&.following?(sender)).to eq true
@@ -62,7 +62,7 @@ RSpec.describe ActivityPub::Activity::Add do
context 'when there is no local follower' do
it 'tries to fetch the status' do
- allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil|
+ allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
expect(id).to eq true
expect(on_behalf_of).to eq nil
diff --git a/spec/lib/request_pool_spec.rb b/spec/lib/request_pool_spec.rb
index 4a144d7c7..63dc9c5dd 100644
--- a/spec/lib/request_pool_spec.rb
+++ b/spec/lib/request_pool_spec.rb
@@ -33,7 +33,7 @@ describe RequestPool do
subject
- threads = 20.times.map do |i|
+ threads = 20.times.map do |_i|
Thread.new do
20.times do
subject.with('http://example.com') do |http_client|
From bd1d57c2303b7a5df1af749d8851c9364a044e77 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:46:00 -0500
Subject: [PATCH 07/55] Autofix Rubocop RSpec/EmptyLineAfterSubject (#23719)
---
.rubocop_todo.yml | 21 -------------------
.../collections_controller_spec.rb | 1 +
...lowers_synchronizations_controller_spec.rb | 1 +
.../activitypub/outboxes_controller_spec.rb | 1 +
.../activitypub/replies_controller_spec.rb | 1 +
.../admin/reports/actions_controller_spec.rb | 2 ++
.../api/web/embeds_controller_spec.rb | 1 +
spec/controllers/emojis_controller_spec.rb | 1 +
.../follower_accounts_controller_spec.rb | 1 +
.../following_accounts_controller_spec.rb | 1 +
.../relationships_controller_spec.rb | 1 +
spec/lib/activitypub/activity/delete_spec.rb | 2 ++
spec/lib/activitypub/activity/flag_spec.rb | 1 +
spec/models/admin/account_action_spec.rb | 1 +
spec/models/user_spec.rb | 2 ++
.../fetch_remote_status_service_spec.rb | 1 +
spec/workers/refollow_worker_spec.rb | 1 +
17 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e33d1d745..02f84e70f 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -817,27 +817,6 @@ RSpec/EmptyExampleGroup:
- 'spec/models/web/setting_spec.rb'
- 'spec/services/unmute_service_spec.rb'
-# Offense count: 19
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/EmptyLineAfterSubject:
- Exclude:
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/api/web/embeds_controller_spec.rb'
- - 'spec/controllers/emojis_controller_spec.rb'
- - 'spec/controllers/follower_accounts_controller_spec.rb'
- - 'spec/controllers/following_accounts_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/models/admin/account_action_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/services/fetch_remote_status_service_spec.rb'
- - 'spec/workers/refollow_worker_spec.rb'
-
# Offense count: 178
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index bf81cdb93..19c0e0a64 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -38,6 +38,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
let(:remote_account) { nil }
subject(:response) { get :show, params: { id: 'featured', account_username: account.username } }
+
subject(:body) { body_as_json }
it 'returns http success' do
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index c19bb8cae..893c8e14f 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -35,6 +35,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
subject(:response) { get :show, params: { account_username: account.username } }
+
subject(:body) { body_as_json }
it 'returns http success' do
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index d8d42b7ae..f84a902ea 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -36,6 +36,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
let(:remote_account) { nil }
subject(:response) { get :show, params: { account_username: account.username, page: page } }
+
subject(:body) { body_as_json }
context 'with page not requested' do
diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb
index 394d4baab..582ef863f 100644
--- a/spec/controllers/activitypub/replies_controller_spec.rb
+++ b/spec/controllers/activitypub/replies_controller_spec.rb
@@ -181,6 +181,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do
describe 'GET #index' do
subject(:response) { get :index, params: { account_username: status.account.username, status_id: status.id, only_other_accounts: only_other_accounts } }
+
let(:only_other_accounts) { nil }
context 'with no signature' do
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index 9890ac9ce..db3a1d311 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -123,11 +123,13 @@ describe Admin::Reports::ActionsController do
context 'action as submit button' do
subject { post :create, params: { report_id: report.id, text: text, action => '' } }
+
it_behaves_like 'all action types'
end
context 'action as submit button' do
subject { post :create, params: { report_id: report.id, text: text, moderation_action: action } }
+
it_behaves_like 'all action types'
end
end
diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb
index 345c317ba..b3ef73915 100644
--- a/spec/controllers/api/web/embeds_controller_spec.rb
+++ b/spec/controllers/api/web/embeds_controller_spec.rb
@@ -11,6 +11,7 @@ describe Api::Web::EmbedsController do
describe 'POST #create' do
subject(:response) { post :create, params: { url: url } }
+
subject(:body) { JSON.parse(response.body, symbolize_names: true) }
context 'when successfully finds status' do
diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb
index fbbd11f64..9f6604964 100644
--- a/spec/controllers/emojis_controller_spec.rb
+++ b/spec/controllers/emojis_controller_spec.rb
@@ -7,6 +7,7 @@ describe EmojisController do
describe 'GET #show' do
subject(:response) { get :show, params: { id: emoji.id, format: :json } }
+
subject(:body) { JSON.parse(response.body, symbolize_names: true) }
it 'returns the right response' do
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index ab2e82e85..43fc4203c 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -38,6 +38,7 @@ describe FollowerAccountsController do
context 'when format is json' do
subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } }
+
subject(:body) { JSON.parse(response.body) }
context 'with page' do
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index e43dbf882..b41bf0575 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -38,6 +38,7 @@ describe FollowingAccountsController do
context 'when format is json' do
subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } }
+
subject(:body) { JSON.parse(response.body) }
context 'with page' do
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index 2056a2ac2..cd09cf50b 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -51,6 +51,7 @@ describe RelationshipsController do
context 'when select parameter is not provided' do
subject { patch :update }
+
include_examples 'redirects back to followers page'
end
diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb
index 9dfb8a61b..40cd0fce9 100644
--- a/spec/lib/activitypub/activity/delete_spec.rb
+++ b/spec/lib/activitypub/activity/delete_spec.rb
@@ -30,6 +30,7 @@ RSpec.describe ActivityPub::Activity::Delete do
context 'when the status has been reblogged' do
describe '#perform' do
subject { described_class.new(json, sender) }
+
let!(:reblogger) { Fabricate(:account) }
let!(:follower) { Fabricate(:account, username: 'follower', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') }
let!(:reblog) { Fabricate(:status, account: reblogger, reblog: status) }
@@ -53,6 +54,7 @@ RSpec.describe ActivityPub::Activity::Delete do
context 'when the status has been reported' do
describe '#perform' do
subject { described_class.new(json, sender) }
+
let!(:reporter) { Fabricate(:account) }
before do
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index 7890fd1e8..c2a505356 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -110,6 +110,7 @@ RSpec.describe ActivityPub::Activity::Flag do
describe '#perform with a defined uri' do
subject { described_class.new(json, sender) }
+
let(:flag_id) { 'http://example.com/reports/1' }
before do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index b6a052b76..4516df2c2 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -5,6 +5,7 @@ RSpec.describe Admin::AccountAction, type: :model do
describe '#save!' do
subject { account_action.save! }
+
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:target_account) { Fabricate(:account) }
let(:type) { 'disable' }
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index c2f7e99ac..d23439f1a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -409,6 +409,7 @@ RSpec.describe User, type: :model do
describe '#disable!' do
subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) }
+
let(:current_sign_in_at) { Time.zone.now }
before do
@@ -497,6 +498,7 @@ RSpec.describe User, type: :model do
describe '#active_for_authentication?' do
subject { user.active_for_authentication? }
+
let(:user) { Fabricate(:user, disabled: disabled, confirmed_at: confirmed_at) }
context 'when user is disabled' do
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index 02c62f8d6..ace520b8f 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -16,6 +16,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do
context 'protocol is :activitypub' do
subject { described_class.new.call(note[:id], prefetched_body: prefetched_body) }
+
let(:prefetched_body) { Oj.dump(note) }
before do
diff --git a/spec/workers/refollow_worker_spec.rb b/spec/workers/refollow_worker_spec.rb
index d9c2293b6..1dac15385 100644
--- a/spec/workers/refollow_worker_spec.rb
+++ b/spec/workers/refollow_worker_spec.rb
@@ -4,6 +4,7 @@ require 'rails_helper'
describe RefollowWorker do
subject { described_class.new }
+
let(:account) { Fabricate(:account, domain: 'example.org', protocol: :activitypub) }
let(:alice) { Fabricate(:account, domain: nil, username: 'alice') }
let(:bob) { Fabricate(:account, domain: nil, username: 'bob') }
From aef0051fd0723ff03175a8851497056ed07d1a83 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:16:40 -0500
Subject: [PATCH 08/55] Enable Rubocop HTTP status rules (#23717)
---
.rubocop.yml | 6 +
.rubocop_todo.yml | 171 ------------------
app/controllers/api/v1/accounts_controller.rb | 2 +-
.../api/v1/emails/confirmations_controller.rb | 4 +-
app/controllers/auth/sessions_controller.rb | 4 +-
.../two_factor_authentication_concern.rb | 4 +-
.../webauthn_credentials_controller.rb | 2 +-
.../admin/accounts_controller_spec.rb | 22 +--
.../controllers/admin/base_controller_spec.rb | 2 +-
.../admin/instances_controller_spec.rb | 2 +-
.../admin/roles_controller_spec.rb | 16 +-
.../admin/users/roles_controller.rb | 4 +-
.../accounts/credentials_controller_spec.rb | 6 +-
.../v1/accounts/statuses_controller_spec.rb | 10 +-
.../reactions_controller_spec.rb | 4 +-
.../api/v1/announcements_controller_spec.rb | 4 +-
.../v1/apps/credentials_controller_spec.rb | 2 +-
.../api/v1/bookmarks_controller_spec.rb | 6 +-
.../emails/confirmations_controller_spec.rb | 6 +-
.../api/v1/favourites_controller_spec.rb | 6 +-
.../api/v1/media_controller_spec.rb | 6 +-
.../api/v1/timelines/home_controller_spec.rb | 2 +-
.../api/v1/timelines/list_controller_spec.rb | 4 +-
.../api/web/embeds_controller_spec.rb | 6 +-
.../auth/registrations_controller_spec.rb | 2 +-
.../auth/sessions_controller_spec.rb | 2 +-
.../export_controller_concern_spec.rb | 2 +-
.../disputes/strikes_controller_spec.rb | 2 +-
.../settings/applications_controller_spec.rb | 2 +-
.../settings/sessions_controller_spec.rb | 2 +-
spec/controllers/shares_controller_spec.rb | 2 +-
spec/requests/catch_all_route_request_spec.rb | 4 +-
32 files changed, 77 insertions(+), 242 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index fc1969a64..512c8458f 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -88,6 +88,9 @@ Metrics/ModuleLength:
Metrics/PerceivedComplexity:
Max: 16 # RuboCop default 8
+Rails/HttpStatus:
+ EnforcedStyle: numeric
+
Rails/Exit:
Exclude:
- 'lib/mastodon/*_cli.rb'
@@ -97,6 +100,9 @@ Rails/Exit:
RSpec/NotToNot:
EnforcedStyle: to_not
+RSpec/Rails/HttpStatus:
+ EnforcedStyle: numeric
+
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 02f84e70f..521608de6 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1427,148 +1427,6 @@ RSpec/PredicateMatcher:
- 'spec/models/user_spec.rb'
- 'spec/services/post_status_service_spec.rb'
-# Offense count: 3
-# This cop supports unsafe autocorrection (--autocorrect-all).
-RSpec/Rails/HaveHttpStatus:
- Exclude:
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/requests/catch_all_route_request_spec.rb'
-
-# Offense count: 432
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: numeric, symbolic
-RSpec/Rails/HttpStatus:
- Exclude:
- - 'spec/controllers/about_controller_spec.rb'
- - 'spec/controllers/accounts_controller_spec.rb'
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/action_logs_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
- - 'spec/controllers/admin/confirmations_controller_spec.rb'
- - 'spec/controllers/admin/custom_emojis_controller_spec.rb'
- - 'spec/controllers/admin/dashboard_controller_spec.rb'
- - 'spec/controllers/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/instances_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/admin/reports_controller_spec.rb'
- - 'spec/controllers/admin/settings/branding_controller_spec.rb'
- - 'spec/controllers/admin/statuses_controller_spec.rb'
- - 'spec/controllers/admin/tags_controller_spec.rb'
- - 'spec/controllers/api/base_controller_spec.rb'
- - 'spec/controllers/api/oembed_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/lists_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/relationships_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/search_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/conversations_controller_spec.rb'
- - 'spec/controllers/api/v1/custom_emojis_controller_spec.rb'
- - 'spec/controllers/api/v1/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/endorsements_controller_spec.rb'
- - 'spec/controllers/api/v1/filters_controller_spec.rb'
- - 'spec/controllers/api/v1/follow_requests_controller_spec.rb'
- - 'spec/controllers/api/v1/instances/activity_controller_spec.rb'
- - 'spec/controllers/api/v1/instances/peers_controller_spec.rb'
- - 'spec/controllers/api/v1/instances_controller_spec.rb'
- - 'spec/controllers/api/v1/lists/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/lists_controller_spec.rb'
- - 'spec/controllers/api/v1/markers_controller_spec.rb'
- - 'spec/controllers/api/v1/media_controller_spec.rb'
- - 'spec/controllers/api/v1/mutes_controller_spec.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/polls/votes_controller_spec.rb'
- - 'spec/controllers/api/v1/polls_controller_spec.rb'
- - 'spec/controllers/api/v1/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourites_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/histories_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/pins_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogs_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/sources_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses_controller_spec.rb'
- - 'spec/controllers/api/v1/streaming_controller_spec.rb'
- - 'spec/controllers/api/v1/suggestions_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/home_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/list_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/public_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/tag_controller_spec.rb'
- - 'spec/controllers/api/v1/trends/tags_controller_spec.rb'
- - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
- - 'spec/controllers/api/v2/filters_controller_spec.rb'
- - 'spec/controllers/api/v2/search_controller_spec.rb'
- - 'spec/controllers/api/web/settings_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/auth/confirmations_controller_spec.rb'
- - 'spec/controllers/auth/passwords_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/auth/sessions_controller_spec.rb'
- - 'spec/controllers/authorize_interactions_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/export_controller_concern_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
- - 'spec/controllers/emojis_controller_spec.rb'
- - 'spec/controllers/follower_accounts_controller_spec.rb'
- - 'spec/controllers/following_accounts_controller_spec.rb'
- - 'spec/controllers/instance_actors_controller_spec.rb'
- - 'spec/controllers/intents_controller_spec.rb'
- - 'spec/controllers/invites_controller_spec.rb'
- - 'spec/controllers/manifests_controller_spec.rb'
- - 'spec/controllers/media_controller_spec.rb'
- - 'spec/controllers/media_proxy_controller_spec.rb'
- - 'spec/controllers/oauth/authorizations_controller_spec.rb'
- - 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/deletes_controller_spec.rb'
- - 'spec/controllers/settings/exports_controller_spec.rb'
- - 'spec/controllers/settings/imports_controller_spec.rb'
- - 'spec/controllers/settings/migrations_controller_spec.rb'
- - 'spec/controllers/settings/preferences/notifications_controller_spec.rb'
- - 'spec/controllers/settings/preferences/other_controller_spec.rb'
- - 'spec/controllers/settings/profiles_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb'
- - 'spec/controllers/statuses_cleanup_controller_spec.rb'
- - 'spec/controllers/statuses_controller_spec.rb'
- - 'spec/controllers/tags_controller_spec.rb'
- - 'spec/controllers/well_known/host_meta_controller_spec.rb'
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
- - 'spec/controllers/well_known/webfinger_controller_spec.rb'
- - 'spec/requests/host_meta_request_spec.rb'
- - 'spec/requests/webfinger_request_spec.rb'
-
# Offense count: 180
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Inferences.
@@ -2159,35 +2017,6 @@ Rails/HttpPositionalArguments:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
-# Offense count: 49
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: numeric, symbolic
-Rails/HttpStatus:
- Exclude:
- - 'app/controllers/activitypub/inboxes_controller.rb'
- - 'app/controllers/api/base_controller.rb'
- - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/activity_controller.rb'
- - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/peers_controller.rb'
- - 'app/controllers/api/v1/lists_controller.rb'
- - 'app/controllers/api/v1/markers_controller.rb'
- - 'app/controllers/api/v1/media_controller.rb'
- - 'app/controllers/api/v1/statuses_controller.rb'
- - 'app/controllers/api/v1/streaming_controller.rb'
- - 'app/controllers/api/v2/media_controller.rb'
- - 'app/controllers/api/v2/search_controller.rb'
- - 'app/controllers/api/web/base_controller.rb'
- - 'app/controllers/settings/pictures_controller.rb'
- - 'app/controllers/well_known/webfinger_controller.rb'
- - 'spec/controllers/api/base_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/localized_spec.rb'
- - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
-
# Offense count: 7
# Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb
diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb
index be84720aa..7dff66efa 100644
--- a/app/controllers/api/v1/accounts_controller.rb
+++ b/app/controllers/api/v1/accounts_controller.rb
@@ -30,7 +30,7 @@ class Api::V1::AccountsController < Api::BaseController
self.response_body = Oj.dump(response.body)
self.status = response.status
rescue ActiveRecord::RecordInvalid => e
- render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: :unprocessable_entity
+ render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: 422
end
def follow
diff --git a/app/controllers/api/v1/emails/confirmations_controller.rb b/app/controllers/api/v1/emails/confirmations_controller.rb
index 3faaea2fb..32fb8e39f 100644
--- a/app/controllers/api/v1/emails/confirmations_controller.rb
+++ b/app/controllers/api/v1/emails/confirmations_controller.rb
@@ -15,10 +15,10 @@ class Api::V1::Emails::ConfirmationsController < Api::BaseController
private
def require_user_owned_by_application!
- render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: :forbidden unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id
+ render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: 403 unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id
end
def require_user_not_confirmed!
- render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: :forbidden unless !current_user.confirmed? || current_user.unconfirmed_email.present?
+ render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: 403 unless !current_user.confirmed? || current_user.unconfirmed_email.present?
end
end
diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb
index 3ce742638..4f59fd501 100644
--- a/app/controllers/auth/sessions_controller.rb
+++ b/app/controllers/auth/sessions_controller.rb
@@ -52,9 +52,9 @@ class Auth::SessionsController < Devise::SessionsController
session[:webauthn_challenge] = options_for_get.challenge
- render json: options_for_get, status: :ok
+ render json: options_for_get, status: 200
else
- render json: { error: t('webauthn_credentials.not_enabled') }, status: :unauthorized
+ render json: { error: t('webauthn_credentials.not_enabled') }, status: 401
end
end
diff --git a/app/controllers/concerns/two_factor_authentication_concern.rb b/app/controllers/concerns/two_factor_authentication_concern.rb
index e69b67a79..94f3ce00f 100644
--- a/app/controllers/concerns/two_factor_authentication_concern.rb
+++ b/app/controllers/concerns/two_factor_authentication_concern.rb
@@ -57,10 +57,10 @@ module TwoFactorAuthenticationConcern
if valid_webauthn_credential?(user, webauthn_credential)
on_authentication_success(user, :webauthn)
- render json: { redirect_path: after_sign_in_path_for(user) }, status: :ok
+ render json: { redirect_path: after_sign_in_path_for(user) }, status: 200
else
on_authentication_failure(user, :webauthn, :invalid_credential)
- render json: { error: t('webauthn_credentials.invalid_credential') }, status: :unprocessable_entity
+ render json: { error: t('webauthn_credentials.invalid_credential') }, status: 422
end
end
diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
index a50d30f06..e43818c94 100644
--- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
+++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
@@ -27,7 +27,7 @@ module Settings
session[:webauthn_challenge] = options_for_create.challenge
- render json: options_for_create, status: :ok
+ render json: options_for_create, status: 200
end
def create
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 35d79740a..f5d68a8ad 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to enable account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to be_disabled
end
end
@@ -167,7 +167,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
it 'logs action' do
- is_expected.to have_http_status :found
+ is_expected.to have_http_status 302
log_item = Admin::ActionLog.last
@@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to approve account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -207,7 +207,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
it 'logs action' do
- is_expected.to have_http_status :found
+ is_expected.to have_http_status 302
log_item = Admin::ActionLog.last
@@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to reject account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to redownload' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
@@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
@@ -303,7 +303,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to remove avatar' do
subject
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/base_controller_spec.rb b/spec/controllers/admin/base_controller_spec.rb
index 44be91951..5fbf8777c 100644
--- a/spec/controllers/admin/base_controller_spec.rb
+++ b/spec/controllers/admin/base_controller_spec.rb
@@ -15,7 +15,7 @@ describe Admin::BaseController, type: :controller do
sign_in(Fabricate(:user))
get :success
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'renders admin layout as a moderator' do
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index 337f7a80c..a7e348b1c 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { nil }
it 'fails to purge instance' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index 8ff891205..e2b1030d9 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -18,7 +18,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -38,7 +38,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -128,7 +128,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -145,7 +145,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
@@ -165,7 +165,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'does not update the role' do
@@ -203,7 +203,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'does not update the role' do
@@ -224,7 +224,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -241,7 +241,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb
index bd6a3fa67..9fa8aef41 100644
--- a/spec/controllers/admin/users/roles_controller.rb
+++ b/spec/controllers/admin/users/roles_controller.rb
@@ -26,7 +26,7 @@ describe Admin::Users::RolesController do
let(:previous_role) { UserRole.create(name: 'Baz', permissions: UserRole::FLAGS[:administrator], position: 100) }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
@@ -74,7 +74,7 @@ describe Admin::Users::RolesController do
end
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index a56b9d8fa..cf91aae38 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -78,7 +78,7 @@ describe Api::V1::Accounts::CredentialsController do
end
it 'returns http unprocessable entity' do
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
end
end
end
@@ -92,14 +92,14 @@ describe Api::V1::Accounts::CredentialsController do
describe 'GET #show' do
it 'returns http unauthorized' do
get :show
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
describe 'PATCH #update' do
it 'returns http unauthorized' do
patch :update, params: { note: 'Foo' }
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
index 01d745fc0..4630fac90 100644
--- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
@@ -16,7 +16,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, limit: 1 }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
it 'returns expected headers' do
@@ -29,7 +29,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, only_media: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
end
@@ -44,7 +44,7 @@ describe Api::V1::Accounts::StatusesController do
end
it 'returns http success' do
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
it 'returns posts along with self replies' do
@@ -63,7 +63,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, pinned: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
end
@@ -79,7 +79,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: account.id, pinned: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
context 'when user does not follow account' do
diff --git a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
index 72620e242..25c52aa1d 100644
--- a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
+++ b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
put :update, params: { announcement_id: announcement.id, id: '😂' }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -43,7 +43,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
delete :destroy, params: { announcement_id: announcement.id, id: '😂' }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
diff --git a/spec/controllers/api/v1/announcements_controller_spec.rb b/spec/controllers/api/v1/announcements_controller_spec.rb
index 6ee46b60e..eaab2abd8 100644
--- a/spec/controllers/api/v1/announcements_controller_spec.rb
+++ b/spec/controllers/api/v1/announcements_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do
context 'without token' do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
@@ -35,7 +35,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
post :dismiss, params: { id: announcement.id }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 470093c3c..701ba8acb 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Apps::CredentialsController do
describe 'GET #show' do
it 'returns http unauthorized' do
get :show
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index d7c5847b0..279d1a435 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
get :index
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -24,7 +24,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'returns http forbidden' do
get :index
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
@@ -38,7 +38,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
index 15ac31cbc..d272ff38d 100644
--- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
+++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
context 'from a random app' do
it 'returns http forbidden' do
post :create
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -30,7 +30,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
it 'returns http forbidden' do
post :create
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
context 'but user changed e-mail and has not confirmed it' do
@@ -57,7 +57,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
context 'without an oauth token' do
it 'returns http unauthorized' do
post :create
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index 231f76500..512dd0c0d 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
get :index
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -24,7 +24,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'returns http forbidden' do
get :index
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
@@ -38,7 +38,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index a1f6ddb24..ef1e439f9 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
end
it 'returns http 422' do
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
end
end
@@ -106,7 +106,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
it 'returns http not found' do
put :update, params: { id: media.id, description: 'Lorem ipsum!!!' }
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
@@ -126,7 +126,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
let(:status) { Fabricate(:status, account: user.account) }
it 'returns http not found' do
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
end
diff --git a/spec/controllers/api/v1/timelines/home_controller_spec.rb b/spec/controllers/api/v1/timelines/home_controller_spec.rb
index 131c2d92f..bb46d0aba 100644
--- a/spec/controllers/api/v1/timelines/home_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/home_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Timelines::HomeController do
it 'returns http unprocessable entity' do
get :show
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
expect(response.headers['Link']).to be_nil
end
end
diff --git a/spec/controllers/api/v1/timelines/list_controller_spec.rb b/spec/controllers/api/v1/timelines/list_controller_spec.rb
index 526c66a05..4ef5d41af 100644
--- a/spec/controllers/api/v1/timelines/list_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/list_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Timelines::ListController do
describe 'GET #show' do
it 'returns http not found' do
get :show, params: { id: list.id }
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
end
@@ -48,7 +48,7 @@ describe Api::V1::Timelines::ListController do
it 'returns http unprocessable entity' do
get :show, params: { id: list.id }
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
expect(response.headers['Link']).to be_nil
end
end
diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb
index b3ef73915..e03f5a371 100644
--- a/spec/controllers/api/web/embeds_controller_spec.rb
+++ b/spec/controllers/api/web/embeds_controller_spec.rb
@@ -19,7 +19,7 @@ describe Api::Web::EmbedsController do
let(:url) { "http://#{Rails.configuration.x.web_domain}/@#{status.account.username}/#{status.id}" }
it 'returns a right response' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body[:author_name]).to eq status.account.username
end
end
@@ -37,7 +37,7 @@ describe Api::Web::EmbedsController do
let(:call_result) { { result: :ok } }
it 'returns a right response' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body[:result]).to eq 'ok'
end
end
@@ -46,7 +46,7 @@ describe Api::Web::EmbedsController do
let(:call_result) { nil }
it 'returns a right response' do
- expect(response).to have_http_status :not_found
+ expect(response).to have_http_status 404
end
end
end
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 7298bde00..52023eb2e 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -245,7 +245,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
it 'returns http not found' do
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
it 'does not delete user' do
diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb
index eb03dff50..58befa124 100644
--- a/spec/controllers/auth/sessions_controller_spec.rb
+++ b/spec/controllers/auth/sessions_controller_spec.rb
@@ -422,7 +422,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
it 'returns http success' do
get :webauthn_options
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
end
end
end
diff --git a/spec/controllers/concerns/export_controller_concern_spec.rb b/spec/controllers/concerns/export_controller_concern_spec.rb
index 1a5e46f8e..003fd17f6 100644
--- a/spec/controllers/concerns/export_controller_concern_spec.rb
+++ b/spec/controllers/concerns/export_controller_concern_spec.rb
@@ -29,7 +29,7 @@ describe ApplicationController, type: :controller do
it 'returns unauthorized when not signed in' do
get :index, format: :csv
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb
index 157f9ec3c..e060d37ac 100644
--- a/spec/controllers/disputes/strikes_controller_spec.rb
+++ b/spec/controllers/disputes/strikes_controller_spec.rb
@@ -23,7 +23,7 @@ RSpec.describe Disputes::StrikesController, type: :controller do
let(:strike) { Fabricate(:account_warning) }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index 35ad4b2e7..33d874d10 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -32,7 +32,7 @@ describe Settings::ApplicationsController do
app.update!(owner: nil)
get :show, params: { id: app.id }
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
end
end
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index 0e312c5a6..59c18889e 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -24,7 +24,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id + 1000 }
it 'destroys session activation' do
- is_expected.to have_http_status :not_found
+ is_expected.to have_http_status 404
end
end
end
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
index e365b356e..0fde8c692 100644
--- a/spec/controllers/shares_controller_spec.rb
+++ b/spec/controllers/shares_controller_spec.rb
@@ -13,7 +13,7 @@ describe SharesController do
before { get :show, params: { title: 'test title', text: 'test text', url: 'url1 url2' } }
it 'returns http success' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body_classes).to eq 'modal-layout compose-standalone'
end
end
diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb
index fb18965d8..dcfc1bf4b 100644
--- a/spec/requests/catch_all_route_request_spec.rb
+++ b/spec/requests/catch_all_route_request_spec.rb
@@ -5,7 +5,7 @@ describe 'The catch all route' do
it 'returns a 404 page as html' do
get '/test'
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
expect(response.media_type).to eq 'text/html'
end
end
@@ -14,7 +14,7 @@ describe 'The catch all route' do
it 'returns a 404 page as html' do
get '/test.test'
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
expect(response.media_type).to eq 'text/html'
end
end
From 5179c47087e7807162f1466ec61a797586de007f Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:17:41 -0500
Subject: [PATCH 09/55] Autofix Rubocops RSpec/ScatteredLet (#23725)
---
.rubocop_todo.yml | 13 ------
.../admin/domain_blocks_controller_spec.rb | 9 ++--
.../v1/admin/domain_blocks_controller_spec.rb | 9 ++--
.../v1/push/subscriptions_controller_spec.rb | 14 +++---
spec/lib/activitypub/activity/create_spec.rb | 46 +++++++++----------
.../vacuum/media_attachments_vacuum_spec.rb | 5 +-
.../process_status_update_service_spec.rb | 28 ++++++-----
.../services/fan_out_on_write_service_spec.rb | 3 +-
spec/services/import_service_spec.rb | 12 ++---
9 files changed, 56 insertions(+), 83 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 521608de6..308e0e69e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1629,19 +1629,6 @@ RSpec/RepeatedExampleGroupDescription:
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
-# Offense count: 18
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/ScatteredLet:
- Exclude:
- - 'spec/controllers/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/import_service_spec.rb'
-
# Offense count: 12
RSpec/ScatteredSetup:
Exclude:
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 92fc19efa..d58a0cafc 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -72,16 +72,15 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
describe 'PUT #update' do
let!(:remote_account) { Fabricate(:account, domain: 'example.com') }
- let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
+ let(:subject) do
+ post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } }
+ end
+ let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
before do
BlockDomainService.new.call(domain_block)
end
- let(:subject) do
- post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } }
- end
-
context 'downgrading a domain suspension to silence' do
let(:original_severity) { 'suspend' }
let(:new_severity) { 'silence' }
diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
index 606def602..b367ab9ce 100644
--- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
@@ -73,16 +73,15 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
describe 'PUT #update' do
let!(:remote_account) { Fabricate(:account, domain: 'example.com') }
- let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
+ let(:subject) do
+ post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity }
+ end
+ let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
before do
BlockDomainService.new.call(domain_block)
end
- let(:subject) do
- post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity }
- end
-
context 'downgrading a domain suspension to silence' do
let(:original_severity) { 'suspend' }
let(:new_severity) { 'silence' }
diff --git a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
index 67f09da2d..168191468 100644
--- a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
+++ b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
@@ -5,13 +5,7 @@ require 'rails_helper'
describe Api::V1::Push::SubscriptionsController do
render_views
- let(:user) { Fabricate(:user) }
- let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') }
-
- before do
- allow(controller).to receive(:doorkeeper_token) { token }
- end
-
+ let(:user) { Fabricate(:user) }
let(:create_payload) do
{
subscription: {
@@ -23,7 +17,6 @@ describe Api::V1::Push::SubscriptionsController do
},
}.with_indifferent_access
end
-
let(:alerts_payload) do
{
data: {
@@ -41,6 +34,11 @@ describe Api::V1::Push::SubscriptionsController do
},
}.with_indifferent_access
end
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
describe 'POST #create' do
before do
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 132e0c31c..ddbdb07aa 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -753,10 +753,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'with an encrypted message' do
let(:recipient) { Fabricate(:account) }
- let(:target_device) { Fabricate(:device, account: recipient) }
-
- subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -778,6 +774,9 @@ RSpec.describe ActivityPub::Activity::Create do
},
}
end
+ let(:target_device) { Fabricate(:device, account: recipient) }
+
+ subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
before do
subject.perform
@@ -833,13 +832,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender replies to local status' do
let!(:local_status) { Fabricate(:status) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -849,6 +841,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
@@ -859,13 +857,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender targets a local user' do
let!(:local_account) { Fabricate(:account) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -875,6 +866,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
@@ -885,13 +882,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender cc\'s a local user' do
let!(:local_account) { Fabricate(:account) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -901,6 +891,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index be8458d9b..436237b25 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -2,12 +2,11 @@ require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
let(:retention_period) { 7.days }
-
- subject { described_class.new(retention_period) }
-
let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) }
let(:local_status) { Fabricate(:status) }
+ subject { described_class.new(retention_period) }
+
describe '#perform' do
let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index ae7db88bf..9a6d75ec0 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -6,20 +6,6 @@ end
RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) }
-
- let(:alice) { Fabricate(:account) }
- let(:bob) { Fabricate(:account) }
-
- let(:mentions) { [] }
- let(:tags) { [] }
- let(:media_attachments) { [] }
-
- before do
- mentions.each { |a| Fabricate(:mention, status: status, account: a) }
- tags.each { |t| status.tags << t }
- media_attachments.each { |m| status.media_attachments << m }
- end
-
let(:payload) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
@@ -34,9 +20,21 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
],
}
end
-
let(:json) { Oj.load(Oj.dump(payload)) }
+ let(:alice) { Fabricate(:account) }
+ let(:bob) { Fabricate(:account) }
+
+ let(:mentions) { [] }
+ let(:tags) { [] }
+ let(:media_attachments) { [] }
+
+ before do
+ mentions.each { |a| Fabricate(:mention, status: status, account: a) }
+ tags.each { |t| status.tags << t }
+ media_attachments.each { |m| status.media_attachments << m }
+ end
+
subject { described_class.new }
describe '#call' do
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index 59e15d230..3c294cf95 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -2,6 +2,7 @@ require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
let(:last_active_at) { Time.now.utc }
+ let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
let!(:alice) { Fabricate(:user, current_sign_in_at: last_active_at).account }
let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account }
@@ -9,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do
subject { described_class.new }
- let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
-
before do
bob.follow!(alice)
tom.follow!(alice)
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 2b1516ff0..4a517fb93 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -183,15 +183,14 @@ RSpec.describe ImportService, type: :service do
subject { ImportService.new }
let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') }
+ let(:csv) { attachment_fixture('utf8-followers.txt') }
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
# Make sure to not actually go to the remote server
before do
stub_request(:post, 'https://թութ.հայ/inbox').to_return(status: 200)
end
- let(:csv) { attachment_fixture('utf8-followers.txt') }
- let(:import) { Import.create(account: account, type: 'following', data: csv) }
-
it 'follows the listed account' do
expect(account.follow_requests.count).to eq 0
subject.call(import)
@@ -203,6 +202,9 @@ RSpec.describe ImportService, type: :service do
subject { ImportService.new }
let(:csv) { attachment_fixture('bookmark-imports.txt') }
+ let(:local_account) { Fabricate(:account, username: 'foo', domain: '') }
+ let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') }
+ let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) }
around(:each) do |example|
local_before = Rails.configuration.x.local_domain
@@ -214,10 +216,6 @@ RSpec.describe ImportService, type: :service do
Rails.configuration.x.local_domain = local_before
end
- let(:local_account) { Fabricate(:account, username: 'foo', domain: '') }
- let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') }
- let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) }
-
before do
service = double
allow(ActivityPub::FetchRemoteStatusService).to receive(:new).and_return(service)
From f0e1b12c101e0dd0ddaaef8bdcc166624dba62d5 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:18:08 -0500
Subject: [PATCH 10/55] Autofix Rubocop Style/ExplicitBlockArgument (#23704)
---
.rubocop_todo.yml | 6 ------
app/mailers/application_mailer.rb | 6 ++----
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 308e0e69e..c452d1bd2 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2323,12 +2323,6 @@ Style/ConcatArrayLiterals:
Style/Documentation:
Enabled: false
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-Style/ExplicitBlockArgument:
- Exclude:
- - 'app/mailers/application_mailer.rb'
-
# Offense count: 10
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
index a37682eca..73b623576 100644
--- a/app/mailers/application_mailer.rb
+++ b/app/mailers/application_mailer.rb
@@ -9,9 +9,7 @@ class ApplicationMailer < ActionMailer::Base
protected
- def locale_for_account(account)
- I18n.with_locale(account.user_locale || I18n.default_locale) do
- yield
- end
+ def locale_for_account(account, &block)
+ I18n.with_locale(account.user_locale || I18n.default_locale, &block)
end
end
From 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Mon, 20 Feb 2023 03:20:59 +0100
Subject: [PATCH 11/55] Rename JSX files with proper `.jsx` extension (#23733)
---
.eslintrc.js | 5 ++++-
.github/workflows/lint-js.yml | 2 ++
.github/workflows/test-js.yml | 2 ++
...st_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} | 0
.../{avatar-test.js.snap => avatar-test.jsx.snap} | 0
...tar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} | 0
.../{button-test.js.snap => button-test.jsx.snap} | 0
...{display_name-test.js.snap => display_name-test.jsx.snap} | 0
...{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} | 0
.../components/__tests__/{avatar-test.js => avatar-test.jsx} | 0
.../{avatar_overlay-test.js => avatar_overlay-test.jsx} | 0
.../components/__tests__/{button-test.js => button-test.jsx} | 0
.../{display_name-test.js => display_name-test.jsx} | 0
.../mastodon/components/{account.js => account.jsx} | 0
.../mastodon/components/admin/{Counter.js => Counter.jsx} | 0
.../components/admin/{Dimension.js => Dimension.jsx} | 0
.../{ReportReasonSelector.js => ReportReasonSelector.jsx} | 0
.../components/admin/{Retention.js => Retention.jsx} | 0
.../mastodon/components/admin/{Trends.js => Trends.jsx} | 0
.../components/{animated_number.js => animated_number.jsx} | 0
.../components/{attachment_list.js => attachment_list.jsx} | 0
.../{autosuggest_emoji.js => autosuggest_emoji.jsx} | 0
.../{autosuggest_hashtag.js => autosuggest_hashtag.jsx} | 0
.../{autosuggest_input.js => autosuggest_input.jsx} | 0
.../{autosuggest_textarea.js => autosuggest_textarea.jsx} | 0
app/javascript/mastodon/components/{avatar.js => avatar.jsx} | 0
.../components/{avatar_composite.js => avatar_composite.jsx} | 0
.../components/{avatar_overlay.js => avatar_overlay.jsx} | 0
.../mastodon/components/{blurhash.js => blurhash.jsx} | 0
app/javascript/mastodon/components/{button.js => button.jsx} | 0
app/javascript/mastodon/components/{check.js => check.jsx} | 0
app/javascript/mastodon/components/{column.js => column.jsx} | 0
.../{column_back_button.js => column_back_button.jsx} | 0
...olumn_back_button_slim.js => column_back_button_slim.jsx} | 0
.../components/{column_header.js => column_header.jsx} | 0
.../components/{common_counter.js => common_counter.jsx} | 0
.../{dismissable_banner.js => dismissable_banner.jsx} | 0
.../components/{display_name.js => display_name.jsx} | 0
app/javascript/mastodon/components/{domain.js => domain.jsx} | 0
.../components/{dropdown_menu.js => dropdown_menu.jsx} | 0
.../components/edited_timestamp/{index.js => index.jsx} | 0
.../components/{error_boundary.js => error_boundary.jsx} | 0
app/javascript/mastodon/components/{gifv.js => gifv.jsx} | 0
.../mastodon/components/{hashtag.js => hashtag.jsx} | 0
app/javascript/mastodon/components/{icon.js => icon.jsx} | 0
.../mastodon/components/{icon_button.js => icon_button.jsx} | 0
.../components/{icon_with_badge.js => icon_with_badge.jsx} | 0
app/javascript/mastodon/components/{image.js => image.jsx} | 0
.../components/{inline_account.js => inline_account.jsx} | 0
...observer_article.js => intersection_observer_article.jsx} | 0
.../mastodon/components/{load_gap.js => load_gap.jsx} | 0
.../mastodon/components/{load_more.js => load_more.jsx} | 0
.../components/{load_pending.js => load_pending.jsx} | 0
.../{loading_indicator.js => loading_indicator.jsx} | 0
app/javascript/mastodon/components/{logo.js => logo.jsx} | 0
.../{media_attachments.js => media_attachments.jsx} | 0
.../components/{media_gallery.js => media_gallery.jsx} | 0
.../{missing_indicator.js => missing_indicator.jsx} | 0
.../mastodon/components/{modal_root.js => modal_root.jsx} | 0
.../{navigation_portal.js => navigation_portal.jsx} | 0
...ot_signed_in_indicator.js => not_signed_in_indicator.jsx} | 0
...ure_placeholder.js => picture_in_picture_placeholder.jsx} | 0
app/javascript/mastodon/components/{poll.js => poll.jsx} | 0
.../components/{radio_button.js => radio_button.jsx} | 0
...{regeneration_indicator.js => regeneration_indicator.jsx} | 0
.../{relative_timestamp.js => relative_timestamp.jsx} | 0
.../components/{scrollable_list.js => scrollable_list.jsx} | 0
.../components/{server_banner.js => server_banner.jsx} | 0
.../components/{short_number.js => short_number.jsx} | 0
.../mastodon/components/{skeleton.js => skeleton.jsx} | 0
app/javascript/mastodon/components/{status.js => status.jsx} | 0
.../{status_action_bar.js => status_action_bar.jsx} | 0
.../components/{status_content.js => status_content.jsx} | 0
.../mastodon/components/{status_list.js => status_list.jsx} | 0
.../components/{timeline_hint.js => timeline_hint.jsx} | 0
.../{account_container.js => account_container.jsx} | 0
.../containers/{admin_component.js => admin_component.jsx} | 0
.../{compose_container.js => compose_container.jsx} | 0
.../containers/{domain_container.js => domain_container.jsx} | 0
.../mastodon/containers/{mastodon.js => mastodon.jsx} | 0
.../containers/{media_container.js => media_container.jsx} | 0
.../containers/{status_container.js => status_container.jsx} | 0
.../mastodon/features/about/{index.js => index.jsx} | 0
.../account/components/{account_note.js => account_note.jsx} | 0
.../components/{featured_tags.js => featured_tags.jsx} | 0
.../{follow_request_note.js => follow_request_note.jsx} | 0
.../features/account/components/{header.js => header.jsx} | 0
.../features/account/{navigation.js => navigation.jsx} | 0
.../components/{media_item.js => media_item.jsx} | 0
.../features/account_gallery/{index.js => index.jsx} | 0
.../account_timeline/components/{header.js => header.jsx} | 0
.../{limited_account_hint.js => limited_account_hint.jsx} | 0
.../components/{moved_note.js => moved_note.jsx} | 0
.../containers/{header_container.js => header_container.jsx} | 0
.../features/account_timeline/{index.js => index.jsx} | 0
.../mastodon/features/audio/{index.js => index.jsx} | 0
.../mastodon/features/blocks/{index.js => index.jsx} | 0
.../features/bookmarked_statuses/{index.js => index.jsx} | 0
.../closed_registrations_modal/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/community_timeline/{index.js => index.jsx} | 0
.../compose/components/{action_bar.js => action_bar.jsx} | 0
.../{autosuggest_account.js => autosuggest_account.jsx} | 0
.../{character_counter.js => character_counter.jsx} | 0
.../compose/components/{compose_form.js => compose_form.jsx} | 0
.../{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} | 0
.../{language_dropdown.js => language_dropdown.jsx} | 0
.../components/{navigation_bar.js => navigation_bar.jsx} | 0
.../compose/components/{poll_button.js => poll_button.jsx} | 0
.../compose/components/{poll_form.js => poll_form.jsx} | 0
.../components/{privacy_dropdown.js => privacy_dropdown.jsx} | 0
.../components/{reply_indicator.js => reply_indicator.jsx} | 0
.../features/compose/components/{search.js => search.jsx} | 0
.../components/{search_results.js => search_results.jsx} | 0
.../components/{text_icon_button.js => text_icon_button.jsx} | 0
.../features/compose/components/{upload.js => upload.jsx} | 0
.../components/{upload_button.js => upload_button.jsx} | 0
.../compose/components/{upload_form.js => upload_form.jsx} | 0
.../components/{upload_progress.js => upload_progress.jsx} | 0
.../features/compose/components/{warning.js => warning.jsx} | 0
...ve_button_container.js => sensitive_button_container.jsx} | 0
.../{warning_container.js => warning_container.jsx} | 0
.../mastodon/features/compose/{index.js => index.jsx} | 0
.../components/{conversation.js => conversation.jsx} | 0
.../{conversations_list.js => conversations_list.jsx} | 0
.../features/direct_timeline/{index.js => index.jsx} | 0
.../components/{account_card.js => account_card.jsx} | 0
.../mastodon/features/directory/{index.js => index.jsx} | 0
.../mastodon/features/domain_blocks/{index.js => index.jsx} | 0
.../features/explore/components/{story.js => story.jsx} | 0
.../mastodon/features/explore/{index.js => index.jsx} | 0
.../mastodon/features/explore/{links.js => links.jsx} | 0
.../mastodon/features/explore/{results.js => results.jsx} | 0
.../mastodon/features/explore/{statuses.js => statuses.jsx} | 0
.../features/explore/{suggestions.js => suggestions.jsx} | 0
.../mastodon/features/explore/{tags.js => tags.jsx} | 0
.../features/favourited_statuses/{index.js => index.jsx} | 0
.../mastodon/features/favourites/{index.js => index.jsx} | 0
.../filters/{added_to_filter.js => added_to_filter.jsx} | 0
.../features/filters/{select_filter.js => select_filter.jsx} | 0
.../components/{account.js => account.jsx} | 0
.../features/follow_recommendations/{index.js => index.jsx} | 0
.../{account_authorize.js => account_authorize.jsx} | 0
.../features/follow_requests/{index.js => index.jsx} | 0
.../mastodon/features/followed_tags/{index.js => index.jsx} | 0
.../mastodon/features/followers/{index.js => index.jsx} | 0
.../mastodon/features/following/{index.js => index.jsx} | 0
.../features/generic_not_found/{index.js => index.jsx} | 0
.../components/{announcements.js => announcements.jsx} | 0
.../getting_started/components/{trends.js => trends.jsx} | 0
.../features/getting_started/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/hashtag_timeline/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../mastodon/features/home_timeline/{index.js => index.jsx} | 0
.../features/interaction_modal/{index.js => index.jsx} | 0
.../features/keyboard_shortcuts/{index.js => index.jsx} | 0
.../list_adder/components/{account.js => account.jsx} | 0
.../features/list_adder/components/{list.js => list.jsx} | 0
.../mastodon/features/list_adder/{index.js => index.jsx} | 0
.../list_editor/components/{account.js => account.jsx} | 0
.../components/{edit_list_form.js => edit_list_form.jsx} | 0
.../list_editor/components/{search.js => search.jsx} | 0
.../mastodon/features/list_editor/{index.js => index.jsx} | 0
.../mastodon/features/list_timeline/{index.js => index.jsx} | 0
.../lists/components/{new_list_form.js => new_list_form.jsx} | 0
.../mastodon/features/lists/{index.js => index.jsx} | 0
.../mastodon/features/mutes/{index.js => index.jsx} | 0
.../{clear_column_button.js => clear_column_button.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../components/{filter_bar.js => filter_bar.jsx} | 0
.../components/{follow_request.js => follow_request.jsx} | 0
...rant_permission_button.js => grant_permission_button.jsx} | 0
.../components/{notification.js => notification.jsx} | 0
...mission_banner.js => notifications_permission_banner.jsx} | 0
.../notifications/components/{report.js => report.jsx} | 0
.../components/{setting_toggle.js => setting_toggle.jsx} | 0
.../mastodon/features/notifications/{index.js => index.jsx} | 0
.../picture_in_picture/components/{footer.js => footer.jsx} | 0
.../picture_in_picture/components/{header.js => header.jsx} | 0
.../features/picture_in_picture/{index.js => index.jsx} | 0
.../features/pinned_statuses/{index.js => index.jsx} | 0
.../mastodon/features/privacy_policy/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/public_timeline/{index.js => index.jsx} | 0
.../mastodon/features/reblogs/{index.js => index.jsx} | 0
.../mastodon/features/report/{category.js => category.jsx} | 0
.../mastodon/features/report/{comment.js => comment.jsx} | 0
.../features/report/components/{option.js => option.jsx} | 0
.../components/{status_check_box.js => status_check_box.jsx} | 0
.../mastodon/features/report/{rules.js => rules.jsx} | 0
.../mastodon/features/report/{statuses.js => statuses.jsx} | 0
.../mastodon/features/report/{thanks.js => thanks.jsx} | 0
.../features/standalone/compose/{index.js => index.jsx} | 0
.../status/components/{action_bar.js => action_bar.jsx} | 0
.../features/status/components/{card.js => card.jsx} | 0
.../components/{detailed_status.js => detailed_status.jsx} | 0
.../mastodon/features/status/{index.js => index.jsx} | 0
.../subscribed_languages_modal/{index.js => index.jsx} | 0
.../components/__tests__/{column-test.js => column-test.jsx} | 0
.../ui/components/{actions_modal.js => actions_modal.jsx} | 0
.../ui/components/{audio_modal.js => audio_modal.jsx} | 0
.../ui/components/{block_modal.js => block_modal.jsx} | 0
.../ui/components/{boost_modal.js => boost_modal.jsx} | 0
.../features/ui/components/{bundle.js => bundle.jsx} | 0
.../{bundle_column_error.js => bundle_column_error.jsx} | 0
.../{bundle_modal_error.js => bundle_modal_error.jsx} | 0
.../features/ui/components/{column.js => column.jsx} | 0
.../ui/components/{column_header.js => column_header.jsx} | 0
.../ui/components/{column_link.js => column_link.jsx} | 0
.../ui/components/{column_loading.js => column_loading.jsx} | 0
.../{column_subheading.js => column_subheading.jsx} | 0
.../ui/components/{columns_area.js => columns_area.jsx} | 0
.../{compare_history_modal.js => compare_history_modal.jsx} | 0
.../ui/components/{compose_panel.js => compose_panel.jsx} | 0
.../{confirmation_modal.js => confirmation_modal.jsx} | 0
...isabled_account_banner.js => disabled_account_banner.jsx} | 0
.../ui/components/{drawer_loading.js => drawer_loading.jsx} | 0
.../ui/components/{embed_modal.js => embed_modal.jsx} | 0
.../ui/components/{filter_modal.js => filter_modal.jsx} | 0
.../{focal_point_modal.js => focal_point_modal.jsx} | 0
...quests_column_link.js => follow_requests_column_link.jsx} | 0
.../features/ui/components/{header.js => header.jsx} | 0
.../ui/components/{image_loader.js => image_loader.jsx} | 0
.../ui/components/{image_modal.js => image_modal.jsx} | 0
.../ui/components/{link_footer.js => link_footer.jsx} | 0
.../features/ui/components/{list_panel.js => list_panel.jsx} | 0
.../ui/components/{media_modal.js => media_modal.jsx} | 0
.../ui/components/{modal_loading.js => modal_loading.jsx} | 0
.../features/ui/components/{modal_root.js => modal_root.jsx} | 0
.../features/ui/components/{mute_modal.js => mute_modal.jsx} | 0
.../components/{navigation_panel.js => navigation_panel.jsx} | 0
.../ui/components/{report_modal.js => report_modal.jsx} | 0
.../ui/components/{sign_in_banner.js => sign_in_banner.jsx} | 0
.../ui/components/{upload_area.js => upload_area.jsx} | 0
.../ui/components/{video_modal.js => video_modal.jsx} | 0
.../ui/components/{zoomable_image.js => zoomable_image.jsx} | 0
app/javascript/mastodon/features/ui/{index.js => index.jsx} | 0
.../{react_router_helpers.js => react_router_helpers.jsx} | 0
.../ui/util/{reduced_motion.js => reduced_motion.jsx} | 0
.../mastodon/features/video/{index.js => index.jsx} | 0
app/javascript/mastodon/{main.js => main.jsx} | 0
app/javascript/mastodon/utils/{icons.js => icons.jsx} | 0
app/javascript/packs/{admin.js => admin.jsx} | 0
app/javascript/packs/{public.js => public.jsx} | 0
app/javascript/packs/{share.js => share.jsx} | 0
config/webpacker.yml | 1 +
package.json | 2 +-
248 files changed, 10 insertions(+), 2 deletions(-)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{autosuggest_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar-test.js.snap => avatar-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{button-test.js.snap => button-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{display_name-test.js.snap => display_name-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{avatar-test.js => avatar-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{avatar_overlay-test.js => avatar_overlay-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{button-test.js => button-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{display_name-test.js => display_name-test.jsx} (100%)
rename app/javascript/mastodon/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Counter.js => Counter.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Dimension.js => Dimension.jsx} (100%)
rename app/javascript/mastodon/components/admin/{ReportReasonSelector.js => ReportReasonSelector.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Retention.js => Retention.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Trends.js => Trends.jsx} (100%)
rename app/javascript/mastodon/components/{animated_number.js => animated_number.jsx} (100%)
rename app/javascript/mastodon/components/{attachment_list.js => attachment_list.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_emoji.js => autosuggest_emoji.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_hashtag.js => autosuggest_hashtag.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_input.js => autosuggest_input.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_textarea.js => autosuggest_textarea.jsx} (100%)
rename app/javascript/mastodon/components/{avatar.js => avatar.jsx} (100%)
rename app/javascript/mastodon/components/{avatar_composite.js => avatar_composite.jsx} (100%)
rename app/javascript/mastodon/components/{avatar_overlay.js => avatar_overlay.jsx} (100%)
rename app/javascript/mastodon/components/{blurhash.js => blurhash.jsx} (100%)
rename app/javascript/mastodon/components/{button.js => button.jsx} (100%)
rename app/javascript/mastodon/components/{check.js => check.jsx} (100%)
rename app/javascript/mastodon/components/{column.js => column.jsx} (100%)
rename app/javascript/mastodon/components/{column_back_button.js => column_back_button.jsx} (100%)
rename app/javascript/mastodon/components/{column_back_button_slim.js => column_back_button_slim.jsx} (100%)
rename app/javascript/mastodon/components/{column_header.js => column_header.jsx} (100%)
rename app/javascript/mastodon/components/{common_counter.js => common_counter.jsx} (100%)
rename app/javascript/mastodon/components/{dismissable_banner.js => dismissable_banner.jsx} (100%)
rename app/javascript/mastodon/components/{display_name.js => display_name.jsx} (100%)
rename app/javascript/mastodon/components/{domain.js => domain.jsx} (100%)
rename app/javascript/mastodon/components/{dropdown_menu.js => dropdown_menu.jsx} (100%)
rename app/javascript/mastodon/components/edited_timestamp/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/components/{error_boundary.js => error_boundary.jsx} (100%)
rename app/javascript/mastodon/components/{gifv.js => gifv.jsx} (100%)
rename app/javascript/mastodon/components/{hashtag.js => hashtag.jsx} (100%)
rename app/javascript/mastodon/components/{icon.js => icon.jsx} (100%)
rename app/javascript/mastodon/components/{icon_button.js => icon_button.jsx} (100%)
rename app/javascript/mastodon/components/{icon_with_badge.js => icon_with_badge.jsx} (100%)
rename app/javascript/mastodon/components/{image.js => image.jsx} (100%)
rename app/javascript/mastodon/components/{inline_account.js => inline_account.jsx} (100%)
rename app/javascript/mastodon/components/{intersection_observer_article.js => intersection_observer_article.jsx} (100%)
rename app/javascript/mastodon/components/{load_gap.js => load_gap.jsx} (100%)
rename app/javascript/mastodon/components/{load_more.js => load_more.jsx} (100%)
rename app/javascript/mastodon/components/{load_pending.js => load_pending.jsx} (100%)
rename app/javascript/mastodon/components/{loading_indicator.js => loading_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{logo.js => logo.jsx} (100%)
rename app/javascript/mastodon/components/{media_attachments.js => media_attachments.jsx} (100%)
rename app/javascript/mastodon/components/{media_gallery.js => media_gallery.jsx} (100%)
rename app/javascript/mastodon/components/{missing_indicator.js => missing_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{modal_root.js => modal_root.jsx} (100%)
rename app/javascript/mastodon/components/{navigation_portal.js => navigation_portal.jsx} (100%)
rename app/javascript/mastodon/components/{not_signed_in_indicator.js => not_signed_in_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{picture_in_picture_placeholder.js => picture_in_picture_placeholder.jsx} (100%)
rename app/javascript/mastodon/components/{poll.js => poll.jsx} (100%)
rename app/javascript/mastodon/components/{radio_button.js => radio_button.jsx} (100%)
rename app/javascript/mastodon/components/{regeneration_indicator.js => regeneration_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{relative_timestamp.js => relative_timestamp.jsx} (100%)
rename app/javascript/mastodon/components/{scrollable_list.js => scrollable_list.jsx} (100%)
rename app/javascript/mastodon/components/{server_banner.js => server_banner.jsx} (100%)
rename app/javascript/mastodon/components/{short_number.js => short_number.jsx} (100%)
rename app/javascript/mastodon/components/{skeleton.js => skeleton.jsx} (100%)
rename app/javascript/mastodon/components/{status.js => status.jsx} (100%)
rename app/javascript/mastodon/components/{status_action_bar.js => status_action_bar.jsx} (100%)
rename app/javascript/mastodon/components/{status_content.js => status_content.jsx} (100%)
rename app/javascript/mastodon/components/{status_list.js => status_list.jsx} (100%)
rename app/javascript/mastodon/components/{timeline_hint.js => timeline_hint.jsx} (100%)
rename app/javascript/mastodon/containers/{account_container.js => account_container.jsx} (100%)
rename app/javascript/mastodon/containers/{admin_component.js => admin_component.jsx} (100%)
rename app/javascript/mastodon/containers/{compose_container.js => compose_container.jsx} (100%)
rename app/javascript/mastodon/containers/{domain_container.js => domain_container.jsx} (100%)
rename app/javascript/mastodon/containers/{mastodon.js => mastodon.jsx} (100%)
rename app/javascript/mastodon/containers/{media_container.js => media_container.jsx} (100%)
rename app/javascript/mastodon/containers/{status_container.js => status_container.jsx} (100%)
rename app/javascript/mastodon/features/about/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{account_note.js => account_note.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{featured_tags.js => featured_tags.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{follow_request_note.js => follow_request_note.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/account/{navigation.js => navigation.jsx} (100%)
rename app/javascript/mastodon/features/account_gallery/components/{media_item.js => media_item.jsx} (100%)
rename app/javascript/mastodon/features/account_gallery/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{limited_account_hint.js => limited_account_hint.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{moved_note.js => moved_note.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/containers/{header_container.js => header_container.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/audio/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/blocks/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/bookmarked_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/closed_registrations_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/community_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/community_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{action_bar.js => action_bar.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{autosuggest_account.js => autosuggest_account.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{character_counter.js => character_counter.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{compose_form.js => compose_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{language_dropdown.js => language_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{navigation_bar.js => navigation_bar.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{poll_button.js => poll_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{poll_form.js => poll_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{privacy_dropdown.js => privacy_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{reply_indicator.js => reply_indicator.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{search.js => search.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{search_results.js => search_results.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{text_icon_button.js => text_icon_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload.js => upload.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_button.js => upload_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_form.js => upload_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_progress.js => upload_progress.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{warning.js => warning.jsx} (100%)
rename app/javascript/mastodon/features/compose/containers/{sensitive_button_container.js => sensitive_button_container.jsx} (100%)
rename app/javascript/mastodon/features/compose/containers/{warning_container.js => warning_container.jsx} (100%)
rename app/javascript/mastodon/features/compose/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/components/{conversation.js => conversation.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/components/{conversations_list.js => conversations_list.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/directory/components/{account_card.js => account_card.jsx} (100%)
rename app/javascript/mastodon/features/directory/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/domain_blocks/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/explore/components/{story.js => story.jsx} (100%)
rename app/javascript/mastodon/features/explore/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/explore/{links.js => links.jsx} (100%)
rename app/javascript/mastodon/features/explore/{results.js => results.jsx} (100%)
rename app/javascript/mastodon/features/explore/{statuses.js => statuses.jsx} (100%)
rename app/javascript/mastodon/features/explore/{suggestions.js => suggestions.jsx} (100%)
rename app/javascript/mastodon/features/explore/{tags.js => tags.jsx} (100%)
rename app/javascript/mastodon/features/favourited_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/favourites/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/filters/{added_to_filter.js => added_to_filter.jsx} (100%)
rename app/javascript/mastodon/features/filters/{select_filter.js => select_filter.jsx} (100%)
rename app/javascript/mastodon/features/follow_recommendations/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/follow_recommendations/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/follow_requests/components/{account_authorize.js => account_authorize.jsx} (100%)
rename app/javascript/mastodon/features/follow_requests/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/followed_tags/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/followers/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/following/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/generic_not_found/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/components/{announcements.js => announcements.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/components/{trends.js => trends.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/hashtag_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/hashtag_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/home_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/home_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/interaction_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/keyboard_shortcuts/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/components/{list.js => list.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{edit_list_form.js => edit_list_form.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{search.js => search.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/lists/components/{new_list_form.js => new_list_form.jsx} (100%)
rename app/javascript/mastodon/features/lists/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/mutes/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{clear_column_button.js => clear_column_button.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{filter_bar.js => filter_bar.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{follow_request.js => follow_request.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{grant_permission_button.js => grant_permission_button.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{notification.js => notification.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{notifications_permission_banner.js => notifications_permission_banner.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{report.js => report.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{setting_toggle.js => setting_toggle.jsx} (100%)
rename app/javascript/mastodon/features/notifications/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/components/{footer.js => footer.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/pinned_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/privacy_policy/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/public_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/public_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/reblogs/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/report/{category.js => category.jsx} (100%)
rename app/javascript/mastodon/features/report/{comment.js => comment.jsx} (100%)
rename app/javascript/mastodon/features/report/components/{option.js => option.jsx} (100%)
rename app/javascript/mastodon/features/report/components/{status_check_box.js => status_check_box.jsx} (100%)
rename app/javascript/mastodon/features/report/{rules.js => rules.jsx} (100%)
rename app/javascript/mastodon/features/report/{statuses.js => statuses.jsx} (100%)
rename app/javascript/mastodon/features/report/{thanks.js => thanks.jsx} (100%)
rename app/javascript/mastodon/features/standalone/compose/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{action_bar.js => action_bar.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{card.js => card.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{detailed_status.js => detailed_status.jsx} (100%)
rename app/javascript/mastodon/features/status/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/subscribed_languages_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/__tests__/{column-test.js => column-test.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{actions_modal.js => actions_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{audio_modal.js => audio_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{block_modal.js => block_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{boost_modal.js => boost_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle.js => bundle.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle_column_error.js => bundle_column_error.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle_modal_error.js => bundle_modal_error.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column.js => column.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_header.js => column_header.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_link.js => column_link.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_loading.js => column_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_subheading.js => column_subheading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{columns_area.js => columns_area.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{compare_history_modal.js => compare_history_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{compose_panel.js => compose_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{confirmation_modal.js => confirmation_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{disabled_account_banner.js => disabled_account_banner.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{drawer_loading.js => drawer_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{embed_modal.js => embed_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{filter_modal.js => filter_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{focal_point_modal.js => focal_point_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{follow_requests_column_link.js => follow_requests_column_link.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{image_loader.js => image_loader.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{image_modal.js => image_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{link_footer.js => link_footer.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{list_panel.js => list_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{media_modal.js => media_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{modal_loading.js => modal_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{modal_root.js => modal_root.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{mute_modal.js => mute_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{navigation_panel.js => navigation_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{report_modal.js => report_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{sign_in_banner.js => sign_in_banner.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{upload_area.js => upload_area.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{video_modal.js => video_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{zoomable_image.js => zoomable_image.jsx} (100%)
rename app/javascript/mastodon/features/ui/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/ui/util/{react_router_helpers.js => react_router_helpers.jsx} (100%)
rename app/javascript/mastodon/features/ui/util/{reduced_motion.js => reduced_motion.jsx} (100%)
rename app/javascript/mastodon/features/video/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/{main.js => main.jsx} (100%)
rename app/javascript/mastodon/utils/{icons.js => icons.jsx} (100%)
rename app/javascript/packs/{admin.js => admin.jsx} (100%)
rename app/javascript/packs/{public.js => public.jsx} (100%)
rename app/javascript/packs/{share.js => share.jsx} (100%)
diff --git a/.eslintrc.js b/.eslintrc.js
index b5ab511f8..606a87e41 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -43,7 +43,7 @@ module.exports = {
version: 'detect',
},
'import/extensions': [
- '.js',
+ '.js', '.jsx',
],
'import/ignore': [
'node_modules',
@@ -52,6 +52,7 @@ module.exports = {
'import/resolver': {
node: {
paths: ['app/javascript'],
+ extensions: ['.js', '.jsx'],
},
},
},
@@ -111,6 +112,7 @@ module.exports = {
semi: 'error',
'valid-typeof': 'error',
+ 'react/jsx-filename-extension': ['error', { 'allow': 'as-needed' }],
'react/jsx-boolean-value': 'error',
'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
'react/jsx-curly-spacing': 'error',
@@ -185,6 +187,7 @@ module.exports = {
'always',
{
js: 'never',
+ jsx: 'never',
},
],
'import/newline-after-import': 'error',
diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml
index 3e0d9d1a9..44929f63d 100644
--- a/.github/workflows/lint-js.yml
+++ b/.github/workflows/lint-js.yml
@@ -10,6 +10,7 @@ on:
- '.prettier*'
- '.eslint*'
- '**/*.js'
+ - '**/*.jsx'
- '.github/workflows/lint-js.yml'
pull_request:
@@ -20,6 +21,7 @@ on:
- '.prettier*'
- '.eslint*'
- '**/*.js'
+ - '**/*.jsx'
- '.github/workflows/lint-js.yml'
jobs:
diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml
index 60b8e318e..6a1cacb3f 100644
--- a/.github/workflows/test-js.yml
+++ b/.github/workflows/test-js.yml
@@ -8,6 +8,7 @@ on:
- 'yarn.lock'
- '.nvmrc'
- '**/*.js'
+ - '**/*.jsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
@@ -17,6 +18,7 @@ on:
- 'yarn.lock'
- '.nvmrc'
- '**/*.js'
+ - '**/*.jsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js b/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js
rename to app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.js b/app/javascript/mastodon/components/__tests__/avatar-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar-test.js
rename to app/javascript/mastodon/components/__tests__/avatar-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar_overlay-test.js b/app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar_overlay-test.js
rename to app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/button-test.js b/app/javascript/mastodon/components/__tests__/button-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/button-test.js
rename to app/javascript/mastodon/components/__tests__/button-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/display_name-test.js
rename to app/javascript/mastodon/components/__tests__/display_name-test.jsx
diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/components/account.js
rename to app/javascript/mastodon/components/account.jsx
diff --git a/app/javascript/mastodon/components/admin/Counter.js b/app/javascript/mastodon/components/admin/Counter.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Counter.js
rename to app/javascript/mastodon/components/admin/Counter.jsx
diff --git a/app/javascript/mastodon/components/admin/Dimension.js b/app/javascript/mastodon/components/admin/Dimension.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Dimension.js
rename to app/javascript/mastodon/components/admin/Dimension.jsx
diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.js b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/ReportReasonSelector.js
rename to app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
diff --git a/app/javascript/mastodon/components/admin/Retention.js b/app/javascript/mastodon/components/admin/Retention.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Retention.js
rename to app/javascript/mastodon/components/admin/Retention.jsx
diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Trends.js
rename to app/javascript/mastodon/components/admin/Trends.jsx
diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.jsx
similarity index 100%
rename from app/javascript/mastodon/components/animated_number.js
rename to app/javascript/mastodon/components/animated_number.jsx
diff --git a/app/javascript/mastodon/components/attachment_list.js b/app/javascript/mastodon/components/attachment_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/attachment_list.js
rename to app/javascript/mastodon/components/attachment_list.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_emoji.js b/app/javascript/mastodon/components/autosuggest_emoji.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_emoji.js
rename to app/javascript/mastodon/components/autosuggest_emoji.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_hashtag.js b/app/javascript/mastodon/components/autosuggest_hashtag.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_hashtag.js
rename to app/javascript/mastodon/components/autosuggest_hashtag.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_input.js
rename to app/javascript/mastodon/components/autosuggest_input.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_textarea.js
rename to app/javascript/mastodon/components/autosuggest_textarea.jsx
diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar.js
rename to app/javascript/mastodon/components/avatar.jsx
diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar_composite.js
rename to app/javascript/mastodon/components/avatar_composite.jsx
diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar_overlay.js
rename to app/javascript/mastodon/components/avatar_overlay.jsx
diff --git a/app/javascript/mastodon/components/blurhash.js b/app/javascript/mastodon/components/blurhash.jsx
similarity index 100%
rename from app/javascript/mastodon/components/blurhash.js
rename to app/javascript/mastodon/components/blurhash.jsx
diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/button.js
rename to app/javascript/mastodon/components/button.jsx
diff --git a/app/javascript/mastodon/components/check.js b/app/javascript/mastodon/components/check.jsx
similarity index 100%
rename from app/javascript/mastodon/components/check.js
rename to app/javascript/mastodon/components/check.jsx
diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column.js
rename to app/javascript/mastodon/components/column.jsx
diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_back_button.js
rename to app/javascript/mastodon/components/column_back_button.jsx
diff --git a/app/javascript/mastodon/components/column_back_button_slim.js b/app/javascript/mastodon/components/column_back_button_slim.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_back_button_slim.js
rename to app/javascript/mastodon/components/column_back_button_slim.jsx
diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_header.js
rename to app/javascript/mastodon/components/column_header.jsx
diff --git a/app/javascript/mastodon/components/common_counter.js b/app/javascript/mastodon/components/common_counter.jsx
similarity index 100%
rename from app/javascript/mastodon/components/common_counter.js
rename to app/javascript/mastodon/components/common_counter.jsx
diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/components/dismissable_banner.js
rename to app/javascript/mastodon/components/dismissable_banner.jsx
diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.jsx
similarity index 100%
rename from app/javascript/mastodon/components/display_name.js
rename to app/javascript/mastodon/components/display_name.jsx
diff --git a/app/javascript/mastodon/components/domain.js b/app/javascript/mastodon/components/domain.jsx
similarity index 100%
rename from app/javascript/mastodon/components/domain.js
rename to app/javascript/mastodon/components/domain.jsx
diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.jsx
similarity index 100%
rename from app/javascript/mastodon/components/dropdown_menu.js
rename to app/javascript/mastodon/components/dropdown_menu.jsx
diff --git a/app/javascript/mastodon/components/edited_timestamp/index.js b/app/javascript/mastodon/components/edited_timestamp/index.jsx
similarity index 100%
rename from app/javascript/mastodon/components/edited_timestamp/index.js
rename to app/javascript/mastodon/components/edited_timestamp/index.jsx
diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.jsx
similarity index 100%
rename from app/javascript/mastodon/components/error_boundary.js
rename to app/javascript/mastodon/components/error_boundary.jsx
diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.jsx
similarity index 100%
rename from app/javascript/mastodon/components/gifv.js
rename to app/javascript/mastodon/components/gifv.jsx
diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.jsx
similarity index 100%
rename from app/javascript/mastodon/components/hashtag.js
rename to app/javascript/mastodon/components/hashtag.jsx
diff --git a/app/javascript/mastodon/components/icon.js b/app/javascript/mastodon/components/icon.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon.js
rename to app/javascript/mastodon/components/icon.jsx
diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon_button.js
rename to app/javascript/mastodon/components/icon_button.jsx
diff --git a/app/javascript/mastodon/components/icon_with_badge.js b/app/javascript/mastodon/components/icon_with_badge.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon_with_badge.js
rename to app/javascript/mastodon/components/icon_with_badge.jsx
diff --git a/app/javascript/mastodon/components/image.js b/app/javascript/mastodon/components/image.jsx
similarity index 100%
rename from app/javascript/mastodon/components/image.js
rename to app/javascript/mastodon/components/image.jsx
diff --git a/app/javascript/mastodon/components/inline_account.js b/app/javascript/mastodon/components/inline_account.jsx
similarity index 100%
rename from app/javascript/mastodon/components/inline_account.js
rename to app/javascript/mastodon/components/inline_account.jsx
diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.jsx
similarity index 100%
rename from app/javascript/mastodon/components/intersection_observer_article.js
rename to app/javascript/mastodon/components/intersection_observer_article.jsx
diff --git a/app/javascript/mastodon/components/load_gap.js b/app/javascript/mastodon/components/load_gap.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_gap.js
rename to app/javascript/mastodon/components/load_gap.jsx
diff --git a/app/javascript/mastodon/components/load_more.js b/app/javascript/mastodon/components/load_more.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_more.js
rename to app/javascript/mastodon/components/load_more.jsx
diff --git a/app/javascript/mastodon/components/load_pending.js b/app/javascript/mastodon/components/load_pending.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_pending.js
rename to app/javascript/mastodon/components/load_pending.jsx
diff --git a/app/javascript/mastodon/components/loading_indicator.js b/app/javascript/mastodon/components/loading_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/loading_indicator.js
rename to app/javascript/mastodon/components/loading_indicator.jsx
diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.jsx
similarity index 100%
rename from app/javascript/mastodon/components/logo.js
rename to app/javascript/mastodon/components/logo.jsx
diff --git a/app/javascript/mastodon/components/media_attachments.js b/app/javascript/mastodon/components/media_attachments.jsx
similarity index 100%
rename from app/javascript/mastodon/components/media_attachments.js
rename to app/javascript/mastodon/components/media_attachments.jsx
diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.jsx
similarity index 100%
rename from app/javascript/mastodon/components/media_gallery.js
rename to app/javascript/mastodon/components/media_gallery.jsx
diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/missing_indicator.js
rename to app/javascript/mastodon/components/missing_indicator.jsx
diff --git a/app/javascript/mastodon/components/modal_root.js b/app/javascript/mastodon/components/modal_root.jsx
similarity index 100%
rename from app/javascript/mastodon/components/modal_root.js
rename to app/javascript/mastodon/components/modal_root.jsx
diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.jsx
similarity index 100%
rename from app/javascript/mastodon/components/navigation_portal.js
rename to app/javascript/mastodon/components/navigation_portal.jsx
diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/not_signed_in_indicator.js
rename to app/javascript/mastodon/components/not_signed_in_indicator.jsx
diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.js b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx
similarity index 100%
rename from app/javascript/mastodon/components/picture_in_picture_placeholder.js
rename to app/javascript/mastodon/components/picture_in_picture_placeholder.jsx
diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.jsx
similarity index 100%
rename from app/javascript/mastodon/components/poll.js
rename to app/javascript/mastodon/components/poll.jsx
diff --git a/app/javascript/mastodon/components/radio_button.js b/app/javascript/mastodon/components/radio_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/radio_button.js
rename to app/javascript/mastodon/components/radio_button.jsx
diff --git a/app/javascript/mastodon/components/regeneration_indicator.js b/app/javascript/mastodon/components/regeneration_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/regeneration_indicator.js
rename to app/javascript/mastodon/components/regeneration_indicator.jsx
diff --git a/app/javascript/mastodon/components/relative_timestamp.js b/app/javascript/mastodon/components/relative_timestamp.jsx
similarity index 100%
rename from app/javascript/mastodon/components/relative_timestamp.js
rename to app/javascript/mastodon/components/relative_timestamp.jsx
diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/scrollable_list.js
rename to app/javascript/mastodon/components/scrollable_list.jsx
diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/components/server_banner.js
rename to app/javascript/mastodon/components/server_banner.jsx
diff --git a/app/javascript/mastodon/components/short_number.js b/app/javascript/mastodon/components/short_number.jsx
similarity index 100%
rename from app/javascript/mastodon/components/short_number.js
rename to app/javascript/mastodon/components/short_number.jsx
diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.jsx
similarity index 100%
rename from app/javascript/mastodon/components/skeleton.js
rename to app/javascript/mastodon/components/skeleton.jsx
diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status.js
rename to app/javascript/mastodon/components/status.jsx
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_action_bar.js
rename to app/javascript/mastodon/components/status_action_bar.jsx
diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_content.js
rename to app/javascript/mastodon/components/status_content.jsx
diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_list.js
rename to app/javascript/mastodon/components/status_list.jsx
diff --git a/app/javascript/mastodon/components/timeline_hint.js b/app/javascript/mastodon/components/timeline_hint.jsx
similarity index 100%
rename from app/javascript/mastodon/components/timeline_hint.js
rename to app/javascript/mastodon/components/timeline_hint.jsx
diff --git a/app/javascript/mastodon/containers/account_container.js b/app/javascript/mastodon/containers/account_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/account_container.js
rename to app/javascript/mastodon/containers/account_container.jsx
diff --git a/app/javascript/mastodon/containers/admin_component.js b/app/javascript/mastodon/containers/admin_component.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/admin_component.js
rename to app/javascript/mastodon/containers/admin_component.jsx
diff --git a/app/javascript/mastodon/containers/compose_container.js b/app/javascript/mastodon/containers/compose_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/compose_container.js
rename to app/javascript/mastodon/containers/compose_container.jsx
diff --git a/app/javascript/mastodon/containers/domain_container.js b/app/javascript/mastodon/containers/domain_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/domain_container.js
rename to app/javascript/mastodon/containers/domain_container.jsx
diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/mastodon.js
rename to app/javascript/mastodon/containers/mastodon.jsx
diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/media_container.js
rename to app/javascript/mastodon/containers/media_container.jsx
diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/status_container.js
rename to app/javascript/mastodon/containers/status_container.jsx
diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/about/index.js
rename to app/javascript/mastodon/features/about/index.jsx
diff --git a/app/javascript/mastodon/features/account/components/account_note.js b/app/javascript/mastodon/features/account/components/account_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/account_note.js
rename to app/javascript/mastodon/features/account/components/account_note.jsx
diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/featured_tags.js
rename to app/javascript/mastodon/features/account/components/featured_tags.jsx
diff --git a/app/javascript/mastodon/features/account/components/follow_request_note.js b/app/javascript/mastodon/features/account/components/follow_request_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/follow_request_note.js
rename to app/javascript/mastodon/features/account/components/follow_request_note.jsx
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/header.js
rename to app/javascript/mastodon/features/account/components/header.jsx
diff --git a/app/javascript/mastodon/features/account/navigation.js b/app/javascript/mastodon/features/account/navigation.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/navigation.js
rename to app/javascript/mastodon/features/account/navigation.jsx
diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_gallery/components/media_item.js
rename to app/javascript/mastodon/features/account_gallery/components/media_item.jsx
diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_gallery/index.js
rename to app/javascript/mastodon/features/account_gallery/index.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/header.js
rename to app/javascript/mastodon/features/account_timeline/components/header.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js
rename to app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.js b/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/moved_note.js
rename to app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/containers/header_container.js
rename to app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/index.js
rename to app/javascript/mastodon/features/account_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/audio/index.js
rename to app/javascript/mastodon/features/audio/index.jsx
diff --git a/app/javascript/mastodon/features/blocks/index.js b/app/javascript/mastodon/features/blocks/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/blocks/index.js
rename to app/javascript/mastodon/features/blocks/index.jsx
diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/bookmarked_statuses/index.js
rename to app/javascript/mastodon/features/bookmarked_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/closed_registrations_modal/index.js
rename to app/javascript/mastodon/features/closed_registrations_modal/index.jsx
diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.js b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/community_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/community_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/community_timeline/index.js
rename to app/javascript/mastodon/features/community_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/action_bar.js
rename to app/javascript/mastodon/features/compose/components/action_bar.jsx
diff --git a/app/javascript/mastodon/features/compose/components/autosuggest_account.js b/app/javascript/mastodon/features/compose/components/autosuggest_account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/autosuggest_account.js
rename to app/javascript/mastodon/features/compose/components/autosuggest_account.jsx
diff --git a/app/javascript/mastodon/features/compose/components/character_counter.js b/app/javascript/mastodon/features/compose/components/character_counter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/character_counter.js
rename to app/javascript/mastodon/features/compose/components/character_counter.jsx
diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/compose_form.js
rename to app/javascript/mastodon/features/compose/components/compose_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
rename to app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/language_dropdown.js
rename to app/javascript/mastodon/features/compose/components/language_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/navigation_bar.js
rename to app/javascript/mastodon/features/compose/components/navigation_bar.jsx
diff --git a/app/javascript/mastodon/features/compose/components/poll_button.js b/app/javascript/mastodon/features/compose/components/poll_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/poll_button.js
rename to app/javascript/mastodon/features/compose/components/poll_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/poll_form.js
rename to app/javascript/mastodon/features/compose/components/poll_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/privacy_dropdown.js
rename to app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.js b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/reply_indicator.js
rename to app/javascript/mastodon/features/compose/components/reply_indicator.jsx
diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/search.js
rename to app/javascript/mastodon/features/compose/components/search.jsx
diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/search_results.js
rename to app/javascript/mastodon/features/compose/components/search_results.jsx
diff --git a/app/javascript/mastodon/features/compose/components/text_icon_button.js b/app/javascript/mastodon/features/compose/components/text_icon_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/text_icon_button.js
rename to app/javascript/mastodon/features/compose/components/text_icon_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload.js
rename to app/javascript/mastodon/features/compose/components/upload.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_button.js
rename to app/javascript/mastodon/features/compose/components/upload_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_form.js
rename to app/javascript/mastodon/features/compose/components/upload_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_progress.js b/app/javascript/mastodon/features/compose/components/upload_progress.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_progress.js
rename to app/javascript/mastodon/features/compose/components/upload_progress.jsx
diff --git a/app/javascript/mastodon/features/compose/components/warning.js b/app/javascript/mastodon/features/compose/components/warning.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/warning.js
rename to app/javascript/mastodon/features/compose/components/warning.jsx
diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.js b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/containers/sensitive_button_container.js
rename to app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/containers/warning_container.js
rename to app/javascript/mastodon/features/compose/containers/warning_container.jsx
diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/index.js
rename to app/javascript/mastodon/features/compose/index.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.js b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/components/conversation.js
rename to app/javascript/mastodon/features/direct_timeline/components/conversation.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/components/conversations_list.js
rename to app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/index.js
rename to app/javascript/mastodon/features/direct_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.jsx
similarity index 100%
rename from app/javascript/mastodon/features/directory/components/account_card.js
rename to app/javascript/mastodon/features/directory/components/account_card.jsx
diff --git a/app/javascript/mastodon/features/directory/index.js b/app/javascript/mastodon/features/directory/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/directory/index.js
rename to app/javascript/mastodon/features/directory/index.jsx
diff --git a/app/javascript/mastodon/features/domain_blocks/index.js b/app/javascript/mastodon/features/domain_blocks/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/domain_blocks/index.js
rename to app/javascript/mastodon/features/domain_blocks/index.jsx
diff --git a/app/javascript/mastodon/features/explore/components/story.js b/app/javascript/mastodon/features/explore/components/story.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/components/story.js
rename to app/javascript/mastodon/features/explore/components/story.jsx
diff --git a/app/javascript/mastodon/features/explore/index.js b/app/javascript/mastodon/features/explore/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/index.js
rename to app/javascript/mastodon/features/explore/index.jsx
diff --git a/app/javascript/mastodon/features/explore/links.js b/app/javascript/mastodon/features/explore/links.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/links.js
rename to app/javascript/mastodon/features/explore/links.jsx
diff --git a/app/javascript/mastodon/features/explore/results.js b/app/javascript/mastodon/features/explore/results.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/results.js
rename to app/javascript/mastodon/features/explore/results.jsx
diff --git a/app/javascript/mastodon/features/explore/statuses.js b/app/javascript/mastodon/features/explore/statuses.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/statuses.js
rename to app/javascript/mastodon/features/explore/statuses.jsx
diff --git a/app/javascript/mastodon/features/explore/suggestions.js b/app/javascript/mastodon/features/explore/suggestions.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/suggestions.js
rename to app/javascript/mastodon/features/explore/suggestions.jsx
diff --git a/app/javascript/mastodon/features/explore/tags.js b/app/javascript/mastodon/features/explore/tags.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/tags.js
rename to app/javascript/mastodon/features/explore/tags.jsx
diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/favourited_statuses/index.js
rename to app/javascript/mastodon/features/favourited_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/favourites/index.js
rename to app/javascript/mastodon/features/favourites/index.jsx
diff --git a/app/javascript/mastodon/features/filters/added_to_filter.js b/app/javascript/mastodon/features/filters/added_to_filter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/filters/added_to_filter.js
rename to app/javascript/mastodon/features/filters/added_to_filter.jsx
diff --git a/app/javascript/mastodon/features/filters/select_filter.js b/app/javascript/mastodon/features/filters/select_filter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/filters/select_filter.js
rename to app/javascript/mastodon/features/filters/select_filter.jsx
diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_recommendations/components/account.js
rename to app/javascript/mastodon/features/follow_recommendations/components/account.jsx
diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_recommendations/index.js
rename to app/javascript/mastodon/features/follow_recommendations/index.jsx
diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_requests/components/account_authorize.js
rename to app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx
diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_requests/index.js
rename to app/javascript/mastodon/features/follow_requests/index.jsx
diff --git a/app/javascript/mastodon/features/followed_tags/index.js b/app/javascript/mastodon/features/followed_tags/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/followed_tags/index.js
rename to app/javascript/mastodon/features/followed_tags/index.jsx
diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/followers/index.js
rename to app/javascript/mastodon/features/followers/index.jsx
diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/following/index.js
rename to app/javascript/mastodon/features/following/index.jsx
diff --git a/app/javascript/mastodon/features/generic_not_found/index.js b/app/javascript/mastodon/features/generic_not_found/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/generic_not_found/index.js
rename to app/javascript/mastodon/features/generic_not_found/index.jsx
diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/components/announcements.js
rename to app/javascript/mastodon/features/getting_started/components/announcements.jsx
diff --git a/app/javascript/mastodon/features/getting_started/components/trends.js b/app/javascript/mastodon/features/getting_started/components/trends.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/components/trends.js
rename to app/javascript/mastodon/features/getting_started/components/trends.jsx
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/index.js
rename to app/javascript/mastodon/features/getting_started/index.jsx
diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/hashtag_timeline/index.js
rename to app/javascript/mastodon/features/hashtag_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.js b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/home_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/home_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/home_timeline/index.js
rename to app/javascript/mastodon/features/home_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/interaction_modal/index.js
rename to app/javascript/mastodon/features/interaction_modal/index.jsx
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/keyboard_shortcuts/index.js
rename to app/javascript/mastodon/features/keyboard_shortcuts/index.jsx
diff --git a/app/javascript/mastodon/features/list_adder/components/account.js b/app/javascript/mastodon/features/list_adder/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/components/account.js
rename to app/javascript/mastodon/features/list_adder/components/account.jsx
diff --git a/app/javascript/mastodon/features/list_adder/components/list.js b/app/javascript/mastodon/features/list_adder/components/list.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/components/list.js
rename to app/javascript/mastodon/features/list_adder/components/list.jsx
diff --git a/app/javascript/mastodon/features/list_adder/index.js b/app/javascript/mastodon/features/list_adder/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/index.js
rename to app/javascript/mastodon/features/list_adder/index.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/account.js b/app/javascript/mastodon/features/list_editor/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/account.js
rename to app/javascript/mastodon/features/list_editor/components/account.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/edit_list_form.js
rename to app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/search.js b/app/javascript/mastodon/features/list_editor/components/search.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/search.js
rename to app/javascript/mastodon/features/list_editor/components/search.jsx
diff --git a/app/javascript/mastodon/features/list_editor/index.js b/app/javascript/mastodon/features/list_editor/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/index.js
rename to app/javascript/mastodon/features/list_editor/index.jsx
diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_timeline/index.js
rename to app/javascript/mastodon/features/list_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/lists/components/new_list_form.js
rename to app/javascript/mastodon/features/lists/components/new_list_form.jsx
diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/lists/index.js
rename to app/javascript/mastodon/features/lists/index.jsx
diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/mutes/index.js
rename to app/javascript/mastodon/features/mutes/index.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/clear_column_button.js b/app/javascript/mastodon/features/notifications/components/clear_column_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/clear_column_button.js
rename to app/javascript/mastodon/features/notifications/components/clear_column_button.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/column_settings.js
rename to app/javascript/mastodon/features/notifications/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.js b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/filter_bar.js
rename to app/javascript/mastodon/features/notifications/components/filter_bar.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.js b/app/javascript/mastodon/features/notifications/components/follow_request.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/follow_request.js
rename to app/javascript/mastodon/features/notifications/components/follow_request.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/grant_permission_button.js b/app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/grant_permission_button.js
rename to app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/notification.js
rename to app/javascript/mastodon/features/notifications/components/notification.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js
rename to app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/report.js b/app/javascript/mastodon/features/notifications/components/report.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/report.js
rename to app/javascript/mastodon/features/notifications/components/report.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/setting_toggle.js
rename to app/javascript/mastodon/features/notifications/components/setting_toggle.jsx
diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/index.js
rename to app/javascript/mastodon/features/notifications/index.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/components/footer.js
rename to app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/components/header.js b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/components/header.js
rename to app/javascript/mastodon/features/picture_in_picture/components/header.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/index.js b/app/javascript/mastodon/features/picture_in_picture/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/index.js
rename to app/javascript/mastodon/features/picture_in_picture/index.jsx
diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/pinned_statuses/index.js
rename to app/javascript/mastodon/features/pinned_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/privacy_policy/index.js
rename to app/javascript/mastodon/features/privacy_policy/index.jsx
diff --git a/app/javascript/mastodon/features/public_timeline/components/column_settings.js b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/public_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/public_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/public_timeline/index.js
rename to app/javascript/mastodon/features/public_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/reblogs/index.js
rename to app/javascript/mastodon/features/reblogs/index.jsx
diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/category.js
rename to app/javascript/mastodon/features/report/category.jsx
diff --git a/app/javascript/mastodon/features/report/comment.js b/app/javascript/mastodon/features/report/comment.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/comment.js
rename to app/javascript/mastodon/features/report/comment.jsx
diff --git a/app/javascript/mastodon/features/report/components/option.js b/app/javascript/mastodon/features/report/components/option.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/components/option.js
rename to app/javascript/mastodon/features/report/components/option.jsx
diff --git a/app/javascript/mastodon/features/report/components/status_check_box.js b/app/javascript/mastodon/features/report/components/status_check_box.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/components/status_check_box.js
rename to app/javascript/mastodon/features/report/components/status_check_box.jsx
diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/rules.js
rename to app/javascript/mastodon/features/report/rules.jsx
diff --git a/app/javascript/mastodon/features/report/statuses.js b/app/javascript/mastodon/features/report/statuses.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/statuses.js
rename to app/javascript/mastodon/features/report/statuses.jsx
diff --git a/app/javascript/mastodon/features/report/thanks.js b/app/javascript/mastodon/features/report/thanks.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/thanks.js
rename to app/javascript/mastodon/features/report/thanks.jsx
diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/standalone/compose/index.js
rename to app/javascript/mastodon/features/standalone/compose/index.jsx
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/action_bar.js
rename to app/javascript/mastodon/features/status/components/action_bar.jsx
diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/card.js
rename to app/javascript/mastodon/features/status/components/card.jsx
diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/detailed_status.js
rename to app/javascript/mastodon/features/status/components/detailed_status.jsx
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/index.js
rename to app/javascript/mastodon/features/status/index.jsx
diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/subscribed_languages_modal/index.js
rename to app/javascript/mastodon/features/subscribed_languages_modal/index.jsx
diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/__tests__/column-test.js
rename to app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/actions_modal.js
rename to app/javascript/mastodon/features/ui/components/actions_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/audio_modal.js b/app/javascript/mastodon/features/ui/components/audio_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/audio_modal.js
rename to app/javascript/mastodon/features/ui/components/audio_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/block_modal.js b/app/javascript/mastodon/features/ui/components/block_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/block_modal.js
rename to app/javascript/mastodon/features/ui/components/block_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/boost_modal.js
rename to app/javascript/mastodon/features/ui/components/boost_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle.js b/app/javascript/mastodon/features/ui/components/bundle.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle.js
rename to app/javascript/mastodon/features/ui/components/bundle.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle_column_error.js
rename to app/javascript/mastodon/features/ui/components/bundle_column_error.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js b/app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle_modal_error.js
rename to app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column.js b/app/javascript/mastodon/features/ui/components/column.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column.js
rename to app/javascript/mastodon/features/ui/components/column.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_header.js
rename to app/javascript/mastodon/features/ui/components/column_header.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_link.js
rename to app/javascript/mastodon/features/ui/components/column_link.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_loading.js
rename to app/javascript/mastodon/features/ui/components/column_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_subheading.js b/app/javascript/mastodon/features/ui/components/column_subheading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_subheading.js
rename to app/javascript/mastodon/features/ui/components/column_subheading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/columns_area.js
rename to app/javascript/mastodon/features/ui/components/columns_area.jsx
diff --git a/app/javascript/mastodon/features/ui/components/compare_history_modal.js b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/compare_history_modal.js
rename to app/javascript/mastodon/features/ui/components/compare_history_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/compose_panel.js
rename to app/javascript/mastodon/features/ui/components/compose_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/confirmation_modal.js
rename to app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/disabled_account_banner.js
rename to app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
diff --git a/app/javascript/mastodon/features/ui/components/drawer_loading.js b/app/javascript/mastodon/features/ui/components/drawer_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/drawer_loading.js
rename to app/javascript/mastodon/features/ui/components/drawer_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/embed_modal.js
rename to app/javascript/mastodon/features/ui/components/embed_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.js b/app/javascript/mastodon/features/ui/components/filter_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/filter_modal.js
rename to app/javascript/mastodon/features/ui/components/filter_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/focal_point_modal.js
rename to app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/follow_requests_column_link.js
rename to app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx
diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/header.js
rename to app/javascript/mastodon/features/ui/components/header.jsx
diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/image_loader.js
rename to app/javascript/mastodon/features/ui/components/image_loader.jsx
diff --git a/app/javascript/mastodon/features/ui/components/image_modal.js b/app/javascript/mastodon/features/ui/components/image_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/image_modal.js
rename to app/javascript/mastodon/features/ui/components/image_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/link_footer.js
rename to app/javascript/mastodon/features/ui/components/link_footer.jsx
diff --git a/app/javascript/mastodon/features/ui/components/list_panel.js b/app/javascript/mastodon/features/ui/components/list_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/list_panel.js
rename to app/javascript/mastodon/features/ui/components/list_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/media_modal.js
rename to app/javascript/mastodon/features/ui/components/media_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/modal_loading.js b/app/javascript/mastodon/features/ui/components/modal_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/modal_loading.js
rename to app/javascript/mastodon/features/ui/components/modal_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/modal_root.js
rename to app/javascript/mastodon/features/ui/components/modal_root.jsx
diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.js b/app/javascript/mastodon/features/ui/components/mute_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/mute_modal.js
rename to app/javascript/mastodon/features/ui/components/mute_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/navigation_panel.js
rename to app/javascript/mastodon/features/ui/components/navigation_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/report_modal.js b/app/javascript/mastodon/features/ui/components/report_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/report_modal.js
rename to app/javascript/mastodon/features/ui/components/report_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.js b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/sign_in_banner.js
rename to app/javascript/mastodon/features/ui/components/sign_in_banner.jsx
diff --git a/app/javascript/mastodon/features/ui/components/upload_area.js b/app/javascript/mastodon/features/ui/components/upload_area.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/upload_area.js
rename to app/javascript/mastodon/features/ui/components/upload_area.jsx
diff --git a/app/javascript/mastodon/features/ui/components/video_modal.js b/app/javascript/mastodon/features/ui/components/video_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/video_modal.js
rename to app/javascript/mastodon/features/ui/components/video_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.js b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/zoomable_image.js
rename to app/javascript/mastodon/features/ui/components/zoomable_image.jsx
diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/index.js
rename to app/javascript/mastodon/features/ui/index.jsx
diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/util/react_router_helpers.js
rename to app/javascript/mastodon/features/ui/util/react_router_helpers.jsx
diff --git a/app/javascript/mastodon/features/ui/util/reduced_motion.js b/app/javascript/mastodon/features/ui/util/reduced_motion.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/util/reduced_motion.js
rename to app/javascript/mastodon/features/ui/util/reduced_motion.jsx
diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/video/index.js
rename to app/javascript/mastodon/features/video/index.jsx
diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.jsx
similarity index 100%
rename from app/javascript/mastodon/main.js
rename to app/javascript/mastodon/main.jsx
diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.jsx
similarity index 100%
rename from app/javascript/mastodon/utils/icons.js
rename to app/javascript/mastodon/utils/icons.jsx
diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.jsx
similarity index 100%
rename from app/javascript/packs/admin.js
rename to app/javascript/packs/admin.jsx
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.jsx
similarity index 100%
rename from app/javascript/packs/public.js
rename to app/javascript/packs/public.jsx
diff --git a/app/javascript/packs/share.js b/app/javascript/packs/share.jsx
similarity index 100%
rename from app/javascript/packs/share.js
rename to app/javascript/packs/share.jsx
diff --git a/config/webpacker.yml b/config/webpacker.yml
index 4ad78a190..0baff662b 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -35,6 +35,7 @@ default: &default
extensions:
- .mjs
- .js
+ - .jsx
- .sass
- .scss
- .css
diff --git a/package.json b/package.json
index 57ee85b71..06af9045e 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"start": "node ./streaming/index.js",
"test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest",
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
- "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives",
+ "test:lint:js": "eslint --ext=.js,.jsx . --cache --report-unused-disable-directives",
"test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"",
"test:jest": "cross-env NODE_ENV=test jest",
"format": "prettier --write .",
From 63e63538861bd850a38a282e37de046639afa993 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:36 -0500
Subject: [PATCH 12/55] Autofix Rubocop Rails/EnumHash (#23737)
---
.rubocop_todo.yml | 16 ----------------
app/models/account.rb | 4 ++--
app/models/custom_filter.rb | 2 +-
app/models/domain_block.rb | 2 +-
app/models/import.rb | 2 +-
app/models/list.rb | 2 +-
app/models/media_attachment.rb | 4 ++--
app/models/preview_card.rb | 4 ++--
app/models/relay.rb | 2 +-
app/models/status.rb | 2 +-
10 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index c452d1bd2..7cb4d55e0 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1871,22 +1871,6 @@ Rails/DuplicateAssociation:
- 'app/serializers/activitypub/collection_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
-# Offense count: 12
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: Include.
-# Include: app/models/**/*.rb
-Rails/EnumHash:
- Exclude:
- - 'app/models/account.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/domain_block.rb'
- - 'app/models/import.rb'
- - 'app/models/list.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/preview_card.rb'
- - 'app/models/relay.rb'
- - 'app/models/status.rb'
-
# Offense count: 76
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
diff --git a/app/models/account.rb b/app/models/account.rb
index 2c0cd577e..d33110d55 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -78,8 +78,8 @@ class Account < ApplicationRecord
include DomainMaterializable
include AccountMerging
- enum protocol: [:ostatus, :activitypub]
- enum suspension_origin: [:local, :remote], _prefix: true
+ enum protocol: { ostatus: 0, activitypub: 1 }
+ enum suspension_origin: { local: 0, remote: 1 }, _prefix: true
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index b70e53bd5..781bf4db8 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -30,7 +30,7 @@ class CustomFilter < ApplicationRecord
include Expireable
include Redisable
- enum action: [:warn, :hide], _suffix: :action
+ enum action: { warn: 0, hide: 1 }, _suffix: :action
belongs_to :account
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index 8e298ac9d..190f5ba2e 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -20,7 +20,7 @@ class DomainBlock < ApplicationRecord
include DomainNormalizable
include DomainMaterializable
- enum severity: [:silence, :suspend, :noop]
+ enum severity: { silence: 0, suspend: 1, noop: 2 }
validates :domain, presence: true, uniqueness: true, domain: true
diff --git a/app/models/import.rb b/app/models/import.rb
index 00a54892e..cd33eb07b 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -24,7 +24,7 @@ class Import < ApplicationRecord
belongs_to :account
- enum type: [:following, :blocking, :muting, :domain_blocking, :bookmarks]
+ enum type: { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
validates :type, presence: true
validates_with ImportValidator, on: :create
diff --git a/app/models/list.rb b/app/models/list.rb
index cdc6ebdb3..7b8cf6636 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -16,7 +16,7 @@ class List < ApplicationRecord
PER_ACCOUNT_LIMIT = 50
- enum replies_policy: [:list, :followed, :none], _prefix: :show
+ enum replies_policy: { list: 0, followed: 1, none: 2 }, _prefix: :show
belongs_to :account, optional: true
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 5916b0b4b..c6f2352e0 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -33,8 +33,8 @@ class MediaAttachment < ApplicationRecord
include Attachmentable
- enum type: [:image, :gifv, :video, :unknown, :audio]
- enum processing: [:queued, :in_progress, :complete, :failed], _prefix: true
+ enum type: { :image => 0, :gifv => 1, :video => 2, :unknown => 3, :audio => 4 }
+ enum processing: { :queued => 0, :in_progress => 1, :complete => 2, :failed => 3 }, _prefix: true
MAX_DESCRIPTION_LENGTH = 1_500
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 56ca62d5e..d25fe6dad 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -44,8 +44,8 @@ class PreviewCard < ApplicationRecord
self.inheritance_column = false
- enum type: [:link, :photo, :video, :rich]
- enum link_type: [:unknown, :article]
+ enum type: { link: 0, photo: 1, video: 2, rich: 3 }
+ enum link_type: { unknown: 0, article: 1 }
has_and_belongs_to_many :statuses
has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy
diff --git a/app/models/relay.rb b/app/models/relay.rb
index c66bfe4ff..e9c425743 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -14,7 +14,7 @@
class Relay < ApplicationRecord
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
- enum state: [:idle, :pending, :accepted, :rejected]
+ enum state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }
scope :enabled, -> { accepted }
diff --git a/app/models/status.rb b/app/models/status.rb
index e0ad29103..44a297a08 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -48,7 +48,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
- enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility
+ enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
From 38a1d8bb85da6c7a52a3bde28af368b8d2104d02 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:48 -0500
Subject: [PATCH 13/55] Autofix Rubocop RSpec/ImplicitSubject (#23721)
---
.rubocop_todo.yml | 86 ++++++-------------
app/serializers/initial_state_serializer.rb | 1 -
.../admin/accounts_controller_spec.rb | 32 +++----
.../admin/instances_controller_spec.rb | 4 +-
.../application_controller_spec.rb | 2 +-
spec/controllers/home_controller_spec.rb | 4 +-
.../relationships_controller_spec.rb | 2 +-
.../settings/featured_tags_controller_spec.rb | 2 +-
.../settings/migrations_controller_spec.rb | 18 ++--
.../settings/sessions_controller_spec.rb | 4 +-
spec/features/log_in_spec.rb | 6 +-
spec/features/profile_spec.rb | 4 +-
spec/lib/emoji_formatter_spec.rb | 8 +-
spec/lib/entity_cache_spec.rb | 2 +-
spec/lib/html_aware_formatter_spec.rb | 8 +-
spec/lib/ostatus/tag_manager_spec.rb | 6 +-
spec/lib/plain_text_formatter_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 78 ++++++++---------
.../concerns/account_interactions_spec.rb | 86 +++++++++----------
spec/models/custom_emoji_spec.rb | 12 +--
spec/models/media_attachment_spec.rb | 10 +--
spec/models/notification_spec.rb | 2 +-
spec/models/remote_follow_spec.rb | 10 +--
spec/models/report_spec.rb | 4 +-
spec/models/session_activation_spec.rb | 6 +-
spec/models/setting_spec.rb | 4 +-
26 files changed, 184 insertions(+), 221 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 7cb4d55e0..4c3b3ecb6 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit`
-# on 2023-02-16 05:53:07 UTC using RuboCop version 1.45.1.
+# on 2023-02-19 06:22:09 UTC using RuboCop version 1.45.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -162,7 +162,7 @@ Layout/HashAlignment:
- 'spec/models/admin/account_action_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
-# Offense count: 577
+# Offense count: 581
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
@@ -305,18 +305,17 @@ Lint/Void:
Exclude:
- 'spec/services/resolve_account_service_spec.rb'
-# Offense count: 65
+# Offense count: 66
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Enabled: false
-# Offense count: 11
+# Offense count: 10
# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
Exclude:
- 'app/models/concerns/account_interactions.rb'
- - 'app/models/concerns/omniauthable.rb'
- 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- 'lib/tasks/branding.rake'
@@ -335,7 +334,7 @@ Metrics/BlockNesting:
Metrics/CyclomaticComplexity:
Enabled: false
-# Offense count: 40
+# Offense count: 35
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
Metrics/MethodLength:
Enabled: false
@@ -936,37 +935,6 @@ RSpec/HookArgument:
- 'spec/services/import_service_spec.rb'
- 'spec/spec_helper.rb'
-# Offense count: 159
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: single_line_only, single_statement_only, disallow, require_implicit
-RSpec/ImplicitSubject:
- Exclude:
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/instances_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/home_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/controllers/settings/featured_tags_controller_spec.rb'
- - 'spec/controllers/settings/migrations_controller_spec.rb'
- - 'spec/controllers/settings/sessions_controller_spec.rb'
- - 'spec/features/log_in_spec.rb'
- - 'spec/features/profile_spec.rb'
- - 'spec/lib/emoji_formatter_spec.rb'
- - 'spec/lib/entity_cache_spec.rb'
- - 'spec/lib/html_aware_formatter_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/plain_text_formatter_spec.rb'
- - 'spec/lib/text_formatter_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
- - 'spec/models/custom_emoji_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/notification_spec.rb'
- - 'spec/models/remote_follow_spec.rb'
- - 'spec/models/report_spec.rb'
- - 'spec/models/session_activation_spec.rb'
- - 'spec/models/setting_spec.rb'
-
# Offense count: 101
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
@@ -1199,7 +1167,7 @@ RSpec/MissingExampleGroupArgument:
RSpec/MultipleExpectations:
Max: 19
-# Offense count: 443
+# Offense count: 442
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
Max: 21
@@ -1216,7 +1184,7 @@ RSpec/MultipleSubjects:
- 'spec/controllers/follower_accounts_controller_spec.rb'
- 'spec/controllers/following_accounts_controller_spec.rb'
-# Offense count: 1252
+# Offense count: 1407
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
@@ -1226,6 +1194,7 @@ RSpec/NamedSubject:
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/custom_emojis_controller_spec.rb'
- 'spec/controllers/admin/domain_blocks_controller_spec.rb'
+ - 'spec/controllers/admin/instances_controller_spec.rb'
- 'spec/controllers/admin/invites_controller_spec.rb'
- 'spec/controllers/admin/report_notes_controller_spec.rb'
- 'spec/controllers/api/v1/accounts/notes_controller_spec.rb'
@@ -1233,13 +1202,18 @@ RSpec/NamedSubject:
- 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- 'spec/controllers/auth/passwords_controller_spec.rb'
- 'spec/controllers/auth/registrations_controller_spec.rb'
+ - 'spec/controllers/home_controller_spec.rb'
- 'spec/controllers/invites_controller_spec.rb'
- 'spec/controllers/oauth/authorizations_controller_spec.rb'
- 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- 'spec/controllers/relationships_controller_spec.rb'
- 'spec/controllers/settings/featured_tags_controller_spec.rb'
+ - 'spec/controllers/settings/migrations_controller_spec.rb'
+ - 'spec/controllers/settings/sessions_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
+ - 'spec/features/log_in_spec.rb'
+ - 'spec/features/profile_spec.rb'
- 'spec/lib/activitypub/activity/accept_spec.rb'
- 'spec/lib/activitypub/activity/add_spec.rb'
- 'spec/lib/activitypub/activity/announce_spec.rb'
@@ -1262,16 +1236,21 @@ RSpec/NamedSubject:
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
- 'spec/lib/delivery_failure_tracker_spec.rb'
- 'spec/lib/emoji_formatter_spec.rb'
+ - 'spec/lib/entity_cache_spec.rb'
- 'spec/lib/fast_ip_map_spec.rb'
- 'spec/lib/feed_manager_spec.rb'
- 'spec/lib/hashtag_normalizer_spec.rb'
+ - 'spec/lib/html_aware_formatter_spec.rb'
- 'spec/lib/link_details_extractor_spec.rb'
+ - 'spec/lib/ostatus/tag_manager_spec.rb'
+ - 'spec/lib/plain_text_formatter_spec.rb'
- 'spec/lib/request_pool_spec.rb'
- 'spec/lib/request_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
- 'spec/lib/status_finder_spec.rb'
- 'spec/lib/status_reach_finder_spec.rb'
- 'spec/lib/suspicious_sign_in_detector_spec.rb'
+ - 'spec/lib/text_formatter_spec.rb'
- 'spec/lib/vacuum/access_tokens_vacuum_spec.rb'
- 'spec/lib/vacuum/backups_vacuum_spec.rb'
- 'spec/lib/vacuum/feeds_vacuum_spec.rb'
@@ -1288,11 +1267,17 @@ RSpec/NamedSubject:
- 'spec/models/canonical_email_block_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/custom_emoji_filter_spec.rb'
+ - 'spec/models/custom_emoji_spec.rb'
- 'spec/models/follow_spec.rb'
- 'spec/models/home_feed_spec.rb'
+ - 'spec/models/media_attachment_spec.rb'
- 'spec/models/notification_spec.rb'
- 'spec/models/public_feed_spec.rb'
- 'spec/models/relationship_filter_spec.rb'
+ - 'spec/models/remote_follow_spec.rb'
+ - 'spec/models/report_spec.rb'
+ - 'spec/models/session_activation_spec.rb'
+ - 'spec/models/setting_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/tag_spec.rb'
- 'spec/models/trends/statuses_spec.rb'
@@ -2347,46 +2332,25 @@ Style/FormatStringToken:
Style/FrozenStringLiteralComment:
Enabled: false
-# Offense count: 69
+# Offense count: 34
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
Style/GuardClause:
Exclude:
- 'app/controllers/admin/confirmations_controller.rb'
- - 'app/controllers/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/statuses_controller.rb'
- - 'app/controllers/api/v1/blocks_controller.rb'
- - 'app/controllers/api/v1/conversations_controller.rb'
- - 'app/controllers/api/v1/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/endorsements_controller.rb'
- - 'app/controllers/api/v1/favourites_controller.rb'
- - 'app/controllers/api/v1/follow_requests_controller.rb'
- - 'app/controllers/api/v1/lists/accounts_controller.rb'
- - 'app/controllers/api/v1/mutes_controller.rb'
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
- - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
- 'app/controllers/auth/confirmations_controller.rb'
- 'app/controllers/auth/passwords_controller.rb'
- - 'app/controllers/filters/statuses_controller.rb'
- 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
- 'app/lib/activitypub/activity/block.rb'
- - 'app/lib/activitypub/linked_data_signature.rb'
- 'app/lib/connection_pool/shared_connection_pool.rb'
- 'app/lib/request.rb'
- 'app/lib/request_pool.rb'
- - 'app/lib/status_finder.rb'
- 'app/lib/webfinger.rb'
- 'app/lib/webfinger_resource.rb'
- - 'app/models/account_statuses_cleanup_policy.rb'
- 'app/models/concerns/account_counters.rb'
- 'app/models/concerns/ldap_authenticable.rb'
- 'app/models/tag.rb'
- 'app/models/user.rb'
- - 'app/serializers/rest/instance_serializer.rb'
- 'app/services/fan_out_on_write_service.rb'
- 'app/services/post_status_service.rb'
- 'app/services/process_hashtags_service.rb'
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index fa1ddc6d3..7905444e9 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -65,7 +65,6 @@ class InitialStateSerializer < ActiveModel::Serializer
store
end
- # rubocop:enable Metrics/AbcSize
def compose
store = {}
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index f5d68a8ad..fdc98ed46 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -92,7 +92,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'succeeds in memorializing account' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
expect(account.reload).to be_memorial
end
end
@@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -132,7 +132,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in enabling account' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
expect(user.reload).to_not be_disabled
end
end
@@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to enable account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to be_disabled
end
end
@@ -162,12 +162,12 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in approving account' do
- is_expected.to redirect_to admin_accounts_path(status: 'pending')
+ expect(subject).to redirect_to admin_accounts_path(status: 'pending')
expect(user.reload).to be_approved
end
it 'logs action' do
- is_expected.to have_http_status 302
+ expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
@@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to approve account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -203,11 +203,11 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in rejecting account' do
- is_expected.to redirect_to admin_accounts_path(status: 'pending')
+ expect(subject).to redirect_to admin_accounts_path(status: 'pending')
end
it 'logs action' do
- is_expected.to have_http_status 302
+ expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
@@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to reject account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -242,7 +242,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in redownloading' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
end
end
@@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to redownload' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
@@ -265,7 +265,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in removing avatar' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
end
end
@@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index a7e348b1c..4716e486a 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -42,7 +42,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in purging instance' do
- is_expected.to redirect_to admin_instances_path
+ expect(subject).to redirect_to admin_instances_path
end
end
@@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { nil }
it 'fails to purge instance' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index f14c451de..e2a63002b 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -28,7 +28,7 @@ describe ApplicationController, type: :controller do
end
it 'renders template for http' do
- is_expected.to render_template("errors/#{code}", layout: 'error')
+ expect(subject).to render_template("errors/#{code}", layout: 'error')
end
end
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
index d845ae01d..2409bf42c 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/home_controller_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe HomeController, type: :controller do
context 'when not signed in' do
it 'returns http success' do
@request.path = '/'
- is_expected.to have_http_status(:success)
+ expect(subject).to have_http_status(:success)
end
end
@@ -21,7 +21,7 @@ RSpec.describe HomeController, type: :controller do
end
it 'returns http success' do
- is_expected.to have_http_status(:success)
+ expect(subject).to have_http_status(:success)
end
end
end
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index cd09cf50b..4c4227d66 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -7,7 +7,7 @@ describe RelationshipsController do
shared_examples 'authenticate user' do
it 'redirects when not signed in' do
- is_expected.to redirect_to '/auth/sign_in'
+ expect(subject).to redirect_to '/auth/sign_in'
end
end
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
index 33b87f9f6..fc338672d 100644
--- a/spec/controllers/settings/featured_tags_controller_spec.rb
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -5,7 +5,7 @@ describe Settings::FeaturedTagsController do
shared_examples 'authenticate user' do
it 'redirects to sign_in page' do
- is_expected.to redirect_to new_user_session_path
+ expect(subject).to redirect_to new_user_session_path
end
end
diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb
index 4ce153c9d..8159bb21b 100644
--- a/spec/controllers/settings/migrations_controller_spec.rb
+++ b/spec/controllers/settings/migrations_controller_spec.rb
@@ -5,7 +5,7 @@ describe Settings::MigrationsController do
shared_examples 'authenticate user' do
it 'redirects to sign_in page' do
- is_expected.to redirect_to new_user_session_path
+ expect(subject).to redirect_to new_user_session_path
end
end
@@ -27,8 +27,8 @@ describe Settings::MigrationsController do
let(:moved_to_account) { nil }
it 'renders show page' do
- is_expected.to have_http_status 200
- is_expected.to render_template :show
+ expect(subject).to have_http_status 200
+ expect(subject).to render_template :show
end
end
@@ -36,8 +36,8 @@ describe Settings::MigrationsController do
let(:moved_to_account) { Fabricate(:account) }
it 'renders show page' do
- is_expected.to have_http_status 200
- is_expected.to render_template :show
+ expect(subject).to have_http_status 200
+ expect(subject).to render_template :show
end
end
end
@@ -61,7 +61,7 @@ describe Settings::MigrationsController do
let(:acct) { Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(user.account)]) }
it 'updates moved to account' do
- is_expected.to redirect_to settings_migration_path
+ expect(subject).to redirect_to settings_migration_path
expect(user.account.reload.moved_to_account_id).to eq acct.id
end
end
@@ -70,7 +70,7 @@ describe Settings::MigrationsController do
let(:acct) { user.account }
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
@@ -82,7 +82,7 @@ describe Settings::MigrationsController do
let(:acct) { Fabricate(:account, also_known_as: []) }
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
@@ -99,7 +99,7 @@ describe Settings::MigrationsController do
end
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index 59c18889e..fdf46d947 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -15,7 +15,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id }
it 'destroys session activation' do
- is_expected.to redirect_to edit_user_registration_path
+ expect(subject).to redirect_to edit_user_registration_path
expect(SessionActivation.find_by(id: id)).to be_nil
end
end
@@ -24,7 +24,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id + 1000 }
it 'destroys session activation' do
- is_expected.to have_http_status 404
+ expect(subject).to have_http_status 404
end
end
end
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb
index 5ae738ee2..934575ea6 100644
--- a/spec/features/log_in_spec.rb
+++ b/spec/features/log_in_spec.rb
@@ -21,7 +21,7 @@ describe 'Log in' do
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
- is_expected.to have_css('div.app-holder')
+ expect(subject).to have_css('div.app-holder')
end
it 'A invalid email and password user is not able to log in' do
@@ -29,7 +29,7 @@ describe 'Log in' do
fill_in 'user_password', with: 'invalid_password'
click_on I18n.t('auth.login')
- is_expected.to have_css('.flash-message', text: failure_message('invalid'))
+ expect(subject).to have_css('.flash-message', text: failure_message('invalid'))
end
context do
@@ -40,7 +40,7 @@ describe 'Log in' do
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
- is_expected.to have_css('div.admin-wrapper')
+ expect(subject).to have_css('div.admin-wrapper')
end
end
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index d1c6919c1..421b68a16 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -17,7 +17,7 @@ describe 'Profile' do
it 'I can view Annes public account' do
visit account_path('alice')
- is_expected.to have_title("alice (@alice@#{local_domain})")
+ expect(subject).to have_title("alice (@alice@#{local_domain})")
end
it 'I can change my account' do
@@ -28,6 +28,6 @@ describe 'Profile' do
first('button[type=submit]').click
- is_expected.to have_content 'Changes successfully saved!'
+ expect(subject).to have_content 'Changes successfully saved!'
end
end
diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb
index e1747bdd9..c6fe8cf37 100644
--- a/spec/lib/emoji_formatter_spec.rb
+++ b/spec/lib/emoji_formatter_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe EmojiFormatter do
let(:text) { preformat_text(':coolcat: Beep boop') }
it 'converts the shortcode to an image tag' do
- is_expected.to match(/Foo bar
'
+ expect(subject).to eq '
Foo bar
'
end
end
@@ -20,7 +20,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { 'Beep boop' }
it 'keeps the plain text' do
- is_expected.to include 'Beep boop'
+ expect(subject).to include 'Beep boop'
end
end
@@ -28,7 +28,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { '' }
it 'strips the scripts' do
- is_expected.to_not include ''
+ expect(subject).to_not include ''
end
end
@@ -36,7 +36,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { 'Show more' }
it 'strips the malicious classes' do
- is_expected.to_not include 'status__content__spoiler-link'
+ expect(subject).to_not include 'status__content__spoiler-link'
end
end
end
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
index 31195bae2..65ba7577a 100644
--- a/spec/lib/ostatus/tag_manager_spec.rb
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -45,7 +45,7 @@ describe OStatus::TagManager do
it 'returns the unique tag for status' do
expect(target.object_type).to eq :comment
- is_expected.to eq target.uri
+ expect(subject).to eq target.uri
end
end
@@ -54,7 +54,7 @@ describe OStatus::TagManager do
it 'returns the unique tag for status' do
expect(target.object_type).to eq :note
- is_expected.to eq target.uri
+ expect(subject).to eq target.uri
end
end
@@ -63,7 +63,7 @@ describe OStatus::TagManager do
it 'returns the URL for account' do
expect(target.object_type).to eq :person
- is_expected.to eq 'https://cb6e6126.ngrok.io/users/alice'
+ expect(subject).to eq 'https://cb6e6126.ngrok.io/users/alice'
end
end
end
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index c3d0ee630..0e5f39031 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe PlainTextFormatter do
let(:status) { Fabricate(:status, text: '
a text by a nerd who uses an HTML tag in text
', uri: nil) }
it 'returns the raw text' do
- is_expected.to eq '
a text by a nerd who uses an HTML tag in text
'
+ expect(subject).to eq '
a text by a nerd who uses an HTML tag in text
'
end
end
@@ -17,7 +17,7 @@ RSpec.describe PlainTextFormatter do
let(:status) { Fabricate(:status, account: remote_account, text: '
Hello
') }
it 'returns tag-stripped text' do
- is_expected.to eq 'Hello'
+ expect(subject).to eq 'Hello'
end
end
end
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index cc742b65e..63a9075c7 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe TextFormatter do
let(:text) { 'text' }
it 'paragraphizes the text' do
- is_expected.to eq '
text
'
+ expect(subject).to eq '
text
'
end
end
@@ -18,7 +18,7 @@ RSpec.describe TextFormatter do
let(:text) { "line\nfeed" }
it 'removes line feeds' do
- is_expected.to_not include "\n"
+ expect(subject).to_not include "\n"
end
end
@@ -27,7 +27,7 @@ RSpec.describe TextFormatter do
let(:text) { '@alice' }
it 'creates a mention link' do
- is_expected.to include '@alice'
+ expect(subject).to include '@alice'
end
end
@@ -36,7 +36,7 @@ RSpec.describe TextFormatter do
let(:text) { '@alice' }
it 'does not create a mention link' do
- is_expected.to include '@alice'
+ expect(subject).to include '@alice'
end
end
@@ -44,7 +44,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4' }
it 'matches the full URL' do
- is_expected.to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"'
+ expect(subject).to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"'
end
end
@@ -52,7 +52,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://google.com' }
it 'matches the full URL' do
- is_expected.to include 'href="http://google.com"'
+ expect(subject).to include 'href="http://google.com"'
end
end
@@ -60,7 +60,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.gay' }
it 'matches the full URL' do
- is_expected.to include 'href="http://example.gay"'
+ expect(subject).to include 'href="http://example.gay"'
end
end
@@ -68,11 +68,11 @@ RSpec.describe TextFormatter do
let(:text) { 'https://nic.みんな/' }
it 'matches the full URL' do
- is_expected.to include 'href="https://nic.みんな/"'
+ expect(subject).to include 'href="https://nic.みんな/"'
end
it 'has display URL' do
- is_expected.to include 'nic.みんな/'
+ expect(subject).to include 'nic.みんな/'
end
end
@@ -80,7 +80,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona. ' }
it 'matches the full URL but not the period' do
- is_expected.to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"'
+ expect(subject).to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"'
end
end
@@ -88,7 +88,7 @@ RSpec.describe TextFormatter do
let(:text) { '(http://google.com/)' }
it 'matches the full URL but not the parentheses' do
- is_expected.to include 'href="http://google.com/"'
+ expect(subject).to include 'href="http://google.com/"'
end
end
@@ -96,7 +96,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.google.com!' }
it 'matches the full URL but not the exclamation point' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -104,7 +104,7 @@ RSpec.describe TextFormatter do
let(:text) { "http://www.google.com'" }
it 'matches the full URL but not the single quote' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -112,7 +112,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.google.com>' }
it 'matches the full URL but not the angle bracket' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -121,7 +121,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
end
end
@@ -129,7 +129,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓&q=autolink' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"'
end
end
@@ -137,7 +137,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"'
end
end
@@ -145,7 +145,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink' }
it 'preserves escaped unicode characters' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"'
end
end
end
@@ -154,7 +154,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://en.wikipedia.org/wiki/Diaspora_(software)' }
it 'matches the full URL' do
- is_expected.to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"'
+ expect(subject).to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"'
end
end
@@ -162,7 +162,7 @@ RSpec.describe TextFormatter do
let(:text) { '"https://example.com/"' }
it 'does not match the quotation marks' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -170,7 +170,7 @@ RSpec.describe TextFormatter do
let(:text) { '' }
it 'does not match the angle brackets' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -178,7 +178,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://ja.wikipedia.org/wiki/日本' }
it 'matches the full URL' do
- is_expected.to include 'href="https://ja.wikipedia.org/wiki/日本"'
+ expect(subject).to include 'href="https://ja.wikipedia.org/wiki/日本"'
end
end
@@ -186,7 +186,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://ko.wikipedia.org/wiki/대한민국' }
it 'matches the full URL' do
- is_expected.to include 'href="https://ko.wikipedia.org/wiki/대한민국"'
+ expect(subject).to include 'href="https://ko.wikipedia.org/wiki/대한민국"'
end
end
@@ -194,7 +194,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://example.com/ abc123' }
it 'does not match the full-width space' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -202,7 +202,7 @@ RSpec.describe TextFormatter do
let(:text) { '「[https://example.org/」' }
it 'does not match the quotation marks' do
- is_expected.to include 'href="https://example.org/"'
+ expect(subject).to include 'href="https://example.org/"'
end
end
@@ -210,7 +210,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://baike.baidu.com/item/中华人民共和国' }
it 'matches the full URL' do
- is_expected.to include 'href="https://baike.baidu.com/item/中华人民共和国"'
+ expect(subject).to include 'href="https://baike.baidu.com/item/中华人民共和国"'
end
end
@@ -218,7 +218,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://zh.wikipedia.org/wiki/臺灣' }
it 'matches the full URL' do
- is_expected.to include 'href="https://zh.wikipedia.org/wiki/臺灣"'
+ expect(subject).to include 'href="https://zh.wikipedia.org/wiki/臺灣"'
end
end
@@ -226,11 +226,11 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.com/bb' }
it 'does not include the HTML in the URL' do
- is_expected.to include '"http://example.com/b"'
+ expect(subject).to include '"http://example.com/b"'
end
it 'escapes the HTML' do
- is_expected.to include '<del>b</del>'
+ expect(subject).to include '<del>b</del>'
end
end
@@ -238,11 +238,11 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.com/blahblahblahblah/a' }
it 'does not include the HTML in the URL' do
- is_expected.to include '"http://example.com/blahblahblahblah/a"'
+ expect(subject).to include '"http://example.com/blahblahblahblah/a"'
end
it 'escapes the HTML' do
- is_expected.to include '<script>alert("Hello")</script>'
+ expect(subject).to include '<script>alert("Hello")</script>'
end
end
@@ -250,7 +250,7 @@ RSpec.describe TextFormatter do
let(:text) { '' }
it 'escapes the HTML' do
- is_expected.to include '
<script>alert("Hello")</script>
'
+ expect(subject).to include '
<script>alert("Hello")</script>
'
end
end
@@ -258,7 +258,7 @@ RSpec.describe TextFormatter do
let(:text) { %q{} }
it 'escapes the HTML' do
- is_expected.to include '
<img src="javascript:alert('XSS');">
'
+ expect(subject).to include '
<img src="javascript:alert('XSS');">
'
end
end
@@ -266,7 +266,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www\.google\.com' }
it 'outputs the raw URL' do
- is_expected.to eq '
http://www\.google\.com
'
+ expect(subject).to eq '
http://www\.google\.com
'
end
end
@@ -274,7 +274,7 @@ RSpec.describe TextFormatter do
let(:text) { '#hashtag' }
it 'creates a hashtag link' do
- is_expected.to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag'
+ expect(subject).to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag'
end
end
@@ -282,7 +282,7 @@ RSpec.describe TextFormatter do
let(:text) { '#hashtagタグ' }
it 'creates a hashtag link' do
- is_expected.to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ'
+ expect(subject).to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ'
end
end
@@ -290,7 +290,7 @@ RSpec.describe TextFormatter do
let(:text) { 'xmpp:user@instance.com' }
it 'matches the full URI' do
- is_expected.to include 'href="xmpp:user@instance.com"'
+ expect(subject).to include 'href="xmpp:user@instance.com"'
end
end
@@ -298,7 +298,7 @@ RSpec.describe TextFormatter do
let(:text) { 'please join xmpp:muc@instance.com?join right now' }
it 'matches the full URI' do
- is_expected.to include 'href="xmpp:muc@instance.com?join"'
+ expect(subject).to include 'href="xmpp:muc@instance.com?join"'
end
end
@@ -306,7 +306,7 @@ RSpec.describe TextFormatter do
let(:text) { 'wikipedia gives this example of a magnet uri: magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a' }
it 'matches the full URI' do
- is_expected.to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"'
+ expect(subject).to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"'
end
end
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index b2d84308b..fbfc9fbbc 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -14,13 +14,13 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => true }' do
Fabricate(:follow, account: account, target_account: target_account)
- is_expected.to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
+ expect(subject).to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
end
end
context 'account without Follow' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -31,13 +31,13 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => true }' do
Fabricate(:follow, account: target_account, target_account: account)
- is_expected.to eq(target_account_id => true)
+ expect(subject).to eq(target_account_id => true)
end
end
context 'account without Follow' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -48,13 +48,13 @@ describe AccountInteractions do
context 'account with Block' do
it 'returns { target_account_id => true }' do
Fabricate(:block, account: account, target_account: target_account)
- is_expected.to eq(target_account_id => true)
+ expect(subject).to eq(target_account_id => true)
end
end
context 'account without Block' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -71,7 +71,7 @@ describe AccountInteractions do
let(:hide) { true }
it 'returns { target_account_id => { notifications: true } }' do
- is_expected.to eq(target_account_id => { notifications: true })
+ expect(subject).to eq(target_account_id => { notifications: true })
end
end
@@ -79,14 +79,14 @@ describe AccountInteractions do
let(:hide) { false }
it 'returns { target_account_id => { notifications: false } }' do
- is_expected.to eq(target_account_id => { notifications: false })
+ expect(subject).to eq(target_account_id => { notifications: false })
end
end
end
context 'account without Mute' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -231,7 +231,7 @@ describe AccountInteractions do
it 'creates and returns ConversationMute' do
expect do
- is_expected.to be_a ConversationMute
+ expect(subject).to be_a ConversationMute
end.to change { account.conversation_mutes.count }.by 1
end
end
@@ -243,7 +243,7 @@ describe AccountInteractions do
it 'creates and returns AccountDomainBlock' do
expect do
- is_expected.to be_a AccountDomainBlock
+ expect(subject).to be_a AccountDomainBlock
end.to change { account.domain_blocks.count }.by 1
end
end
@@ -254,14 +254,14 @@ describe AccountInteractions do
context 'following target_account' do
it 'returns destroyed Follow' do
account.active_relationships.create(target_account: target_account)
- is_expected.to be_a Follow
+ expect(subject).to be_a Follow
expect(subject).to be_destroyed
end
end
context 'not following target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -272,14 +272,14 @@ describe AccountInteractions do
context 'blocking target_account' do
it 'returns destroyed Block' do
account.block_relationships.create(target_account: target_account)
- is_expected.to be_a Block
+ expect(subject).to be_a Block
expect(subject).to be_destroyed
end
end
context 'not blocking target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -290,14 +290,14 @@ describe AccountInteractions do
context 'muting target_account' do
it 'returns destroyed Mute' do
account.mute_relationships.create(target_account: target_account)
- is_expected.to be_a Mute
+ expect(subject).to be_a Mute
expect(subject).to be_destroyed
end
end
context 'not muting target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -310,14 +310,14 @@ describe AccountInteractions do
context 'muting the conversation' do
it 'returns destroyed ConversationMute' do
account.conversation_mutes.create(conversation: conversation)
- is_expected.to be_a ConversationMute
+ expect(subject).to be_a ConversationMute
expect(subject).to be_destroyed
end
end
context 'not muting the conversation' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -331,14 +331,14 @@ describe AccountInteractions do
it 'returns destroyed AccountDomainBlock' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
account.domain_blocks << account_domain_block
- is_expected.to be_a AccountDomainBlock
+ expect(subject).to be_a AccountDomainBlock
expect(subject).to be_destroyed
end
end
context 'unblocking the domain' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -349,13 +349,13 @@ describe AccountInteractions do
context 'following target_account' do
it 'returns true' do
account.active_relationships.create(target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not following target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -366,13 +366,13 @@ describe AccountInteractions do
context 'followed by target_account' do
it 'returns true' do
account.passive_relationships.create(account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not followed by target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -383,13 +383,13 @@ describe AccountInteractions do
context 'blocking target_account' do
it 'returns true' do
account.block_relationships.create(target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not blocking target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -403,13 +403,13 @@ describe AccountInteractions do
it 'returns true' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
account.domain_blocks << account_domain_block
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not blocking the domain' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -421,13 +421,13 @@ describe AccountInteractions do
it 'returns true' do
mute = Fabricate(:mute, account: account, target_account: target_account)
account.mute_relationships << mute
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not muting target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -440,13 +440,13 @@ describe AccountInteractions do
context 'muting the conversation' do
it 'returns true' do
account.conversation_mutes.create(conversation: conversation)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not muting the conversation' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -463,7 +463,7 @@ describe AccountInteractions do
let(:hide) { true }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -471,7 +471,7 @@ describe AccountInteractions do
let(:hide) { false }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -482,13 +482,13 @@ describe AccountInteractions do
context 'requested by target_account' do
it 'returns true' do
Fabricate(:follow_request, account: account, target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not requested by target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -502,7 +502,7 @@ describe AccountInteractions do
let(:favourites) { [Fabricate(:favourite, account: account)] }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -510,7 +510,7 @@ describe AccountInteractions do
let(:favourites) { [] }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -524,7 +524,7 @@ describe AccountInteractions do
let(:reblogs) { [Fabricate(:status, account: account)] }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -532,7 +532,7 @@ describe AccountInteractions do
let(:reblogs) { [] }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -545,13 +545,13 @@ describe AccountInteractions do
context 'pinned' do
it 'returns true' do
Fabricate(:status_pin, account: account, status: status)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not pinned' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index f9e1099c6..1fc112db3 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:search_term) { 'blobpats' }
it 'finds emoji' do
- is_expected.to include(custom_emoji)
+ expect(subject).to include(custom_emoji)
end
end
@@ -20,7 +20,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:search_term) { 'blob' }
it 'finds emoji' do
- is_expected.to include(custom_emoji)
+ expect(subject).to include(custom_emoji)
end
end
end
@@ -34,7 +34,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:domain) { nil }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -42,7 +42,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:domain) { 'example.com' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -63,7 +63,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:text) { 'Hello :coolcat:' }
it 'returns records used via shortcodes in text' do
- is_expected.to include(emojo)
+ expect(subject).to include(emojo)
end
end
@@ -71,7 +71,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:text) { '
Hello :coolcat:
' }
it 'returns records used via shortcodes in text' do
- is_expected.to include(emojo)
+ expect(subject).to include(emojo)
end
end
end
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index d1a94d41a..8889d5f7c 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { '' }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -18,7 +18,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -35,7 +35,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
end
@@ -47,7 +47,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { '' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
@@ -55,7 +55,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns true' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index 1e9e45d8d..a8fb77639 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe Notification, type: :model do
let(:notifications) { [] }
it 'returns []' do
- is_expected.to eq []
+ expect(subject).to eq []
end
end
diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb
index 5b4c19b5b..c6bbecf25 100644
--- a/spec/models/remote_follow_spec.rb
+++ b/spec/models/remote_follow_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
it 'returns acct' do
- is_expected.to eq 'gargron@quitter.no'
+ expect(subject).to eq 'gargron@quitter.no'
end
end
@@ -25,7 +25,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { {} }
it do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -37,7 +37,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
it do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -45,7 +45,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { {} }
it do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -61,7 +61,7 @@ RSpec.describe RemoteFollow do
subject { remote_follow.subscribe_address_for(account) }
it 'returns subscribe address' do
- is_expected.to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
+ expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
end
end
end
diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb
index 874be4132..317851297 100644
--- a/spec/models/report_spec.rb
+++ b/spec/models/report_spec.rb
@@ -33,7 +33,7 @@ describe Report do
end
it 'assigns to a given account' do
- is_expected.to eq current_account.id
+ expect(subject).to eq current_account.id
end
end
@@ -48,7 +48,7 @@ describe Report do
end
it 'unassigns' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb
index 26f2b561a..375199d57 100644
--- a/spec/models/session_activation_spec.rb
+++ b/spec/models/session_activation_spec.rb
@@ -44,7 +44,7 @@ RSpec.describe SessionActivation, type: :model do
let(:id) { nil }
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
@@ -54,7 +54,7 @@ RSpec.describe SessionActivation, type: :model do
context 'id exists as session_id' do
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -64,7 +64,7 @@ RSpec.describe SessionActivation, type: :model do
end
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 077223094..86fdf4e08 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -173,7 +173,7 @@ RSpec.describe Setting, type: :model do
let(:enabled) { false }
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
@@ -181,7 +181,7 @@ RSpec.describe Setting, type: :model do
let(:enabled) { true }
it 'returns instance of RailsSettings::Default' do
- is_expected.to be_a RailsSettings::Default
+ expect(subject).to be_a RailsSettings::Default
end
end
end
From 4ea1e0fceb0c0c5fee014a99f81f8f13a16f6dde Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:59 -0500
Subject: [PATCH 14/55] Enable Rubocop RSpec/ExpectActual (#23720)
---
.rubocop_todo.yml | 6 ------
spec/controllers/well_known/nodeinfo_controller_spec.rb | 3 ++-
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 4c3b3ecb6..eb0910fe6 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -821,12 +821,6 @@ RSpec/EmptyExampleGroup:
RSpec/ExampleLength:
Max: 22
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/ExpectActual:
- Exclude:
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
-
# Offense count: 21
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index e9436cd26..0cadc5435 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -26,8 +26,9 @@ describe WellKnown::NodeInfoController, type: :controller do
expect(response.media_type).to eq 'application/json'
json = body_as_json
+ foo = { 'foo' => 0 }
- expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0')
+ expect(foo).to_not match_json_schema('nodeinfo_2.0')
expect(json).to match_json_schema('nodeinfo_2.0')
expect(json[:version]).to eq '2.0'
expect(json[:usage]).to be_a Hash
From 4552685f6bd400666ec4058783eeabb11568e575 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:24:14 -0500
Subject: [PATCH 15/55] Autofix Rubocop RSpec/LeadingSubject (#23670)
---
.rubocop_todo.yml | 82 -------------------
.../collections_controller_spec.rb | 4 +-
...lowers_synchronizations_controller_spec.rb | 4 +-
.../activitypub/inboxes_controller_spec.rb | 4 +-
.../activitypub/outboxes_controller_spec.rb | 4 +-
.../admin/invites_controller_spec.rb | 4 +-
.../auth/registrations_controller_spec.rb | 64 +++++++--------
.../well_known/webfinger_controller_spec.rb | 8 +-
spec/lib/activitypub/activity/accept_spec.rb | 4 +-
.../lib/activitypub/activity/announce_spec.rb | 8 +-
spec/lib/activitypub/activity/create_spec.rb | 16 ++--
spec/lib/activitypub/activity/reject_spec.rb | 4 +-
spec/lib/activitypub/activity/undo_spec.rb | 4 +-
spec/lib/activitypub/activity/update_spec.rb | 4 +-
spec/lib/activitypub/adapter_spec.rb | 4 +-
spec/lib/activitypub/dereferencer_spec.rb | 4 +-
.../activitypub/linked_data_signature_spec.rb | 4 +-
spec/lib/link_details_extractor_spec.rb | 4 +-
spec/lib/status_filter_spec.rb | 4 +-
spec/lib/status_reach_finder_spec.rb | 4 +-
spec/lib/suspicious_sign_in_detector_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 4 +-
spec/lib/vacuum/backups_vacuum_spec.rb | 4 +-
.../vacuum/media_attachments_vacuum_spec.rb | 4 +-
spec/lib/vacuum/preview_cards_vacuum_spec.rb | 4 +-
spec/lib/vacuum/statuses_vacuum_spec.rb | 4 +-
spec/models/account/field_spec.rb | 12 +--
spec/models/account_spec.rb | 16 ++--
.../account_statuses_cleanup_policy_spec.rb | 20 ++---
spec/models/account_statuses_filter_spec.rb | 4 +-
.../concerns/account_interactions_spec.rb | 40 ++++-----
spec/models/custom_emoji_filter_spec.rb | 4 +-
spec/models/custom_emoji_spec.rb | 12 +--
spec/models/home_feed_spec.rb | 4 +-
spec/models/media_attachment_spec.rb | 8 +-
spec/models/public_feed_spec.rb | 16 ++--
spec/models/remote_follow_spec.rb | 4 +-
spec/models/setting_spec.rb | 4 +-
spec/models/status_spec.rb | 16 ++--
spec/models/user_spec.rb | 4 +-
spec/models/web/push_subscription_spec.rb | 4 +-
.../familiar_followers_presenter_spec.rb | 4 +-
spec/serializers/activitypub/note_spec.rb | 4 +-
.../activitypub/update_poll_spec.rb | 4 +-
.../rest/account_serializer_spec.rb | 4 +-
.../fetch_featured_collection_service_spec.rb | 4 +-
...h_featured_tags_collection_service_spec.rb | 4 +-
.../fetch_remote_status_service_spec.rb | 4 +-
.../activitypub/fetch_replies_service_spec.rb | 4 +-
.../process_account_service_spec.rb | 8 +-
.../process_collection_service_spec.rb | 4 +-
.../process_status_update_service_spec.rb | 4 +-
.../synchronize_followers_service_spec.rb | 4 +-
..._block_domain_from_account_service_spec.rb | 4 +-
spec/services/app_sign_up_service_spec.rb | 4 +-
.../services/authorize_follow_service_spec.rb | 4 +-
spec/services/block_domain_service_spec.rb | 4 +-
spec/services/block_service_spec.rb | 4 +-
.../clear_domain_media_service_spec.rb | 4 +-
spec/services/delete_account_service_spec.rb | 4 +-
.../services/fan_out_on_write_service_spec.rb | 4 +-
spec/services/favourite_service_spec.rb | 4 +-
spec/services/fetch_resource_service_spec.rb | 4 +-
spec/services/follow_service_spec.rb | 4 +-
.../services/process_mentions_service_spec.rb | 4 +-
spec/services/purge_domain_service_spec.rb | 4 +-
spec/services/reblog_service_spec.rb | 8 +-
spec/services/reject_follow_service_spec.rb | 4 +-
.../remove_from_follwers_service_spec.rb | 4 +-
spec/services/report_service_spec.rb | 12 +--
spec/services/suspend_account_service_spec.rb | 4 +-
spec/services/unallow_domain_service_spec.rb | 4 +-
spec/services/unblock_service_spec.rb | 4 +-
spec/services/unfollow_service_spec.rb | 4 +-
.../unsuspend_account_service_spec.rb | 4 +-
.../blacklisted_email_validator_spec.rb | 4 +-
spec/workers/move_worker_spec.rb | 4 +-
spec/workers/unfollow_follow_worker_spec.rb | 4 +-
78 files changed, 256 insertions(+), 338 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index eb0910fe6..1eb039110 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -952,88 +952,6 @@ RSpec/InstanceVariable:
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
-# Offense count: 118
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/LeadingSubject:
- Exclude:
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/admin/invites_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/well_known/webfinger_controller_spec.rb'
- - 'spec/lib/activitypub/activity/accept_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/reject_spec.rb'
- - 'spec/lib/activitypub/activity/undo_spec.rb'
- - 'spec/lib/activitypub/activity/update_spec.rb'
- - 'spec/lib/activitypub/adapter_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/linked_data_signature_spec.rb'
- - 'spec/lib/link_details_extractor_spec.rb'
- - 'spec/lib/status_filter_spec.rb'
- - 'spec/lib/status_reach_finder_spec.rb'
- - 'spec/lib/suspicious_sign_in_detector_spec.rb'
- - 'spec/lib/text_formatter_spec.rb'
- - 'spec/lib/vacuum/backups_vacuum_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- - 'spec/lib/vacuum/statuses_vacuum_spec.rb'
- - 'spec/models/account/field_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/models/account_statuses_filter_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
- - 'spec/models/custom_emoji_filter_spec.rb'
- - 'spec/models/custom_emoji_spec.rb'
- - 'spec/models/home_feed_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/public_feed_spec.rb'
- - 'spec/models/remote_follow_spec.rb'
- - 'spec/models/setting_spec.rb'
- - 'spec/models/status_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/web/push_subscription_spec.rb'
- - 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
- - 'spec/serializers/rest/account_serializer_spec.rb'
- - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/fetch_replies_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_collection_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/activitypub/synchronize_followers_service_spec.rb'
- - 'spec/services/after_block_domain_from_account_service_spec.rb'
- - 'spec/services/app_sign_up_service_spec.rb'
- - 'spec/services/authorize_follow_service_spec.rb'
- - 'spec/services/block_domain_service_spec.rb'
- - 'spec/services/block_service_spec.rb'
- - 'spec/services/clear_domain_media_service_spec.rb'
- - 'spec/services/delete_account_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/favourite_service_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
- - 'spec/services/follow_service_spec.rb'
- - 'spec/services/process_mentions_service_spec.rb'
- - 'spec/services/purge_domain_service_spec.rb'
- - 'spec/services/reblog_service_spec.rb'
- - 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
- - 'spec/services/report_service_spec.rb'
- - 'spec/services/suspend_account_service_spec.rb'
- - 'spec/services/unallow_domain_service_spec.rb'
- - 'spec/services/unblock_service_spec.rb'
- - 'spec/services/unfollow_service_spec.rb'
- - 'spec/services/unsuspend_account_service_spec.rb'
- - 'spec/validators/blacklisted_email_validator_spec.rb'
- - 'spec/workers/move_worker_spec.rb'
- - 'spec/workers/unfollow_follow_worker_spec.rb'
-
# Offense count: 15
RSpec/LeakyConstantDeclaration:
Exclude:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 19c0e0a64..77901131e 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -35,11 +35,11 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
describe 'GET #show' do
context 'when id is "featured"' do
context 'without signature' do
- let(:remote_account) { nil }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { id: 'featured', account_username: account.username } }
- subject(:body) { body_as_json }
+ let(:remote_account) { nil }
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index 893c8e14f..6ec756d3c 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -32,11 +32,11 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
end
context 'with signature from example.com' do
- let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { account_username: account.username } }
- subject(:body) { body_as_json }
+ let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 7f4d6b2d3..8d4084648 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -22,10 +22,10 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
end
context 'for a specific account' do
- let(:account) { Fabricate(:account) }
-
subject(:response) { post :create, params: { account_username: account.username }, body: '{}' }
+ let(:account) { Fabricate(:account) }
+
context 'when account is permanently suspended' do
before do
account.suspend!
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index f84a902ea..7369ee413 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -33,11 +33,11 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
describe 'GET #show' do
context 'without signature' do
- let(:remote_account) { nil }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { account_username: account.username, page: page } }
- subject(:body) { body_as_json }
+ let(:remote_account) { nil }
context 'with page not requested' do
let(:page) { nil }
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb
index 1fb488742..92ec4e449 100644
--- a/spec/controllers/admin/invites_controller_spec.rb
+++ b/spec/controllers/admin/invites_controller_spec.rb
@@ -33,10 +33,10 @@ describe Admin::InvitesController do
end
describe 'DELETE #destroy' do
- let!(:invite) { Fabricate(:invite, expires_at: nil) }
-
subject { delete :destroy, params: { id: invite.id } }
+ let!(:invite) { Fabricate(:invite, expires_at: nil) }
+
it 'expires invite' do
expect(subject).to redirect_to admin_invites_path
expect(invite.reload).to be_expired
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 52023eb2e..8cfb8e277 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -95,18 +95,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
before { request.env['devise.mapping'] = Devise.mappings[:user] }
context do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'open'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -121,18 +121,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'when user has not agreed to terms of service' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'open'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'false' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'does not create user' do
subject
user = User.find_by(email: 'test@example.com')
@@ -141,18 +141,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations without invite' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'approved'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -168,12 +168,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations with expired invite' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'approved'
request.headers['Accept-Language'] = accept_language
@@ -181,6 +175,12 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -196,14 +196,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations with valid invite and required invite text' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- require_invite_text = Setting.require_invite_text
- example.run
- Setting.require_invite_text = require_invite_text
- Setting.registrations_mode = registrations_mode
- end
-
subject do
inviter = Fabricate(:user, confirmed_at: 2.days.ago)
Setting.registrations_mode = 'approved'
@@ -213,6 +205,14 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ require_invite_text = Setting.require_invite_text
+ example.run
+ Setting.require_invite_text = require_invite_text
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
index 8574d369d..1ccfb218e 100644
--- a/spec/controllers/well_known/webfinger_controller_spec.rb
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -4,6 +4,10 @@ describe WellKnown::WebfingerController, type: :controller do
render_views
describe 'GET #show' do
+ subject do
+ get :show, params: { resource: resource }, format: :json
+ end
+
let(:alternate_domains) { [] }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:resource) { nil }
@@ -15,10 +19,6 @@ describe WellKnown::WebfingerController, type: :controller do
Rails.configuration.x.alternate_domains = tmp
end
- subject do
- get :show, params: { resource: resource }, format: :json
- end
-
shared_examples 'a successful response' do
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb
index 304cf2208..95a5a8747 100644
--- a/spec/lib/activitypub/activity/accept_spec.rb
+++ b/spec/lib/activitypub/activity/accept_spec.rb
@@ -42,6 +42,8 @@ RSpec.describe ActivityPub::Activity::Accept do
end
context 'given a relay' do
+ subject { described_class.new(json, sender) }
+
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
let(:json) do
@@ -59,8 +61,6 @@ RSpec.describe ActivityPub::Activity::Accept do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
it 'marks the relay as accepted' do
subject.perform
expect(relay.reload.accepted?).to be true
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index adb13acc2..b3257e881 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Announce do
+ subject { described_class.new(json, sender) }
+
let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', uri: 'https://example.com/actor') }
let(:recipient) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: recipient) }
@@ -27,8 +29,6 @@ RSpec.describe ActivityPub::Activity::Announce do
}
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'when sender is followed by a local account' do
before do
@@ -110,13 +110,13 @@ RSpec.describe ActivityPub::Activity::Announce do
end
context 'when the sender is relayed' do
+ subject { described_class.new(json, sender, relayed_through_actor: relay_account) }
+
let!(:relay_account) { Fabricate(:account, inbox_url: 'https://relay.example.com/inbox') }
let!(:relay) { Fabricate(:relay, inbox_url: 'https://relay.example.com/inbox') }
let(:object_json) { 'https://example.com/actor/hello-world' }
- subject { described_class.new(json, sender, relayed_through_actor: relay_account) }
-
before do
stub_request(:get, 'https://example.com/actor/hello-world').to_return(body: Oj.dump(unknown_object_json))
end
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index ddbdb07aa..c26c8b358 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -752,6 +752,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'with an encrypted message' do
+ subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
+
let(:recipient) { Fabricate(:account) }
let(:object_json) do
{
@@ -776,8 +778,6 @@ RSpec.describe ActivityPub::Activity::Create do
end
let(:target_device) { Fabricate(:device, account: recipient) }
- subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
-
before do
subject.perform
end
@@ -831,6 +831,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender replies to local status' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_status) { Fabricate(:status) }
let(:object_json) do
{
@@ -841,8 +843,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
@@ -856,6 +856,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender targets a local user' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_account) { Fabricate(:account) }
let(:object_json) do
{
@@ -866,8 +868,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
@@ -881,6 +881,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender cc\'s a local user' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_account) { Fabricate(:account) }
let(:object_json) do
{
@@ -891,8 +893,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb
index fed4cd8cd..7f04db4e6 100644
--- a/spec/lib/activitypub/activity/reject_spec.rb
+++ b/spec/lib/activitypub/activity/reject_spec.rb
@@ -121,6 +121,8 @@ RSpec.describe ActivityPub::Activity::Reject do
end
context 'given a relay' do
+ subject { described_class.new(json, sender) }
+
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
let(:json) do
@@ -138,8 +140,6 @@ RSpec.describe ActivityPub::Activity::Reject do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
it 'marks the relay as rejected' do
subject.perform
expect(relay.reload.rejected?).to be true
diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb
index c0309e49d..0bd1f17d3 100644
--- a/spec/lib/activitypub/activity/undo_spec.rb
+++ b/spec/lib/activitypub/activity/undo_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Undo do
+ subject { described_class.new(json, sender) }
+
let(:sender) { Fabricate(:account, domain: 'example.com') }
let(:json) do
@@ -13,8 +15,6 @@ RSpec.describe ActivityPub::Activity::Undo do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'with Announce' do
let(:status) { Fabricate(:status) }
diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb
index 4cd853af2..d2a1edd7a 100644
--- a/spec/lib/activitypub/activity/update_spec.rb
+++ b/spec/lib/activitypub/activity/update_spec.rb
@@ -1,14 +1,14 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Update do
+ subject { described_class.new(json, sender) }
+
let!(:sender) { Fabricate(:account) }
before do
sender.update!(uri: ActivityPub::TagManager.instance.uri_for(sender))
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'with an Actor object' do
let(:modified_sender) do
diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb
index ea03797aa..e4c403abb 100644
--- a/spec/lib/activitypub/adapter_spec.rb
+++ b/spec/lib/activitypub/adapter_spec.rb
@@ -41,10 +41,10 @@ RSpec.describe ActivityPub::Adapter do
end
describe '#serializable_hash' do
- let(:serializer_class) {}
-
subject { ActiveModelSerializers::SerializableResource.new(TestObject.new(foo: 'bar'), serializer: serializer_class, adapter: described_class).as_json }
+ let(:serializer_class) {}
+
context 'when serializer defines no context' do
let(:serializer_class) { TestWithBasicContextSerializer }
diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb
index e50b497c7..800473a7c 100644
--- a/spec/lib/activitypub/dereferencer_spec.rb
+++ b/spec/lib/activitypub/dereferencer_spec.rb
@@ -2,13 +2,13 @@ require 'rails_helper'
RSpec.describe ActivityPub::Dereferencer do
describe '#object' do
+ subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object }
+
let(:object) { { '@context': 'https://www.w3.org/ns/activitystreams', id: 'https://example.com/foo', type: 'Note', content: 'Hoge' } }
let(:permitted_origin) { 'https://example.com' }
let(:signature_actor) { nil }
let(:uri) { nil }
- subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object }
-
before do
stub_request(:get, 'https://example.com/foo').to_return(body: Oj.dump(object), headers: { 'Content-Type' => 'application/activity+json' })
end
diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb
index d55a7c7fa..ecb1e16db 100644
--- a/spec/lib/activitypub/linked_data_signature_spec.rb
+++ b/spec/lib/activitypub/linked_data_signature_spec.rb
@@ -3,6 +3,8 @@ require 'rails_helper'
RSpec.describe ActivityPub::LinkedDataSignature do
include JsonLdHelper
+ subject { described_class.new(json) }
+
let!(:sender) { Fabricate(:account, uri: 'http://example.com/alice') }
let(:raw_json) do
@@ -14,8 +16,6 @@ RSpec.describe ActivityPub::LinkedDataSignature do
let(:json) { raw_json.merge('signature' => signature) }
- subject { described_class.new(json) }
-
before do
stub_jsonld_contexts!
end
diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb
index 7eb15ced3..fcc265474 100644
--- a/spec/lib/link_details_extractor_spec.rb
+++ b/spec/lib/link_details_extractor_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe LinkDetailsExtractor do
+ subject { described_class.new(original_url, html, html_charset) }
+
let(:original_url) { '' }
let(:html) { '' }
let(:html_charset) { nil }
- subject { described_class.new(original_url, html, html_charset) }
-
describe '#canonical_url' do
let(:original_url) { 'https://foo.com/article?bar=baz123' }
diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb
index cdb482059..08519bc59 100644
--- a/spec/lib/status_filter_spec.rb
+++ b/spec/lib/status_filter_spec.rb
@@ -31,10 +31,10 @@ describe StatusFilter do
end
context 'with real account' do
- let(:account) { Fabricate(:account) }
-
subject { described_class.new(status, account) }
+ let(:account) { Fabricate(:account) }
+
context 'when there are no connections' do
it { is_expected.to_not be_filtered }
end
diff --git a/spec/lib/status_reach_finder_spec.rb b/spec/lib/status_reach_finder_spec.rb
index f0c22b165..785ce28a0 100644
--- a/spec/lib/status_reach_finder_spec.rb
+++ b/spec/lib/status_reach_finder_spec.rb
@@ -5,13 +5,13 @@ require 'rails_helper'
describe StatusReachFinder do
describe '#inboxes' do
context 'for a local status' do
+ subject { described_class.new(status) }
+
let(:parent_status) { nil }
let(:visibility) { :public }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:status) { Fabricate(:status, account: alice, thread: parent_status, visibility: visibility) }
- subject { described_class.new(status) }
-
context 'when it contains mentions of remote accounts' do
let(:bob) { Fabricate(:account, username: 'bob', domain: 'foo.bar', protocol: :activitypub, inbox_url: 'https://foo.bar/inbox') }
diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb
index 101a18aa0..05aadfd8f 100644
--- a/spec/lib/suspicious_sign_in_detector_spec.rb
+++ b/spec/lib/suspicious_sign_in_detector_spec.rb
@@ -2,12 +2,12 @@ require 'rails_helper'
RSpec.describe SuspiciousSignInDetector do
describe '#suspicious?' do
+ subject { described_class.new(user).suspicious?(request) }
+
let(:user) { Fabricate(:user, current_sign_in_at: 1.day.ago) }
let(:request) { double(remote_ip: remote_ip) }
let(:remote_ip) { nil }
- subject { described_class.new(user).suspicious?(request) }
-
context 'when user has 2FA enabled' do
before do
user.update!(otp_required_for_login: true)
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index 63a9075c7..04ae4e02c 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe TextFormatter do
describe '#to_s' do
- let(:preloaded_accounts) { nil }
-
subject { described_class.new(text, preloaded_accounts: preloaded_accounts).to_s }
+ let(:preloaded_accounts) { nil }
+
context 'given text containing plain text' do
let(:text) { 'text' }
diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb
index 4e2de083f..c505a3e1a 100644
--- a/spec/lib/vacuum/backups_vacuum_spec.rb
+++ b/spec/lib/vacuum/backups_vacuum_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe Vacuum::BackupsVacuum do
- let(:retention_period) { 7.days }
-
subject { described_class.new(retention_period) }
+ let(:retention_period) { 7.days }
+
describe '#perform' do
let!(:expired_backup) { Fabricate(:backup, created_at: (retention_period + 1.day).ago) }
let!(:current_backup) { Fabricate(:backup) }
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index 436237b25..afcb6f878 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
+ subject { described_class.new(retention_period) }
+
let(:retention_period) { 7.days }
let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) }
let(:local_status) { Fabricate(:status) }
- subject { described_class.new(retention_period) }
-
describe '#perform' do
let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
index 275f9ba92..524f4c927 100644
--- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb
+++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe Vacuum::PreviewCardsVacuum do
- let(:retention_period) { 7.days }
-
subject { described_class.new(retention_period) }
+ let(:retention_period) { 7.days }
+
describe '#perform' do
let!(:orphaned_preview_card) { Fabricate(:preview_card, created_at: 2.days.ago) }
let!(:old_preview_card) { Fabricate(:preview_card, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb
index 83f3c5c9f..9583376b7 100644
--- a/spec/lib/vacuum/statuses_vacuum_spec.rb
+++ b/spec/lib/vacuum/statuses_vacuum_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Vacuum::StatusesVacuum do
+ subject { described_class.new(retention_period) }
+
let(:retention_period) { 7.days }
let(:remote_account) { Fabricate(:account, domain: 'example.com') }
- subject { described_class.new(retention_period) }
-
describe '#perform' do
let!(:remote_status_old) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let!(:remote_status_recent) { Fabricate(:status, account: remote_account, created_at: (retention_period - 2.days).ago) }
diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb
index 40bbee025..36e1a8595 100644
--- a/spec/models/account/field_spec.rb
+++ b/spec/models/account/field_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe Account::Field, type: :model do
describe '#verified?' do
- let(:account) { double('Account', local?: true) }
-
subject { described_class.new(account, 'name' => 'Foo', 'value' => 'Bar', 'verified_at' => verified_at) }
+ let(:account) { double('Account', local?: true) }
+
context 'when verified_at is set' do
let(:verified_at) { Time.now.utc.iso8601 }
@@ -24,11 +24,11 @@ RSpec.describe Account::Field, type: :model do
end
describe '#mark_verified!' do
+ subject { described_class.new(account, original_hash) }
+
let(:account) { double('Account', local?: true) }
let(:original_hash) { { 'name' => 'Foo', 'value' => 'Bar' } }
- subject { described_class.new(account, original_hash) }
-
before do
subject.mark_verified!
end
@@ -43,10 +43,10 @@ RSpec.describe Account::Field, type: :model do
end
describe '#verifiable?' do
- let(:account) { double('Account', local?: local) }
-
subject { described_class.new(account, 'name' => 'Foo', 'value' => value) }
+ let(:account) { double('Account', local?: local) }
+
context 'for local accounts' do
let(:local) { true }
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 03ed12d78..726e33048 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe Account, type: :model do
context do
- let(:bob) { Fabricate(:account, username: 'bob') }
-
subject { Fabricate(:account) }
+ let(:bob) { Fabricate(:account, username: 'bob') }
+
describe '#suspend!' do
it 'marks the account as suspended' do
subject.suspend!
@@ -87,14 +87,14 @@ RSpec.describe Account, type: :model do
end
describe 'Local domain user methods' do
+ subject { Fabricate(:account, domain: nil, username: 'alice') }
+
around do |example|
before = Rails.configuration.x.local_domain
example.run
Rails.configuration.x.local_domain = before
end
- subject { Fabricate(:account, domain: nil, username: 'alice') }
-
describe '#to_webfinger_s' do
it 'returns a webfinger string for the account' do
Rails.configuration.x.local_domain = 'example.com'
@@ -243,13 +243,13 @@ RSpec.describe Account, type: :model do
end
describe '#favourited?' do
+ subject { Fabricate(:account) }
+
let(:original_status) do
author = Fabricate(:account, username: 'original')
Fabricate(:status, account: author)
end
- subject { Fabricate(:account) }
-
context 'when the status is a reblog of another status' do
let(:original_reblog) do
author = Fabricate(:account, username: 'original_reblogger')
@@ -281,13 +281,13 @@ RSpec.describe Account, type: :model do
end
describe '#reblogged?' do
+ subject { Fabricate(:account) }
+
let(:original_status) do
author = Fabricate(:account, username: 'original')
Fabricate(:status, account: author)
end
- subject { Fabricate(:account) }
-
context 'when the status is a reblog of another status' do
let(:original_reblog) do
author = Fabricate(:account, username: 'original_reblogger')
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index d3c011b3a..8bd86730b 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -132,11 +132,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#invalidate_last_inspected' do
+ subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) }
+
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
let(:status) { Fabricate(:status, id: 10, account: account) }
- subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) }
-
before do
account_statuses_cleanup_policy.record_last_inspected(42)
end
@@ -231,11 +231,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#compute_cutoff_id' do
+ subject { account_statuses_cleanup_policy.compute_cutoff_id }
+
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
- subject { account_statuses_cleanup_policy.compute_cutoff_id }
-
context 'when the account has posted multiple toots' do
let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) }
let!(:old_status) { Fabricate(:status, created_at: 3.weeks.ago, account: account) }
@@ -254,6 +254,8 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#statuses_to_delete' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete }
+
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) }
let!(:pinned_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
@@ -275,8 +277,6 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete }
-
before do
4.times { faved4.increment_count!(:favourites_count) }
5.times { faved5.increment_count!(:favourites_count) }
@@ -285,11 +285,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
context 'when passed a max_id' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) }
+
let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) }
-
it 'returns statuses including max_id' do
expect(subject).to include(old_status.id)
end
@@ -304,11 +304,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
context 'when passed a min_id' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) }
+
let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) }
-
it 'returns statuses including min_id' do
expect(subject).to include(old_status.id)
end
diff --git a/spec/models/account_statuses_filter_spec.rb b/spec/models/account_statuses_filter_spec.rb
index 03f0ffeb0..fa7664d92 100644
--- a/spec/models/account_statuses_filter_spec.rb
+++ b/spec/models/account_statuses_filter_spec.rb
@@ -3,12 +3,12 @@
require 'rails_helper'
RSpec.describe AccountStatusesFilter do
+ subject { described_class.new(account, current_account, params) }
+
let(:account) { Fabricate(:account) }
let(:current_account) { nil }
let(:params) { {} }
- subject { described_class.new(account, current_account, params) }
-
def status!(visibility)
Fabricate(:status, account: account, visibility: visibility)
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index fbfc9fbbc..ed3fc056b 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -225,10 +225,10 @@ describe AccountInteractions do
end
describe '#mute_conversation!' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.mute_conversation!(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
it 'creates and returns ConversationMute' do
expect do
expect(subject).to be_a ConversationMute
@@ -237,10 +237,10 @@ describe AccountInteractions do
end
describe '#block_domain!' do
- let(:domain) { 'example.com' }
-
subject { account.block_domain!(domain) }
+ let(:domain) { 'example.com' }
+
it 'creates and returns AccountDomainBlock' do
expect do
expect(subject).to be_a AccountDomainBlock
@@ -303,10 +303,10 @@ describe AccountInteractions do
end
describe '#unmute_conversation!' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.unmute_conversation!(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
context 'muting the conversation' do
it 'returns destroyed ConversationMute' do
account.conversation_mutes.create(conversation: conversation)
@@ -323,10 +323,10 @@ describe AccountInteractions do
end
describe '#unblock_domain!' do
- let(:domain) { 'example.com' }
-
subject { account.unblock_domain!(domain) }
+ let(:domain) { 'example.com' }
+
context 'blocking the domain' do
it 'returns destroyed AccountDomainBlock' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
@@ -395,10 +395,10 @@ describe AccountInteractions do
end
describe '#domain_blocking?' do
- let(:domain) { 'example.com' }
-
subject { account.domain_blocking?(domain) }
+ let(:domain) { 'example.com' }
+
context 'blocking the domain' do
it 'returns true' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
@@ -433,10 +433,10 @@ describe AccountInteractions do
end
describe '#muting_conversation?' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.muting_conversation?(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
context 'muting the conversation' do
it 'returns true' do
account.conversation_mutes.create(conversation: conversation)
@@ -452,13 +452,13 @@ describe AccountInteractions do
end
describe '#muting_notifications?' do
+ subject { account.muting_notifications?(target_account) }
+
before do
mute = Fabricate(:mute, target_account: target_account, account: account, hide_notifications: hide)
account.mute_relationships << mute
end
- subject { account.muting_notifications?(target_account) }
-
context 'muting notifications of target_account' do
let(:hide) { true }
@@ -494,10 +494,10 @@ describe AccountInteractions do
end
describe '#favourited?' do
- let(:status) { Fabricate(:status, account: account, favourites: favourites) }
-
subject { account.favourited?(status) }
+ let(:status) { Fabricate(:status, account: account, favourites: favourites) }
+
context 'favorited' do
let(:favourites) { [Fabricate(:favourite, account: account)] }
@@ -516,10 +516,10 @@ describe AccountInteractions do
end
describe '#reblogged?' do
- let(:status) { Fabricate(:status, account: account, reblogs: reblogs) }
-
subject { account.reblogged?(status) }
+ let(:status) { Fabricate(:status, account: account, reblogs: reblogs) }
+
context 'reblogged' do
let(:reblogs) { [Fabricate(:status, account: account)] }
@@ -538,10 +538,10 @@ describe AccountInteractions do
end
describe '#pinned?' do
- let(:status) { Fabricate(:status, account: account) }
-
subject { account.pinned?(status) }
+ let(:status) { Fabricate(:status, account: account) }
+
context 'pinned' do
it 'returns true' do
Fabricate(:status_pin, account: account, status: status)
diff --git a/spec/models/custom_emoji_filter_spec.rb b/spec/models/custom_emoji_filter_spec.rb
index 515c0a715..30f0ec2b2 100644
--- a/spec/models/custom_emoji_filter_spec.rb
+++ b/spec/models/custom_emoji_filter_spec.rb
@@ -4,12 +4,12 @@ require 'rails_helper'
RSpec.describe CustomEmojiFilter do
describe '#results' do
+ subject { described_class.new(params).results }
+
let!(:custom_emoji_0) { Fabricate(:custom_emoji, domain: 'a') }
let!(:custom_emoji_1) { Fabricate(:custom_emoji, domain: 'b') }
let!(:custom_emoji_2) { Fabricate(:custom_emoji, domain: nil, shortcode: 'hoge') }
- subject { described_class.new(params).results }
-
context 'params have values' do
context 'local' do
let(:params) { { local: true } }
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index 1fc112db3..f6fcd468b 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe CustomEmoji, type: :model do
describe '#search' do
- let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) }
-
subject { described_class.search(search_term) }
+ let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) }
+
context 'shortcode is exact' do
let(:shortcode) { 'blobpats' }
let(:search_term) { 'blobpats' }
@@ -26,10 +26,10 @@ RSpec.describe CustomEmoji, type: :model do
end
describe '#local?' do
- let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }
-
subject { custom_emoji.local? }
+ let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }
+
context 'domain is nil' do
let(:domain) { nil }
@@ -55,10 +55,10 @@ RSpec.describe CustomEmoji, type: :model do
end
describe '.from_text' do
- let!(:emojo) { Fabricate(:custom_emoji) }
-
subject { described_class.from_text(text, nil) }
+ let!(:emojo) { Fabricate(:custom_emoji) }
+
context 'with plain text' do
let(:text) { 'Hello :coolcat:' }
diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb
index 80f6edbff..196bef1e4 100644
--- a/spec/models/home_feed_spec.rb
+++ b/spec/models/home_feed_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe HomeFeed, type: :model do
- let(:account) { Fabricate(:account) }
-
subject { described_class.new(account) }
+ let(:account) { Fabricate(:account) }
+
describe '#get' do
before do
Fabricate(:status, account: account, id: 1)
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 8889d5f7c..57e131423 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe MediaAttachment, type: :model do
describe 'local?' do
- let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) }
-
subject { media_attachment.local? }
+ let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) }
+
context 'remote_url is blank' do
let(:remote_url) { '' }
@@ -24,10 +24,10 @@ RSpec.describe MediaAttachment, type: :model do
end
describe 'needs_redownload?' do
- let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) }
-
subject { media_attachment.needs_redownload? }
+ let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) }
+
context 'file is blank' do
let(:file) { nil }
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index be46639c5..59c81dd95 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -40,6 +40,8 @@ RSpec.describe PublicFeed, type: :model do
end
context 'without local_only option' do
+ subject { described_class.new(viewer).get(20).map(&:id) }
+
let(:viewer) { nil }
let!(:local_account) { Fabricate(:account, domain: nil) }
@@ -47,8 +49,6 @@ RSpec.describe PublicFeed, type: :model do
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -75,13 +75,13 @@ RSpec.describe PublicFeed, type: :model do
end
context 'with a local_only option set' do
+ subject { described_class.new(viewer, local: true).get(20).map(&:id) }
+
let!(:local_account) { Fabricate(:account, domain: nil) }
let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer, local: true).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -108,13 +108,13 @@ RSpec.describe PublicFeed, type: :model do
end
context 'with a remote_only option set' do
+ subject { described_class.new(viewer, remote: true).get(20).map(&:id) }
+
let!(:local_account) { Fabricate(:account, domain: nil) }
let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer, remote: true).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -135,12 +135,12 @@ RSpec.describe PublicFeed, type: :model do
end
describe 'with an account passed in' do
+ subject { described_class.new(@account).get(20).map(&:id) }
+
before do
@account = Fabricate(:account)
end
- subject { described_class.new(@account).get(20).map(&:id) }
-
it 'excludes statuses from accounts blocked by the account' do
blocked = Fabricate(:account)
@account.block!(blocked)
diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb
index c6bbecf25..ea36b0076 100644
--- a/spec/models/remote_follow_spec.rb
+++ b/spec/models/remote_follow_spec.rb
@@ -51,6 +51,8 @@ RSpec.describe RemoteFollow do
end
describe '#subscribe_address_for' do
+ subject { remote_follow.subscribe_address_for(account) }
+
before do
remote_follow.valid?
end
@@ -58,8 +60,6 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
let(:account) { Fabricate(:account, username: 'alice') }
- subject { remote_follow.subscribe_address_for(account) }
-
it 'returns subscribe address' do
expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
end
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 86fdf4e08..826a13878 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -163,12 +163,12 @@ RSpec.describe Setting, type: :model do
end
describe '.default_settings' do
+ subject { described_class.default_settings }
+
before do
allow(RailsSettings::Default).to receive(:enabled?).and_return(enabled)
end
- subject { described_class.default_settings }
-
context 'RailsSettings::Default.enabled? is false' do
let(:enabled) { false }
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 78cc05959..442f14ddf 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Status, type: :model do
+ subject { Fabricate(:status, account: alice) }
+
let(:alice) { Fabricate(:account, username: 'alice') }
let(:bob) { Fabricate(:account, username: 'bob') }
let(:other) { Fabricate(:status, account: bob, text: 'Skulls for the skull god! The enemy\'s gates are sideways!') }
- subject { Fabricate(:status, account: alice) }
-
describe '#local?' do
it 'returns true when no remote URI is set' do
expect(subject.local?).to be true
@@ -204,11 +204,11 @@ RSpec.describe Status, type: :model do
end
describe '.mutes_map' do
+ subject { Status.mutes_map([status.conversation.id], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.mutes_map([status.conversation.id], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
@@ -220,11 +220,11 @@ RSpec.describe Status, type: :model do
end
describe '.favourites_map' do
+ subject { Status.favourites_map([status], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.favourites_map([status], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
@@ -236,11 +236,11 @@ RSpec.describe Status, type: :model do
end
describe '.reblogs_map' do
+ subject { Status.reblogs_map([status], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.reblogs_map([status], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index d23439f1a..9af616b32 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -142,10 +142,10 @@ RSpec.describe User, type: :model do
end
describe '#confirm' do
- let(:new_email) { 'new-email@example.com' }
-
subject { user.confirm }
+ let(:new_email) { 'new-email@example.com' }
+
before do
allow(TriggerWebhookWorker).to receive(:perform_async)
end
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index eeadbb71c..388154000 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe Web::PushSubscription, type: :model do
+ subject { described_class.new(data: data) }
+
let(:account) { Fabricate(:account) }
let(:policy) { 'all' }
@@ -19,8 +21,6 @@ RSpec.describe Web::PushSubscription, type: :model do
}
end
- subject { described_class.new(data: data) }
-
describe '#pushable?' do
let(:notification_type) { :mention }
let(:notification) { Fabricate(:notification, account: account, type: notification_type) }
diff --git a/spec/presenters/familiar_followers_presenter_spec.rb b/spec/presenters/familiar_followers_presenter_spec.rb
index 17be4b971..607e3002f 100644
--- a/spec/presenters/familiar_followers_presenter_spec.rb
+++ b/spec/presenters/familiar_followers_presenter_spec.rb
@@ -4,12 +4,12 @@ require 'rails_helper'
RSpec.describe FamiliarFollowersPresenter do
describe '#accounts' do
+ subject { described_class.new(requested_accounts, account.id) }
+
let(:account) { Fabricate(:account) }
let(:familiar_follower) { Fabricate(:account) }
let(:requested_accounts) { Fabricate.times(2, :account) }
- subject { described_class.new(requested_accounts, account.id) }
-
before do
familiar_follower.follow!(requested_accounts.first)
account.follow!(familiar_follower)
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_spec.rb
index 55bfbc16b..7ea47baef 100644
--- a/spec/serializers/activitypub/note_spec.rb
+++ b/spec/serializers/activitypub/note_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe ActivityPub::NoteSerializer do
+ subject { JSON.parse(@serialization.to_json) }
+
let!(:account) { Fabricate(:account) }
let!(:other) { Fabricate(:account) }
let!(:parent) { Fabricate(:status, account: account, visibility: :public) }
@@ -16,8 +18,6 @@ describe ActivityPub::NoteSerializer do
@serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter)
end
- subject { JSON.parse(@serialization.to_json) }
-
it 'has a Note type' do
expect(subject['type']).to eql('Note')
end
diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_spec.rb
index f9e035eab..4360808b5 100644
--- a/spec/serializers/activitypub/update_poll_spec.rb
+++ b/spec/serializers/activitypub/update_poll_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe ActivityPub::UpdatePollSerializer do
+ subject { JSON.parse(@serialization.to_json) }
+
let(:account) { Fabricate(:account) }
let(:poll) { Fabricate(:poll, account: account) }
let!(:status) { Fabricate(:status, account: account, poll: poll) }
@@ -11,8 +13,6 @@ describe ActivityPub::UpdatePollSerializer do
@serialization = ActiveModelSerializers::SerializableResource.new(status, serializer: ActivityPub::UpdatePollSerializer, adapter: ActivityPub::Adapter)
end
- subject { JSON.parse(@serialization.to_json) }
-
it 'has a Update type' do
expect(subject['type']).to eql('Update')
end
diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb
index 3bca06b73..528639943 100644
--- a/spec/serializers/rest/account_serializer_spec.rb
+++ b/spec/serializers/rest/account_serializer_spec.rb
@@ -3,12 +3,12 @@
require 'rails_helper'
describe REST::AccountSerializer do
+ subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) }
+
let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) }
let(:user) { Fabricate(:user, role: role) }
let(:account) { user.account }
- subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) }
-
context 'when the account is suspended' do
before do
account.suspend!
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
index 23d90a9a2..d9266ffc2 100644
--- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account', featured_collection_url: 'https://example.com/account/pinned') }
let!(:known_status) { Fabricate(:status, account: actor, uri: 'https://example.com/account/pinned/1') }
@@ -56,8 +58,6 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'sets pinned posts' do
before do
stub_request(:get, 'https://example.com/account/pinned/1').to_return(status: 200, body: Oj.dump(status_json_1))
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 692866bce..2110baa2d 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do
+ subject { described_class.new }
+
let(:collection_url) { 'https://example.com/account/tags' }
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account') }
@@ -21,8 +23,6 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'sets featured tags' do
before do
subject.call(actor, collection_url)
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index 4f3503ac2..6e47392b3 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -3,6 +3,8 @@ require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
include ActionView::Helpers::TextHelper
+ subject { described_class.new }
+
let!(:sender) { Fabricate(:account, domain: 'foo.bar', uri: 'https://foo.bar') }
let!(:recipient) { Fabricate(:account) }
@@ -18,8 +20,6 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
}
end
- subject { described_class.new }
-
before do
stub_request(:get, 'https://foo.bar/watch?v=12345').to_return(status: 404, body: '')
stub_request(:get, object[:id]).to_return(body: Oj.dump(object))
diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb
index 5741e0c3f..0231a5e9a 100644
--- a/spec/services/activitypub/fetch_replies_service_spec.rb
+++ b/spec/services/activitypub/fetch_replies_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchRepliesService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:status) { Fabricate(:status, account: actor) }
let(:collection_uri) { 'http://example.com/replies/1' }
@@ -28,8 +30,6 @@ RSpec.describe ActivityPub::FetchRepliesService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
describe '#call' do
context 'when the payload is a Collection with inlined replies' do
context 'when passing the collection itself' do
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index d0af7de76..6c3236bae 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -31,6 +31,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
end
context 'when account is not suspended' do
+ subject { described_class.new.call('alice', 'example.com', payload) }
+
let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com') }
let(:payload) do
@@ -46,8 +48,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
allow(Admin::SuspensionWorker).to receive(:perform_async)
end
- subject { described_class.new.call('alice', 'example.com', payload) }
-
it 'suspends account remotely' do
expect(subject.suspended?).to be true
expect(subject.suspension_origin_remote?).to be true
@@ -60,6 +60,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
end
context 'when account is suspended' do
+ subject { described_class.new.call('alice', 'example.com', payload) }
+
let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com', display_name: '') }
let(:payload) do
@@ -78,8 +80,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
account.suspend!(origin: suspension_origin)
end
- subject { described_class.new.call('alice', 'example.com', payload) }
-
context 'locally' do
let(:suspension_origin) { :local }
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index d35d9596d..c7d0bb92a 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:payload) do
@@ -19,8 +21,6 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
let(:json) { Oj.dump(payload) }
- subject { described_class.new }
-
describe '#call' do
context 'when actor is suspended' do
before do
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 9a6d75ec0..3d6f76163 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -5,6 +5,8 @@ def poll_option_json(name, votes)
end
RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
+ subject { described_class.new }
+
let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) }
let(:payload) do
{
@@ -35,8 +37,6 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
media_attachments.each { |m| status.media_attachments << m }
end
- subject { described_class.new }
-
describe '#call' do
it 'updates text' do
subject.call(status, json)
diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb
index 5a37f0733..0e829a302 100644
--- a/spec/services/activitypub/synchronize_followers_service_spec.rb
+++ b/spec/services/activitypub/synchronize_followers_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account', inbox_url: 'http://example.com/inbox') }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:bob) { Fabricate(:account, username: 'bob') }
@@ -25,8 +27,6 @@ RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'synchronizes followers' do
before do
alice.follow!(actor)
diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb
index 006e3f4d2..9cca82bff 100644
--- a/spec/services/after_block_domain_from_account_service_spec.rb
+++ b/spec/services/after_block_domain_from_account_service_spec.rb
@@ -1,11 +1,11 @@
require 'rails_helper'
RSpec.describe AfterBlockDomainFromAccountService, type: :service do
+ subject { AfterBlockDomainFromAccountService.new }
+
let!(:wolf) { Fabricate(:account, username: 'wolf', domain: 'evil.org', inbox_url: 'https://evil.org/inbox', protocol: :activitypub) }
let!(:alice) { Fabricate(:account, username: 'alice') }
- subject { AfterBlockDomainFromAccountService.new }
-
before do
stub_jsonld_contexts!
allow(ActivityPub::DeliveryWorker).to receive(:perform_async)
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index 8ec4d4a7a..10da07dcf 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe AppSignUpService, type: :service do
+ subject { described_class.new }
+
let(:app) { Fabricate(:application, scopes: 'read write') }
let(:good_params) { { username: 'alice', password: '12345678', email: 'good@email.com', agreement: true } }
let(:remote_ip) { IPAddr.new('198.0.2.1') }
- subject { described_class.new }
-
describe '#call' do
it 'returns nil when registrations are closed' do
tmp = Setting.registrations_mode
diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb
index 888d694b6..8f8e44ec7 100644
--- a/spec/services/authorize_follow_service_spec.rb
+++ b/spec/services/authorize_follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe AuthorizeFollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { AuthorizeFollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index e24e48d41..56b3a5ad1 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -1,14 +1,14 @@
require 'rails_helper'
RSpec.describe BlockDomainService, type: :service do
+ subject { BlockDomainService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) }
let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) }
- subject { BlockDomainService.new }
-
describe 'for a suspension' do
before do
subject.call(DomainBlock.create!(domain: 'evil.org', severity: :suspend))
diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb
index a53e1f928..049644dbc 100644
--- a/spec/services/block_service_spec.rb
+++ b/spec/services/block_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe BlockService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { BlockService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index e90faf84d..993ba789e 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -1,13 +1,13 @@
require 'rails_helper'
RSpec.describe ClearDomainMediaService, type: :service do
+ subject { ClearDomainMediaService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) }
- subject { ClearDomainMediaService.new }
-
describe 'for a silence with reject media' do
before do
subject.call(DomainBlock.create!(domain: 'evil.org', severity: :silence, reject_media: true))
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index cc4b168fc..d0cc8d288 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -2,6 +2,8 @@ require 'rails_helper'
RSpec.describe DeleteAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:status) { Fabricate(:status, account: account) }
let!(:mention) { Fabricate(:mention, account: local_follower) }
let!(:status_with_mention) { Fabricate(:status, account: account, mentions: [mention]) }
@@ -23,8 +25,6 @@ RSpec.describe DeleteAccountService, type: :service do
let!(:account_note) { Fabricate(:account_note, account: account) }
- subject { described_class.new.call(account) }
-
it 'deletes associated owned records' do
expect { subject }.to change {
[
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index 3c294cf95..d09750dd2 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
+ subject { described_class.new }
+
let(:last_active_at) { Time.now.utc }
let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
@@ -8,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do
let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account }
let!(:tom) { Fabricate(:user, current_sign_in_at: last_active_at).account }
- subject { described_class.new }
-
before do
bob.follow!(alice)
tom.follow!(alice)
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 8703c2af8..4f621200a 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe FavouriteService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { FavouriteService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: bob) }
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index c39f52632..84c4035cb 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe FetchResourceService, type: :service do
describe '#call' do
- let(:url) { 'http://example.com' }
-
subject { described_class.new.call(url) }
+ let(:url) { 'http://example.com' }
+
context 'with blank url' do
let(:url) { '' }
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index 59073c27f..f95d59440 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe FollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { FollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
context 'local account' do
describe 'locked account' do
let(:bob) { Fabricate(:account, locked: true, username: 'bob') }
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 6a16928e0..79ccfa322 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe ProcessMentionsService, type: :service do
- let(:account) { Fabricate(:account, username: 'alice') }
-
subject { ProcessMentionsService.new }
+ let(:account) { Fabricate(:account, username: 'alice') }
+
context 'when mentions contain blocked accounts' do
let(:non_blocked_account) { Fabricate(:account) }
let(:individually_blocked_account) { Fabricate(:account) }
diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb
index 59285f126..7d8969ee8 100644
--- a/spec/services/purge_domain_service_spec.rb
+++ b/spec/services/purge_domain_service_spec.rb
@@ -1,13 +1,13 @@
require 'rails_helper'
RSpec.describe PurgeDomainService, type: :service do
+ subject { PurgeDomainService.new }
+
let!(:old_account) { Fabricate(:account, domain: 'obsolete.org') }
let!(:old_status1) { Fabricate(:status, account: old_account) }
let!(:old_status2) { Fabricate(:status, account: old_account) }
let!(:old_attachment) { Fabricate(:media_attachment, account: old_account, status: old_status2, file: attachment_fixture('attachment.jpg')) }
- subject { PurgeDomainService.new }
-
describe 'for a suspension' do
before do
subject.call('obsolete.org')
diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb
index c0ae5eedc..e2ac0154c 100644
--- a/spec/services/reblog_service_spec.rb
+++ b/spec/services/reblog_service_spec.rb
@@ -4,12 +4,12 @@ RSpec.describe ReblogService, type: :service do
let(:alice) { Fabricate(:account, username: 'alice') }
context 'creates a reblog with appropriate visibility' do
+ subject { ReblogService.new }
+
let(:visibility) { :public }
let(:reblog_visibility) { :public }
let(:status) { Fabricate(:status, account: alice, visibility: visibility) }
- subject { ReblogService.new }
-
before do
subject.call(alice, status, visibility: reblog_visibility)
end
@@ -45,11 +45,11 @@ RSpec.describe ReblogService, type: :service do
end
context 'ActivityPub' do
+ subject { ReblogService.new }
+
let(:bob) { Fabricate(:account, username: 'bob', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') }
let(:status) { Fabricate(:status, account: bob) }
- subject { ReblogService.new }
-
before do
stub_request(:post, bob.inbox_url)
allow(ActivityPub::DistributionWorker).to receive(:perform_async)
diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb
index e14bfa78d..97b7412b9 100644
--- a/spec/services/reject_follow_service_spec.rb
+++ b/spec/services/reject_follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe RejectFollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { RejectFollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb
index 9b9c846cf..782f859e2 100644
--- a/spec/services/remove_from_follwers_service_spec.rb
+++ b/spec/services/remove_from_follwers_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe RemoveFromFollowersService, type: :service do
- let(:bob) { Fabricate(:account, username: 'bob') }
-
subject { RemoveFromFollowersService.new }
+ let(:bob) { Fabricate(:account, username: 'bob') }
+
describe 'local' do
let(:sender) { Fabricate(:account, username: 'alice') }
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index 02bc42ac1..c3a3fddf8 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -29,13 +29,13 @@ RSpec.describe ReportService, type: :service do
end
context 'when the reported status is a DM' do
- let(:target_account) { Fabricate(:account) }
- let(:status) { Fabricate(:status, account: target_account, visibility: :direct) }
-
subject do
-> { described_class.new.call(source_account, target_account, status_ids: [status.id]) }
end
+ let(:target_account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: target_account, visibility: :direct) }
+
context 'when it is addressed to the reporter' do
before do
status.mentions.create(account: source_account)
@@ -85,13 +85,13 @@ RSpec.describe ReportService, type: :service do
end
context 'when other reports already exist for the same target' do
- let!(:target_account) { Fabricate(:account) }
- let!(:other_report) { Fabricate(:report, target_account: target_account) }
-
subject do
-> { described_class.new.call(source_account, target_account) }
end
+ let!(:target_account) { Fabricate(:account) }
+ let!(:other_report) { Fabricate(:report, target_account: target_account) }
+
before do
ActionMailer::Base.deliveries.clear
source_account.user.settings.notification_emails['report'] = true
diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb
index 126b13986..5701090b3 100644
--- a/spec/services/suspend_account_service_spec.rb
+++ b/spec/services/suspend_account_service_spec.rb
@@ -2,11 +2,11 @@ require 'rails_helper'
RSpec.describe SuspendAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account }
let!(:list) { Fabricate(:list, account: local_follower) }
- subject { described_class.new.call(account) }
-
before do
allow(FeedManager.instance).to receive(:unmerge_from_home).and_return(nil)
allow(FeedManager.instance).to receive(:unmerge_from_list).and_return(nil)
diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb
index b93945b9a..ae7d00c7d 100644
--- a/spec/services/unallow_domain_service_spec.rb
+++ b/spec/services/unallow_domain_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe UnallowDomainService, type: :service do
+ subject { UnallowDomainService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
@@ -8,8 +10,6 @@ RSpec.describe UnallowDomainService, type: :service do
let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) }
let!(:domain_allow) { Fabricate(:domain_allow, domain: 'evil.org') }
- subject { UnallowDomainService.new }
-
context 'in limited federation mode' do
before do
allow(subject).to receive(:whitelist_mode?).and_return(true)
diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb
index 10448b340..bd24005f6 100644
--- a/spec/services/unblock_service_spec.rb
+++ b/spec/services/unblock_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe UnblockService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { UnblockService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index bb5bef5c9..55969bef9 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe UnfollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { UnfollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb
index 987eb09e2..667507469 100644
--- a/spec/services/unsuspend_account_service_spec.rb
+++ b/spec/services/unsuspend_account_service_spec.rb
@@ -2,11 +2,11 @@ require 'rails_helper'
RSpec.describe UnsuspendAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account }
let!(:list) { Fabricate(:list, account: local_follower) }
- subject { described_class.new.call(account) }
-
before do
allow(FeedManager.instance).to receive(:merge_into_home).and_return(nil)
allow(FeedManager.instance).to receive(:merge_into_list).and_return(nil)
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index cb807fe24..a642405ae 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -4,6 +4,8 @@ require 'rails_helper'
RSpec.describe BlacklistedEmailValidator, type: :validator do
describe '#validate' do
+ subject { described_class.new.validate(user); errors }
+
let(:user) { double(email: 'info@mail.com', sign_up_ip: '1.2.3.4', errors: errors) }
let(:errors) { double(add: nil) }
@@ -12,8 +14,6 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email }
end
- subject { described_class.new.validate(user); errors }
-
context 'when e-mail provider is blocked' do
let(:blocked_email) { true }
diff --git a/spec/workers/move_worker_spec.rb b/spec/workers/move_worker_spec.rb
index 3ca6aaf4d..e93060adb 100644
--- a/spec/workers/move_worker_spec.rb
+++ b/spec/workers/move_worker_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe MoveWorker do
+ subject { described_class.new }
+
let(:local_follower) { Fabricate(:account) }
let(:blocking_account) { Fabricate(:account) }
let(:muting_account) { Fabricate(:account) }
@@ -14,8 +16,6 @@ describe MoveWorker do
let(:block_service) { double }
- subject { described_class.new }
-
before do
local_follower.follow!(source_account)
blocking_account.block!(source_account)
diff --git a/spec/workers/unfollow_follow_worker_spec.rb b/spec/workers/unfollow_follow_worker_spec.rb
index 5ea4256a9..8025b88c0 100644
--- a/spec/workers/unfollow_follow_worker_spec.rb
+++ b/spec/workers/unfollow_follow_worker_spec.rb
@@ -3,13 +3,13 @@
require 'rails_helper'
describe UnfollowFollowWorker do
+ subject { described_class.new }
+
let(:local_follower) { Fabricate(:account) }
let(:source_account) { Fabricate(:account) }
let(:target_account) { Fabricate(:account) }
let(:show_reblogs) { true }
- subject { described_class.new }
-
before do
local_follower.follow!(source_account, reblogs: show_reblogs)
end
From bf785df9fe044f2f13bfb93e6860a74084d8eb8a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:14:10 -0500
Subject: [PATCH 16/55] Audofix Rubocop Style/WordArray (#23739)
---
.rubocop_todo.yml | 23 -------------------
...000_add_statuses_index_on_account_id_id.rb | 2 +-
...for_api_v1_accounts_account_id_statuses.rb | 2 +-
lib/mastodon/maintenance_cli.rb | 8 +++----
lib/tasks/statistics.rake | 2 +-
.../api/v1/blocks_controller_spec.rb | 4 ++--
.../api/v1/bookmarks_controller_spec.rb | 4 ++--
.../api/v1/favourites_controller_spec.rb | 4 ++--
.../api/v1/mutes_controller_spec.rb | 4 ++--
.../settings/applications_controller_spec.rb | 2 +-
.../preferences/other_controller_spec.rb | 2 +-
spec/models/account_spec.rb | 2 +-
.../account_statuses_cleanup_policy_spec.rb | 2 +-
...h_featured_tags_collection_service_spec.rb | 2 +-
.../process_account_service_spec.rb | 2 +-
spec/services/delete_account_service_spec.rb | 6 ++---
...ccounts_statuses_cleanup_scheduler_spec.rb | 6 ++---
17 files changed, 27 insertions(+), 50 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1eb039110..ce1ef9a2b 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2667,26 +2667,3 @@ Style/UnpackFirst:
Exclude:
- 'app/models/concerns/account_interactions.rb'
- 'lib/paperclip/gif_transcoder.rb'
-
-# Offense count: 25
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle, MinSize, WordRegex.
-# SupportedStyles: percent, brackets
-Style/WordArray:
- Exclude:
- - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb'
- - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/tasks/statistics.rake'
- - 'spec/controllers/api/v1/blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/favourites_controller_spec.rb'
- - 'spec/controllers/api/v1/mutes_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/preferences/other_controller_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/delete_account_service_spec.rb'
- - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
diff --git a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
index 3e74346a8..86e425559 100644
--- a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
+++ b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
@@ -6,7 +6,7 @@ class AddStatusesIndexOnAccountIdId < ActiveRecord::Migration[5.1]
# of an account to show them in his status page is one of the most
# significant examples.
# Add this index to improve the performance in such cases.
- add_index 'statuses', ['account_id', 'id'], algorithm: :concurrently, name: 'index_statuses_on_account_id_id'
+ add_index 'statuses', %w(account_id id), algorithm: :concurrently, name: 'index_statuses_on_account_id_id'
remove_index 'statuses', algorithm: :concurrently, column: 'account_id', name: 'index_statuses_on_account_id'
end
diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
index e23880bf5..c00302804 100644
--- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
+++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
@@ -10,6 +10,6 @@ class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecor
# These index may not exists (see migration 20180514130000)
remove_index :statuses, column: [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently if index_exists?(:statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)')
- remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ['account_id', 'id'], where: '(visibility = 3)')
+ remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, %w(account_id id), where: '(visibility = 3)')
end
end
diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb
index bb3802f56..3e644045f 100644
--- a/lib/mastodon/maintenance_cli.rb
+++ b/lib/mastodon/maintenance_cli.rb
@@ -289,7 +289,7 @@ module Mastodon
end
@prompt.say 'Restoring account domain blocks indexes…'
- ActiveRecord::Base.connection.add_index :account_domain_blocks, ['account_id', 'domain'], name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true
+ ActiveRecord::Base.connection.add_index :account_domain_blocks, %w(account_id domain), name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true
end
def deduplicate_account_identity_proofs!
@@ -303,7 +303,7 @@ module Mastodon
end
@prompt.say 'Restoring account identity proofs indexes…'
- ActiveRecord::Base.connection.add_index :account_identity_proofs, ['account_id', 'provider', 'provider_username'], name: 'index_account_proofs_on_account_and_provider_and_username', unique: true
+ ActiveRecord::Base.connection.add_index :account_identity_proofs, %w(account_id provider provider_username), name: 'index_account_proofs_on_account_and_provider_and_username', unique: true
end
def deduplicate_announcement_reactions!
@@ -317,7 +317,7 @@ module Mastodon
end
@prompt.say 'Restoring announcement_reactions indexes…'
- ActiveRecord::Base.connection.add_index :announcement_reactions, ['account_id', 'announcement_id', 'name'], name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true
+ ActiveRecord::Base.connection.add_index :announcement_reactions, %w(account_id announcement_id name), name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true
end
def deduplicate_conversations!
@@ -359,7 +359,7 @@ module Mastodon
end
@prompt.say 'Restoring custom_emojis indexes…'
- ActiveRecord::Base.connection.add_index :custom_emojis, ['shortcode', 'domain'], name: 'index_custom_emojis_on_shortcode_and_domain', unique: true
+ ActiveRecord::Base.connection.add_index :custom_emojis, %w(shortcode domain), name: 'index_custom_emojis_on_shortcode_and_domain', unique: true
end
def deduplicate_custom_emoji_categories!
diff --git a/lib/tasks/statistics.rake b/lib/tasks/statistics.rake
index 440c309ce..dde7890f6 100644
--- a/lib/tasks/statistics.rake
+++ b/lib/tasks/statistics.rake
@@ -7,7 +7,7 @@ namespace :mastodon do
task :stats do
require 'rails/code_statistics'
[
- %w(App\ Libraries app/lib),
+ ['App Libraries', 'app/lib'],
%w(Presenters app/presenters),
%w(Services app/services),
%w(Validators app/validators),
diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb
index 0e5c8296d..cf996c47c 100644
--- a/spec/controllers/api/v1/blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/blocks_controller_spec.rb
@@ -37,13 +37,13 @@ RSpec.describe Api::V1::BlocksController, type: :controller do
it 'sets pagination header for next path' do
blocks = 2.times.map { Fabricate(:block, account: user.account) }
get :index, params: { limit: 1, since_id: blocks[0] }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1])
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1])
end
it 'sets pagination header for previous path' do
block = Fabricate(:block, account: user.account)
get :index
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_blocks_url(since_id: block)
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_blocks_url(since_id: block)
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index 279d1a435..b7af60d2b 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -63,8 +63,8 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
get :index, params: { limit: 1 }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}"
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}"
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}"
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}"
end
it 'does not add pagination headers if not necessary' do
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index 512dd0c0d..dfa3f1101 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -63,8 +63,8 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
get :index, params: { limit: 1 }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}"
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}"
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}"
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}"
end
it 'does not add pagination headers if not necessary' do
diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb
index 8176815d4..8288cb815 100644
--- a/spec/controllers/api/v1/mutes_controller_spec.rb
+++ b/spec/controllers/api/v1/mutes_controller_spec.rb
@@ -37,13 +37,13 @@ RSpec.describe Api::V1::MutesController, type: :controller do
it 'sets pagination header for next path' do
mutes = 2.times.map { Fabricate(:mute, account: user.account) }
get :index, params: { limit: 1, since_id: mutes[0] }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1])
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1])
end
it 'sets pagination header for previous path' do
mute = Fabricate(:mute, account: user.account)
get :index
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_mutes_url(since_id: mute)
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_mutes_url(since_id: mute)
end
it 'returns http success' do
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index 33d874d10..a653b87c7 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -73,7 +73,7 @@ describe Settings::ApplicationsController do
name: 'My New App',
redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',
website: 'http://google.com',
- scopes: ['read', 'write', 'follow'],
+ scopes: %w(read write follow),
},
}
response
diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb
index dd7f01847..ffb37e0bd 100644
--- a/spec/controllers/settings/preferences/other_controller_spec.rb
+++ b/spec/controllers/settings/preferences/other_controller_spec.rb
@@ -23,7 +23,7 @@ describe Settings::Preferences::OtherController do
expect(response).to redirect_to(settings_preferences_other_path)
user.reload
expect(user.locale).to eq 'en'
- expect(user.chosen_languages).to eq ['es', 'fr']
+ expect(user.chosen_languages).to eq %w(es fr)
end
it 'updates user settings' do
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 726e33048..24239f85d 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -895,7 +895,7 @@ RSpec.describe Account, type: :model do
describe 'partitioned' do
it 'returns a relation of accounts partitioned by domain' do
- matches = ['a', 'b', 'a', 'b']
+ matches = %w(a b a b)
matches.size.times.to_a.shuffle.each do |index|
matches[index] = Fabricate(:account, domain: matches[index])
end
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index 8bd86730b..d170050fc 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -262,7 +262,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
let!(:direct_message) { Fabricate(:status, created_at: 1.year.ago, account: account, visibility: :direct) }
let!(:self_faved) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:self_bookmarked) { Fabricate(:status, created_at: 1.year.ago, account: account) }
- let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: ['a', 'b'], expires_in: 2.days }) }
+ let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: %w(a b), expires_in: 2.days }) }
let!(:status_with_media) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:faved4) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:faved5) { Fabricate(:status, created_at: 1.year.ago, account: account) }
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 2110baa2d..4f828bacc 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d
end
it 'sets expected tags as pinned tags' do
- expect(actor.featured_tags.map(&:display_name)).to match_array ['Foo', 'bar', 'baZ']
+ expect(actor.featured_tags.map(&:display_name)).to match_array %w(Foo bar baZ)
end
end
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 6c3236bae..78282e453 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
attachment: [
{ type: 'PropertyValue', name: 'Pronouns', value: 'They/them' },
{ type: 'PropertyValue', name: 'Occupation', value: 'Unit test' },
- { type: 'PropertyValue', name: 'non-string', value: ['foo', 'bar'] },
+ { type: 'PropertyValue', name: 'non-string', value: %w(foo bar) },
],
}.with_indifferent_access
end
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index d0cc8d288..e5bfdd679 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -50,9 +50,9 @@ RSpec.describe DeleteAccountService, type: :service do
it 'deletes associated target notifications' do
expect { subject }.to change {
- [
- 'poll', 'favourite', 'status', 'mention', 'follow'
- ].map { |type| Notification.where(type: type).count }
+ %w(
+ poll favourite status mention follow
+ ).map { |type| Notification.where(type: type).count }
}.from([1, 1, 1, 1, 1]).to([0, 0, 0, 0, 0])
end
end
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index 8faf04836..a5dfed369 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -19,7 +19,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
[
{
'concurrency' => 2,
- 'queues' => ['push', 'default'],
+ 'queues' => %w(push default),
},
]
end
@@ -82,7 +82,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
describe '#get_budget' do
context 'on a single thread' do
- let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => ['push', 'default'] }] }
+ let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => %w(push default) }] }
it 'returns a low value' do
expect(subject.compute_budget).to be < 10
@@ -92,7 +92,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
context 'on a lot of threads' do
let(:process_set_stub) do
[
- { 'concurrency' => 2, 'queues' => ['push', 'default'] },
+ { 'concurrency' => 2, 'queues' => %w(push default) },
{ 'concurrency' => 2, 'queues' => ['push'] },
{ 'concurrency' => 2, 'queues' => ['push'] },
{ 'concurrency' => 2, 'queues' => ['push'] },
From 5116347eb7cfd0a09f55efbd84f8d3fa11d4d6ba Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:14:50 -0500
Subject: [PATCH 17/55] Autofix Rubocop RSpec/BeEq (#23740)
---
.rubocop_todo.yml | 43 -------------------
.../export_domain_allows_controller_spec.rb | 2 +-
.../admin/reports/actions_controller_spec.rb | 2 +-
.../admin/reports_controller_spec.rb | 8 ++--
..._factor_authentications_controller_spec.rb | 6 +--
.../accounts/credentials_controller_spec.rb | 2 +-
.../api/v1/bookmarks_controller_spec.rb | 2 +-
.../api/v1/favourites_controller_spec.rb | 2 +-
.../v2/filters/keywords_controller_spec.rb | 4 +-
.../application_controller_spec.rb | 6 +--
.../auth/registrations_controller_spec.rb | 6 +--
.../statuses_cleanup_controller_spec.rb | 6 +--
spec/helpers/application_helper_spec.rb | 10 ++---
spec/helpers/jsonld_helper_spec.rb | 12 +++---
spec/lib/activitypub/activity/add_spec.rb | 8 ++--
spec/lib/activitypub/activity/create_spec.rb | 4 +-
spec/lib/feed_manager_spec.rb | 28 ++++++------
spec/lib/ostatus/tag_manager_spec.rb | 6 +--
spec/lib/tag_manager_spec.rb | 20 ++++-----
spec/lib/user_settings_decorator_spec.rb | 20 ++++-----
spec/models/account_domain_block_spec.rb | 4 +-
spec/models/account_spec.rb | 20 ++++-----
spec/models/block_spec.rb | 8 ++--
spec/models/domain_block_spec.rb | 6 +--
spec/models/favourite_spec.rb | 2 +-
spec/models/media_attachment_spec.rb | 2 +-
spec/models/user_spec.rb | 2 +-
spec/models/web/push_subscription_spec.rb | 12 +++---
.../process_status_update_service_spec.rb | 2 +-
spec/services/fetch_oembed_service_spec.rb | 6 +--
spec/services/fetch_resource_service_spec.rb | 2 +-
spec/services/post_status_service_spec.rb | 2 +-
spec/services/precompute_feed_service_spec.rb | 2 +-
spec/services/resolve_account_service_spec.rb | 12 +++---
.../examples/lib/settings/scoped_settings.rb | 32 +++++++-------
spec/workers/domain_block_worker_spec.rb | 2 +-
.../workers/domain_clear_media_worker_spec.rb | 2 +-
spec/workers/feed_insert_worker_spec.rb | 4 +-
spec/workers/regeneration_worker_spec.rb | 2 +-
39 files changed, 139 insertions(+), 182 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index ce1ef9a2b..86a48a170 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -545,49 +545,6 @@ RSpec/AnyInstance:
- 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
-# Offense count: 139
-# This cop supports unsafe autocorrection (--autocorrect-all).
-RSpec/BeEq:
- Exclude:
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/admin/reports_controller_spec.rb'
- - 'spec/controllers/admin/users/two_factor_authentications_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/favourites_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/statuses_cleanup_controller_spec.rb'
- - 'spec/helpers/application_helper_spec.rb'
- - 'spec/helpers/jsonld_helper_spec.rb'
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/feed_manager_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/tag_manager_spec.rb'
- - 'spec/lib/user_settings_decorator_spec.rb'
- - 'spec/models/account_domain_block_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/block_spec.rb'
- - 'spec/models/domain_block_spec.rb'
- - 'spec/models/favourite_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/web/push_subscription_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
- - 'spec/services/post_status_service_spec.rb'
- - 'spec/services/precompute_feed_service_spec.rb'
- - 'spec/services/resolve_account_service_spec.rb'
- - 'spec/support/examples/lib/settings/scoped_settings.rb'
- - 'spec/workers/domain_block_worker_spec.rb'
- - 'spec/workers/domain_clear_media_worker_spec.rb'
- - 'spec/workers/feed_insert_worker_spec.rb'
- - 'spec/workers/regeneration_worker_spec.rb'
-
# Offense count: 1
RSpec/BeforeAfterAll:
Exclude:
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 1e1a5ae7d..7ee064de7 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
expect(response).to redirect_to(admin_instances_path)
# Header should not be imported
- expect(DomainAllow.where(domain: '#domain').present?).to eq(false)
+ expect(DomainAllow.where(domain: '#domain').present?).to be(false)
# Domains should now be added
get :export, params: { format: :csv }
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index db3a1d311..20f85680f 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -116,7 +116,7 @@ describe Admin::Reports::ActionsController do
it 'marks the non-deleted as sensitive' do
subject
- expect(media_attached_status.reload.sensitive).to eq true
+ expect(media_attached_status.reload.sensitive).to be true
end
end
end
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index 4dcc277d9..c6b5770a8 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -55,7 +55,7 @@ describe Admin::ReportsController do
expect(response).to redirect_to(admin_reports_path)
report.reload
expect(report.action_taken_by_account).to eq user.account
- expect(report.action_taken?).to eq true
+ expect(report.action_taken?).to be true
end
end
@@ -66,8 +66,8 @@ describe Admin::ReportsController do
put :reopen, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
- expect(report.action_taken_by_account).to eq nil
- expect(report.action_taken?).to eq false
+ expect(report.action_taken_by_account).to be_nil
+ expect(report.action_taken?).to be false
end
end
@@ -89,7 +89,7 @@ describe Admin::ReportsController do
put :unassign, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
- expect(report.assigned_account).to eq nil
+ expect(report.assigned_account).to be_nil
end
end
end
diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
index e56264ef6..990dcf640 100644
--- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -20,7 +20,7 @@ describe Admin::Users::TwoFactorAuthenticationsController do
delete :destroy, params: { user_id: user.id }
user.reload
- expect(user.otp_enabled?).to eq false
+ expect(user.otp_enabled?).to be false
expect(response).to redirect_to(admin_account_path(user.account_id))
end
end
@@ -43,8 +43,8 @@ describe Admin::Users::TwoFactorAuthenticationsController do
delete :destroy, params: { user_id: user.id }
user.reload
- expect(user.otp_enabled?).to eq false
- expect(user.webauthn_enabled?).to eq false
+ expect(user.otp_enabled?).to be false
+ expect(user.webauthn_enabled?).to be false
expect(response).to redirect_to(admin_account_path(user.account_id))
end
end
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index cf91aae38..3494ca674 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -51,7 +51,7 @@ describe Api::V1::Accounts::CredentialsController do
expect(user.account.avatar).to exist
expect(user.account.header).to exist
expect(user.setting_default_privacy).to eq('unlisted')
- expect(user.setting_default_sensitive).to eq(true)
+ expect(user.setting_default_sensitive).to be(true)
end
it 'queues up an account update distribution' do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index b7af60d2b..48332b15a 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'does not add pagination headers if not necessary' do
get :index
- expect(response.headers['Link']).to eq nil
+ expect(response.headers['Link']).to be_nil
end
end
end
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index dfa3f1101..f0fb8f37b 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'does not add pagination headers if not necessary' do
get :index
- expect(response.headers['Link']).to eq nil
+ expect(response.headers['Link']).to be_nil
end
end
end
diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
index 1201a4ca2..0e0f52ea8 100644
--- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
it 'returns a keyword' do
json = body_as_json
expect(json[:keyword]).to eq 'magic'
- expect(json[:whole_word]).to eq false
+ expect(json[:whole_word]).to be false
end
it 'creates a keyword' do
@@ -78,7 +78,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
it 'returns expected data' do
json = body_as_json
expect(json[:keyword]).to eq 'foo'
- expect(json[:whole_word]).to eq false
+ expect(json[:whole_word]).to be false
end
context "when trying to access another user's filter keyword" do
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index e2a63002b..35c7326cb 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -57,19 +57,19 @@ describe ApplicationController, type: :controller do
describe 'helper_method :single_user_mode?' do
it 'returns false if it is in single_user_mode but there is no account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
- expect(controller.view_context.single_user_mode?).to eq false
+ expect(controller.view_context.single_user_mode?).to be false
end
it 'returns false if there is an account but it is not in single_user_mode' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
Fabricate(:account)
- expect(controller.view_context.single_user_mode?).to eq false
+ expect(controller.view_context.single_user_mode?).to be false
end
it 'returns true if it is in single_user_mode and there is an account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
Fabricate(:account)
- expect(controller.view_context.single_user_mode?).to eq true
+ expect(controller.view_context.single_user_mode?).to be true
end
end
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 8cfb8e277..f42f685c1 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -163,7 +163,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(false)
+ expect(user.approved).to be(false)
end
end
@@ -191,7 +191,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(false)
+ expect(user.approved).to be(false)
end
end
@@ -223,7 +223,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(true)
+ expect(user.approved).to be(true)
end
end
diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb
index 347fe4027..24b4ea7b6 100644
--- a/spec/controllers/statuses_cleanup_controller_spec.rb
+++ b/spec/controllers/statuses_cleanup_controller_spec.rb
@@ -19,9 +19,9 @@ RSpec.describe StatusesCleanupController, type: :controller do
it 'updates the account status cleanup policy' do
put :update, params: { account_statuses_cleanup_policy: { enabled: true, min_status_age: 2.weeks.seconds, keep_direct: false, keep_polls: true } }
expect(response).to redirect_to(statuses_cleanup_path)
- expect(@user.account.statuses_cleanup_policy.enabled).to eq true
- expect(@user.account.statuses_cleanup_policy.keep_direct).to eq false
- expect(@user.account.statuses_cleanup_policy.keep_polls).to eq true
+ expect(@user.account.statuses_cleanup_policy.enabled).to be true
+ expect(@user.account.statuses_cleanup_policy.keep_direct).to be false
+ expect(@user.account.statuses_cleanup_policy.keep_polls).to be true
end
end
end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 6502cfebf..e0f71afd5 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -65,7 +65,7 @@ describe ApplicationHelper do
expect(Setting).to receive(:registrations_mode).and_return('open')
end
- expect(helper.open_registrations?).to eq true
+ expect(helper.open_registrations?).to be true
end
it 'returns false when closed for registrations' do
@@ -73,7 +73,7 @@ describe ApplicationHelper do
expect(Setting).to receive(:registrations_mode).and_return('none')
end
- expect(helper.open_registrations?).to eq false
+ expect(helper.open_registrations?).to be false
end
end
@@ -84,7 +84,7 @@ describe ApplicationHelper do
end
it 'does not show landing strip' do
- expect(helper.show_landing_strip?).to eq false
+ expect(helper.show_landing_strip?).to be false
end
end
@@ -96,13 +96,13 @@ describe ApplicationHelper do
it 'does not show landing strip on single user instance' do
allow(helper).to receive(:single_user_mode?).and_return(true)
- expect(helper.show_landing_strip?).to eq false
+ expect(helper.show_landing_strip?).to be false
end
it 'shows landing strip on multi user instance' do
allow(helper).to receive(:single_user_mode?).and_return(false)
- expect(helper.show_landing_strip?).to eq true
+ expect(helper.show_landing_strip?).to be true
end
end
end
diff --git a/spec/helpers/jsonld_helper_spec.rb b/spec/helpers/jsonld_helper_spec.rb
index debee17f0..ddd4bfe62 100644
--- a/spec/helpers/jsonld_helper_spec.rb
+++ b/spec/helpers/jsonld_helper_spec.rb
@@ -66,14 +66,14 @@ describe JsonLdHelper do
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://marvin.test/"}'
stub_request(:get, 'https://marvin.test/').to_return body: '{"id": "https://alice.test/"}'
- expect(fetch_resource('https://mallory.test/', false)).to eq nil
+ expect(fetch_resource('https://mallory.test/', false)).to be_nil
end
end
context 'when the second argument is true' do
it 'returns nil if the retrieved ID and the given URI does not match' do
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://alice.test/"}'
- expect(fetch_resource('https://mallory.test/', true)).to eq nil
+ expect(fetch_resource('https://mallory.test/', true)).to be_nil
end
end
end
@@ -81,7 +81,7 @@ describe JsonLdHelper do
describe '#fetch_resource_without_id_validation' do
it 'returns nil if the status code is not 200' do
stub_request(:get, 'https://host.test/').to_return status: 400, body: '{}'
- expect(fetch_resource_without_id_validation('https://host.test/')).to eq nil
+ expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil
end
it 'returns hash' do
@@ -150,7 +150,7 @@ describe JsonLdHelper do
patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
expect(compacted.dig('object', 'tag', 0, 'href')).to eq ['foo']
- expect(safe_for_forwarding?(json, compacted)).to eq true
+ expect(safe_for_forwarding?(json, compacted)).to be true
end
end
@@ -160,14 +160,14 @@ describe JsonLdHelper do
compacted = compact(json)
deemed_compatible = patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
- expect(safe_for_forwarding?(json, compacted)).to eq true
+ expect(safe_for_forwarding?(json, compacted)).to be true
end
it 'deems an unsafe compacting as such' do
compacted = compact(json)
deemed_compatible = patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
- expect(safe_for_forwarding?(json, compacted)).to eq false
+ expect(safe_for_forwarding?(json, compacted)).to be false
end
end
end
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index e21c871e6..a69c3d2b1 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -50,8 +50,8 @@ RSpec.describe ActivityPub::Activity::Add do
it 'fetches the status and pins it' do
allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
- expect(id).to eq true
- expect(on_behalf_of&.following?(sender)).to eq true
+ expect(id).to be true
+ expect(on_behalf_of&.following?(sender)).to be true
status
end
subject.perform
@@ -64,8 +64,8 @@ RSpec.describe ActivityPub::Activity::Add do
it 'tries to fetch the status' do
allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
- expect(id).to eq true
- expect(on_behalf_of).to eq nil
+ expect(id).to be true
+ expect(on_behalf_of).to be_nil
nil
end
subject.perform
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index c26c8b358..fd4983037 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -51,7 +51,7 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.edited?).to eq true
+ expect(status.edited?).to be true
end
end
@@ -77,7 +77,7 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.edited?).to eq false
+ expect(status.edited?).to be false
end
end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index 7195cec06..d54050f8f 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -297,7 +297,7 @@ RSpec.describe FeedManager do
status = Fabricate(:status, reblog: reblog)
FeedManager.instance.push_to_home(account, status)
- expect(FeedManager.instance.push_to_home(account, reblog)).to eq false
+ expect(FeedManager.instance.push_to_home(account, reblog)).to be false
end
end
@@ -322,7 +322,7 @@ RSpec.describe FeedManager do
status = Fabricate(:status, reblog: reblog)
FeedManager.instance.push_to_list(list, status)
- expect(FeedManager.instance.push_to_list(list, reblog)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reblog)).to be false
end
context 'when replies policy is set to no replies' do
@@ -332,19 +332,19 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'does not push replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reply)).to be false
end
end
@@ -355,25 +355,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'does not push replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reply)).to be false
end
end
@@ -384,25 +384,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
end
end
@@ -416,7 +416,7 @@ RSpec.describe FeedManager do
FeedManager.instance.merge_into_home(account, reblog.account)
- expect(redis.zscore('feed:home:0', reblog.id)).to eq nil
+ expect(redis.zscore('feed:home:0', reblog.id)).to be_nil
end
end
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
index 65ba7577a..8104a7e79 100644
--- a/spec/lib/ostatus/tag_manager_spec.rb
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -15,15 +15,15 @@ describe OStatus::TagManager do
end
it 'returns nil if it is not local id' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to be_nil
end
it 'returns nil if it is not expected type' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to be_nil
end
it 'returns nil if it does not have object ID' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to be_nil
end
end
diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb
index cd9fb936c..d2bb24c0f 100644
--- a/spec/lib/tag_manager_spec.rb
+++ b/spec/lib/tag_manager_spec.rb
@@ -14,15 +14,15 @@ RSpec.describe TagManager do
end
it 'returns true for nil' do
- expect(TagManager.instance.local_domain?(nil)).to eq true
+ expect(TagManager.instance.local_domain?(nil)).to be true
end
it 'returns true if the slash-stripped string equals to local domain' do
- expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to be true
end
it 'returns false for irrelevant string' do
- expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to eq false
+ expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to be false
end
end
@@ -39,21 +39,21 @@ RSpec.describe TagManager do
end
it 'returns true for nil' do
- expect(TagManager.instance.web_domain?(nil)).to eq true
+ expect(TagManager.instance.web_domain?(nil)).to be true
end
it 'returns true if the slash-stripped string equals to web domain' do
- expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to be true
end
it 'returns false for string with irrelevant characters' do
- expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to eq false
+ expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to be false
end
end
describe '#normalize_domain' do
it 'returns nil if the given parameter is nil' do
- expect(TagManager.instance.normalize_domain(nil)).to eq nil
+ expect(TagManager.instance.normalize_domain(nil)).to be_nil
end
it 'returns normalized domain' do
@@ -70,17 +70,17 @@ RSpec.describe TagManager do
it 'returns true if the normalized string with port is local URL' do
Rails.configuration.x.web_domain = 'domain.example.com:42'
- expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to eq true
+ expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to be true
end
it 'returns true if the normalized string without port is local URL' do
Rails.configuration.x.web_domain = 'domain.example.com'
- expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to be true
end
it 'returns false for string with irrelevant characters' do
Rails.configuration.x.web_domain = 'domain.example.com'
- expect(TagManager.instance.local_url?('https://domain.example.net/')).to eq false
+ expect(TagManager.instance.local_url?('https://domain.example.net/')).to be false
end
end
end
diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb
index 462c5b124..3b9b7ee2b 100644
--- a/spec/lib/user_settings_decorator_spec.rb
+++ b/spec/lib/user_settings_decorator_spec.rb
@@ -11,14 +11,14 @@ describe UserSettingsDecorator do
values = { 'notification_emails' => { 'follow' => '1' } }
settings.update(values)
- expect(user.settings['notification_emails']['follow']).to eq true
+ expect(user.settings['notification_emails']['follow']).to be true
end
it 'updates the user settings value for interactions' do
values = { 'interactions' => { 'must_be_follower' => '0' } }
settings.update(values)
- expect(user.settings['interactions']['must_be_follower']).to eq false
+ expect(user.settings['interactions']['must_be_follower']).to be false
end
it 'updates the user settings value for privacy' do
@@ -32,42 +32,42 @@ describe UserSettingsDecorator do
values = { 'setting_default_sensitive' => '1' }
settings.update(values)
- expect(user.settings['default_sensitive']).to eq true
+ expect(user.settings['default_sensitive']).to be true
end
it 'updates the user settings value for unfollow modal' do
values = { 'setting_unfollow_modal' => '0' }
settings.update(values)
- expect(user.settings['unfollow_modal']).to eq false
+ expect(user.settings['unfollow_modal']).to be false
end
it 'updates the user settings value for boost modal' do
values = { 'setting_boost_modal' => '1' }
settings.update(values)
- expect(user.settings['boost_modal']).to eq true
+ expect(user.settings['boost_modal']).to be true
end
it 'updates the user settings value for delete toot modal' do
values = { 'setting_delete_modal' => '0' }
settings.update(values)
- expect(user.settings['delete_modal']).to eq false
+ expect(user.settings['delete_modal']).to be false
end
it 'updates the user settings value for gif auto play' do
values = { 'setting_auto_play_gif' => '0' }
settings.update(values)
- expect(user.settings['auto_play_gif']).to eq false
+ expect(user.settings['auto_play_gif']).to be false
end
it 'updates the user settings value for system font in UI' do
values = { 'setting_system_font_ui' => '0' }
settings.update(values)
- expect(user.settings['system_font_ui']).to eq false
+ expect(user.settings['system_font_ui']).to be false
end
it 'decoerces setting values before applying' do
@@ -77,8 +77,8 @@ describe UserSettingsDecorator do
}
settings.update(values)
- expect(user.settings['delete_modal']).to eq false
- expect(user.settings['boost_modal']).to eq true
+ expect(user.settings['delete_modal']).to be false
+ expect(user.settings['boost_modal']).to be true
end
end
end
diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb
index 469bc05cb..a170abcd2 100644
--- a/spec/models/account_domain_block_spec.rb
+++ b/spec/models/account_domain_block_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe AccountDomainBlock, type: :model do
AccountDomainBlock.create!(account: account, domain: 'a.domain.blocked.later')
- expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false
end
it 'removes blocking cache after destruction' do
@@ -17,6 +17,6 @@ RSpec.describe AccountDomainBlock, type: :model do
block.destroy!
- expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 24239f85d..f3ad19877 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -160,7 +160,7 @@ RSpec.describe Account, type: :model do
it 'sets default avatar, header, avatar_remote_url, and header_remote_url' do
expect(account.avatar_remote_url).to eq 'https://remote.test/invalid_avatar'
expect(account.header_remote_url).to eq expectation.header_remote_url
- expect(account.avatar_file_name).to eq nil
+ expect(account.avatar_file_name).to be_nil
expect(account.header_file_name).to eq expectation.header_file_name
end
end
@@ -259,11 +259,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has favourited it' do
Fabricate(:favourite, status: original_reblog, account: subject)
- expect(subject.favourited?(original_status)).to eq true
+ expect(subject.favourited?(original_status)).to be true
end
it 'is false when this account has not favourited it' do
- expect(subject.favourited?(original_status)).to eq false
+ expect(subject.favourited?(original_status)).to be false
end
end
@@ -271,11 +271,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has favourited it' do
Fabricate(:favourite, status: original_status, account: subject)
- expect(subject.favourited?(original_status)).to eq true
+ expect(subject.favourited?(original_status)).to be true
end
it 'is false when this account has not favourited it' do
- expect(subject.favourited?(original_status)).to eq false
+ expect(subject.favourited?(original_status)).to be false
end
end
end
@@ -297,11 +297,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has reblogged it' do
Fabricate(:status, reblog: original_reblog, account: subject)
- expect(subject.reblogged?(original_reblog)).to eq true
+ expect(subject.reblogged?(original_reblog)).to be true
end
it 'is false when this account has not reblogged it' do
- expect(subject.reblogged?(original_reblog)).to eq false
+ expect(subject.reblogged?(original_reblog)).to be false
end
end
@@ -309,11 +309,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has reblogged it' do
Fabricate(:status, reblog: original_status, account: subject)
- expect(subject.reblogged?(original_status)).to eq true
+ expect(subject.reblogged?(original_status)).to be true
end
it 'is false when this account has not reblogged it' do
- expect(subject.reblogged?(original_status)).to eq false
+ expect(subject.reblogged?(original_status)).to be false
end
end
end
@@ -958,7 +958,7 @@ RSpec.describe Account, type: :model do
# Test disabled because test environment omits autogenerating keys for performance
xit 'generates keys' do
account = Account.create!(domain: nil, username: Faker::Internet.user_name(separators: ['_']))
- expect(account.keypair.private?).to eq true
+ expect(account.keypair.private?).to be true
end
end
diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb
index acbdc77f5..1fd60c29d 100644
--- a/spec/models/block_spec.rb
+++ b/spec/models/block_spec.rb
@@ -28,8 +28,8 @@ RSpec.describe Block, type: :model do
Block.create!(account: account, target_account: target_account)
- expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false
- expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false
end
it 'removes blocking cache after destruction' do
@@ -41,7 +41,7 @@ RSpec.describe Block, type: :model do
block.destroy!
- expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false
- expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false
end
end
diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb
index 28647dc89..d1d57c167 100644
--- a/spec/models/domain_block_spec.rb
+++ b/spec/models/domain_block_spec.rb
@@ -24,16 +24,16 @@ RSpec.describe DomainBlock, type: :model do
describe '.blocked?' do
it 'returns true if the domain is suspended' do
Fabricate(:domain_block, domain: 'example.com', severity: :suspend)
- expect(DomainBlock.blocked?('example.com')).to eq true
+ expect(DomainBlock.blocked?('example.com')).to be true
end
it 'returns false even if the domain is silenced' do
Fabricate(:domain_block, domain: 'example.com', severity: :silence)
- expect(DomainBlock.blocked?('example.com')).to eq false
+ expect(DomainBlock.blocked?('example.com')).to be false
end
it 'returns false if the domain is not suspended nor silenced' do
- expect(DomainBlock.blocked?('example.com')).to eq false
+ expect(DomainBlock.blocked?('example.com')).to be false
end
end
diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb
index ba1410a45..f755590ee 100644
--- a/spec/models/favourite_spec.rb
+++ b/spec/models/favourite_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe Favourite, type: :model do
it 'invalidates if the reblogged status is already a favourite' do
Favourite.create!(account: account, status: reblog)
- expect(Favourite.new(account: account, status: status).valid?).to eq false
+ expect(Favourite.new(account: account, status: status).valid?).to be false
end
it 'replaces status with the reblogged one if it is a reblog' do
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 57e131423..097c76f31 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -138,7 +138,7 @@ RSpec.describe MediaAttachment, type: :model do
end
it 'extracts thumbnail' do
- expect(media.thumbnail.present?).to eq true
+ expect(media.thumbnail.present?).to be true
end
it 'extracts colors from thumbnail' do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 9af616b32..9dfd6678a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -46,7 +46,7 @@ RSpec.describe User, type: :model do
it 'cleans out empty string from languages' do
user = Fabricate.build(:user, chosen_languages: [''])
user.valid?
- expect(user.chosen_languages).to eq nil
+ expect(user.chosen_languages).to be_nil
end
end
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index 388154000..a5c34f4ed 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -39,7 +39,7 @@ RSpec.describe Web::PushSubscription, type: :model do
let(:policy) { 'all' }
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
@@ -47,7 +47,7 @@ RSpec.describe Web::PushSubscription, type: :model do
let(:policy) { 'none' }
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
@@ -60,13 +60,13 @@ RSpec.describe Web::PushSubscription, type: :model do
end
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
context 'and notification is not from someone you follow' do
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
end
@@ -80,13 +80,13 @@ RSpec.describe Web::PushSubscription, type: :model do
end
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
context 'and notification is not from someone who follows you' do
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
end
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 3d6f76163..c8aa56def 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -410,7 +410,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
end
it 'removes poll' do
- expect(status.reload.poll).to eq nil
+ expect(status.reload.poll).to be_nil
end
it 'records media change in edit' do
diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb
index cf46f2d39..8a0b49222 100644
--- a/spec/services/fetch_oembed_service_spec.rb
+++ b/spec/services/fetch_oembed_service_spec.rb
@@ -62,7 +62,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html', format: :xml)
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
@@ -83,7 +83,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html')
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
@@ -104,7 +104,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html')
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 84c4035cb..226c98d70 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -74,7 +74,7 @@ RSpec.describe FetchResourceService, type: :service do
context 'when content type is application/atom+xml' do
let(:content_type) { 'application/atom+xml' }
- it { is_expected.to eq nil }
+ it { is_expected.to be_nil }
end
context 'when content type is activity+json' do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 2148f1819..c34f2393a 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -216,7 +216,7 @@ RSpec.describe PostStatusService, type: :service do
media_ids: [media.id]
)
- expect(media.reload.status).to eq nil
+ expect(media.reload.status).to be_nil
end
it 'does not allow attaching more than 4 files' do
diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb
index b28824f9a..86ab59b29 100644
--- a/spec/services/precompute_feed_service_spec.rb
+++ b/spec/services/precompute_feed_service_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe PrecomputeFeedService, type: :service do
subject.call(account)
- expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to eq nil
+ expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to be_nil
end
end
end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 192225229..02869f8c8 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -108,7 +108,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('Foo@redirected.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.acct).to eq 'foo@ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -123,7 +123,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('Foo@redirected.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.acct).to eq 'foo@ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -146,7 +146,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -159,7 +159,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.actor_type).to eq 'Person'
@@ -174,7 +174,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.uri).to eq 'https://ap.example.com/users/foo'
@@ -195,7 +195,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.uri).to eq 'https://ap.example.com/users/foo'
diff --git a/spec/support/examples/lib/settings/scoped_settings.rb b/spec/support/examples/lib/settings/scoped_settings.rb
index 2457dcfbf..106adb4fa 100644
--- a/spec/support/examples/lib/settings/scoped_settings.rb
+++ b/spec/support/examples/lib/settings/scoped_settings.rb
@@ -3,13 +3,13 @@
shared_examples 'ScopedSettings' do
describe '[]' do
it 'inherits default settings' do
- expect(Setting.boost_modal).to eq false
- expect(Setting.interactions['must_be_follower']).to eq false
+ expect(Setting.boost_modal).to be false
+ expect(Setting.interactions['must_be_follower']).to be false
settings = create!
- expect(settings['boost_modal']).to eq false
- expect(settings['interactions']['must_be_follower']).to eq false
+ expect(settings['boost_modal']).to be false
+ expect(settings['interactions']['must_be_follower']).to be false
end
end
@@ -17,16 +17,16 @@ shared_examples 'ScopedSettings' do
# expecting [] and []= works
it 'returns records merged with default values except hashes' do
- expect(Setting.boost_modal).to eq false
- expect(Setting.delete_modal).to eq true
+ expect(Setting.boost_modal).to be false
+ expect(Setting.delete_modal).to be true
settings = create!
settings['boost_modal'] = true
records = settings.all_as_records
- expect(records['boost_modal'].value).to eq true
- expect(records['delete_modal'].value).to eq true
+ expect(records['boost_modal'].value).to be true
+ expect(records['delete_modal'].value).to be true
end
end
@@ -34,15 +34,15 @@ shared_examples 'ScopedSettings' do
# expecting [] and []= works.
it 'reads settings' do
- expect(Setting.boost_modal).to eq false
+ expect(Setting.boost_modal).to be false
settings = create!
- expect(settings.boost_modal).to eq false
+ expect(settings.boost_modal).to be false
end
it 'updates settings' do
settings = fabricate
settings.boost_modal = true
- expect(settings['boost_modal']).to eq true
+ expect(settings['boost_modal']).to be true
end
end
@@ -54,13 +54,13 @@ shared_examples 'ScopedSettings' do
Setting.save!
- expect(settings['boost_modal']).to eq true
- expect(settings['interactions']['must_be_follower']).to eq true
+ expect(settings['boost_modal']).to be true
+ expect(settings['interactions']['must_be_follower']).to be true
Rails.cache.clear
- expect(settings['boost_modal']).to eq true
- expect(settings['interactions']['must_be_follower']).to eq true
+ expect(settings['boost_modal']).to be true
+ expect(settings['interactions']['must_be_follower']).to be true
end
xit 'does not mutate defaults via the cache' do
@@ -69,6 +69,6 @@ shared_examples 'ScopedSettings' do
# This mutates the global settings default such that future
# instances will inherit the incorrect starting values
- expect(fabricate.settings['interactions']['must_be_follower']).to eq false
+ expect(fabricate.settings['interactions']['must_be_follower']).to be false
end
end
diff --git a/spec/workers/domain_block_worker_spec.rb b/spec/workers/domain_block_worker_spec.rb
index bd8fc4a62..8b98443fa 100644
--- a/spec/workers/domain_block_worker_spec.rb
+++ b/spec/workers/domain_block_worker_spec.rb
@@ -20,7 +20,7 @@ describe DomainBlockWorker do
it 'returns true for non-existent domain block' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
diff --git a/spec/workers/domain_clear_media_worker_spec.rb b/spec/workers/domain_clear_media_worker_spec.rb
index 36251b1ec..f21d1fe18 100644
--- a/spec/workers/domain_clear_media_worker_spec.rb
+++ b/spec/workers/domain_clear_media_worker_spec.rb
@@ -20,7 +20,7 @@ describe DomainClearMediaWorker do
it 'returns true for non-existent domain block' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb
index 1a723d63a..16f7d73e0 100644
--- a/spec/workers/feed_insert_worker_spec.rb
+++ b/spec/workers/feed_insert_worker_spec.rb
@@ -15,7 +15,7 @@ describe FeedInsertWorker do
allow(FeedManager).to receive(:instance).and_return(instance)
result = subject.perform(nil, follower.id)
- expect(result).to eq true
+ expect(result).to be true
expect(instance).to_not have_received(:push_to_home)
end
@@ -24,7 +24,7 @@ describe FeedInsertWorker do
allow(FeedManager).to receive(:instance).and_return(instance)
result = subject.perform(status.id, nil)
- expect(result).to eq true
+ expect(result).to be true
expect(instance).to_not have_received(:push_to_home)
end
end
diff --git a/spec/workers/regeneration_worker_spec.rb b/spec/workers/regeneration_worker_spec.rb
index c6bdfa0e5..147a76be5 100644
--- a/spec/workers/regeneration_worker_spec.rb
+++ b/spec/workers/regeneration_worker_spec.rb
@@ -20,7 +20,7 @@ describe RegenerationWorker do
it 'fails when account does not exist' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
From d2dcb6c45a9db5439772f0553046e2c03a739a16 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:51:43 -0500
Subject: [PATCH 18/55] Autofix Rubocop Style/UnpackFirst (#23741)
---
.rubocop_todo.yml | 7 -------
app/models/concerns/account_interactions.rb | 4 ++--
lib/paperclip/gif_transcoder.rb | 4 ++--
3 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 86a48a170..0f98d25d6 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2617,10 +2617,3 @@ Style/SymbolArray:
Style/SymbolProc:
Exclude:
- 'spec/lib/request_spec.rb'
-
-# Offense count: 4
-# This cop supports safe autocorrection (--autocorrect).
-Style/UnpackFirst:
- Exclude:
- - 'app/models/concerns/account_interactions.rb'
- - 'lib/paperclip/gif_transcoder.rb'
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index 325619774..1898516b0 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -278,7 +278,7 @@ module AccountInteractions
followers.where(Account.arel_table[:uri].matches("#{Account.sanitize_sql_like(url_prefix)}/%", false, true)).or(followers.where(uri: url_prefix)).pluck_each(:uri) do |uri|
Xorcist.xor!(digest, Digest::SHA256.digest(uri))
end
- digest.unpack('H*')[0]
+ digest.unpack1('H*')
end
end
@@ -288,7 +288,7 @@ module AccountInteractions
followers.where(domain: nil).pluck_each(:username) do |username|
Xorcist.xor!(digest, Digest::SHA256.digest(ActivityPub::TagManager.instance.uri_for_username(username)))
end
- digest.unpack('H*')[0]
+ digest.unpack1('H*')
end
end
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
index d14465c01..f385b00a3 100644
--- a/lib/paperclip/gif_transcoder.rb
+++ b/lib/paperclip/gif_transcoder.rb
@@ -57,7 +57,7 @@ class GifReader
end
# Skip lzw min code size
- raise InvalidValue unless s.read(1).unpack('C')[0] >= 2
+ raise InvalidValue unless s.read(1).unpack1('C') >= 2
# Skip image data sub-blocks
skip_sub_blocks!(s)
@@ -77,7 +77,7 @@ class GifReader
private
def skip_extension_block!(file)
- if EXTENSION_LABELS.include?(file.read(1).unpack('C')[0])
+ if EXTENSION_LABELS.include?(file.read(1).unpack1('C'))
block_size, = file.read(1).unpack('C')
file.seek(block_size, IO::SEEK_CUR)
end
From 717683d1c39d2fe85d1cc3f5223e1f4cf43f1900 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:58:28 -0500
Subject: [PATCH 19/55] Autofix Rubocop remaining Layout rules (#23679)
---
.rubocop_todo.yml | 148 ------------------
Capfile | 1 +
app/controllers/api/v1/tags_controller.rb | 1 +
app/controllers/application_controller.rb | 1 +
.../concerns/session_tracking_concern.rb | 1 +
.../concerns/signature_verification.rb | 1 +
app/helpers/application_helper.rb | 1 +
app/helpers/languages_helper.rb | 1 +
app/lib/activitypub/activity.rb | 1 +
app/lib/activitypub/linked_data_signature.rb | 2 +-
app/lib/activitypub/tag_manager.rb | 2 +
app/lib/ostatus/tag_manager.rb | 32 ++--
app/lib/request.rb | 1 +
app/lib/settings/scoped_settings.rb | 2 +
app/lib/status_filter.rb | 1 +
app/lib/tag_manager.rb | 1 +
app/lib/webfinger.rb | 1 +
app/models/account.rb | 2 +
app/models/account/field.rb | 4 +-
app/models/account_conversation.rb | 2 +
app/models/account_domain_block.rb | 1 +
app/models/account_moderation_note.rb | 1 +
app/models/account_note.rb | 1 +
app/models/account_pin.rb | 1 +
app/models/account_stat.rb | 1 +
app/models/account_summary.rb | 1 +
app/models/account_warning.rb | 13 +-
app/models/admin/import.rb | 1 +
app/models/backup.rb | 1 +
app/models/block.rb | 1 +
app/models/bookmark.rb | 1 +
app/models/canonical_email_block.rb | 1 +
app/models/conversation.rb | 1 +
app/models/conversation_mute.rb | 1 +
app/models/custom_emoji.rb | 1 +
app/models/custom_filter.rb | 3 +
app/models/custom_filter_keyword.rb | 1 +
app/models/custom_filter_status.rb | 1 +
app/models/device.rb | 1 +
app/models/domain_block.rb | 1 +
app/models/email_domain_block.rb | 1 +
app/models/encrypted_message.rb | 1 +
app/models/favourite.rb | 2 +
app/models/featured_tag.rb | 1 +
app/models/follow.rb | 1 +
app/models/follow_recommendation.rb | 1 +
.../follow_recommendation_suppression.rb | 1 +
app/models/follow_request.rb | 1 +
app/models/form/admin_settings.rb | 1 +
app/models/identity.rb | 1 +
app/models/import.rb | 1 +
app/models/instance.rb | 1 +
app/models/invite.rb | 1 +
app/models/ip_block.rb | 1 +
app/models/list.rb | 1 +
app/models/list_account.rb | 1 +
app/models/login_activity.rb | 1 +
app/models/media_attachment.rb | 3 +-
app/models/mention.rb | 1 +
app/models/mute.rb | 1 +
app/models/notification.rb | 11 +-
app/models/one_time_key.rb | 1 +
app/models/poll.rb | 8 +-
app/models/poll_vote.rb | 1 +
app/models/preview_card.rb | 1 +
app/models/preview_card_provider.rb | 1 +
app/models/relay.rb | 1 +
app/models/report.rb | 1 +
app/models/report_note.rb | 1 +
app/models/session_activation.rb | 2 +
app/models/setting.rb | 4 +
app/models/site_upload.rb | 1 +
app/models/status.rb | 1 +
app/models/status_edit.rb | 2 +
app/models/status_pin.rb | 1 +
app/models/status_stat.rb | 1 +
app/models/tag.rb | 1 +
app/models/unavailable_domain.rb | 1 +
app/models/user.rb | 4 +
app/models/user_ip.rb | 1 +
app/models/user_role.rb | 2 +
app/models/web/push_subscription.rb | 1 +
app/models/web/setting.rb | 1 +
app/models/webauthn_credential.rb | 1 +
.../account_relationships_presenter.rb | 18 +--
.../activitypub/fetch_remote_actor_service.rb | 1 +
.../fetch_remote_status_service.rb | 1 +
.../activitypub/fetch_replies_service.rb | 1 +
.../activitypub/process_account_service.rb | 2 +
app/services/favourite_service.rb | 1 +
app/services/keys/claim_service.rb | 6 +-
app/services/keys/query_service.rb | 6 +-
app/services/notify_service.rb | 1 +
app/services/post_status_service.rb | 3 +
app/services/vote_service.rb | 2 +
app/validators/follow_limit_validator.rb | 1 +
.../unreserved_username_validator.rb | 2 +
.../accounts_statuses_cleanup_scheduler.rb | 2 +
app/workers/web/push_notification_worker.rb | 12 +-
config.ru | 1 +
...1829_migrate_open_registrations_setting.rb | 2 +
..._preserve_old_layout_for_existing_users.rb | 1 +
...dd_case_insensitive_btree_index_to_tags.rb | 1 +
...0613110834_add_action_to_custom_filters.rb | 1 +
...200917193528_migrate_notifications_type.rb | 10 +-
...2_remove_whole_word_from_custom_filters.rb | 1 +
...remove_irreversible_from_custom_filters.rb | 1 +
...221101190723_backfill_admin_action_logs.rb | 13 ++
...114142_backfill_admin_action_logs_again.rb | 13 ++
lib/mastodon/domains_cli.rb | 2 +
lib/sanitize_ext/sanitize_config.rb | 12 +-
lib/tasks/auto_annotate_models.rake | 70 ++++-----
lib/tasks/mastodon.rake | 16 +-
.../v1/accounts/statuses_controller_spec.rb | 1 +
spec/models/admin/account_action_spec.rb | 4 +-
.../concerns/account_interactions_spec.rb | 4 +-
spec/models/tag_spec.rb | 1 +
117 files changed, 265 insertions(+), 261 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0f98d25d6..e667a7786 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -14,154 +14,6 @@ Bundler/OrderedGems:
Exclude:
- 'Gemfile'
-# Offense count: 81
-# This cop supports safe autocorrection (--autocorrect).
-Layout/EmptyLineAfterGuardClause:
- Exclude:
- - 'app/controllers/api/v1/tags_controller.rb'
- - 'app/controllers/application_controller.rb'
- - 'app/controllers/concerns/session_tracking_concern.rb'
- - 'app/controllers/concerns/signature_verification.rb'
- - 'app/helpers/application_helper.rb'
- - 'app/lib/activitypub/activity.rb'
- - 'app/lib/activitypub/tag_manager.rb'
- - 'app/lib/request.rb'
- - 'app/lib/settings/scoped_settings.rb'
- - 'app/lib/status_filter.rb'
- - 'app/lib/tag_manager.rb'
- - 'app/lib/webfinger.rb'
- - 'app/models/account.rb'
- - 'app/models/account_conversation.rb'
- - 'app/models/admin/import.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/favourite.rb'
- - 'app/models/form/admin_settings.rb'
- - 'app/models/poll.rb'
- - 'app/models/session_activation.rb'
- - 'app/models/setting.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/user.rb'
- - 'app/models/user_role.rb'
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/activitypub/fetch_replies_service.rb'
- - 'app/services/activitypub/process_account_service.rb'
- - 'app/services/favourite_service.rb'
- - 'app/services/notify_service.rb'
- - 'app/services/post_status_service.rb'
- - 'app/services/vote_service.rb'
- - 'app/validators/follow_limit_validator.rb'
- - 'app/validators/unreserved_username_validator.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb'
- - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- - 'lib/mastodon/domains_cli.rb'
-
-# Offense count: 71
-# This cop supports safe autocorrection (--autocorrect).
-Layout/EmptyLineAfterMagicComment:
- Exclude:
- - 'Capfile'
- - 'app/helpers/languages_helper.rb'
- - 'app/models/account.rb'
- - 'app/models/account_conversation.rb'
- - 'app/models/account_domain_block.rb'
- - 'app/models/account_moderation_note.rb'
- - 'app/models/account_note.rb'
- - 'app/models/account_pin.rb'
- - 'app/models/account_stat.rb'
- - 'app/models/account_summary.rb'
- - 'app/models/account_warning.rb'
- - 'app/models/backup.rb'
- - 'app/models/block.rb'
- - 'app/models/bookmark.rb'
- - 'app/models/canonical_email_block.rb'
- - 'app/models/conversation.rb'
- - 'app/models/conversation_mute.rb'
- - 'app/models/custom_emoji.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/custom_filter_keyword.rb'
- - 'app/models/custom_filter_status.rb'
- - 'app/models/device.rb'
- - 'app/models/domain_block.rb'
- - 'app/models/email_domain_block.rb'
- - 'app/models/encrypted_message.rb'
- - 'app/models/favourite.rb'
- - 'app/models/featured_tag.rb'
- - 'app/models/follow.rb'
- - 'app/models/follow_recommendation.rb'
- - 'app/models/follow_recommendation_suppression.rb'
- - 'app/models/follow_request.rb'
- - 'app/models/identity.rb'
- - 'app/models/import.rb'
- - 'app/models/instance.rb'
- - 'app/models/invite.rb'
- - 'app/models/ip_block.rb'
- - 'app/models/list.rb'
- - 'app/models/list_account.rb'
- - 'app/models/login_activity.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/mention.rb'
- - 'app/models/mute.rb'
- - 'app/models/notification.rb'
- - 'app/models/one_time_key.rb'
- - 'app/models/poll.rb'
- - 'app/models/poll_vote.rb'
- - 'app/models/preview_card.rb'
- - 'app/models/preview_card_provider.rb'
- - 'app/models/relay.rb'
- - 'app/models/report.rb'
- - 'app/models/report_note.rb'
- - 'app/models/session_activation.rb'
- - 'app/models/setting.rb'
- - 'app/models/site_upload.rb'
- - 'app/models/status.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/status_pin.rb'
- - 'app/models/status_stat.rb'
- - 'app/models/tag.rb'
- - 'app/models/unavailable_domain.rb'
- - 'app/models/user.rb'
- - 'app/models/user_ip.rb'
- - 'app/models/web/push_subscription.rb'
- - 'app/models/web/setting.rb'
- - 'app/models/webauthn_credential.rb'
- - 'config.ru'
- - 'db/migrate/20220613110834_add_action_to_custom_filters.rb'
- - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb'
- - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb'
- - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
- - 'spec/models/tag_spec.rb'
-
-# Offense count: 113
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
-# SupportedHashRocketStyles: key, separator, table
-# SupportedColonStyles: key, separator, table
-# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
-Layout/HashAlignment:
- Exclude:
- - 'app/lib/activitypub/linked_data_signature.rb'
- - 'app/lib/ostatus/tag_manager.rb'
- - 'app/models/account/field.rb'
- - 'app/models/account_warning.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/notification.rb'
- - 'app/models/poll.rb'
- - 'app/presenters/account_relationships_presenter.rb'
- - 'app/services/keys/claim_service.rb'
- - 'app/services/keys/query_service.rb'
- - 'app/workers/web/push_notification_worker.rb'
- - 'db/post_migrate/20200917193528_migrate_notifications_type.rb'
- - 'lib/sanitize_ext/sanitize_config.rb'
- - 'lib/tasks/auto_annotate_models.rake'
- - 'lib/tasks/mastodon.rake'
- - 'spec/models/admin/account_action_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
-
# Offense count: 581
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
diff --git a/Capfile b/Capfile
index bf3ae7e24..86efa5bac 100644
--- a/Capfile
+++ b/Capfile
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/scm/git'
diff --git a/app/controllers/api/v1/tags_controller.rb b/app/controllers/api/v1/tags_controller.rb
index 272362c31..a08fd2187 100644
--- a/app/controllers/api/v1/tags_controller.rb
+++ b/app/controllers/api/v1/tags_controller.rb
@@ -25,6 +25,7 @@ class Api::V1::TagsController < Api::BaseController
def set_or_create_tag
return not_found unless Tag::HASHTAG_NAME_RE.match?(params[:id])
+
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
end
end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 615536b96..ad70e28ab 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -128,6 +128,7 @@ class ApplicationController < ActionController::Base
def current_theme
return Setting.theme unless Themes.instance.names.include? current_user&.setting_theme
+
current_user.setting_theme
end
diff --git a/app/controllers/concerns/session_tracking_concern.rb b/app/controllers/concerns/session_tracking_concern.rb
index eaaa4ac59..3f56c0d02 100644
--- a/app/controllers/concerns/session_tracking_concern.rb
+++ b/app/controllers/concerns/session_tracking_concern.rb
@@ -13,6 +13,7 @@ module SessionTrackingConcern
def set_session_activity
return unless session_needs_update?
+
current_session.touch
end
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index 9c04ab4ca..b0a087d53 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -165,6 +165,7 @@ module SignatureVerification
end
raise SignatureVerificationError, "Invalid Digest value. The provided Digest value is not a SHA-256 digest. Given digest: #{sha256[1]}" if digest_size != 32
+
raise SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{sha256[1]}"
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 1f93b33f5..08020a65a 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -105,6 +105,7 @@ module ApplicationHelper
def can?(action, record)
return false if record.nil?
+
policy(record).public_send("#{action}?")
end
diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index bb35ce08c..584394758 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# rubocop:disable Metrics/ModuleLength, Style/WordArray
module LanguagesHelper
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 900428e92..5d9596254 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -153,6 +153,7 @@ class ActivityPub::Activity
def fetch_remote_original_status
if object_uri.start_with?('http')
return if ActivityPub::TagManager.instance.local_uri?(object_uri)
+
ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id])
elsif @object['url'].present?
::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id])
diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb
index 61759649a..ea59879f3 100644
--- a/app/lib/activitypub/linked_data_signature.rb
+++ b/app/lib/activitypub/linked_data_signature.rb
@@ -32,7 +32,7 @@ class ActivityPub::LinkedDataSignature
def sign!(creator, sign_with: nil)
options = {
- 'type' => 'RsaSignature2017',
+ 'type' => 'RsaSignature2017',
'creator' => ActivityPub::TagManager.instance.key_uri_for(creator),
'created' => Time.now.utc.iso8601,
}
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index 3d6b28ef5..a65a9565a 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -26,6 +26,7 @@ class ActivityPub::TagManager
target.instance_actor? ? about_more_url(instance_actor: true) : short_account_url(target)
when :note, :comment, :activity
return activity_account_status_url(target.account, target) if target.reblog?
+
short_account_status_url(target.account, target)
end
end
@@ -38,6 +39,7 @@ class ActivityPub::TagManager
target.instance_actor? ? instance_actor_url : account_url(target)
when :note, :comment, :activity
return activity_account_status_url(target.account, target) if target.reblog?
+
account_status_url(target.account, target)
when :emoji
emoji_url(target)
diff --git a/app/lib/ostatus/tag_manager.rb b/app/lib/ostatus/tag_manager.rb
index 4f4501312..7d8131622 100644
--- a/app/lib/ostatus/tag_manager.rb
+++ b/app/lib/ostatus/tag_manager.rb
@@ -5,27 +5,27 @@ class OStatus::TagManager
include RoutingHelper
VERBS = {
- post: 'http://activitystrea.ms/schema/1.0/post',
- share: 'http://activitystrea.ms/schema/1.0/share',
- favorite: 'http://activitystrea.ms/schema/1.0/favorite',
- unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
- delete: 'http://activitystrea.ms/schema/1.0/delete',
- follow: 'http://activitystrea.ms/schema/1.0/follow',
+ post: 'http://activitystrea.ms/schema/1.0/post',
+ share: 'http://activitystrea.ms/schema/1.0/share',
+ favorite: 'http://activitystrea.ms/schema/1.0/favorite',
+ unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
+ delete: 'http://activitystrea.ms/schema/1.0/delete',
+ follow: 'http://activitystrea.ms/schema/1.0/follow',
request_friend: 'http://activitystrea.ms/schema/1.0/request-friend',
- authorize: 'http://activitystrea.ms/schema/1.0/authorize',
- reject: 'http://activitystrea.ms/schema/1.0/reject',
- unfollow: 'http://ostatus.org/schema/1.0/unfollow',
- block: 'http://mastodon.social/schema/1.0/block',
- unblock: 'http://mastodon.social/schema/1.0/unblock',
+ authorize: 'http://activitystrea.ms/schema/1.0/authorize',
+ reject: 'http://activitystrea.ms/schema/1.0/reject',
+ unfollow: 'http://ostatus.org/schema/1.0/unfollow',
+ block: 'http://mastodon.social/schema/1.0/block',
+ unblock: 'http://mastodon.social/schema/1.0/unblock',
}.freeze
TYPES = {
- activity: 'http://activitystrea.ms/schema/1.0/activity',
- note: 'http://activitystrea.ms/schema/1.0/note',
- comment: 'http://activitystrea.ms/schema/1.0/comment',
- person: 'http://activitystrea.ms/schema/1.0/person',
+ activity: 'http://activitystrea.ms/schema/1.0/activity',
+ note: 'http://activitystrea.ms/schema/1.0/note',
+ comment: 'http://activitystrea.ms/schema/1.0/comment',
+ person: 'http://activitystrea.ms/schema/1.0/person',
collection: 'http://activitystrea.ms/schema/1.0/collection',
- group: 'http://activitystrea.ms/schema/1.0/group',
+ group: 'http://activitystrea.ms/schema/1.0/group',
}.freeze
COLLECTIONS = {
diff --git a/app/lib/request.rb b/app/lib/request.rb
index be6a69b3f..85716f999 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -182,6 +182,7 @@ class Request
contents = truncated_body(limit)
raise Mastodon::LengthValidationError if contents.bytesize > limit
+
contents
end
end
diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb
index 1e18d6d46..3ad57cc1e 100644
--- a/app/lib/settings/scoped_settings.rb
+++ b/app/lib/settings/scoped_settings.rb
@@ -34,6 +34,7 @@ module Settings
Setting.default_settings.each do |key, default_value|
next if records.key?(key) || default_value.is_a?(Hash)
+
records[key] = Setting.new(var: key, value: default_value)
end
@@ -54,6 +55,7 @@ module Settings
if db_val
default_value = ScopedSettings.default_settings[key]
return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
+
db_val.value
else
ScopedSettings.default_settings[key]
diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb
index b6c80b801..c0e6f3331 100644
--- a/app/lib/status_filter.rb
+++ b/app/lib/status_filter.rb
@@ -11,6 +11,7 @@ class StatusFilter
def filtered?
return false if !account.nil? && account.id == status.account_id
+
blocked_by_policy? || (account_present? && filtered_status?) || silenced_account?
end
diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb
index a1d12a654..7fbf4437d 100644
--- a/app/lib/tag_manager.rb
+++ b/app/lib/tag_manager.rb
@@ -25,6 +25,7 @@ class TagManager
def local_url?(url)
uri = Addressable::URI.parse(url).normalize
return false unless uri.host
+
domain = uri.host + (uri.port ? ":#{uri.port}" : '')
TagManager.instance.web_domain?(domain)
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index 42ddef47b..ae8a3b1ea 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -57,6 +57,7 @@ class Webfinger
if res.code == 200
body = res.body_with_limit
raise Webfinger::Error, "Request for #{@uri} returned empty response" if body.empty?
+
body
elsif res.code == 404 && use_fallback
body_from_host_meta
diff --git a/app/models/account.rb b/app/models/account.rb
index d33110d55..09c450f2a 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: accounts
@@ -539,6 +540,7 @@ class Account < ApplicationRecord
def ensure_keys!
return unless local? && private_key.blank? && public_key.blank?
+
generate_keys
save!
end
diff --git a/app/models/account/field.rb b/app/models/account/field.rb
index 98c29726d..2bada6954 100644
--- a/app/models/account/field.rb
+++ b/app/models/account/field.rb
@@ -14,8 +14,8 @@ class Account::Field < ActiveModelSerializers::Model
@account = account
super(
- name: sanitize(attributes['name']),
- value: sanitize(attributes['value']),
+ name: sanitize(attributes['name']),
+ value: sanitize(attributes['value']),
verified_at: attributes['verified_at']&.to_datetime,
)
end
diff --git a/app/models/account_conversation.rb b/app/models/account_conversation.rb
index 45e74bbeb..b3ddc04c1 100644
--- a/app/models/account_conversation.rb
+++ b/app/models/account_conversation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_conversations
@@ -107,6 +108,7 @@ class AccountConversation < ApplicationRecord
def push_to_streaming_api
return if destroyed? || !subscribed_to_timeline?
+
PushConversationWorker.perform_async(id)
end
diff --git a/app/models/account_domain_block.rb b/app/models/account_domain_block.rb
index 3aaffde9a..af1e6a68d 100644
--- a/app/models/account_domain_block.rb
+++ b/app/models/account_domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_domain_blocks
diff --git a/app/models/account_moderation_note.rb b/app/models/account_moderation_note.rb
index 22e312bb2..ff399bab0 100644
--- a/app/models/account_moderation_note.rb
+++ b/app/models/account_moderation_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_moderation_notes
diff --git a/app/models/account_note.rb b/app/models/account_note.rb
index b338bc92f..9bc704d98 100644
--- a/app/models/account_note.rb
+++ b/app/models/account_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_notes
diff --git a/app/models/account_pin.rb b/app/models/account_pin.rb
index b51d3d4cd..6c78e8c44 100644
--- a/app/models/account_pin.rb
+++ b/app/models/account_pin.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_pins
diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb
index a5d71a5b8..834f8ba4c 100644
--- a/app/models/account_stat.rb
+++ b/app/models/account_stat.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_stats
diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb
index 3a3cebc55..0d8835b83 100644
--- a/app/models/account_summary.rb
+++ b/app/models/account_summary.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_summaries
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
index a181cd18d..4f8cc5320 100644
--- a/app/models/account_warning.rb
+++ b/app/models/account_warning.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_warnings
@@ -17,13 +18,13 @@
class AccountWarning < ApplicationRecord
enum action: {
- none: 0,
- disable: 1_000,
+ none: 0,
+ disable: 1_000,
mark_statuses_as_sensitive: 1_250,
- delete_statuses: 1_500,
- sensitive: 2_000,
- silence: 3_000,
- suspend: 4_000,
+ delete_statuses: 1_500,
+ sensitive: 2_000,
+ silence: 3_000,
+ suspend: 4_000,
}, _suffix: :action
before_validation :before_validate
diff --git a/app/models/admin/import.rb b/app/models/admin/import.rb
index fecde4878..0fd4bdb82 100644
--- a/app/models/admin/import.rb
+++ b/app/models/admin/import.rb
@@ -56,6 +56,7 @@ class Admin::Import
def validate_data
return if data.nil?
+
errors.add(:data, I18n.t('imports.errors.over_rows_processing_limit', count: ROWS_PROCESSING_LIMIT)) if csv_row_count > ROWS_PROCESSING_LIMIT
rescue CSV::MalformedCSVError => e
errors.add(:data, I18n.t('imports.errors.invalid_csv_file', error: e.message))
diff --git a/app/models/backup.rb b/app/models/backup.rb
index 277b9395b..bec3cbfe5 100644
--- a/app/models/backup.rb
+++ b/app/models/backup.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: backups
diff --git a/app/models/block.rb b/app/models/block.rb
index bf3e07600..b42c1569b 100644
--- a/app/models/block.rb
+++ b/app/models/block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: blocks
diff --git a/app/models/bookmark.rb b/app/models/bookmark.rb
index 6334ef0df..04b660372 100644
--- a/app/models/bookmark.rb
+++ b/app/models/bookmark.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: bookmarks
diff --git a/app/models/canonical_email_block.rb b/app/models/canonical_email_block.rb
index 1eb69ac67..d09df6f5e 100644
--- a/app/models/canonical_email_block.rb
+++ b/app/models/canonical_email_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: canonical_email_blocks
diff --git a/app/models/conversation.rb b/app/models/conversation.rb
index 4dfaea889..5de259962 100644
--- a/app/models/conversation.rb
+++ b/app/models/conversation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: conversations
diff --git a/app/models/conversation_mute.rb b/app/models/conversation_mute.rb
index 52c1a33e0..31f8e1966 100644
--- a/app/models/conversation_mute.rb
+++ b/app/models/conversation_mute.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: conversation_mutes
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 304805659..3d7900226 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_emojis
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 781bf4db8..d85e196e9 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filters
@@ -101,6 +102,7 @@ class CustomFilter < ApplicationRecord
status_matches = [status.id, status.reblog_of_id].compact & rules[:status_ids] if rules[:status_ids].present?
next if keyword_matches.blank? && status_matches.blank?
+
FilterResultPresenter.new(filter: filter, keyword_matches: keyword_matches, status_matches: status_matches)
end
end
@@ -111,6 +113,7 @@ class CustomFilter < ApplicationRecord
def invalidate_cache!
return unless @should_invalidate_cache
+
@should_invalidate_cache = false
Rails.cache.delete("filters:v3:#{account_id}")
diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb
index e0d0289ae..3158b3b79 100644
--- a/app/models/custom_filter_keyword.rb
+++ b/app/models/custom_filter_keyword.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filter_keywords
diff --git a/app/models/custom_filter_status.rb b/app/models/custom_filter_status.rb
index e748d6963..0a5650204 100644
--- a/app/models/custom_filter_status.rb
+++ b/app/models/custom_filter_status.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filter_statuses
diff --git a/app/models/device.rb b/app/models/device.rb
index 97d0d2774..5dc6cf1e6 100644
--- a/app/models/device.rb
+++ b/app/models/device.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: devices
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index 190f5ba2e..fbb045416 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: domain_blocks
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 3a56e4f2a..276e7d31a 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: email_domain_blocks
diff --git a/app/models/encrypted_message.rb b/app/models/encrypted_message.rb
index 7b4e32283..3e7e95594 100644
--- a/app/models/encrypted_message.rb
+++ b/app/models/encrypted_message.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: encrypted_messages
diff --git a/app/models/favourite.rb b/app/models/favourite.rb
index 2f355739a..042f72bea 100644
--- a/app/models/favourite.rb
+++ b/app/models/favourite.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: favourites
@@ -38,6 +39,7 @@ class Favourite < ApplicationRecord
def decrement_cache_counters
return if association(:status).loaded? && status.marked_for_destruction?
+
status&.decrement_count!(:favourites_count)
end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
index 70f949b6a..587dcf991 100644
--- a/app/models/featured_tag.rb
+++ b/app/models/featured_tag.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: featured_tags
diff --git a/app/models/follow.rb b/app/models/follow.rb
index e5cecbbc1..108f5c5d5 100644
--- a/app/models/follow.rb
+++ b/app/models/follow.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follows
diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb
index 501f8ecb6..602d32985 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_recommendations
diff --git a/app/models/follow_recommendation_suppression.rb b/app/models/follow_recommendation_suppression.rb
index 170506b85..a9dbbfc18 100644
--- a/app/models/follow_recommendation_suppression.rb
+++ b/app/models/follow_recommendation_suppression.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_recommendation_suppressions
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 9034250c0..78f79c18f 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_requests
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 95c53084a..de965cb0b 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -128,6 +128,7 @@ class Form::AdminSettings
def validate_site_uploads
UPLOAD_KEYS.each do |key|
next unless instance_variable_defined?("@#{key}")
+
upload = instance_variable_get("@#{key}")
next if upload.valid?
diff --git a/app/models/identity.rb b/app/models/identity.rb
index 8cc65aef4..6f10fed4d 100644
--- a/app/models/identity.rb
+++ b/app/models/identity.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: identities
diff --git a/app/models/import.rb b/app/models/import.rb
index cd33eb07b..21634005e 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: imports
diff --git a/app/models/instance.rb b/app/models/instance.rb
index edbf02a6d..1f96d3728 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: instances
diff --git a/app/models/invite.rb b/app/models/invite.rb
index 7ea4e2f98..8e816cef0 100644
--- a/app/models/invite.rb
+++ b/app/models/invite.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: invites
diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb
index 31343f0e1..99783050b 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: ip_blocks
diff --git a/app/models/list.rb b/app/models/list.rb
index 7b8cf6636..bd1bdbd24 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: lists
diff --git a/app/models/list_account.rb b/app/models/list_account.rb
index 785923c4c..a5767d3d8 100644
--- a/app/models/list_account.rb
+++ b/app/models/list_account.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: list_accounts
diff --git a/app/models/login_activity.rb b/app/models/login_activity.rb
index 52a0fd01d..2b7b37f8e 100644
--- a/app/models/login_activity.rb
+++ b/app/models/login_activity.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: login_activities
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index c6f2352e0..08abd4e43 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: media_attachments
@@ -372,7 +373,7 @@ class MediaAttachment < ApplicationRecord
return {} if width.nil?
{
- width: width,
+ width: width,
height: height,
size: "#{width}x#{height}",
aspect: width.to_f / height,
diff --git a/app/models/mention.rb b/app/models/mention.rb
index d01a88e32..2348b2905 100644
--- a/app/models/mention.rb
+++ b/app/models/mention.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: mentions
diff --git a/app/models/mute.rb b/app/models/mute.rb
index 578345ef6..8fc542262 100644
--- a/app/models/mute.rb
+++ b/app/models/mute.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: mutes
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 01155c363..3eaf557b0 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: notifications
@@ -19,12 +20,12 @@ class Notification < ApplicationRecord
include Paginable
LEGACY_TYPE_CLASS_MAP = {
- 'Mention' => :mention,
- 'Status' => :reblog,
- 'Follow' => :follow,
+ 'Mention' => :mention,
+ 'Status' => :reblog,
+ 'Follow' => :follow,
'FollowRequest' => :follow_request,
- 'Favourite' => :favourite,
- 'Poll' => :poll,
+ 'Favourite' => :favourite,
+ 'Poll' => :poll,
}.freeze
TYPES = %i(
diff --git a/app/models/one_time_key.rb b/app/models/one_time_key.rb
index 8ada34824..23604e2f7 100644
--- a/app/models/one_time_key.rb
+++ b/app/models/one_time_key.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: one_time_keys
diff --git a/app/models/poll.rb b/app/models/poll.rb
index af3b09315..dd35e953b 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: polls
@@ -74,9 +75,9 @@ class Poll < ApplicationRecord
def initialize(poll, id, title, votes_count)
super(
- poll: poll,
- id: id,
- title: title,
+ poll: poll,
+ id: id,
+ title: title,
votes_count: votes_count,
)
end
@@ -105,6 +106,7 @@ class Poll < ApplicationRecord
def reset_parent_cache
return if status_id.nil?
+
Rails.cache.delete("statuses/#{status_id}")
end
diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb
index ad24eb691..00eaedd12 100644
--- a/app/models/poll_vote.rb
+++ b/app/models/poll_vote.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: poll_votes
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index d25fe6dad..6bce16562 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: preview_cards
diff --git a/app/models/preview_card_provider.rb b/app/models/preview_card_provider.rb
index d61fe6020..1dd95fc91 100644
--- a/app/models/preview_card_provider.rb
+++ b/app/models/preview_card_provider.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: preview_card_providers
diff --git a/app/models/relay.rb b/app/models/relay.rb
index e9c425743..a5fa03a99 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: relays
diff --git a/app/models/report.rb b/app/models/report.rb
index fe6c292c5..a9940459d 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: reports
diff --git a/app/models/report_note.rb b/app/models/report_note.rb
index 6d7167e0e..74b46027e 100644
--- a/app/models/report_note.rb
+++ b/app/models/report_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: report_notes
diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb
index 0b7fa6fe4..10c3a6c25 100644
--- a/app/models/session_activation.rb
+++ b/app/models/session_activation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: session_activations
@@ -51,6 +52,7 @@ class SessionActivation < ApplicationRecord
def deactivate(id)
return unless id
+
where(session_id: id).destroy_all
end
diff --git a/app/models/setting.rb b/app/models/setting.rb
index c6558d692..3bdc6ffb4 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: settings
@@ -30,6 +31,7 @@ class Setting < RailsSettings::Base
default_value = default_settings[key]
return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
+
db_val.value
else
default_settings[key]
@@ -43,6 +45,7 @@ class Setting < RailsSettings::Base
default_settings.each do |key, default_value|
next if records.key?(key) || default_value.is_a?(Hash)
+
records[key] = Setting.new(var: key, value: default_value)
end
@@ -51,6 +54,7 @@ class Setting < RailsSettings::Base
def default_settings
return {} unless RailsSettings::Default.enabled?
+
RailsSettings::Default.instance
end
end
diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb
index 167131fdd..e17668110 100644
--- a/app/models/site_upload.rb
+++ b/app/models/site_upload.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: site_uploads
diff --git a/app/models/status.rb b/app/models/status.rb
index 44a297a08..2eb47d72c 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: statuses
diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb
index dd2d5fc1e..683441bb5 100644
--- a/app/models/status_edit.rb
+++ b/app/models/status_edit.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_edits
@@ -45,6 +46,7 @@ class StatusEdit < ApplicationRecord
def emojis
return @emojis if defined?(@emojis)
+
@emojis = CustomEmoji.from_text([spoiler_text, text].join(' '), status.account.domain)
end
diff --git a/app/models/status_pin.rb b/app/models/status_pin.rb
index 93a0ea1c0..dae4a5b4e 100644
--- a/app/models/status_pin.rb
+++ b/app/models/status_pin.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_pins
diff --git a/app/models/status_stat.rb b/app/models/status_stat.rb
index 437861d1c..d101cc178 100644
--- a/app/models/status_stat.rb
+++ b/app/models/status_stat.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_stats
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 98001d60a..554a92d90 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: tags
diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb
index dfc0ef14e..c3f2f20e9 100644
--- a/app/models/unavailable_domain.rb
+++ b/app/models/unavailable_domain.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: unavailable_domains
diff --git a/app/models/user.rb b/app/models/user.rb
index c767f8984..5e106dee5 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: users
@@ -492,12 +493,14 @@ class User < ApplicationRecord
def sanitize_languages
return if chosen_languages.nil?
+
chosen_languages.reject!(&:blank?)
self.chosen_languages = nil if chosen_languages.empty?
end
def sanitize_role
return if role.nil?
+
self.role = nil if role.everyone?
end
@@ -516,6 +519,7 @@ class User < ApplicationRecord
def notify_staff_about_pending_account!
User.those_who_can(:manage_users).includes(:account).find_each do |u|
next unless u.allows_pending_account_emails?
+
AdminMailer.new_pending_account(u.account, self).deliver_later
end
end
diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb
index 1da615762..38287c2a6 100644
--- a/app/models/user_ip.rb
+++ b/app/models/user_ip.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: user_ips
diff --git a/app/models/user_role.rb b/app/models/user_role.rb
index 74dfdc220..a1b91dc0f 100644
--- a/app/models/user_role.rb
+++ b/app/models/user_role.rb
@@ -163,6 +163,7 @@ class UserRole < ApplicationRecord
def in_permissions?(privilege)
raise ArgumentError, "Unknown privilege: #{privilege}" unless FLAGS.key?(privilege)
+
computed_permissions & FLAGS[privilege] == FLAGS[privilege]
end
@@ -172,6 +173,7 @@ class UserRole < ApplicationRecord
def validate_own_role_edition
return unless defined?(@current_account) && @current_account.user_role.id == id
+
errors.add(:permissions_as_keys, :own_role) if permissions_changed?
errors.add(:position, :own_role) if position_changed?
end
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index dfaadf5cc..0ffbe068e 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: web_push_subscriptions
diff --git a/app/models/web/setting.rb b/app/models/web/setting.rb
index 99588d26c..3d5efe664 100644
--- a/app/models/web/setting.rb
+++ b/app/models/web/setting.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: web_settings
diff --git a/app/models/webauthn_credential.rb b/app/models/webauthn_credential.rb
index 48abfc1d4..4fa31ece5 100644
--- a/app/models/webauthn_credential.rb
+++ b/app/models/webauthn_credential.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: webauthn_credentials
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb
index ab8bac412..5d2b5435d 100644
--- a/app/presenters/account_relationships_presenter.rb
+++ b/app/presenters/account_relationships_presenter.rb
@@ -70,16 +70,16 @@ class AccountRelationshipsPresenter
def cache_uncached!
@uncached_account_ids.each do |account_id|
maps_for_account = {
- following: { account_id => following[account_id] },
- followed_by: { account_id => followed_by[account_id] },
- blocking: { account_id => blocking[account_id] },
- blocked_by: { account_id => blocked_by[account_id] },
- muting: { account_id => muting[account_id] },
- requested: { account_id => requested[account_id] },
- requested_by: { account_id => requested_by[account_id] },
+ following: { account_id => following[account_id] },
+ followed_by: { account_id => followed_by[account_id] },
+ blocking: { account_id => blocking[account_id] },
+ blocked_by: { account_id => blocked_by[account_id] },
+ muting: { account_id => muting[account_id] },
+ requested: { account_id => requested[account_id] },
+ requested_by: { account_id => requested_by[account_id] },
domain_blocking: { account_id => domain_blocking[account_id] },
- endorsed: { account_id => endorsed[account_id] },
- account_note: { account_id => account_note[account_id] },
+ endorsed: { account_id => endorsed[account_id] },
+ account_note: { account_id => account_note[account_id] },
}
Rails.cache.write("relationship:#{@current_account_id}:#{account_id}", maps_for_account, expires_in: 1.day)
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index e8992b845..ee0eaff08 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -50,6 +50,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+
return
end
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index aea80f078..ab0acf7f0 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -56,6 +56,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
def trustworthy_attribution?(uri, attributed_to)
return false if uri.nil? || attributed_to.nil?
+
Addressable::URI.parse(uri).normalized_host.casecmp(Addressable::URI.parse(attributed_to).normalized_host).zero?
end
diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb
index 4128df9ca..3fe150ba2 100644
--- a/app/services/activitypub/fetch_replies_service.rb
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -36,6 +36,7 @@ class ActivityPub::FetchRepliesService < BaseService
return collection_or_uri if collection_or_uri.is_a?(Hash)
return unless @allow_synchronous_requests
return if invalid_origin?(collection_or_uri)
+
fetch_resource_without_id_validation(collection_or_uri, nil, true)
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 2da9096c7..603e4cf48 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -226,6 +226,7 @@ class ActivityPub::ProcessAccountService < BaseService
def property_values
return unless @json['attachment'].is_a?(Array)
+
as_array(@json['attachment']).select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') }
end
@@ -289,6 +290,7 @@ class ActivityPub::ProcessAccountService < BaseService
def domain_block
return @domain_block if defined?(@domain_block)
+
@domain_block = DomainBlock.rule_for(@domain)
end
diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb
index dc7fe8855..6fdc92a17 100644
--- a/app/services/favourite_service.rb
+++ b/app/services/favourite_service.rb
@@ -40,6 +40,7 @@ class FavouriteService < BaseService
def bump_potential_friendship(account, status)
ActivityTracker.increment('activity:interactions')
return if account.following?(status.account_id)
+
PotentialFriendshipTracker.record(account.id, status.account_id, :favourite)
end
diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb
index 0451c3cb1..ebce9cce7 100644
--- a/app/services/keys/claim_service.rb
+++ b/app/services/keys/claim_service.rb
@@ -9,10 +9,10 @@ class Keys::ClaimService < BaseService
def initialize(account, device_id, key_attributes = {})
super(
- account: account,
+ account: account,
device_id: device_id,
- key_id: key_attributes[:key_id],
- key: key_attributes[:key],
+ key_id: key_attributes[:key_id],
+ key: key_attributes[:key],
signature: key_attributes[:signature],
)
end
diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb
index 404854c9f..14c9d9205 100644
--- a/app/services/keys/query_service.rb
+++ b/app/services/keys/query_service.rb
@@ -23,9 +23,9 @@ class Keys::QueryService < BaseService
def initialize(attributes = {})
super(
- device_id: attributes[:device_id],
- name: attributes[:name],
- identity_key: attributes[:identity_key],
+ device_id: attributes[:device_id],
+ name: attributes[:name],
+ identity_key: attributes[:identity_key],
fingerprint_key: attributes[:fingerprint_key],
)
@claim_url = attributes[:claim_url]
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index c7454fc60..4c7acbcac 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -31,6 +31,7 @@ class NotifyService < BaseService
def following_sender?
return @following_sender if defined?(@following_sender)
+
@following_sender = @recipient.following?(@notification.from_account) || @recipient.requested?(@notification.from_account)
end
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 258af8827..ea27f374e 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -86,6 +86,7 @@ class PostStatusService < BaseService
def safeguard_mentions!(status)
return if @options[:allowed_mentions].nil?
+
expected_account_ids = @options[:allowed_mentions].map(&:to_i)
unexpected_accounts = status.mentions.map(&:account).to_a.reject { |mentioned_account| expected_account_ids.include?(mentioned_account.id) }
@@ -175,8 +176,10 @@ class PostStatusService < BaseService
def bump_potential_friendship!
return if !@status.reply? || @account.id == @status.in_reply_to_account_id
+
ActivityTracker.increment('activity:interactions')
return if @account.following?(@status.in_reply_to_account_id)
+
PotentialFriendshipTracker.record(@account.id, @status.in_reply_to_account_id, :reply)
end
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
index 114ec285c..9ebf5a98d 100644
--- a/app/services/vote_service.rb
+++ b/app/services/vote_service.rb
@@ -44,11 +44,13 @@ class VoteService < BaseService
def distribute_poll!
return if @poll.hide_totals?
+
ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, @poll.status.id)
end
def queue_final_poll_check!
return unless @poll.expires?
+
PollExpirationNotifyWorker.perform_at(@poll.expires_at + 5.minutes, @poll.id)
end
diff --git a/app/validators/follow_limit_validator.rb b/app/validators/follow_limit_validator.rb
index 409bf0176..c619cb9a3 100644
--- a/app/validators/follow_limit_validator.rb
+++ b/app/validators/follow_limit_validator.rb
@@ -6,6 +6,7 @@ class FollowLimitValidator < ActiveModel::Validator
def validate(follow)
return if follow.account.nil? || !follow.account.local?
+
follow.errors.add(:base, I18n.t('users.follow_limit_reached', limit: self.class.limit_for_account(follow.account))) if limit_reached?(follow.account)
end
diff --git a/app/validators/unreserved_username_validator.rb b/app/validators/unreserved_username_validator.rb
index 974f3ba62..f82f4b91d 100644
--- a/app/validators/unreserved_username_validator.rb
+++ b/app/validators/unreserved_username_validator.rb
@@ -13,12 +13,14 @@ class UnreservedUsernameValidator < ActiveModel::Validator
def pam_controlled?
return false unless Devise.pam_authentication && Devise.pam_controlled_service
+
Rpam2.account(Devise.pam_controlled_service, @username).present?
end
def reserved_username?
return true if pam_controlled?
return false unless Setting.reserved_usernames
+
Setting.reserved_usernames.include?(@username.downcase)
end
end
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index cc5b6e137..09e0b37f0 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -62,6 +62,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
# The idea here is to loop through all policies at least once until the budget is exhausted
# and start back after the last processed account otherwise
break if budget.zero? || (num_processed_accounts.zero? && first_policy_id.nil?)
+
first_policy_id = nil
end
end
@@ -73,6 +74,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
def under_load?
return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE
+
queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY)
end
diff --git a/app/workers/web/push_notification_worker.rb b/app/workers/web/push_notification_worker.rb
index 1ed5bb9e0..7e9691aab 100644
--- a/app/workers/web/push_notification_worker.rb
+++ b/app/workers/web/push_notification_worker.rb
@@ -22,13 +22,13 @@ class Web::PushNotificationWorker
request = Request.new(:post, @subscription.endpoint, body: payload.fetch(:ciphertext), http_client: http_client)
request.add_headers(
- 'Content-Type' => 'application/octet-stream',
- 'Ttl' => TTL,
- 'Urgency' => URGENCY,
+ 'Content-Type' => 'application/octet-stream',
+ 'Ttl' => TTL,
+ 'Urgency' => URGENCY,
'Content-Encoding' => 'aesgcm',
- 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}",
- 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}",
- 'Authorization' => @subscription.authorization_header
+ 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}",
+ 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}",
+ 'Authorization' => @subscription.authorization_header
)
request.perform do |response|
diff --git a/config.ru b/config.ru
index 5e071f530..afd13e211 100644
--- a/config.ru
+++ b/config.ru
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# This file is used by Rack-based servers to start the application.
require File.expand_path('config/environment', __dir__)
diff --git a/db/migrate/20190314181829_migrate_open_registrations_setting.rb b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
index e5fe95009..d2f6bf2c1 100644
--- a/db/migrate/20190314181829_migrate_open_registrations_setting.rb
+++ b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
@@ -2,6 +2,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2]
def up
open_registrations = Setting.find_by(var: 'open_registrations')
return if open_registrations.nil? || open_registrations.value
+
setting = Setting.where(var: 'registrations_mode').first_or_initialize(var: 'registrations_mode')
setting.update(value: 'none')
end
@@ -9,6 +10,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2]
def down
registrations_mode = Setting.find_by(var: 'registrations_mode')
return if registrations_mode.nil?
+
setting = Setting.where(var: 'open_registrations').first_or_initialize(var: 'open_registrations')
setting.update(value: registrations_mode.value == 'open')
end
diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
index 19e86fbfe..1c18b85cb 100644
--- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
+++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
@@ -8,6 +8,7 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2]
User.where(User.arel_table[:current_sign_in_at].gteq(1.month.ago)).find_each do |user|
next if Setting.unscoped.where(thing_type: 'User', thing_id: user.id, var: 'advanced_layout').exists?
+
user.settings.advanced_layout = true
end
end
diff --git a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
index 7f6a2c6dd..a3cc854d7 100644
--- a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
+++ b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
@@ -11,6 +11,7 @@ class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2]
rescue ActiveRecord::StatementInvalid => e
remove_index :tags, name: 'index_tags_on_name_lower_btree'
raise CorruptionError, 'index_tags_on_name_lower_btree' if e.is_a?(ActiveRecord::RecordNotUnique)
+
raise e
end
diff --git a/db/migrate/20220613110834_add_action_to_custom_filters.rb b/db/migrate/20220613110834_add_action_to_custom_filters.rb
index 9427a66fc..c1daf3c94 100644
--- a/db/migrate/20220613110834_add_action_to_custom_filters.rb
+++ b/db/migrate/20220613110834_add_action_to_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class AddActionToCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20200917193528_migrate_notifications_type.rb b/db/post_migrate/20200917193528_migrate_notifications_type.rb
index 88e423084..9dc9ecd48 100644
--- a/db/post_migrate/20200917193528_migrate_notifications_type.rb
+++ b/db/post_migrate/20200917193528_migrate_notifications_type.rb
@@ -4,12 +4,12 @@ class MigrateNotificationsType < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
TYPES_TO_MIGRATE = {
- 'Mention' => :mention,
- 'Status' => :reblog,
- 'Follow' => :follow,
+ 'Mention' => :mention,
+ 'Status' => :reblog,
+ 'Follow' => :follow,
'FollowRequest' => :follow_request,
- 'Favourite' => :favourite,
- 'Poll' => :poll,
+ 'Favourite' => :favourite,
+ 'Poll' => :poll,
}.freeze
def up
diff --git a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
index 7ef0749e5..99c3366a2 100644
--- a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
+++ b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class RemoveWholeWordFromCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
index 6ed8bcfee..1c366ee53 100644
--- a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
+++ b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class RemoveIrreversibleFromCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 6ab76a8f7..fa2ddbbca 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -79,11 +79,13 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
safety_assured do
AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
next if log.account.nil?
+
log.update_attribute('human_identifier', log.account.acct)
end
AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
next if log.user.nil?
+
log.update_attribute('human_identifier', log.user.account.acct)
log.update_attribute('route_param', log.user.account_id)
end
@@ -92,57 +94,68 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
next if log.domain_block.nil?
+
log.update_attribute('human_identifier', log.domain_block.domain)
end
AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
next if log.domain_allow.nil?
+
log.update_attribute('human_identifier', log.domain_allow.domain)
end
AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
next if log.email_domain_block.nil?
+
log.update_attribute('human_identifier', log.email_domain_block.domain)
end
AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
next if log.unavailable_domain.nil?
+
log.update_attribute('human_identifier', log.unavailable_domain.domain)
end
AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
next if log.status.nil?
+
log.update_attribute('human_identifier', log.status.account.acct)
log.update_attribute('permalink', log.status.uri)
end
AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
next if log.account_warning.nil?
+
log.update_attribute('human_identifier', log.account_warning.account.acct)
end
AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
next if log.announcement.nil?
+
log.update_attribute('human_identifier', log.announcement.text)
end
AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
next if log.ip_block.nil?
+
log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
end
AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
next if log.custom_emoji.nil?
+
log.update_attribute('human_identifier', log.custom_emoji.shortcode)
end
AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
next if log.canonical_email_block.nil?
+
log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
next if log.appeal.nil?
+
log.update_attribute('human_identifier', log.appeal.account.acct)
log.update_attribute('route_param', log.appeal.account_warning_id)
end
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
index 42b7f3625..9c7ac7120 100644
--- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -79,11 +79,13 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
safety_assured do
AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
next if log.account.nil?
+
log.update_attribute('human_identifier', log.account.acct)
end
AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
next if log.user.nil?
+
log.update_attribute('human_identifier', log.user.account.acct)
log.update_attribute('route_param', log.user.account_id)
end
@@ -92,57 +94,68 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
next if log.domain_block.nil?
+
log.update_attribute('human_identifier', log.domain_block.domain)
end
AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
next if log.domain_allow.nil?
+
log.update_attribute('human_identifier', log.domain_allow.domain)
end
AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
next if log.email_domain_block.nil?
+
log.update_attribute('human_identifier', log.email_domain_block.domain)
end
AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
next if log.unavailable_domain.nil?
+
log.update_attribute('human_identifier', log.unavailable_domain.domain)
end
AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
next if log.status.nil?
+
log.update_attribute('human_identifier', log.status.account.acct)
log.update_attribute('permalink', log.status.uri)
end
AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
next if log.account_warning.nil?
+
log.update_attribute('human_identifier', log.account_warning.account.acct)
end
AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
next if log.announcement.nil?
+
log.update_attribute('human_identifier', log.announcement.text)
end
AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
next if log.ip_block.nil?
+
log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
end
AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
next if log.custom_emoji.nil?
+
log.update_attribute('human_identifier', log.custom_emoji.shortcode)
end
AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
next if log.canonical_email_block.nil?
+
log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
next if log.appeal.nil?
+
log.update_attribute('human_identifier', log.appeal.account.acct)
log.update_attribute('route_param', log.appeal.account_warning_id)
end
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index f24a54e7e..41ea5b152 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -148,6 +148,7 @@ module Mastodon
begin
Request.new(:get, "https://#{domain}/api/v1/instance").perform do |res|
next unless res.code == 200
+
stats[domain] = Oj.load(res.to_s)
end
@@ -161,6 +162,7 @@ module Mastodon
Request.new(:get, "https://#{domain}/api/v1/instance/activity").perform do |res|
next unless res.code == 200
+
stats[domain]['activity'] = Oj.load(res.to_s)
end
rescue StandardError
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index d5e62897f..dc39e9c90 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -72,7 +72,7 @@ class Sanitize
elements: %w(p br span a),
attributes: {
- 'a' => %w(href rel class),
+ 'a' => %w(href rel class),
'span' => %w(class),
},
@@ -98,17 +98,17 @@ class Sanitize
attributes: merge(
RELAXED[:attributes],
- 'audio' => %w(controls),
- 'embed' => %w(height src type width),
+ 'audio' => %w(controls),
+ 'embed' => %w(height src type width),
'iframe' => %w(allowfullscreen frameborder height scrolling src width),
'source' => %w(src type),
- 'video' => %w(controls height loop width),
- 'div' => [:data]
+ 'video' => %w(controls height loop width),
+ 'div' => [:data]
),
protocols: merge(
RELAXED[:protocols],
- 'embed' => { 'src' => HTTP_PROTOCOLS },
+ 'embed' => { 'src' => HTTP_PROTOCOLS },
'iframe' => { 'src' => HTTP_PROTOCOLS },
'source' => { 'src' => HTTP_PROTOCOLS }
)
diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake
index a374e33ad..4b5997920 100644
--- a/lib/tasks/auto_annotate_models.rake
+++ b/lib/tasks/auto_annotate_models.rake
@@ -3,42 +3,42 @@
if Rails.env.development?
task :set_annotation_options do
Annotate.set_defaults(
- 'routes' => 'false',
- 'models' => 'true',
- 'position_in_routes' => 'before',
- 'position_in_class' => 'before',
- 'position_in_test' => 'before',
- 'position_in_fixture' => 'before',
- 'position_in_factory' => 'before',
- 'position_in_serializer' => 'before',
- 'show_foreign_keys' => 'false',
- 'show_indexes' => 'false',
- 'simple_indexes' => 'false',
- 'model_dir' => 'app/models',
- 'root_dir' => '',
- 'include_version' => 'false',
- 'require' => '',
- 'exclude_tests' => 'true',
- 'exclude_fixtures' => 'true',
- 'exclude_factories' => 'true',
- 'exclude_serializers' => 'true',
- 'exclude_scaffolds' => 'true',
- 'exclude_controllers' => 'true',
- 'exclude_helpers' => 'true',
- 'ignore_model_sub_dir' => 'false',
- 'ignore_columns' => nil,
- 'ignore_routes' => nil,
- 'ignore_unknown_models' => 'false',
+ 'routes' => 'false',
+ 'models' => 'true',
+ 'position_in_routes' => 'before',
+ 'position_in_class' => 'before',
+ 'position_in_test' => 'before',
+ 'position_in_fixture' => 'before',
+ 'position_in_factory' => 'before',
+ 'position_in_serializer' => 'before',
+ 'show_foreign_keys' => 'false',
+ 'show_indexes' => 'false',
+ 'simple_indexes' => 'false',
+ 'model_dir' => 'app/models',
+ 'root_dir' => '',
+ 'include_version' => 'false',
+ 'require' => '',
+ 'exclude_tests' => 'true',
+ 'exclude_fixtures' => 'true',
+ 'exclude_factories' => 'true',
+ 'exclude_serializers' => 'true',
+ 'exclude_scaffolds' => 'true',
+ 'exclude_controllers' => 'true',
+ 'exclude_helpers' => 'true',
+ 'ignore_model_sub_dir' => 'false',
+ 'ignore_columns' => nil,
+ 'ignore_routes' => nil,
+ 'ignore_unknown_models' => 'false',
'hide_limit_column_types' => 'integer,boolean',
- 'skip_on_db_migrate' => 'false',
- 'format_bare' => 'true',
- 'format_rdoc' => 'false',
- 'format_markdown' => 'false',
- 'sort' => 'false',
- 'force' => 'false',
- 'trace' => 'false',
- 'wrapper_open' => nil,
- 'wrapper_close' => nil
+ 'skip_on_db_migrate' => 'false',
+ 'format_bare' => 'true',
+ 'format_rdoc' => 'false',
+ 'format_markdown' => 'false',
+ 'sort' => 'false',
+ 'force' => 'false',
+ 'trace' => 'false',
+ 'wrapper_open' => nil,
+ 'wrapper_close' => nil
)
end
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 179a730bc..f919ba989 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -399,14 +399,14 @@ namespace :mastodon do
end
ActionMailer::Base.smtp_settings = {
- port: env['SMTP_PORT'],
- address: env['SMTP_SERVER'],
- user_name: env['SMTP_LOGIN'].presence,
- password: env['SMTP_PASSWORD'].presence,
- domain: env['LOCAL_DOMAIN'],
- authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
- openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'],
- enable_starttls: enable_starttls,
+ port: env['SMTP_PORT'],
+ address: env['SMTP_SERVER'],
+ user_name: env['SMTP_LOGIN'].presence,
+ password: env['SMTP_PASSWORD'].presence,
+ domain: env['LOCAL_DOMAIN'],
+ authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
+ openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'],
+ enable_starttls: enable_starttls,
enable_starttls_auto: enable_starttls_auto,
}
diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
index 4630fac90..e57c37179 100644
--- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::StatusesController do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 4516df2c2..7248356e5 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -12,9 +12,9 @@ RSpec.describe Admin::AccountAction, type: :model do
before do
account_action.assign_attributes(
- type: type,
+ type: type,
current_account: account,
- target_account: target_account
+ target_account: target_account
)
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index ed3fc056b..50ff0b149 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -149,8 +149,8 @@ describe AccountInteractions do
let(:mute) do
Fabricate(:mute,
- account: account,
- target_account: target_account,
+ account: account,
+ target_account: target_account,
hide_notifications: hide_notifications)
end
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index 7043449c5..4d6e5c380 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Tag do
From a9472f8ff15523c13ab7e32592f11a6c51cc14e3 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:37:28 -0500
Subject: [PATCH 20/55] Fix Markdown files with Prettier and check in CI
(#21972)
---
.github/workflows/lint-md.yml | 40 +++++++++++++++++++++++++
.prettierignore | 6 ++--
CHANGELOG.md | 56 +++++++++++++++++++++++++++++++----
CODE_OF_CONDUCT.md | 20 ++++++-------
CONTRIBUTING.md | 9 +++---
SECURITY.md | 2 +-
6 files changed, 109 insertions(+), 24 deletions(-)
create mode 100644 .github/workflows/lint-md.yml
diff --git a/.github/workflows/lint-md.yml b/.github/workflows/lint-md.yml
new file mode 100644
index 000000000..6f76dd60c
--- /dev/null
+++ b/.github/workflows/lint-md.yml
@@ -0,0 +1,40 @@
+name: Markdown Linting
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ paths:
+ - '.github/workflows/lint-md.yml'
+ - '.prettier*'
+ - '**/*.md'
+ - '!AUTHORS.md'
+ - 'package.json'
+ - 'yarn.lock'
+
+ pull_request:
+ paths:
+ - '.github/workflows/lint-md.yml'
+ - '.prettier*'
+ - '**/*.md'
+ - '!AUTHORS.md'
+ - 'package.json'
+ - 'yarn.lock'
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ cache: yarn
+
+ - name: Install all yarn packages
+ run: yarn --frozen-lockfile
+
+ - name: Prettier
+ run: yarn prettier --check "**/*.md"
diff --git a/.prettierignore b/.prettierignore
index b3b5f06ed..15e5f5994 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -70,8 +70,8 @@ app/javascript/styles/mastodon/reset.scss
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
-# Ignore Markdownlint pending https://github.com/mastodon/mastodon/pull/21972
-*.md
-
# Ignore HTML till cleaned and included in CI
*.html
+
+# Ignore the generated AUTHORS.md
+AUTHORS.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7a6998e8c..2b826fb14 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
All notable changes to this project will be documented in this file.
@@ -219,6 +218,7 @@ All notable changes to this project will be documented in this file.
- Fix unbounded recursion in post discovery ([ClearlyClaire,nametoolong](https://github.com/mastodon/mastodon/pull/23506))
## [4.0.2] - 2022-11-15
+
### Fixed
- Fix wrong color on mentions hidden behind content warning in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20724))
@@ -226,6 +226,7 @@ All notable changes to this project will be documented in this file.
- Fix `unsafe-eval` being used when `wasm-unsafe-eval` is enough in Content Security Policy ([Gargron](https://github.com/mastodon/mastodon/pull/20729), [prplecake](https://github.com/mastodon/mastodon/pull/20606))
## [4.0.1] - 2022-11-14
+
### Fixed
- Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677))
@@ -429,6 +430,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388))
## [3.5.3] - 2022-05-26
+
### Added
- **Add language dropdown to compose form in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18420), [ykzts](https://github.com/mastodon/mastodon/pull/18460))
@@ -476,6 +478,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix confirmation redirect to app without `Location` header ([Gargron](https://github.com/mastodon/mastodon/pull/18523))
## [3.5.2] - 2022-05-04
+
### Added
- Add warning on direct messages screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18289))
@@ -528,6 +531,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix error in alias settings page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18004))
## [3.5.1] - 2022-04-08
+
### Added
- Add pagination for trending statuses in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17976))
@@ -571,6 +575,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix error when indexing statuses into Elasticsearch ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17912))
## [3.5.0] - 2022-03-30
+
### Added
- **Add support for incoming edited posts** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748))
@@ -770,6 +775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix being able to bypass e-mail restrictions ([Gargron](https://github.com/mastodon/mastodon/pull/17909))
## [3.4.6] - 2022-02-03
+
### Fixed
- Fix `mastodon:webpush:generate_vapid_key` task requiring a functional environment ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17338))
@@ -784,6 +790,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Disable legacy XSS filtering ([Wonderfall](https://github.com/mastodon/mastodon/pull/17289))
## [3.4.5] - 2022-01-31
+
### Added
- Add more advanced migration tests ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17393))
@@ -798,6 +805,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix followers synchronization mechanism ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16510))
## [3.4.4] - 2021-11-26
+
### Fixed
- Fix error when suspending user with an already blocked canonical email ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17036))
@@ -815,11 +823,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix handling of recursive toots in WebUI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17041))
## [3.4.3] - 2021-11-06
+
### Fixed
- Fix login being broken due to inaccurately applied backport fix in 3.4.2 ([Gargron](https://github.com/mastodon/mastodon/commit/5c47a18c8df3231aa25c6d1f140a71a7fac9cbf9))
## [3.4.2] - 2021-11-06
+
### Added
- Add `configuration` attribute to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/16485))
@@ -863,6 +873,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix revoking a specific session not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16943))
## [3.4.1] - 2021-06-03
+
### Added
- Add new emoji assets from Twemoji 13.1.0 ([Gargron](https://github.com/mastodon/mastodon/pull/16345))
@@ -882,6 +893,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix mailer jobs for deleted notifications erroring out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16294))
## [3.4.0] - 2021-05-16
+
### Added
- **Add follow recommendations for onboarding** ([Gargron](https://github.com/mastodon/mastodon/pull/15945), [Gargron](https://github.com/mastodon/mastodon/pull/16161), [Gargron](https://github.com/mastodon/mastodon/pull/16060), [Gargron](https://github.com/mastodon/mastodon/pull/16077), [Gargron](https://github.com/mastodon/mastodon/pull/16078), [Gargron](https://github.com/mastodon/mastodon/pull/16160), [Gargron](https://github.com/mastodon/mastodon/pull/16079), [noellabo](https://github.com/mastodon/mastodon/pull/16044), [noellabo](https://github.com/mastodon/mastodon/pull/16045), [Gargron](https://github.com/mastodon/mastodon/pull/16152), [Gargron](https://github.com/mastodon/mastodon/pull/16153), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16082), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16173), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16159), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16189))
@@ -917,7 +929,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- This method allows an app through which a user signed-up to request a new confirmation e-mail to be sent, or to change the e-mail of the account before it is confirmed
- Add `GET /api/v1/accounts/lookup` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15740), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/15750))
- This method allows to quickly convert a username of a known account to an ID that can be used with the REST API, or to check if a username is available
- for sign-up
+ for sign-up
- Add `policy` param to `POST /api/v1/push/subscriptions` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/16040))
- This param allows an app to control from whom notifications should be delivered as push notifications to the app
- Add `details` to error response for `POST /api/v1/accounts` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15803))
@@ -1027,6 +1039,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix app name, website and redirect URIs not having a maximum length ([Gargron](https://github.com/mastodon/mastodon/pull/16042))
## [3.3.0] - 2020-12-27
+
### Added
- **Add hotkeys for audio/video control in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/15158), [Gargron](https://github.com/mastodon/mastodon/pull/15198))
@@ -1203,6 +1216,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364))
## [3.2.2] - 2020-12-19
+
### Added
- Add `tootctl maintenance fix-duplicates` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14860), [Gargron](https://github.com/mastodon/mastodon/pull/15223))
@@ -1229,6 +1243,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364))
## [3.2.1] - 2020-10-19
+
### Added
- Add support for latest HTTP Signatures spec draft ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14556))
@@ -1258,6 +1273,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix files served as `application/octet-stream` being rejected without attempting mime type detection ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14452))
## [3.2.0] - 2020-07-27
+
### Added
- Add `SMTP_SSL` environment variable ([OmmyZhang](https://github.com/mastodon/mastodon/pull/14309))
@@ -1393,7 +1409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix unique username constraint for local users not being enforced in database ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14099))
- Fix unnecessary gap under video modal in web UI ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14098))
- Fix 2FA and sign in token pages not respecting user locale ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14087))
-- Fix unapproved users being able to view profiles when in limited-federation mode *and* requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093))
+- Fix unapproved users being able to view profiles when in limited-federation mode _and_ requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093))
- Fix initial audio volume not corresponding to what's displayed in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14057))
- Fix timelines sometimes jumping when closing modals in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14019))
- Fix memory usage of downloading remote files ([Gargron](https://github.com/mastodon/mastodon/pull/14184), [Gargron](https://github.com/mastodon/mastodon/pull/14181), [noellabo](https://github.com/mastodon/mastodon/pull/14356))
@@ -1411,6 +1427,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Clear out media attachments in a separate worker (slow)
## [3.1.5] - 2020-07-07
+
### Security
- Fix media attachment enumeration ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14254))
@@ -1418,6 +1435,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix other sessions not being logged out on password change ([Gargron](https://github.com/mastodon/mastodon/pull/14252))
## [3.1.4] - 2020-05-14
+
### Added
- Add `vi` to available locales ([taicv](https://github.com/mastodon/mastodon/pull/13542))
@@ -1456,7 +1474,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix regression in `tootctl media remove-orphans` ([Gargron](https://github.com/mastodon/mastodon/pull/13405))
- Fix old unique jobs digests not having been cleaned up ([Gargron](https://github.com/mastodon/mastodon/pull/13683))
- Fix own following/followers not showing muted users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13614))
-- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676))
+- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676))
- Fix wrong pgHero Content-Security-Policy when `CDN_HOST` is set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13595))
- Fix needlessly deduplicating usernames on collisions with remote accounts when signing-up through SAML/CAS ([kaiyou](https://github.com/mastodon/mastodon/pull/13581))
- Fix page incorrectly scrolling when bringing up dropdown menus in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13574))
@@ -1485,6 +1503,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- The issue only affects developers of apps who are shared between multiple users, such as server-side apps like cross-posters
## [3.1.3] - 2020-04-05
+
### Added
- Add ability to filter audit log in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/13381))
@@ -1558,6 +1577,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix re-sending of e-mail confirmation not being rate limited ([Gargron](https://github.com/mastodon/mastodon/pull/13360))
## [v3.1.2] - 2020-02-27
+
### Added
- Add `--reset-password` option to `tootctl accounts modify` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13126))
@@ -1584,11 +1604,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix leak of arbitrary statuses through unfavourite action in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/13161))
## [3.1.1] - 2020-02-10
+
### Fixed
- Fix yanked dependency preventing installation ([mayaeh](https://github.com/mastodon/mastodon/pull/13059))
## [3.1.0] - 2020-02-09
+
### Added
- Add bookmarks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/7107), [Gargron](https://github.com/mastodon/mastodon/pull/12494), [Gomasy](https://github.com/mastodon/mastodon/pull/12381))
@@ -1753,6 +1775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix settings pages being cacheable by the browser ([Gargron](https://github.com/mastodon/mastodon/pull/12714))
## [3.0.1] - 2019-10-10
+
### Added
- Add `tootctl media usage` command ([Gargron](https://github.com/mastodon/mastodon/pull/12115))
@@ -1786,6 +1809,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix `tootctl accounts cull` advertising unused option flag ([Kjwon15](https://github.com/mastodon/mastodon/pull/12074))
## [3.0.0] - 2019-10-03
+
### Added
- Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11715), [Gargron](https://github.com/mastodon/mastodon/pull/11745))
@@ -1982,6 +2006,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix performance of GIF re-encoding and always strip EXIF data from videos ([Gargron](https://github.com/mastodon/mastodon/pull/12057))
## [2.9.3] - 2019-08-10
+
### Added
- Add GIF and WebP support for custom emojis ([Gargron](https://github.com/mastodon/mastodon/pull/11519))
@@ -2041,6 +2066,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix blocked domains still being able to fill database with account records ([Gargron](https://github.com/mastodon/mastodon/pull/11219))
## [2.9.2] - 2019-06-22
+
### Added
- Add `short_description` and `approval_required` to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/11146))
@@ -2055,6 +2081,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix audio not being downloaded from remote servers ([Gargron](https://github.com/mastodon/mastodon/pull/11145))
## [2.9.1] - 2019-06-22
+
### Added
- Add moderation API ([Gargron](https://github.com/mastodon/mastodon/pull/9387))
@@ -2080,6 +2107,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix scrolling behaviour in compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11093))
## [2.9.0] - 2019-06-13
+
### Added
- **Add single-column mode in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/10807), [Gargron](https://github.com/mastodon/mastodon/pull/10848), [Gargron](https://github.com/mastodon/mastodon/pull/11003), [Gargron](https://github.com/mastodon/mastodon/pull/10961), [Hanage999](https://github.com/mastodon/mastodon/pull/10915), [noellabo](https://github.com/mastodon/mastodon/pull/10917), [abcang](https://github.com/mastodon/mastodon/pull/10859), [Gargron](https://github.com/mastodon/mastodon/pull/10820), [Gargron](https://github.com/mastodon/mastodon/pull/10835), [Gargron](https://github.com/mastodon/mastodon/pull/10809), [Gargron](https://github.com/mastodon/mastodon/pull/10963), [noellabo](https://github.com/mastodon/mastodon/pull/10883), [Hanage999](https://github.com/mastodon/mastodon/pull/10839))
@@ -2134,6 +2162,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix login sometimes redirecting to paths that are not pages ([Gargron](https://github.com/mastodon/mastodon/pull/11019))
## [2.8.4] - 2019-05-24
+
### Fixed
- Fix delivery not retrying on some inbox errors that should be retriable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10812))
@@ -2145,6 +2174,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Require specific OAuth scopes for specific endpoints of the streaming API, instead of merely requiring a token for all endpoints, and allow using WebSockets protocol negotiation to specify the access token instead of using a query string ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10818))
## [2.8.3] - 2019-05-19
+
### Added
- Add `og:image:alt` OpenGraph tag ([BenLubar](https://github.com/mastodon/mastodon/pull/10779))
@@ -2167,6 +2197,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix "invited by" not showing up in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10791))
## [2.8.2] - 2019-05-05
+
### Added
- Add `SOURCE_TAG` environment variable ([ushitora-anqou](https://github.com/mastodon/mastodon/pull/10698))
@@ -2179,6 +2210,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix closing video modal scrolling timelines to top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10695))
## [2.8.1] - 2019-05-04
+
### Added
- Add link to existing domain block when trying to block an already-blocked domain ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10663))
@@ -2218,6 +2250,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix confirmation modals being too narrow for a secondary action button ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10586))
## [2.8.0] - 2019-04-10
+
### Added
- Add polls ([Gargron](https://github.com/mastodon/mastodon/pull/10111), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10155), [Gargron](https://github.com/mastodon/mastodon/pull/10184), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10196), [Gargron](https://github.com/mastodon/mastodon/pull/10248), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10255), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10322), [Gargron](https://github.com/mastodon/mastodon/pull/10138), [Gargron](https://github.com/mastodon/mastodon/pull/10139), [Gargron](https://github.com/mastodon/mastodon/pull/10144), [Gargron](https://github.com/mastodon/mastodon/pull/10145),[Gargron](https://github.com/mastodon/mastodon/pull/10146), [Gargron](https://github.com/mastodon/mastodon/pull/10148), [Gargron](https://github.com/mastodon/mastodon/pull/10151), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10150), [Gargron](https://github.com/mastodon/mastodon/pull/10168), [Gargron](https://github.com/mastodon/mastodon/pull/10165), [Gargron](https://github.com/mastodon/mastodon/pull/10172), [Gargron](https://github.com/mastodon/mastodon/pull/10170), [Gargron](https://github.com/mastodon/mastodon/pull/10171), [Gargron](https://github.com/mastodon/mastodon/pull/10186), [Gargron](https://github.com/mastodon/mastodon/pull/10189), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10200), [rinsuki](https://github.com/mastodon/mastodon/pull/10203), [Gargron](https://github.com/mastodon/mastodon/pull/10213), [Gargron](https://github.com/mastodon/mastodon/pull/10246), [Gargron](https://github.com/mastodon/mastodon/pull/10265), [Gargron](https://github.com/mastodon/mastodon/pull/10261), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10333), [Gargron](https://github.com/mastodon/mastodon/pull/10352), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10140), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10141), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10161), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10158), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10156), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10160), [Gargron](https://github.com/mastodon/mastodon/pull/10185), [Gargron](https://github.com/mastodon/mastodon/pull/10188), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10195), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10208), [Gargron](https://github.com/mastodon/mastodon/pull/10187), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10214), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10209))
@@ -2301,6 +2334,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix `tootctl accounts cull` sometimes removing accounts that are temporarily unreachable ([BenLubar](https://github.com/mastodon/mastodon/pull/10460))
## [2.7.4] - 2019-03-05
+
### Fixed
- Fix web UI not cleaning up notifications after block ([Gargron](https://github.com/mastodon/mastodon/pull/10108))
@@ -2315,6 +2349,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix edit profile page crash for suspended-then-unsuspended users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10178))
## [2.7.3] - 2019-02-23
+
### Added
- Add domain filter to the admin federation page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10071))
@@ -2332,6 +2367,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change custom emojis to randomize stored file name ([hinaloe](https://github.com/mastodon/mastodon/pull/10090))
## [2.7.2] - 2019-02-17
+
### Added
- Add support for IPv6 in e-mail validation ([zoc](https://github.com/mastodon/mastodon/pull/10009))
@@ -2373,6 +2409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change error graphic to hover-to-play ([Gargron](https://github.com/mastodon/mastodon/pull/10055))
## [2.7.1] - 2019-01-28
+
### Fixed
- Fix SSO authentication not working due to missing agreement boolean ([Gargron](https://github.com/mastodon/mastodon/pull/9915))
@@ -2387,6 +2424,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix missing strong style for landing page description ([Kjwon15](https://github.com/mastodon/mastodon/pull/9892))
## [2.7.0] - 2019-01-20
+
### Added
- Add link for adding a user to a list from their profile ([namelessGonbai](https://github.com/mastodon/mastodon/pull/9062))
@@ -2516,6 +2554,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add tombstones for remote statuses to prevent replay attacks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9830))
## [2.6.5] - 2018-12-01
+
### Changed
- Change lists to display replies to others on the list and list owner ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9324))
@@ -2525,11 +2564,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix failures caused by commonly-used JSON-LD contexts being unavailable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9412))
## [2.6.4] - 2018-11-30
+
### Fixed
- Fix yarn dependencies not installing due to yanked event-stream package ([Gargron](https://github.com/mastodon/mastodon/pull/9401))
## [2.6.3] - 2018-11-30
+
### Added
- Add hyphen to characters allowed in remote usernames ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9345))
@@ -2549,6 +2590,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix TLS handshake timeout not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9381))
## [2.6.2] - 2018-11-23
+
### Added
- Add Page to whitelisted ActivityPub types ([mbajur](https://github.com/mastodon/mastodon/pull/9188))
@@ -2583,12 +2625,14 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix HTTP connection timeout of 10s not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9329))
## [2.6.1] - 2018-10-30
+
### Fixed
- Fix resolving resources by URL not working due to a regression in [valerauko](https://github.com/mastodon/mastodon/pull/9132) ([Gargron](https://github.com/mastodon/mastodon/pull/9171))
- Fix reducer error in web UI when a conversation has no last status ([Gargron](https://github.com/mastodon/mastodon/pull/9173))
## [2.6.0] - 2018-10-30
+
### Added
- Add link ownership verification ([Gargron](https://github.com/mastodon/mastodon/pull/8703))
@@ -2693,11 +2737,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix handling of content types with profile ([valerauko](https://github.com/mastodon/mastodon/pull/9132))
## [2.5.2] - 2018-10-12
+
### Security
- Fix XSS vulnerability ([Gargron](https://github.com/mastodon/mastodon/pull/8959))
## [2.5.1] - 2018-10-07
+
### Fixed
- Fix database migrations for PostgreSQL below 9.5 ([Gargron](https://github.com/mastodon/mastodon/pull/8903))
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index ea5f64b0b..97ed96772 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo
Examples of behavior that contributes to creating a positive environment include:
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
-* The use of sexualized language or imagery and unwelcome sexual attention or advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a professional setting
+- The use of sexualized language or imagery and unwelcome sexual attention or advances
+- Trolling, insulting/derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or electronic address, without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9963054b3..d67b21ee5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,4 @@
-Contributing
-============
+# Contributing
Thank you for considering contributing to Mastodon 🐘
@@ -28,9 +27,9 @@ You can submit translations via [Crowdin](https://crowdin.com/project/mastodon).
Example:
-|Not ideal|Better|
-|---|----|
-|Fixed NoMethodError in RemovalWorker|Fix nil error when removing statuses caused by race condition|
+| Not ideal | Better |
+| ------------------------------------ | ------------------------------------------------------------- |
+| Fixed NoMethodError in RemovalWorker | Fix nil error when removing statuses caused by race condition |
It is not always possible to phrase every change in such a manner, but it is desired.
diff --git a/SECURITY.md b/SECURITY.md
index 234172999..6a51c126a 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -2,7 +2,7 @@
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at .
-You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
+You should _not_ report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
## Scope
From af4c95100c519ea63c9d8a3e9a3f900091933ce2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:58:33 -0500
Subject: [PATCH 21/55] Autofix Rubocop Style/FormatString (#23743)
---
.rubocop_todo.yml | 10 ----------
app/serializers/rest/privacy_policy_serializer.rb | 2 +-
lib/mastodon/maintenance_cli.rb | 2 +-
lib/paperclip/color_extractor.rb | 2 +-
4 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e667a7786..19d595e90 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2026,16 +2026,6 @@ Style/FetchEnvVar:
- 'lib/tasks/repo.rake'
- 'spec/features/profile_spec.rb'
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: format, sprintf, percent
-Style/FormatString:
- Exclude:
- - 'app/serializers/rest/privacy_policy_serializer.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/paperclip/color_extractor.rb'
-
# Offense count: 15
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns.
diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb
index f0572e714..57a67abf3 100644
--- a/app/serializers/rest/privacy_policy_serializer.rb
+++ b/app/serializers/rest/privacy_policy_serializer.rb
@@ -8,7 +8,7 @@ class REST::PrivacyPolicySerializer < ActiveModel::Serializer
end
def content
- markdown.render(object.text % { domain: Rails.configuration.x.local_domain })
+ markdown.render(format(object.text, domain: Rails.configuration.x.local_domain))
end
private
diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb
index 3e644045f..ff8f6ddda 100644
--- a/lib/mastodon/maintenance_cli.rb
+++ b/lib/mastodon/maintenance_cli.rb
@@ -550,7 +550,7 @@ module Mastodon
@prompt.warn 'All those accounts are distinct accounts but only the most recently-created one is fully-functional.'
accounts.each_with_index do |account, idx|
- @prompt.say '%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s' % [idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A']
+ @prompt.say format('%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s', idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A')
end
@prompt.say 'Please chose the one to keep unchanged, other ones will be automatically renamed.'
diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb
index 733dcba80..2e8dc04fd 100644
--- a/lib/paperclip/color_extractor.rb
+++ b/lib/paperclip/color_extractor.rb
@@ -183,7 +183,7 @@ module Paperclip
end
def rgb_to_hex(rgb)
- '#%02x%02x%02x' % [rgb.r, rgb.g, rgb.b]
+ format('#%02x%02x%02x', rgb.r, rgb.g, rgb.b)
end
end
end
From 2c3c734bcc5e485a59145b78f5c783ca9a462cb7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:58:46 -0500
Subject: [PATCH 22/55] Autofix Rubocop Style/SymbolProc (#23742)
---
.rubocop_todo.yml | 8 --------
spec/lib/request_spec.rb | 8 ++++----
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 19d595e90..f365914cb 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2451,11 +2451,3 @@ Style/SymbolArray:
- 'spec/controllers/concerns/signature_verification_spec.rb'
- 'spec/fabricators/notification_fabricator.rb'
- 'spec/models/public_feed_spec.rb'
-
-# Offense count: 4
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
-# AllowedMethods: define_method, mail, respond_to
-Style/SymbolProc:
- Exclude:
- - 'spec/lib/request_spec.rb'
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index f63a836de..25fe9ed37 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -97,12 +97,12 @@ describe Request do
describe "response's body_with_limit method" do
it 'rejects body more than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes))
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'accepts body less than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
- expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error
+ expect { subject.perform(&:body_with_limit) }.to_not raise_error
end
it 'rejects body by given size' do
@@ -112,12 +112,12 @@ describe Request do
it 'rejects too large chunked body' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Transfer-Encoding' => 'chunked' })
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'rejects too large monolithic body' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Content-Length' => 2.megabytes })
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'truncates large monolithic body' do
From 62c4aecf8f3cb1e2bf1d0d1611084a3406a7adc0 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Mon, 20 Feb 2023 08:11:23 +0100
Subject: [PATCH 23/55] Make larger part of status clickable (#23621)
---
app/javascript/mastodon/components/status.jsx | 5 +++--
app/javascript/styles/mastodon/components.scss | 3 ++-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx
index f02910f5a..2e2d96634 100644
--- a/app/javascript/mastodon/components/status.jsx
+++ b/app/javascript/mastodon/components/status.jsx
@@ -160,6 +160,7 @@ class Status extends ImmutablePureComponent {
if (e) {
e.preventDefault();
+ e.stopPropagation();
}
this._openProfile(proper);
@@ -510,8 +511,8 @@ class Status extends ImmutablePureComponent {
{prepend}
+ {status.get('edited_at') && *}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 11c28dbc1..62e48eb3d 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -1200,11 +1200,12 @@ body > [data-popper-placement] {
.status__info {
font-size: 15px;
- margin-bottom: 10px;
+ padding-bottom: 10px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
+ cursor: pointer;
}
.status-check-box__status {
From 59c8d43d94aa782848bf00f000512a04fca7c069 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 05:01:20 -0500
Subject: [PATCH 24/55] Autofix Rubocop Style/RescueStandardError (#23745)
---
.rubocop.yml | 3 +++
.rubocop_todo.yml | 18 ------------------
app/lib/request_pool.rb | 2 +-
app/services/import_service.rb | 2 +-
lib/mastodon/domains_cli.rb | 2 +-
lib/tasks/mastodon.rake | 6 +++---
6 files changed, 9 insertions(+), 24 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 512c8458f..27d778edf 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -115,6 +115,9 @@ Style/PercentLiteralDelimiters:
'%i': '()'
'%w': '()'
+Style/RescueStandardError:
+ EnforcedStyle: implicit
+
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: 'comma'
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index f365914cb..bb214a70b 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2234,24 +2234,6 @@ Style/RegexpLiteral:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/mastodon.rake'
-# Offense count: 21
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: implicit, explicit
-Style/RescueStandardError:
- Exclude:
- - 'app/lib/activitypub/activity/move.rb'
- - 'app/lib/request.rb'
- - 'app/models/account.rb'
- - 'app/workers/move_worker.rb'
- - 'app/workers/scheduler/vacuum_scheduler.rb'
- - 'lib/mastodon/accounts_cli.rb'
- - 'lib/mastodon/cli_helper.rb'
- - 'lib/mastodon/media_cli.rb'
- - 'lib/mastodon/sidekiq_middleware.rb'
- - 'lib/mastodon/statuses_cli.rb'
- - 'lib/mastodon/upgrade_cli.rb'
-
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
diff --git a/app/lib/request_pool.rb b/app/lib/request_pool.rb
index e5899a79a..6be172286 100644
--- a/app/lib/request_pool.rb
+++ b/app/lib/request_pool.rb
@@ -64,7 +64,7 @@ class RequestPool
retries += 1
retry
end
- rescue StandardError
+ rescue
# If this connection raises errors of any kind, it's
# better if it gets reaped as soon as possible
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
index 2f48abc36..7a68e4ca3 100644
--- a/app/services/import_service.rb
+++ b/app/services/import_service.rb
@@ -114,7 +114,7 @@ class ImportService < BaseService
status || ActivityPub::FetchRemoteStatusService.new.call(uri)
rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::UnexpectedResponseError
nil
- rescue StandardError => e
+ rescue => e
Rails.logger.warn "Unexpected error when importing bookmark: #{e}"
nil
end
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index 41ea5b152..05f08f462 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -165,7 +165,7 @@ module Mastodon
stats[domain]['activity'] = Oj.load(res.to_s)
end
- rescue StandardError
+ rescue
failed.increment
ensure
processed.increment
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index f919ba989..0a3946ac7 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -92,7 +92,7 @@ namespace :mastodon do
prompt.ok 'Database configuration works! 🎆'
db_connection_works = true
break
- rescue StandardError => e
+ rescue => e
prompt.error 'Database connection could not be established with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
@@ -132,7 +132,7 @@ namespace :mastodon do
redis.ping
prompt.ok 'Redis configuration works! 🎆'
break
- rescue StandardError => e
+ rescue => e
prompt.error 'Redis connection could not be established with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
@@ -417,7 +417,7 @@ namespace :mastodon do
mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!'
mail.deliver
break
- rescue StandardError => e
+ rescue => e
prompt.error 'E-mail could not be sent with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
From b65ca7acc9753227a5f3958c894d3ece9024dcd2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 05:02:06 -0500
Subject: [PATCH 25/55] Update rebase needed job settings (#23746)
---
.github/workflows/rebase-needed.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index a5899e0f0..99b224ec6 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -5,6 +5,9 @@ on:
pull_request_target:
types: [synchronize]
+permissions:
+ pull-requests: write
+
jobs:
label-rebase-needed:
runs-on: ubuntu-latest
@@ -19,4 +22,7 @@ jobs:
with:
dirtyLabel: 'rebase needed :construction:'
repoToken: '${{ secrets.GITHUB_TOKEN }}'
+ commentOnClean: This pull request has resolved merge conflicts and is ready for review.
commentOnDirty: This pull request has merge conflicts that must be resolved before it can be merged.
+ retryMax: 10
+ continueOnMissingPermissions: false
From d3b4d4d4f3ccee19f272c66e7c9acd803661e65b Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 20 Feb 2023 11:32:27 +0100
Subject: [PATCH 26/55] Change compose form checkbox to native input with
`appearance: none` (#22949)
---
.../compose/containers/sensitive_button_container.jsx | 2 --
app/javascript/styles/mastodon/components.scss | 8 +++-----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
index 1bcce5731..03f831d28 100644
--- a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
+++ b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
@@ -54,8 +54,6 @@ class SensitiveButton extends React.PureComponent {
disabled={disabled}
/>
-
-
[data-popper-placement] {
}
input[type='checkbox'] {
- display: none;
- }
-
- .checkbox {
+ appearance: none;
display: inline-block;
position: relative;
border: 1px solid $ui-primary-color;
@@ -420,8 +417,9 @@ body > [data-popper-placement] {
top: -1px;
border-radius: 4px;
vertical-align: middle;
+ cursor: inherit;
- &.active {
+ &:checked {
border-color: $highlight-text-color;
background: $highlight-text-color
url("data:image/svg+xml;utf8,")
From 9909b4b653d2f1cef662211a4b8e0b02cbb42fc1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 13:20:56 -0500
Subject: [PATCH 27/55] Autofix Rubocop Rails/WhereEquals (#23759)
---
.rubocop_todo.yml | 7 -------
app/models/announcement.rb | 2 +-
app/models/status.rb | 2 +-
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index bb214a70b..2a272b095 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1916,13 +1916,6 @@ Rails/UnusedIgnoredColumns:
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
-# Offense count: 2
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Rails/WhereEquals:
- Exclude:
- - 'app/models/announcement.rb'
- - 'app/models/status.rb'
-
# Offense count: 61
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index 898bf3efa..339f5ae70 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -20,7 +20,7 @@
class Announcement < ApplicationRecord
scope :unpublished, -> { where(published: false) }
scope :published, -> { where(published: true) }
- scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') }
+ scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where(announcement_mutes: { id: nil }) }
scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) }
scope :reverse_chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) DESC')) }
diff --git a/app/models/status.rb b/app/models/status.rb
index 2eb47d72c..e7ea191a8 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -95,7 +95,7 @@ class Status < ApplicationRecord
scope :local, -> { where(local: true).or(where(uri: nil)) }
scope :with_accounts, ->(ids) { where(id: ids).includes(:account) }
scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }
- scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') }
+ scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :with_public_visibility, -> { where(visibility: :public) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) }
From 35d032500b7e8c56d3fe3a05bcaa3bddb447b67a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 13:21:19 -0500
Subject: [PATCH 28/55] Autofix Rubocop Security/IoMethods (#23757)
---
.rubocop_todo.yml | 7 -------
.../admin/export_domain_allows_controller_spec.rb | 4 ++--
.../admin/export_domain_blocks_controller_spec.rb | 2 +-
3 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 2a272b095..331e24e7a 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1956,13 +1956,6 @@ Rails/WhereExists:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
-# Offense count: 3
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Security/IoMethods:
- Exclude:
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
-
# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/CaseLikeIf:
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 7ee064de7..1f974bc00 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
end
end
@@ -30,7 +30,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
# Domains should now be added
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
end
it 'displays error on no file selected' do
diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
index 2766102c8..a8d7b7383 100644
--- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_blocks.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_blocks.csv')))
end
end
From 434770f580016acff6bdb51dc6715bffefb44150 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 20:21:48 -0500
Subject: [PATCH 29/55] Autofix Rubocop Rails/FindById (#23762)
---
.rubocop_todo.yml | 7 -------
app/controllers/api/v1/notifications_controller.rb | 2 +-
app/controllers/media_controller.rb | 2 +-
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 331e24e7a..d99774e8e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1645,13 +1645,6 @@ Rails/FilePath:
- 'spec/rails_helper.rb'
- 'spec/spec_helper.rb'
-# Offense count: 2
-# This cop supports safe autocorrection (--autocorrect).
-Rails/FindById:
- Exclude:
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/media_controller.rb'
-
# Offense count: 6
# Configuration parameters: Include.
# Include: app/models/**/*.rb
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb
index 2024d521c..8414f6b25 100644
--- a/app/controllers/api/v1/notifications_controller.rb
+++ b/app/controllers/api/v1/notifications_controller.rb
@@ -24,7 +24,7 @@ class Api::V1::NotificationsController < Api::BaseController
end
def dismiss
- current_account.notifications.find_by!(id: params[:id]).destroy!
+ current_account.notifications.find(params[:id]).destroy!
render_empty
end
diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb
index 3cdd97f06..133564ee7 100644
--- a/app/controllers/media_controller.rb
+++ b/app/controllers/media_controller.rb
@@ -32,7 +32,7 @@ class MediaController < ApplicationController
scope = MediaAttachment.local.attached
# If id is 19 characters long, it's a shortcode, otherwise it's an identifier
- @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find_by!(id: id)
+ @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find(id)
end
def verify_permitted_status!
From 7207a98d3990124c6dc1df2187475695c800e65f Mon Sep 17 00:00:00 2001
From: Claire
Date: Tue, 21 Feb 2023 09:23:39 +0100
Subject: [PATCH 30/55] Add `lang` tag to native language names in language
picker (#23749)
---
.../mastodon/features/compose/components/language_dropdown.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
index d96d39f23..82547e079 100644
--- a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
+++ b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
@@ -210,7 +210,7 @@ class LanguageDropdownMenu extends React.PureComponent {
return (
- {lang[2]}({lang[1]})
+ {lang[2]}({lang[1]})
);
};
From fbbf5c48411b20b8b171bf92cd42e461ab6d071c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:29:07 +0100
Subject: [PATCH 31/55] Bump capistrano from 3.17.1 to 3.17.2 (#23775)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 6e4c4cdc3..9ed83ec72 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -156,7 +156,7 @@ GEM
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
byebug (11.1.3)
- capistrano (3.17.1)
+ capistrano (3.17.2)
airbrussh (>= 1.0.0)
i18n
rake (>= 10.0.0)
@@ -430,7 +430,7 @@ GEM
net-protocol
net-protocol (0.2.1)
timeout
- net-scp (4.0.0.rc1)
+ net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-protocol
@@ -682,7 +682,7 @@ GEM
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
- sshkit (1.21.2)
+ sshkit (1.21.4)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
stackprof (0.2.23)
From d58400d00ca4d93b3187dc660e0d1b2e65c964a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:30:59 +0100
Subject: [PATCH 32/55] Bump sass from 1.58.2 to 1.58.3 (#23772)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/package.json b/package.json
index 06af9045e..67ee5e21f 100644
--- a/package.json
+++ b/package.json
@@ -115,7 +115,7 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.1.7",
"rimraf": "^4.1.2",
- "sass": "^1.58.2",
+ "sass": "^1.58.3",
"sass-loader": "^10.2.0",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
diff --git a/yarn.lock b/yarn.lock
index e499d90ff..d5a74786c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1469,7 +1469,7 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.2", "@jest/types@^29.4.3":
+"@jest/types@^29.4.3":
version "29.4.3"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f"
integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==
@@ -6803,7 +6803,7 @@ jest-snapshot@^29.4.3:
pretty-format "^29.4.3"
semver "^7.3.5"
-jest-util@^29.4.2, jest-util@^29.4.3:
+jest-util@^29.4.3:
version "29.4.3"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496"
integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==
@@ -9733,10 +9733,10 @@ sass-loader@^10.2.0:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.58.2:
- version "1.58.2"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.2.tgz#ef3c5098a02dd006f09a2350b114f1ac445e38ce"
- integrity sha512-2mbyOWOv/lhEXD6nVrQZQ4KT2DlwcODbTskM42EyqBAFUWOhiiYtAXZqjZz1ygzapYf+N+2GwfIH9M5FM4GUMg==
+sass@^1.58.3:
+ version "1.58.3"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d"
+ integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
From 57b83ce3377098b950c696995d31ac906f1a1b13 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:33:30 +0100
Subject: [PATCH 33/55] Bump blurhash from 2.0.4 to 2.0.5 (#23771)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 67ee5e21f..7e78b9b70 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,7 @@
"babel-plugin-preval": "^5.1.0",
"babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
- "blurhash": "^2.0.4",
+ "blurhash": "^2.0.5",
"classnames": "^2.3.2",
"cocoon-js-vanilla": "^1.3.0",
"color-blend": "^3.0.1",
diff --git a/yarn.lock b/yarn.lock
index d5a74786c..40c6fd393 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2782,10 +2782,10 @@ bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-blurhash@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.4.tgz#60642a823b50acaaf3732ddb6c7dfd721bdfef2a"
- integrity sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==
+blurhash@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.5.tgz#efde729fc14a2f03571a6aa91b49cba80d1abe4b"
+ integrity sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==
bmp-js@^0.1.0:
version "0.1.0"
From 513316f768701fa3450da25d52e262f1adbfed4c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:41:28 +0100
Subject: [PATCH 34/55] Bump stylelint from 15.1.0 to 15.2.0 (#23770)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 7e78b9b70..07c2a12c9 100644
--- a/package.json
+++ b/package.json
@@ -157,7 +157,7 @@
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.14.0",
- "stylelint": "^15.1.0",
+ "stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1",
"webpack-dev-server": "^3.11.3",
"yargs": "^17.7.0"
diff --git a/yarn.lock b/yarn.lock
index 40c6fd393..a05847084 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10503,10 +10503,10 @@ stylelint-scss@^4.4.0:
postcss-selector-parser "^6.0.6"
postcss-value-parser "^4.1.0"
-stylelint@^15.1.0:
- version "15.1.0"
- resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.1.0.tgz#24d7cbe06250ceca3b276393bfdeaaaba4356195"
- integrity sha512-Tw8OyIiYhxnIHUzgoLlCyWgCUKsPYiP3TDgs7M1VbayS+q5qZly2yxABg+YPe/hFRWiu0cOtptCtpyrn1CrnYw==
+stylelint@^15.2.0:
+ version "15.2.0"
+ resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.2.0.tgz#e906eb59df83bde075d148623216f298f9ceb03a"
+ integrity sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA==
dependencies:
"@csstools/css-parser-algorithms" "^2.0.1"
"@csstools/css-tokenizer" "^2.0.1"
From 7adde24a95218048f14c29bee0d25afaeae99509 Mon Sep 17 00:00:00 2001
From: Botao Wang
Date: Tue, 21 Feb 2023 18:06:13 +0900
Subject: [PATCH 35/55] Fix sidebar cut-off on small screens in admin UI
(#23764)
---
app/javascript/styles/mastodon/admin.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index d9e45fb10..d54d6634d 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -384,7 +384,7 @@ $content-width: 840px;
position: fixed;
z-index: 10;
width: 100%;
- height: calc(100vh - 56px);
+ height: calc(100% - 56px);
left: 0;
bottom: 0;
overflow-y: auto;
From 4b964fa605500a1e76caa876514a6b3107b8e0e6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:41:28 +0100
Subject: [PATCH 36/55] Bump devise from 4.8.1 to 4.9.0 (#23691)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile | 2 +-
Gemfile.lock | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/Gemfile b/Gemfile
index 0fca82cea..479a4eeac 100644
--- a/Gemfile
+++ b/Gemfile
@@ -30,7 +30,7 @@ gem 'bootsnap', '~> 1.16.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.2'
-gem 'devise', '~> 4.8'
+gem 'devise', '~> 4.9'
gem 'devise-two-factor', '~> 4.0'
group :pam_authentication, optional: true do
diff --git a/Gemfile.lock b/Gemfile.lock
index 9ed83ec72..a78a64757 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -125,7 +125,7 @@ GEM
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.2)
aws-eventstream (~> 1, >= 1.0.2)
- bcrypt (3.1.17)
+ bcrypt (3.1.18)
better_errors (2.9.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
@@ -205,7 +205,7 @@ GEM
addressable
date (3.3.3)
debug_inspector (1.0.0)
- devise (4.8.1)
+ devise (4.9.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
@@ -575,9 +575,9 @@ GEM
regexp_parser (2.7.0)
request_store (1.5.1)
rack (>= 1.4)
- responders (3.0.1)
- actionpack (>= 5.0)
- railties (>= 5.0)
+ responders (3.1.0)
+ actionpack (>= 5.2)
+ railties (>= 5.2)
rexml (3.2.5)
rotp (6.2.0)
rpam2 (4.0.2)
@@ -797,7 +797,7 @@ DEPENDENCIES
color_diff (~> 0.1)
concurrent-ruby
connection_pool
- devise (~> 4.8)
+ devise (~> 4.9)
devise-two-factor (~> 4.0)
devise_pam_authenticatable2 (~> 9.2)
discard (~> 1.2)
From 92a0afda28302a4cea425b287bed74cfb61a2af3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:44:51 +0100
Subject: [PATCH 37/55] Bump @babel/runtime from 7.20.13 to 7.21.0 (#23773)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 07c2a12c9..f1c5bdc0e 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
- "@babel/runtime": "^7.20.13",
+ "@babel/runtime": "^7.21.0",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^0.5.7",
"@rails/ujs": "^6.1.7",
diff --git a/yarn.lock b/yarn.lock
index a05847084..a87db5fad 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1030,10 +1030,10 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
- version "7.20.13"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
- integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
regenerator-runtime "^0.13.11"
From a573641b15bdddd0e1bd213b11eb50e299cfe69e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:46:03 +0100
Subject: [PATCH 38/55] Bump @babel/core from 7.20.12 to 7.21.0 (#23767)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 138 ++++++++++++++++++++++++++++++++-------------------
2 files changed, 88 insertions(+), 52 deletions(-)
diff --git a/package.json b/package.json
index f1c5bdc0e..411f636f9 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.20.12",
+ "@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
"@babel/plugin-transform-runtime": "^7.19.6",
diff --git a/yarn.lock b/yarn.lock
index a87db5fad..882b72836 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,12 +7,13 @@
resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd"
integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==
-"@ampproject/remapping@^2.1.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
- integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+"@ampproject/remapping@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.0"
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@apideck/better-ajv-errors@^0.3.1":
version "0.3.3"
@@ -40,21 +41,21 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
-"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.12", "@babel/core@^7.7.2":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
- integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
+"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.0", "@babel/core@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
+ integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
dependencies:
- "@ampproject/remapping" "^2.1.0"
+ "@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.7"
+ "@babel/generator" "^7.21.0"
"@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helpers" "^7.20.7"
- "@babel/parser" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.21.0"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.0"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.12"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -70,13 +71,14 @@
eslint-visitor-keys "^2.1.0"
semver "^6.3.0"
-"@babel/generator@^7.20.7", "@babel/generator@^7.7.2":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
- integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
+"@babel/generator@^7.21.0", "@babel/generator@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.0.tgz#45d731e84f506ce02a7b22b9ba5861ea88eef64f"
+ integrity sha512-z/zN3SePOtxN1/vPFdqrkuJGCD2Vx469+dSbNRD+4TF2+6e4Of5exHqAtcfL/2Nwu0RN0QsFwjyDBFwdUMzNSA==
dependencies:
- "@babel/types" "^7.20.7"
+ "@babel/types" "^7.21.0"
"@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/helper-annotate-as-pure@^7.18.6":
@@ -167,6 +169,14 @@
"@babel/template" "^7.18.10"
"@babel/types" "^7.19.0"
+"@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
"@babel/helper-hoist-variables@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
@@ -188,10 +198,10 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.11":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
- integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67"
+ integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ==
dependencies:
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-module-imports" "^7.18.6"
@@ -199,8 +209,8 @@
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.19.1"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.10"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
@@ -289,14 +299,14 @@
"@babel/traverse" "^7.18.10"
"@babel/types" "^7.18.10"
-"@babel/helpers@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce"
- integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==
+"@babel/helpers@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
+ integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
dependencies:
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
"@babel/highlight@^7.18.6":
version "7.18.6"
@@ -307,10 +317,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
- integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4"
+ integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -1046,26 +1056,26 @@
"@babel/parser" "^7.20.7"
"@babel/types" "^7.20.7"
-"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5"
- integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc"
+ integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.7"
+ "@babel/generator" "^7.21.0"
"@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-function-name" "^7.21.0"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/parser" "^7.21.0"
+ "@babel/types" "^7.21.0"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
- integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819"
+ integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==
dependencies:
"@babel/helper-string-parser" "^7.19.4"
"@babel/helper-validator-identifier" "^7.19.1"
@@ -1481,6 +1491,14 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
+"@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
@@ -1490,22 +1508,32 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
+"@jridgewell/resolve-uri@3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
"@jridgewell/resolve-uri@^3.0.3":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
-"@jridgewell/set-array@^1.0.1":
+"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+"@jridgewell/sourcemap-codec@1.4.14":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.10"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
-"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.15"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
@@ -1513,6 +1541,14 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@jridgewell/trace-mapping@^0.3.17":
+ version "0.3.17"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
+ integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
version "5.1.1-v1"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
From 24d265d604ae01bdffb746671c8ea87a65abb97c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:59:58 +0100
Subject: [PATCH 39/55] Bump @babel/plugin-transform-runtime from 7.19.6 to
7.21.0 (#23774)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index 411f636f9..0ad8a579a 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
- "@babel/plugin-transform-runtime": "^7.19.6",
+ "@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
"@babel/runtime": "^7.21.0",
diff --git a/yarn.lock b/yarn.lock
index 882b72836..94c15cd32 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -858,13 +858,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-runtime@^7.19.6":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194"
- integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==
+"@babel/plugin-transform-runtime@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8"
+ integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==
dependencies:
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
babel-plugin-polyfill-corejs2 "^0.3.3"
babel-plugin-polyfill-corejs3 "^0.6.0"
babel-plugin-polyfill-regenerator "^0.4.1"
From 9d8349f0c47cf8a1e9d791d2d770ecc34277e900 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 11:14:25 +0100
Subject: [PATCH 40/55] Bump @babel/plugin-transform-react-inline-elements from
7.18.6 to 7.21.0 (#23766)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 22 +++++++++++-----------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/package.json b/package.json
index 0ad8a579a..8213164c5 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"dependencies": {
"@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
- "@babel/plugin-transform-react-inline-elements": "^7.18.6",
+ "@babel/plugin-transform-react-inline-elements": "^7.21.0",
"@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
diff --git a/yarn.lock b/yarn.lock
index 94c15cd32..7a42822f6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -96,13 +96,13 @@
"@babel/helper-explode-assignable-expression" "^7.18.6"
"@babel/types" "^7.18.6"
-"@babel/helper-builder-react-jsx@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.18.6.tgz#b3a302c0eb4949e5356b400cb752a91e93bf9b79"
- integrity sha512-2ndBVP5f9zwHWQeBr5EgqTAvFhPDViMW969bbJzRhKUUylnC39CdFZdVmqk+UtkxIpwm/efPgm3SzXUSlJnjAw==
+"@babel/helper-builder-react-jsx@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.19.0.tgz#a1f4fef805388eda4b3c1bd8994dc585b0afa351"
+ integrity sha512-xvrbORmJ13lWrqyMErk4vczhXNNWdOSg1BZ+R/7D34SjDjToR5g3M5UpD6MyUekstI50qAHLWA1j7w5o1WK2Pw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.19.0"
"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7":
version "7.20.7"
@@ -809,13 +809,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-inline-elements@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.18.6.tgz#d0676948eb5a11d547de6add7e8a2c522ec708f5"
- integrity sha512-uo3yD1EXhDxmk1Y/CeFDdHS5t22IOUBooLPFOrrjfpYmDM9Vg61xbIaWeWkbYQ7Aq0zMf30/FfKoQgFwyqw6Bg==
+"@babel/plugin-transform-react-inline-elements@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.21.0.tgz#921fe634c422987677b133b335ae3f3aecddda2a"
+ integrity sha512-lOSFD/67qxOwQ7q6KpkAbBFeGI5xy1Oya2zipYxPSmG2C210CRJyQdzOl1A368J1nv2gOFTgRXdsRjb83jioLw==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-builder-react-jsx" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-transform-react-jsx-development@^7.18.6":
version "7.18.6"
From 7ecf783dd3bfc07f80aab495273b6d01ba972c40 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 11:35:27 +0100
Subject: [PATCH 41/55] Bump @babel/plugin-proposal-decorators from 7.20.13 to
7.21.0 (#23769)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 41 ++++++++++++++++++++++++-----------------
2 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/package.json b/package.json
index 8213164c5..3d923bbac 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"private": true,
"dependencies": {
"@babel/core": "^7.21.0",
- "@babel/plugin-proposal-decorators": "^7.20.13",
+ "@babel/plugin-proposal-decorators": "^7.21.0",
"@babel/plugin-transform-react-inline-elements": "^7.21.0",
"@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
diff --git a/yarn.lock b/yarn.lock
index 7a42822f6..2fd3352cf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -115,15 +115,15 @@
lru-cache "^5.1.1"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819"
- integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
+ integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
"@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-member-expression-to-functions" "^7.20.7"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
"@babel/helper-optimise-call-expression" "^7.18.6"
"@babel/helper-replace-supers" "^7.20.7"
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
@@ -191,6 +191,13 @@
dependencies:
"@babel/types" "^7.20.7"
+"@babel/helper-member-expression-to-functions@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
+ integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
+ dependencies:
+ "@babel/types" "^7.21.0"
+
"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
@@ -365,16 +372,16 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-decorators@^7.20.13":
- version "7.20.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7"
- integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==
+"@babel/plugin-proposal-decorators@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63"
+ integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.20.12"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
"@babel/helper-plugin-utils" "^7.20.2"
"@babel/helper-replace-supers" "^7.20.7"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/plugin-syntax-decorators" "^7.19.0"
+ "@babel/plugin-syntax-decorators" "^7.21.0"
"@babel/plugin-proposal-dynamic-import@^7.18.6":
version "7.18.6"
@@ -506,12 +513,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-decorators@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599"
- integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==
+"@babel/plugin-syntax-decorators@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78"
+ integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==
dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
From 0cfdd1a401f055c23e308a4b823bd250b1cbb3d3 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:54:36 -0500
Subject: [PATCH 42/55] Enable Rubocop Style/StringConcatenation defaults
(#23792)
---
.rubocop_todo.yml | 19 -------------------
app/lib/activitypub/case_transform.rb | 2 +-
app/lib/validation_error_formatter.rb | 2 +-
app/services/backup_service.rb | 10 +++++-----
app/services/fetch_link_card_service.rb | 2 +-
lib/mastodon/emoji_cli.rb | 2 +-
lib/mastodon/redis_config.rb | 16 ++++++++--------
lib/mastodon/snowflake.rb | 2 +-
lib/paperclip/gif_transcoder.rb | 2 +-
lib/paperclip/type_corrector.rb | 2 +-
.../api/v1/apps_controller_spec.rb | 4 ++--
.../api/v1/streaming_controller_spec.rb | 2 +-
.../disallowed_hashtags_validator_spec.rb | 2 +-
.../web/push_notification_worker_spec.rb | 2 +-
14 files changed, 25 insertions(+), 44 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index d99774e8e..a72606b35 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2263,25 +2263,6 @@ Style/SlicingWithRange:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/repo.rake'
-# Offense count: 25
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: Mode.
-Style/StringConcatenation:
- Exclude:
- - 'app/lib/activitypub/case_transform.rb'
- - 'app/lib/validation_error_formatter.rb'
- - 'app/services/backup_service.rb'
- - 'app/services/fetch_link_card_service.rb'
- - 'lib/mastodon/emoji_cli.rb'
- - 'lib/mastodon/redis_config.rb'
- - 'lib/mastodon/snowflake.rb'
- - 'lib/paperclip/gif_transcoder.rb'
- - 'lib/paperclip/type_corrector.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/streaming_controller_spec.rb'
- - 'spec/validators/disallowed_hashtags_validator_spec.rb'
- - 'spec/workers/web/push_notification_worker_spec.rb'
-
# Offense count: 272
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MinSize.
diff --git a/app/lib/activitypub/case_transform.rb b/app/lib/activitypub/case_transform.rb
index 7f716f862..d36e01b8f 100644
--- a/app/lib/activitypub/case_transform.rb
+++ b/app/lib/activitypub/case_transform.rb
@@ -13,7 +13,7 @@ module ActivityPub::CaseTransform
when Symbol then camel_lower(value.to_s).to_sym
when String
camel_lower_cache[value] ||= if value.start_with?('_:')
- '_:' + value.gsub(/\A_:/, '').underscore.camelize(:lower)
+ "_:#{value.gsub(/\A_:/, '').underscore.camelize(:lower)}"
else
value.underscore.camelize(:lower)
end
diff --git a/app/lib/validation_error_formatter.rb b/app/lib/validation_error_formatter.rb
index 3f964f739..1d3e8955b 100644
--- a/app/lib/validation_error_formatter.rb
+++ b/app/lib/validation_error_formatter.rb
@@ -19,7 +19,7 @@ class ValidationErrorFormatter
messages = errors.messages[attribute_name]
h[@aliases[attribute_name] || attribute_name] = attribute_errors.map.with_index do |error, index|
- { error: 'ERR_' + error[:error].to_s.upcase, description: messages[index] }
+ { error: "ERR_#{error[:error].to_s.upcase}", description: messages[index] }
end
end
diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb
index b880dfbe7..5498cdd45 100644
--- a/app/services/backup_service.rb
+++ b/app/services/backup_service.rb
@@ -53,7 +53,7 @@ class BackupService < BaseService
end
end
- archive_filename = ['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-') + '.tar.gz'
+ archive_filename = "#{['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-')}.tar.gz"
@backup.dump = ActionDispatch::Http::UploadedFile.new(tempfile: tmp_file, filename: archive_filename)
@backup.processed = true
@@ -86,14 +86,14 @@ class BackupService < BaseService
def dump_actor!(tar)
actor = serialize(account, ActivityPub::ActorSerializer)
- actor[:icon][:url] = 'avatar' + File.extname(actor[:icon][:url]) if actor[:icon]
- actor[:image][:url] = 'header' + File.extname(actor[:image][:url]) if actor[:image]
+ actor[:icon][:url] = "avatar#{File.extname(actor[:icon][:url])}" if actor[:icon]
+ actor[:image][:url] = "header#{File.extname(actor[:image][:url])}" if actor[:image]
actor[:outbox] = 'outbox.json'
actor[:likes] = 'likes.json'
actor[:bookmarks] = 'bookmarks.json'
- download_to_tar(tar, account.avatar, 'avatar' + File.extname(account.avatar.path)) if account.avatar.exists?
- download_to_tar(tar, account.header, 'header' + File.extname(account.header.path)) if account.header.exists?
+ download_to_tar(tar, account.avatar, "avatar#{File.extname(account.avatar.path)}") if account.avatar.exists?
+ download_to_tar(tar, account.header, "header#{File.extname(account.header.path)}") if account.header.exists?
json = Oj.dump(actor)
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index d5fa9af54..8d07958b7 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService
def html
return @html if defined?(@html)
- Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => Mastodon::Version.user_agent + ' Bot').perform do |res|
+ Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => "#{Mastodon::Version.user_agent} Bot").perform do |res|
# We follow redirects, and ideally we want to save the preview card for
# the destination URL and not any link shortener in-between, so here
# we set the URL to the one of the last response in the redirect chain
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index feb77107f..88065c2a3 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -68,7 +68,7 @@ module Mastodon
failed += 1
say('Failure/Error: ', :red)
say(entry.full_name)
- say(' ' + custom_emoji.errors[:image].join(', '), :red)
+ say(" #{custom_emoji.errors[:image].join(', ')}", :red)
end
end
end
diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb
index 037ca5edc..3e97da873 100644
--- a/lib/mastodon/redis_config.rb
+++ b/lib/mastodon/redis_config.rb
@@ -1,17 +1,17 @@
# frozen_string_literal: true
def setup_redis_env_url(prefix = nil, defaults = true)
- prefix = prefix.to_s.upcase + '_' unless prefix.nil?
+ prefix = "#{prefix.to_s.upcase}_" unless prefix.nil?
prefix = '' if prefix.nil?
- return if ENV[prefix + 'REDIS_URL'].present?
+ return if ENV["#{prefix}REDIS_URL"].present?
- password = ENV.fetch(prefix + 'REDIS_PASSWORD') { '' if defaults }
- host = ENV.fetch(prefix + 'REDIS_HOST') { 'localhost' if defaults }
- port = ENV.fetch(prefix + 'REDIS_PORT') { 6379 if defaults }
- db = ENV.fetch(prefix + 'REDIS_DB') { 0 if defaults }
+ password = ENV.fetch("#{prefix}REDIS_PASSWORD") { '' if defaults }
+ host = ENV.fetch("#{prefix}REDIS_HOST") { 'localhost' if defaults }
+ port = ENV.fetch("#{prefix}REDIS_PORT") { 6379 if defaults }
+ db = ENV.fetch("#{prefix}REDIS_DB") { 0 if defaults }
- ENV[prefix + 'REDIS_URL'] = begin
+ ENV["#{prefix}REDIS_URL"] = begin
if [password, host, port, db].all?(&:nil?)
ENV['REDIS_URL']
else
@@ -27,7 +27,7 @@ setup_redis_env_url(:cache, false)
setup_redis_env_url(:sidekiq, false)
namespace = ENV.fetch('REDIS_NAMESPACE', nil)
-cache_namespace = namespace ? namespace + '_cache' : 'cache'
+cache_namespace = namespace ? "#{namespace}_cache" : 'cache'
sidekiq_namespace = namespace
REDIS_CACHE_PARAMS = {
diff --git a/lib/mastodon/snowflake.rb b/lib/mastodon/snowflake.rb
index fe0dc1722..8030288af 100644
--- a/lib/mastodon/snowflake.rb
+++ b/lib/mastodon/snowflake.rb
@@ -115,7 +115,7 @@ module Mastodon::Snowflake
# And only those that are using timestamp_id.
next unless (data = DEFAULT_REGEX.match(id_col.default_function))
- seq_name = data[:seq_prefix] + '_id_seq'
+ seq_name = "#{data[:seq_prefix]}_id_seq"
# If we were on Postgres 9.5+, we could do CREATE SEQUENCE IF
# NOT EXISTS, but we can't depend on that. Instead, catch the
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
index f385b00a3..32bdb8a86 100644
--- a/lib/paperclip/gif_transcoder.rb
+++ b/lib/paperclip/gif_transcoder.rb
@@ -109,7 +109,7 @@ module Paperclip
final_file = Paperclip::Transcoder.make(file, options, attachment)
if options[:style] == :original
- attachment.instance.file_file_name = File.basename(attachment.instance.file_file_name, '.*') + '.mp4'
+ attachment.instance.file_file_name = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
attachment.instance.file_content_type = 'video/mp4'
attachment.instance.type = MediaAttachment.types[:gifv]
end
diff --git a/lib/paperclip/type_corrector.rb b/lib/paperclip/type_corrector.rb
index 17e2fc5da..030b98b12 100644
--- a/lib/paperclip/type_corrector.rb
+++ b/lib/paperclip/type_corrector.rb
@@ -7,7 +7,7 @@ module Paperclip
def make
return @file unless options[:format]
- target_extension = '.' + options[:format]
+ target_extension = ".#{options[:format]}"
extension = File.extname(attachment.instance_read(:file_name))
return @file unless options[:style] == :original && target_extension && extension != target_extension
diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb
index 9ac7880a4..61158e881 100644
--- a/spec/controllers/api/v1/apps_controller_spec.rb
+++ b/spec/controllers/api/v1/apps_controller_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do
end
context 'with a too-long website' do
- let(:website) { 'https://foo.bar/' + ('hoge' * 2_000) }
+ let(:website) { "https://foo.bar/#{'hoge' * 2_000}" }
it 'returns http unprocessable entity' do
expect(response).to have_http_status(422)
@@ -76,7 +76,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do
end
context 'with a too-long redirect_uris' do
- let(:redirect_uris) { 'https://foo.bar/' + ('hoge' * 2_000) }
+ let(:redirect_uris) { "https://foo.bar/#{'hoge' * 2_000}" }
it 'returns http unprocessable entity' do
expect(response).to have_http_status(422)
diff --git a/spec/controllers/api/v1/streaming_controller_spec.rb b/spec/controllers/api/v1/streaming_controller_spec.rb
index 9dbca0178..7014ed9b2 100644
--- a/spec/controllers/api/v1/streaming_controller_spec.rb
+++ b/spec/controllers/api/v1/streaming_controller_spec.rb
@@ -25,7 +25,7 @@ describe Api::V1::StreamingController do
context 'with streaming api on different host' do
before(:each) do
- Rails.configuration.x.streaming_api_base_url = 'wss://streaming-' + Rails.configuration.x.web_domain
+ Rails.configuration.x.streaming_api_base_url = "wss://streaming-#{Rails.configuration.x.web_domain}"
@streaming_host = URI.parse(Rails.configuration.x.streaming_api_base_url).host
end
diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb
index 2c4ebc4f2..896fd4fc5 100644
--- a/spec/validators/disallowed_hashtags_validator_spec.rb
+++ b/spec/validators/disallowed_hashtags_validator_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
described_class.new.validate(status)
end
- let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| '#' + x }.join(' ')) }
+ let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| "##{x}" }.join(' ')) }
let(:errors) { double(add: nil) }
context 'for a remote reblog' do
diff --git a/spec/workers/web/push_notification_worker_spec.rb b/spec/workers/web/push_notification_worker_spec.rb
index 5bc24f888..822ef5257 100644
--- a/spec/workers/web/push_notification_worker_spec.rb
+++ b/spec/workers/web/push_notification_worker_spec.rb
@@ -37,7 +37,7 @@ describe Web::PushNotificationWorker do
expect(a_request(:post, endpoint).with(headers: {
'Content-Encoding' => 'aesgcm',
'Content-Type' => 'application/octet-stream',
- 'Crypto-Key' => 'dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=' + vapid_public_key.delete('='),
+ 'Crypto-Key' => "dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=#{vapid_public_key.delete('=')}",
'Encryption' => 'salt=WJeVM-RY-F9351SVxTFx_g',
'Ttl' => '172800',
'Urgency' => 'normal',
From 84cc805caea566d4fb0fafce411cd07f83cfd0e2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:55:31 -0500
Subject: [PATCH 43/55] Enable Style/FrozenStringLiteralComment for specs
(#23790)
---
spec/config/initializers/rack_attack_spec.rb | 2 ++
spec/controllers/about_controller_spec.rb | 2 ++
spec/controllers/accounts_controller_spec.rb | 2 ++
.../activitypub/followers_synchronizations_controller_spec.rb | 2 ++
spec/controllers/activitypub/outboxes_controller_spec.rb | 2 ++
.../admin/account_moderation_notes_controller_spec.rb | 2 ++
spec/controllers/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/admin/change_email_controller_spec.rb | 2 ++
spec/controllers/admin/confirmations_controller_spec.rb | 2 ++
spec/controllers/admin/custom_emojis_controller_spec.rb | 2 ++
spec/controllers/admin/disputes/appeals_controller_spec.rb | 2 ++
spec/controllers/admin/domain_allows_controller_spec.rb | 2 ++
spec/controllers/admin/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/admin/export_domain_allows_controller_spec.rb | 2 ++
spec/controllers/admin/export_domain_blocks_controller_spec.rb | 2 ++
spec/controllers/admin/instances_controller_spec.rb | 2 ++
spec/controllers/admin/report_notes_controller_spec.rb | 2 ++
spec/controllers/admin/reports/actions_controller_spec.rb | 2 ++
spec/controllers/admin/reports_controller_spec.rb | 2 ++
spec/controllers/admin/resets_controller_spec.rb | 2 ++
spec/controllers/admin/roles_controller_spec.rb | 2 ++
spec/controllers/admin/statuses_controller_spec.rb | 2 ++
spec/controllers/admin/users/roles_controller.rb | 2 ++
.../admin/users/two_factor_authentications_controller_spec.rb | 2 ++
spec/controllers/api/oembed_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/credentials_controller_spec.rb | 2 ++
.../api/v1/accounts/follower_accounts_controller_spec.rb | 2 ++
.../api/v1/accounts/following_accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/lists_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/notes_controller_spec.rb | 2 ++
.../api/v1/accounts/relationships_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/search_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts_controller_spec.rb | 2 ++
.../controllers/api/v1/admin/account_actions_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/domain_allows_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/reports_controller_spec.rb | 2 ++
spec/controllers/api/v1/apps/credentials_controller_spec.rb | 2 ++
spec/controllers/api/v1/apps_controller_spec.rb | 2 ++
spec/controllers/api/v1/blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/bookmarks_controller_spec.rb | 2 ++
spec/controllers/api/v1/conversations_controller_spec.rb | 2 ++
spec/controllers/api/v1/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/emails/confirmations_controller_spec.rb | 2 ++
spec/controllers/api/v1/favourites_controller_spec.rb | 2 ++
spec/controllers/api/v1/filters_controller_spec.rb | 2 ++
spec/controllers/api/v1/follow_requests_controller_spec.rb | 2 ++
spec/controllers/api/v1/followed_tags_controller_spec.rb | 2 ++
spec/controllers/api/v1/lists/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/lists_controller_spec.rb | 2 ++
spec/controllers/api/v1/markers_controller_spec.rb | 2 ++
spec/controllers/api/v1/media_controller_spec.rb | 2 ++
spec/controllers/api/v1/mutes_controller_spec.rb | 2 ++
spec/controllers/api/v1/notifications_controller_spec.rb | 2 ++
spec/controllers/api/v1/polls/votes_controller_spec.rb | 2 ++
spec/controllers/api/v1/polls_controller_spec.rb | 2 ++
.../api/v1/statuses/favourited_by_accounts_controller_spec.rb | 2 ++
.../api/v1/statuses/reblogged_by_accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/statuses_controller_spec.rb | 2 ++
spec/controllers/api/v1/suggestions_controller_spec.rb | 2 ++
spec/controllers/api/v1/tags_controller_spec.rb | 2 ++
spec/controllers/api/v2/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters/keywords_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters/statuses_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters_controller_spec.rb | 2 ++
spec/controllers/auth/registrations_controller_spec.rb | 2 ++
spec/controllers/disputes/appeals_controller_spec.rb | 2 ++
spec/controllers/disputes/strikes_controller_spec.rb | 2 ++
spec/controllers/emojis_controller_spec.rb | 2 ++
spec/controllers/follower_accounts_controller_spec.rb | 2 ++
spec/controllers/following_accounts_controller_spec.rb | 2 ++
spec/controllers/home_controller_spec.rb | 2 ++
spec/controllers/instance_actors_controller_spec.rb | 2 ++
spec/controllers/intents_controller_spec.rb | 2 ++
spec/controllers/invites_controller_spec.rb | 2 ++
spec/controllers/manifests_controller_spec.rb | 2 ++
spec/controllers/relationships_controller_spec.rb | 2 ++
spec/controllers/settings/applications_controller_spec.rb | 2 ++
spec/controllers/settings/deletes_controller_spec.rb | 2 ++
.../settings/exports/blocked_accounts_controller_spec.rb | 2 ++
spec/controllers/settings/exports/bookmarks_controller_spec.rb | 2 ++
.../settings/exports/following_accounts_controller_spec.rb | 2 ++
.../settings/exports/muted_accounts_controller_spec.rb | 2 ++
spec/controllers/settings/featured_tags_controller_spec.rb | 2 ++
spec/controllers/settings/imports_controller_spec.rb | 2 ++
spec/controllers/settings/migrations_controller_spec.rb | 2 ++
.../settings/preferences/notifications_controller_spec.rb | 2 ++
spec/controllers/settings/preferences/other_controller_spec.rb | 2 ++
spec/controllers/settings/profiles_controller_spec.rb | 2 ++
spec/controllers/settings/sessions_controller_spec.rb | 2 ++
spec/controllers/shares_controller_spec.rb | 2 ++
spec/controllers/statuses_cleanup_controller_spec.rb | 2 ++
spec/controllers/tags_controller_spec.rb | 2 ++
spec/controllers/well_known/host_meta_controller_spec.rb | 2 ++
spec/controllers/well_known/nodeinfo_controller_spec.rb | 2 ++
spec/controllers/well_known/webfinger_controller_spec.rb | 2 ++
spec/fabricators/access_grant_fabricator.rb | 2 ++
spec/fabricators/access_token_fabricator.rb | 2 ++
spec/fabricators/accessible_access_token_fabricator.rb | 2 ++
spec/fabricators/account_alias_fabricator.rb | 2 ++
spec/fabricators/account_deletion_request_fabricator.rb | 2 ++
spec/fabricators/account_domain_block_fabricator.rb | 2 ++
spec/fabricators/account_fabricator.rb | 2 ++
spec/fabricators/account_migration_fabricator.rb | 2 ++
spec/fabricators/account_moderation_note_fabricator.rb | 2 ++
spec/fabricators/account_note_fabricator.rb | 2 ++
spec/fabricators/account_pin_fabricator.rb | 2 ++
spec/fabricators/account_stat_fabricator.rb | 2 ++
spec/fabricators/account_statuses_cleanup_policy_fabricator.rb | 2 ++
spec/fabricators/account_tag_stat_fabricator.rb | 2 ++
spec/fabricators/account_warning_fabricator.rb | 2 ++
spec/fabricators/account_warning_preset_fabricator.rb | 2 ++
spec/fabricators/admin_action_log_fabricator.rb | 2 ++
spec/fabricators/announcement_fabricator.rb | 2 ++
spec/fabricators/announcement_mute_fabricator.rb | 2 ++
spec/fabricators/announcement_reaction_fabricator.rb | 2 ++
spec/fabricators/appeal_fabricator.rb | 2 ++
spec/fabricators/application_fabricator.rb | 2 ++
spec/fabricators/backup_fabricator.rb | 2 ++
spec/fabricators/block_fabricator.rb | 2 ++
spec/fabricators/bookmark_fabricator.rb | 2 ++
spec/fabricators/canonical_email_block_fabricator.rb | 2 ++
spec/fabricators/conversation_account_fabricator.rb | 2 ++
spec/fabricators/conversation_fabricator.rb | 2 ++
spec/fabricators/conversation_mute_fabricator.rb | 2 ++
spec/fabricators/custom_emoji_category_fabricator.rb | 2 ++
spec/fabricators/custom_emoji_fabricator.rb | 2 ++
spec/fabricators/custom_filter_fabricator.rb | 2 ++
spec/fabricators/custom_filter_keyword_fabricator.rb | 2 ++
spec/fabricators/custom_filter_status_fabricator.rb | 2 ++
spec/fabricators/device_fabricator.rb | 2 ++
spec/fabricators/domain_allow_fabricator.rb | 2 ++
spec/fabricators/domain_block_fabricator.rb | 2 ++
spec/fabricators/email_domain_block_fabricator.rb | 2 ++
spec/fabricators/encrypted_message_fabricator.rb | 2 ++
spec/fabricators/favourite_fabricator.rb | 2 ++
spec/fabricators/featured_tag_fabricator.rb | 2 ++
spec/fabricators/follow_fabricator.rb | 2 ++
.../fabricators/follow_recommendation_suppression_fabricator.rb | 2 ++
spec/fabricators/follow_request_fabricator.rb | 2 ++
spec/fabricators/identity_fabricator.rb | 2 ++
spec/fabricators/import_fabricator.rb | 2 ++
spec/fabricators/invite_fabricator.rb | 2 ++
spec/fabricators/ip_block_fabricator.rb | 2 ++
spec/fabricators/list_account_fabricator.rb | 2 ++
spec/fabricators/list_fabricator.rb | 2 ++
spec/fabricators/login_activity_fabricator.rb | 2 ++
spec/fabricators/marker_fabricator.rb | 2 ++
spec/fabricators/media_attachment_fabricator.rb | 2 ++
spec/fabricators/mention_fabricator.rb | 2 ++
spec/fabricators/mute_fabricator.rb | 2 ++
spec/fabricators/notification_fabricator.rb | 2 ++
spec/fabricators/one_time_key_fabricator.rb | 2 ++
spec/fabricators/poll_fabricator.rb | 2 ++
spec/fabricators/poll_vote_fabricator.rb | 2 ++
spec/fabricators/preview_card_fabricator.rb | 2 ++
spec/fabricators/relay_fabricator.rb | 2 ++
spec/fabricators/report_fabricator.rb | 2 ++
spec/fabricators/report_note_fabricator.rb | 2 ++
spec/fabricators/rule_fabricator.rb | 2 ++
spec/fabricators/scheduled_status_fabricator.rb | 2 ++
spec/fabricators/session_activation_fabricator.rb | 2 ++
spec/fabricators/site_upload_fabricator.rb | 2 ++
spec/fabricators/status_edit_fabricator.rb | 2 ++
spec/fabricators/status_fabricator.rb | 2 ++
spec/fabricators/status_pin_fabricator.rb | 2 ++
spec/fabricators/status_stat_fabricator.rb | 2 ++
spec/fabricators/system_key_fabricator.rb | 2 ++
spec/fabricators/tag_fabricator.rb | 2 ++
spec/fabricators/tag_follow_fabricator.rb | 2 ++
spec/fabricators/unavailable_domain_fabricator.rb | 2 ++
spec/fabricators/user_fabricator.rb | 2 ++
spec/fabricators/user_invite_request_fabricator.rb | 2 ++
spec/fabricators/user_role_fabricator.rb | 2 ++
spec/fabricators/web_push_subscription_fabricator.rb | 2 ++
spec/fabricators/web_setting_fabricator.rb | 2 ++
spec/fabricators/webauthn_credential_fabricator.rb | 2 ++
spec/fabricators/webhook_fabricator.rb | 2 ++
spec/helpers/accounts_helper_spec.rb | 2 ++
spec/helpers/admin/filter_helper_spec.rb | 2 ++
spec/helpers/application_helper_spec.rb | 2 ++
spec/helpers/home_helper_spec.rb | 2 ++
spec/helpers/statuses_helper_spec.rb | 2 ++
spec/lib/activitypub/activity/accept_spec.rb | 2 ++
spec/lib/activitypub/activity/add_spec.rb | 2 ++
spec/lib/activitypub/activity/announce_spec.rb | 2 ++
spec/lib/activitypub/activity/block_spec.rb | 2 ++
spec/lib/activitypub/activity/create_spec.rb | 2 ++
spec/lib/activitypub/activity/delete_spec.rb | 2 ++
spec/lib/activitypub/activity/flag_spec.rb | 2 ++
spec/lib/activitypub/activity/follow_spec.rb | 2 ++
spec/lib/activitypub/activity/like_spec.rb | 2 ++
spec/lib/activitypub/activity/move_spec.rb | 2 ++
spec/lib/activitypub/activity/reject_spec.rb | 2 ++
spec/lib/activitypub/activity/remove_spec.rb | 2 ++
spec/lib/activitypub/activity/undo_spec.rb | 2 ++
spec/lib/activitypub/activity/update_spec.rb | 2 ++
spec/lib/activitypub/adapter_spec.rb | 2 ++
spec/lib/activitypub/dereferencer_spec.rb | 2 ++
spec/lib/activitypub/linked_data_signature_spec.rb | 2 ++
spec/lib/activitypub/tag_manager_spec.rb | 2 ++
spec/lib/emoji_formatter_spec.rb | 2 ++
spec/lib/entity_cache_spec.rb | 2 ++
spec/lib/feed_manager_spec.rb | 2 ++
spec/lib/html_aware_formatter_spec.rb | 2 ++
spec/lib/link_details_extractor_spec.rb | 2 ++
spec/lib/plain_text_formatter_spec.rb | 2 ++
spec/lib/suspicious_sign_in_detector_spec.rb | 2 ++
spec/lib/tag_manager_spec.rb | 2 ++
spec/lib/text_formatter_spec.rb | 2 ++
spec/lib/vacuum/access_tokens_vacuum_spec.rb | 2 ++
spec/lib/vacuum/backups_vacuum_spec.rb | 2 ++
spec/lib/vacuum/feeds_vacuum_spec.rb | 2 ++
spec/lib/vacuum/media_attachments_vacuum_spec.rb | 2 ++
spec/lib/vacuum/preview_cards_vacuum_spec.rb | 2 ++
spec/lib/vacuum/statuses_vacuum_spec.rb | 2 ++
spec/lib/vacuum/system_keys_vacuum_spec.rb | 2 ++
spec/lib/webfinger_resource_spec.rb | 2 ++
spec/mailers/notification_mailer_spec.rb | 2 ++
spec/mailers/previews/admin_mailer_preview.rb | 2 ++
spec/mailers/previews/notification_mailer_preview.rb | 2 ++
spec/mailers/previews/user_mailer_preview.rb | 2 ++
spec/models/account/field_spec.rb | 2 ++
spec/models/account_alias_spec.rb | 2 ++
spec/models/account_conversation_spec.rb | 2 ++
spec/models/account_deletion_request_spec.rb | 2 ++
spec/models/account_domain_block_spec.rb | 2 ++
spec/models/account_filter_spec.rb | 2 ++
spec/models/account_migration_spec.rb | 2 ++
spec/models/account_moderation_note_spec.rb | 2 ++
spec/models/account_spec.rb | 2 ++
spec/models/account_statuses_cleanup_policy_spec.rb | 2 ++
spec/models/admin/account_action_spec.rb | 2 ++
spec/models/announcement_mute_spec.rb | 2 ++
spec/models/announcement_reaction_spec.rb | 2 ++
spec/models/announcement_spec.rb | 2 ++
spec/models/appeal_spec.rb | 2 ++
spec/models/backup_spec.rb | 2 ++
spec/models/block_spec.rb | 2 ++
spec/models/canonical_email_block_spec.rb | 2 ++
spec/models/concerns/account_counters_spec.rb | 2 ++
spec/models/concerns/account_interactions_spec.rb | 2 ++
spec/models/conversation_mute_spec.rb | 2 ++
spec/models/conversation_spec.rb | 2 ++
spec/models/custom_emoji_category_spec.rb | 2 ++
spec/models/custom_emoji_spec.rb | 2 ++
spec/models/custom_filter_keyword_spec.rb | 2 ++
spec/models/custom_filter_spec.rb | 2 ++
spec/models/device_spec.rb | 2 ++
spec/models/domain_allow_spec.rb | 2 ++
spec/models/domain_block_spec.rb | 2 ++
spec/models/email_domain_block_spec.rb | 2 ++
spec/models/encrypted_message_spec.rb | 2 ++
spec/models/export_spec.rb | 2 ++
spec/models/favourite_spec.rb | 2 ++
spec/models/featured_tag_spec.rb | 2 ++
spec/models/follow_recommendation_suppression_spec.rb | 2 ++
spec/models/follow_request_spec.rb | 2 ++
spec/models/follow_spec.rb | 2 ++
spec/models/home_feed_spec.rb | 2 ++
spec/models/identity_spec.rb | 2 ++
spec/models/import_spec.rb | 2 ++
spec/models/invite_spec.rb | 2 ++
spec/models/ip_block_spec.rb | 2 ++
spec/models/list_account_spec.rb | 2 ++
spec/models/list_spec.rb | 2 ++
spec/models/login_activity_spec.rb | 2 ++
spec/models/marker_spec.rb | 2 ++
spec/models/media_attachment_spec.rb | 2 ++
spec/models/mention_spec.rb | 2 ++
spec/models/mute_spec.rb | 2 ++
spec/models/notification_spec.rb | 2 ++
spec/models/one_time_key_spec.rb | 2 ++
spec/models/poll_spec.rb | 2 ++
spec/models/preview_card_spec.rb | 2 ++
spec/models/preview_card_trend_spec.rb | 2 ++
spec/models/public_feed_spec.rb | 2 ++
spec/models/relay_spec.rb | 2 ++
spec/models/report_filter_spec.rb | 2 ++
spec/models/report_spec.rb | 2 ++
spec/models/rule_spec.rb | 2 ++
spec/models/scheduled_status_spec.rb | 2 ++
spec/models/status_edit_spec.rb | 2 ++
spec/models/status_pin_spec.rb | 2 ++
spec/models/status_spec.rb | 2 ++
spec/models/status_stat_spec.rb | 2 ++
spec/models/status_trend_spec.rb | 2 ++
spec/models/system_key_spec.rb | 2 ++
spec/models/tag_feed_spec.rb | 2 ++
spec/models/tag_follow_spec.rb | 2 ++
spec/models/trends/statuses_spec.rb | 2 ++
spec/models/trends/tags_spec.rb | 2 ++
spec/models/unavailable_domain_spec.rb | 2 ++
spec/models/user_invite_request_spec.rb | 2 ++
spec/models/user_role_spec.rb | 2 ++
spec/models/user_spec.rb | 2 ++
spec/models/web/push_subscription_spec.rb | 2 ++
spec/models/web/setting_spec.rb | 2 ++
spec/models/webauthn_credentials_spec.rb | 2 ++
spec/models/webhook_spec.rb | 2 ++
spec/presenters/instance_presenter_spec.rb | 2 ++
spec/rails_helper.rb | 2 ++
spec/requests/catch_all_route_request_spec.rb | 2 ++
spec/requests/host_meta_request_spec.rb | 2 ++
spec/requests/webfinger_request_spec.rb | 2 ++
spec/routing/accounts_routing_spec.rb | 2 ++
spec/routing/well_known_routes_spec.rb | 2 ++
spec/services/account_search_service_spec.rb | 2 ++
spec/services/account_statuses_cleanup_service_spec.rb | 2 ++
.../activitypub/fetch_featured_collection_service_spec.rb | 2 ++
.../activitypub/fetch_featured_tags_collection_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_account_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_actor_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_key_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_status_service_spec.rb | 2 ++
spec/services/activitypub/fetch_replies_service_spec.rb | 2 ++
spec/services/activitypub/process_account_service_spec.rb | 2 ++
spec/services/activitypub/process_collection_service_spec.rb | 2 ++
spec/services/activitypub/process_status_update_service_spec.rb | 2 ++
spec/services/activitypub/synchronize_followers_service_spec.rb | 2 ++
spec/services/after_block_domain_from_account_service_spec.rb | 2 ++
spec/services/after_block_service_spec.rb | 2 ++
spec/services/app_sign_up_service_spec.rb | 2 ++
spec/services/authorize_follow_service_spec.rb | 2 ++
spec/services/batched_remove_status_service_spec.rb | 2 ++
spec/services/block_domain_service_spec.rb | 2 ++
spec/services/block_service_spec.rb | 2 ++
spec/services/bootstrap_timeline_service_spec.rb | 2 ++
spec/services/clear_domain_media_service_spec.rb | 2 ++
spec/services/delete_account_service_spec.rb | 2 ++
spec/services/fan_out_on_write_service_spec.rb | 2 ++
spec/services/favourite_service_spec.rb | 2 ++
spec/services/fetch_link_card_service_spec.rb | 2 ++
spec/services/fetch_remote_status_service_spec.rb | 2 ++
spec/services/fetch_resource_service_spec.rb | 2 ++
spec/services/follow_service_spec.rb | 2 ++
spec/services/import_service_spec.rb | 2 ++
spec/services/mute_service_spec.rb | 2 ++
spec/services/notify_service_spec.rb | 2 ++
spec/services/post_status_service_spec.rb | 2 ++
spec/services/process_mentions_service_spec.rb | 2 ++
spec/services/purge_domain_service_spec.rb | 2 ++
spec/services/reblog_service_spec.rb | 2 ++
spec/services/reject_follow_service_spec.rb | 2 ++
spec/services/remove_from_follwers_service_spec.rb | 2 ++
spec/services/remove_status_service_spec.rb | 2 ++
spec/services/report_service_spec.rb | 2 ++
spec/services/resolve_account_service_spec.rb | 2 ++
spec/services/suspend_account_service_spec.rb | 2 ++
spec/services/unallow_domain_service_spec.rb | 2 ++
spec/services/unblock_service_spec.rb | 2 ++
spec/services/unfollow_service_spec.rb | 2 ++
spec/services/unmute_service_spec.rb | 2 ++
spec/services/unsuspend_account_service_spec.rb | 2 ++
spec/services/update_account_service_spec.rb | 2 ++
spec/services/update_status_service_spec.rb | 2 ++
spec/services/verify_link_service_spec.rb | 2 ++
spec/spec_helper.rb | 2 ++
spec/support/matchers/json/match_json_schema.rb | 2 ++
spec/support/matchers/model/model_have_error_on_field.rb | 2 ++
spec/workers/activitypub/distribute_poll_update_worker_spec.rb | 2 ++
spec/workers/activitypub/distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/move_distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/processing_worker_spec.rb | 2 ++
.../activitypub/status_update_distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/update_distribution_worker_spec.rb | 2 ++
.../scheduler/accounts_statuses_cleanup_scheduler_spec.rb | 2 ++
spec/workers/scheduler/user_cleanup_scheduler_spec.rb | 2 ++
369 files changed, 738 insertions(+)
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 50d4505b7..2cfe90b1a 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Rack::Attack do
diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb
index 97143ec43..ccd28a96c 100644
--- a/spec/controllers/about_controller_spec.rb
+++ b/spec/controllers/about_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AboutController, type: :controller do
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index db588156c..9c38b3032 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index 6ec756d3c..8357f5f39 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controller do
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index 7369ee413..167bbcc21 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::OutboxesController, type: :controller do
diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
index b8d606322..d2c52f594 100644
--- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb
+++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountModerationNotesController, type: :controller do
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index fdc98ed46..b182715b0 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index 520842a19..832998471 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ChangeEmailsController, type: :controller do
diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb
index 7ca90f3e1..d05711e27 100644
--- a/spec/controllers/admin/confirmations_controller_spec.rb
+++ b/spec/controllers/admin/confirmations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ConfirmationsController, type: :controller do
diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb
index 06cd0c22d..d40691e1b 100644
--- a/spec/controllers/admin/custom_emojis_controller_spec.rb
+++ b/spec/controllers/admin/custom_emojis_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::CustomEmojisController do
diff --git a/spec/controllers/admin/disputes/appeals_controller_spec.rb b/spec/controllers/admin/disputes/appeals_controller_spec.rb
index 712657791..576a0c12b 100644
--- a/spec/controllers/admin/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/admin/disputes/appeals_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::Disputes::AppealsController, type: :controller do
diff --git a/spec/controllers/admin/domain_allows_controller_spec.rb b/spec/controllers/admin/domain_allows_controller_spec.rb
index 6c4e67787..2a0f47145 100644
--- a/spec/controllers/admin/domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::DomainAllowsController, type: :controller do
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index d58a0cafc..ef13f7676 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 1f974bc00..f12bd1344 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
index a8d7b7383..4da9f90e4 100644
--- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index 4716e486a..33174b992 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::InstancesController, type: :controller do
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index 8a2603611..fb2fbd058 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ReportNotesController do
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index 20f85680f..3e42e4cb1 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::Reports::ActionsController do
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index c6b5770a8..97daaf8da 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ReportsController do
diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb
index 64fe027fd..16adb8a12 100644
--- a/spec/controllers/admin/resets_controller_spec.rb
+++ b/spec/controllers/admin/resets_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ResetsController do
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index e2b1030d9..223d0a472 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::RolesController do
diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb
index 7f912c1c0..79d83db97 100644
--- a/spec/controllers/admin/statuses_controller_spec.rb
+++ b/spec/controllers/admin/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::StatusesController do
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb
index 9fa8aef41..fe2cee01b 100644
--- a/spec/controllers/admin/users/roles_controller.rb
+++ b/spec/controllers/admin/users/roles_controller.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::Users::RolesController do
diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
index 990dcf640..eb10d4796 100644
--- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
require 'webauthn/fake_client'
diff --git a/spec/controllers/api/oembed_controller_spec.rb b/spec/controllers/api/oembed_controller_spec.rb
index b9082bde1..930f36250 100644
--- a/spec/controllers/api/oembed_controller_spec.rb
+++ b/spec/controllers/api/oembed_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::OEmbedController, type: :controller do
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index 3494ca674..57fe0aee6 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::CredentialsController do
diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
index 1e6e1d8e0..53298a2e4 100644
--- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::FollowerAccountsController do
diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
index cc962c6ee..7390b25b5 100644
--- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::FollowingAccountsController do
diff --git a/spec/controllers/api/v1/accounts/lists_controller_spec.rb b/spec/controllers/api/v1/accounts/lists_controller_spec.rb
index d71485633..418839cfa 100644
--- a/spec/controllers/api/v1/accounts/lists_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/lists_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::ListsController do
diff --git a/spec/controllers/api/v1/accounts/notes_controller_spec.rb b/spec/controllers/api/v1/accounts/notes_controller_spec.rb
index 42c2d8a86..fd4d34f69 100644
--- a/spec/controllers/api/v1/accounts/notes_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::NotesController do
diff --git a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
index 69ad0d061..da8d7fe3f 100644
--- a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::RelationshipsController do
diff --git a/spec/controllers/api/v1/accounts/search_controller_spec.rb b/spec/controllers/api/v1/accounts/search_controller_spec.rb
index 5b23bff68..d2b675a3c 100644
--- a/spec/controllers/api/v1/accounts/search_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/search_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Accounts::SearchController, type: :controller do
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index d6bbcefd7..5fbb65021 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
index 462c2cfa9..cafbee212 100644
--- a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
index a4c509c60..9ffcdb34f 100644
--- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
index 8100363f6..15567907e 100644
--- a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::DomainAllowsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
index b367ab9ce..0460c701a 100644
--- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/reports_controller_spec.rb b/spec/controllers/api/v1/admin/reports_controller_spec.rb
index 880e72030..3d61fe5c3 100644
--- a/spec/controllers/api/v1/admin/reports_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/reports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 701ba8acb..350e0c7a0 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Apps::CredentialsController do
diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb
index 61158e881..bde132c52 100644
--- a/spec/controllers/api/v1/apps_controller_spec.rb
+++ b/spec/controllers/api/v1/apps_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::AppsController, type: :controller do
diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb
index cf996c47c..a746389ca 100644
--- a/spec/controllers/api/v1/blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::BlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index 48332b15a..352d2ca02 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::BookmarksController, type: :controller do
diff --git a/spec/controllers/api/v1/conversations_controller_spec.rb b/spec/controllers/api/v1/conversations_controller_spec.rb
index 5add7cf1d..36c4cb56f 100644
--- a/spec/controllers/api/v1/conversations_controller_spec.rb
+++ b/spec/controllers/api/v1/conversations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::ConversationsController, type: :controller do
diff --git a/spec/controllers/api/v1/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/domain_blocks_controller_spec.rb
index d9dc1bdbf..467ddbccc 100644
--- a/spec/controllers/api/v1/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
index d272ff38d..fc9843fef 100644
--- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
+++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index f0fb8f37b..6ae0fdc49 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FavouritesController, type: :controller do
diff --git a/spec/controllers/api/v1/filters_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb
index 8acb46a00..d583365cc 100644
--- a/spec/controllers/api/v1/filters_controller_spec.rb
+++ b/spec/controllers/api/v1/filters_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FiltersController, type: :controller do
diff --git a/spec/controllers/api/v1/follow_requests_controller_spec.rb b/spec/controllers/api/v1/follow_requests_controller_spec.rb
index 856ba2a1c..0220e0277 100644
--- a/spec/controllers/api/v1/follow_requests_controller_spec.rb
+++ b/spec/controllers/api/v1/follow_requests_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FollowRequestsController, type: :controller do
diff --git a/spec/controllers/api/v1/followed_tags_controller_spec.rb b/spec/controllers/api/v1/followed_tags_controller_spec.rb
index 2191350ef..e990065a9 100644
--- a/spec/controllers/api/v1/followed_tags_controller_spec.rb
+++ b/spec/controllers/api/v1/followed_tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FollowedTagsController, type: :controller do
diff --git a/spec/controllers/api/v1/lists/accounts_controller_spec.rb b/spec/controllers/api/v1/lists/accounts_controller_spec.rb
index 526d8b561..337a5645c 100644
--- a/spec/controllers/api/v1/lists/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/lists/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Lists::AccountsController do
diff --git a/spec/controllers/api/v1/lists_controller_spec.rb b/spec/controllers/api/v1/lists_controller_spec.rb
index 71a8094e6..f54d27e42 100644
--- a/spec/controllers/api/v1/lists_controller_spec.rb
+++ b/spec/controllers/api/v1/lists_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::ListsController, type: :controller do
diff --git a/spec/controllers/api/v1/markers_controller_spec.rb b/spec/controllers/api/v1/markers_controller_spec.rb
index 64ec18e59..fb5f59a7c 100644
--- a/spec/controllers/api/v1/markers_controller_spec.rb
+++ b/spec/controllers/api/v1/markers_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MarkersController, type: :controller do
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index ef1e439f9..90379dd92 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MediaController, type: :controller do
diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb
index 8288cb815..122d9d1c5 100644
--- a/spec/controllers/api/v1/mutes_controller_spec.rb
+++ b/spec/controllers/api/v1/mutes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MutesController, type: :controller do
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index 22ebfa3dd..f6cbd105e 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::NotificationsController, type: :controller do
diff --git a/spec/controllers/api/v1/polls/votes_controller_spec.rb b/spec/controllers/api/v1/polls/votes_controller_spec.rb
index d7a9c1970..9d9b14e81 100644
--- a/spec/controllers/api/v1/polls/votes_controller_spec.rb
+++ b/spec/controllers/api/v1/polls/votes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Polls::VotesController, type: :controller do
diff --git a/spec/controllers/api/v1/polls_controller_spec.rb b/spec/controllers/api/v1/polls_controller_spec.rb
index f0d9eaf92..0602e44ee 100644
--- a/spec/controllers/api/v1/polls_controller_spec.rb
+++ b/spec/controllers/api/v1/polls_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::PollsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
index c1c6f5f12..c7e1b73c7 100644
--- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
index 90187a585..1aab502ef 100644
--- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index e839c8494..f011bfd47 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::StatusesController, type: :controller do
diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb
index 35ba155e7..c99380c58 100644
--- a/spec/controllers/api/v1/suggestions_controller_spec.rb
+++ b/spec/controllers/api/v1/suggestions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::SuggestionsController, type: :controller do
diff --git a/spec/controllers/api/v1/tags_controller_spec.rb b/spec/controllers/api/v1/tags_controller_spec.rb
index 216faad87..ed17a4fbf 100644
--- a/spec/controllers/api/v1/tags_controller_spec.rb
+++ b/spec/controllers/api/v1/tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::TagsController, type: :controller do
diff --git a/spec/controllers/api/v2/admin/accounts_controller_spec.rb b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
index 1477049a1..5766fd549 100644
--- a/spec/controllers/api/v2/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
index 0e0f52ea8..8c61059c6 100644
--- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
diff --git a/spec/controllers/api/v2/filters/statuses_controller_spec.rb b/spec/controllers/api/v2/filters/statuses_controller_spec.rb
index 969b2ea73..330cf45a6 100644
--- a/spec/controllers/api/v2/filters/statuses_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Filters::StatusesController, type: :controller do
diff --git a/spec/controllers/api/v2/filters_controller_spec.rb b/spec/controllers/api/v2/filters_controller_spec.rb
index cc0070d57..2b5610a4d 100644
--- a/spec/controllers/api/v2/filters_controller_spec.rb
+++ b/spec/controllers/api/v2/filters_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::FiltersController, type: :controller do
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index f42f685c1..e3a00fa39 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Auth::RegistrationsController, type: :controller do
diff --git a/spec/controllers/disputes/appeals_controller_spec.rb b/spec/controllers/disputes/appeals_controller_spec.rb
index 90f222f49..affe63c59 100644
--- a/spec/controllers/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/disputes/appeals_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Disputes::AppealsController, type: :controller do
diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb
index e060d37ac..1d678875c 100644
--- a/spec/controllers/disputes/strikes_controller_spec.rb
+++ b/spec/controllers/disputes/strikes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Disputes::StrikesController, type: :controller do
diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb
index 9f6604964..710d23d92 100644
--- a/spec/controllers/emojis_controller_spec.rb
+++ b/spec/controllers/emojis_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe EmojisController do
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index 43fc4203c..7c53e5b47 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe FollowerAccountsController do
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index b41bf0575..122f72e2d 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe FollowingAccountsController do
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
index 2409bf42c..0d3722920 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/home_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeController, type: :controller do
diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb
index d6b4c793b..84a07d497 100644
--- a/spec/controllers/instance_actors_controller_spec.rb
+++ b/spec/controllers/instance_actors_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe InstanceActorsController, type: :controller do
diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb
index 394f7d512..02b46ddc7 100644
--- a/spec/controllers/intents_controller_spec.rb
+++ b/spec/controllers/intents_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe IntentsController, type: :controller do
diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb
index 23b98fb12..408c5e1b5 100644
--- a/spec/controllers/invites_controller_spec.rb
+++ b/spec/controllers/invites_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe InvitesController do
diff --git a/spec/controllers/manifests_controller_spec.rb b/spec/controllers/manifests_controller_spec.rb
index a549adef3..ecd6957fc 100644
--- a/spec/controllers/manifests_controller_spec.rb
+++ b/spec/controllers/manifests_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ManifestsController do
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index 4c4227d66..39f455e03 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe RelationshipsController do
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index a653b87c7..5c6b04a15 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::ApplicationsController do
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
index a94dc042a..a7edac6a9 100644
--- a/spec/controllers/settings/deletes_controller_spec.rb
+++ b/spec/controllers/settings/deletes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::DeletesController do
diff --git a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
index 5ff41b7fc..459b278d6 100644
--- a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::BlockedAccountsController do
diff --git a/spec/controllers/settings/exports/bookmarks_controller_spec.rb b/spec/controllers/settings/exports/bookmarks_controller_spec.rb
index a06c02e0c..9982eff16 100644
--- a/spec/controllers/settings/exports/bookmarks_controller_spec.rb
+++ b/spec/controllers/settings/exports/bookmarks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::BookmarksController do
diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
index bfe010555..72b0b94e1 100644
--- a/spec/controllers/settings/exports/following_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::FollowingAccountsController do
diff --git a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
index 642f0a9b8..b4170cb16 100644
--- a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::MutedAccountsController do
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
index fc338672d..5c61351af 100644
--- a/spec/controllers/settings/featured_tags_controller_spec.rb
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::FeaturedTagsController do
diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb
index e50504cc5..78973df2b 100644
--- a/spec/controllers/settings/imports_controller_spec.rb
+++ b/spec/controllers/settings/imports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Settings::ImportsController, type: :controller do
diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb
index 8159bb21b..9b12bc40f 100644
--- a/spec/controllers/settings/migrations_controller_spec.rb
+++ b/spec/controllers/settings/migrations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::MigrationsController do
diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb
index a821052ed..66fb8c5eb 100644
--- a/spec/controllers/settings/preferences/notifications_controller_spec.rb
+++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Preferences::NotificationsController do
diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb
index ffb37e0bd..63eeefaf0 100644
--- a/spec/controllers/settings/preferences/other_controller_spec.rb
+++ b/spec/controllers/settings/preferences/other_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Preferences::OtherController do
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index c7a6ad664..e45596b1a 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Settings::ProfilesController, type: :controller do
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index fdf46d947..a4248e1bd 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::SessionsController do
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
index 0fde8c692..6d5bb4f8d 100644
--- a/spec/controllers/shares_controller_spec.rb
+++ b/spec/controllers/shares_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe SharesController do
diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb
index 24b4ea7b6..969778bbf 100644
--- a/spec/controllers/statuses_cleanup_controller_spec.rb
+++ b/spec/controllers/statuses_cleanup_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusesCleanupController, type: :controller do
diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
index 547bcfb39..8a3fa0bf8 100644
--- a/spec/controllers/tags_controller_spec.rb
+++ b/spec/controllers/tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagsController, type: :controller do
diff --git a/spec/controllers/well_known/host_meta_controller_spec.rb b/spec/controllers/well_known/host_meta_controller_spec.rb
index 654bad406..d53704370 100644
--- a/spec/controllers/well_known/host_meta_controller_spec.rb
+++ b/spec/controllers/well_known/host_meta_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::HostMetaController, type: :controller do
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 0cadc5435..f5cde150d 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::NodeInfoController, type: :controller do
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
index 1ccfb218e..00103df70 100644
--- a/spec/controllers/well_known/webfinger_controller_spec.rb
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::WebfingerController, type: :controller do
diff --git a/spec/fabricators/access_grant_fabricator.rb b/spec/fabricators/access_grant_fabricator.rb
index ae1945f2b..adc2b8369 100644
--- a/spec/fabricators/access_grant_fabricator.rb
+++ b/spec/fabricators/access_grant_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator :access_grant, from: 'Doorkeeper::AccessGrant' do
application
resource_owner_id { Fabricate(:user).id }
diff --git a/spec/fabricators/access_token_fabricator.rb b/spec/fabricators/access_token_fabricator.rb
index 1856a8eb3..508c32808 100644
--- a/spec/fabricators/access_token_fabricator.rb
+++ b/spec/fabricators/access_token_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator :access_token, from: 'Doorkeeper::AccessToken' do
end
diff --git a/spec/fabricators/accessible_access_token_fabricator.rb b/spec/fabricators/accessible_access_token_fabricator.rb
index 4b7e99b20..fb3d0889b 100644
--- a/spec/fabricators/accessible_access_token_fabricator.rb
+++ b/spec/fabricators/accessible_access_token_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator :accessible_access_token, from: :access_token do
expires_in { nil }
revoked_at { nil }
diff --git a/spec/fabricators/account_alias_fabricator.rb b/spec/fabricators/account_alias_fabricator.rb
index 94dde9bb8..4f434c078 100644
--- a/spec/fabricators/account_alias_fabricator.rb
+++ b/spec/fabricators/account_alias_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_alias) do
account
acct 'test@example.com'
diff --git a/spec/fabricators/account_deletion_request_fabricator.rb b/spec/fabricators/account_deletion_request_fabricator.rb
index 08a82ba3c..3d3d37398 100644
--- a/spec/fabricators/account_deletion_request_fabricator.rb
+++ b/spec/fabricators/account_deletion_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_deletion_request) do
account
end
diff --git a/spec/fabricators/account_domain_block_fabricator.rb b/spec/fabricators/account_domain_block_fabricator.rb
index 2ad4b67a9..ff85e17f3 100644
--- a/spec/fabricators/account_domain_block_fabricator.rb
+++ b/spec/fabricators/account_domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_domain_block) do
account
domain 'example.com'
diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb
index 205706532..6ffbba584 100644
--- a/spec/fabricators/account_fabricator.rb
+++ b/spec/fabricators/account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
keypair = OpenSSL::PKey::RSA.new(2048)
public_key = keypair.public_key.to_pem
private_key = keypair.to_pem
diff --git a/spec/fabricators/account_migration_fabricator.rb b/spec/fabricators/account_migration_fabricator.rb
index 2a8e747a8..fd453f6d2 100644
--- a/spec/fabricators/account_migration_fabricator.rb
+++ b/spec/fabricators/account_migration_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_migration) do
account
target_account { |attrs| Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(attrs[:account])]) }
diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb
index 343a41fb1..403870db6 100644
--- a/spec/fabricators/account_moderation_note_fabricator.rb
+++ b/spec/fabricators/account_moderation_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_moderation_note) do
content 'MyText'
account nil
diff --git a/spec/fabricators/account_note_fabricator.rb b/spec/fabricators/account_note_fabricator.rb
index 285703b38..bb4ed8b24 100644
--- a/spec/fabricators/account_note_fabricator.rb
+++ b/spec/fabricators/account_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_note) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/account_pin_fabricator.rb b/spec/fabricators/account_pin_fabricator.rb
index c0f8b8afb..7d8a77bb5 100644
--- a/spec/fabricators/account_pin_fabricator.rb
+++ b/spec/fabricators/account_pin_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_pin) do
account nil
target_account nil
diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb
index b1b47ffef..45b1524ef 100644
--- a/spec/fabricators/account_stat_fabricator.rb
+++ b/spec/fabricators/account_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_stat) do
account nil
statuses_count ''
diff --git a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
index 29cf1d133..0e756ddba 100644
--- a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
+++ b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_statuses_cleanup_policy) do
account
end
diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb
index 7a4de07f6..769015bd0 100644
--- a/spec/fabricators/account_tag_stat_fabricator.rb
+++ b/spec/fabricators/account_tag_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_tag_stat) do
accounts_count ''
end
diff --git a/spec/fabricators/account_warning_fabricator.rb b/spec/fabricators/account_warning_fabricator.rb
index 72fe835d9..e5059e37f 100644
--- a/spec/fabricators/account_warning_fabricator.rb
+++ b/spec/fabricators/account_warning_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_warning) do
account
target_account(fabricator: :account)
diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb
index 7e7c03cb8..7588e7f9c 100644
--- a/spec/fabricators/account_warning_preset_fabricator.rb
+++ b/spec/fabricators/account_warning_preset_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_warning_preset) do
text 'MyText'
end
diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb
index 474bef1bc..eb738c01c 100644
--- a/spec/fabricators/admin_action_log_fabricator.rb
+++ b/spec/fabricators/admin_action_log_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator('Admin::ActionLog') do
account nil
action 'MyString'
diff --git a/spec/fabricators/announcement_fabricator.rb b/spec/fabricators/announcement_fabricator.rb
index 5a3871d90..5d7736587 100644
--- a/spec/fabricators/announcement_fabricator.rb
+++ b/spec/fabricators/announcement_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement) do
text { Faker::Lorem.paragraph(sentence_count: 2) }
published true
diff --git a/spec/fabricators/announcement_mute_fabricator.rb b/spec/fabricators/announcement_mute_fabricator.rb
index c4eafe8f4..109fec041 100644
--- a/spec/fabricators/announcement_mute_fabricator.rb
+++ b/spec/fabricators/announcement_mute_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement_mute) do
account
announcement
diff --git a/spec/fabricators/announcement_reaction_fabricator.rb b/spec/fabricators/announcement_reaction_fabricator.rb
index f923c59c6..5da51caaa 100644
--- a/spec/fabricators/announcement_reaction_fabricator.rb
+++ b/spec/fabricators/announcement_reaction_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement_reaction) do
account
announcement
diff --git a/spec/fabricators/appeal_fabricator.rb b/spec/fabricators/appeal_fabricator.rb
index 339363822..039086c4e 100644
--- a/spec/fabricators/appeal_fabricator.rb
+++ b/spec/fabricators/appeal_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:appeal) do
strike(fabricator: :account_warning)
account { |attrs| attrs[:strike].target_account }
diff --git a/spec/fabricators/application_fabricator.rb b/spec/fabricators/application_fabricator.rb
index 42b7009dc..272821304 100644
--- a/spec/fabricators/application_fabricator.rb
+++ b/spec/fabricators/application_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:application, from: Doorkeeper::Application) do
name 'Example'
website 'http://example.com'
diff --git a/spec/fabricators/backup_fabricator.rb b/spec/fabricators/backup_fabricator.rb
index 99a5bdcda..c73ae54be 100644
--- a/spec/fabricators/backup_fabricator.rb
+++ b/spec/fabricators/backup_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:backup) do
user
end
diff --git a/spec/fabricators/block_fabricator.rb b/spec/fabricators/block_fabricator.rb
index 379931ba6..c2e9e9628 100644
--- a/spec/fabricators/block_fabricator.rb
+++ b/spec/fabricators/block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:block) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/bookmark_fabricator.rb b/spec/fabricators/bookmark_fabricator.rb
index 12cbc5bfa..e21046fc2 100644
--- a/spec/fabricators/bookmark_fabricator.rb
+++ b/spec/fabricators/bookmark_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:bookmark) do
account
status
diff --git a/spec/fabricators/canonical_email_block_fabricator.rb b/spec/fabricators/canonical_email_block_fabricator.rb
index 61afde3de..21d7c2402 100644
--- a/spec/fabricators/canonical_email_block_fabricator.rb
+++ b/spec/fabricators/canonical_email_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:canonical_email_block) do
email 'test@example.com'
reference_account { Fabricate(:account) }
diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb
index 0fe7a494e..f69d36855 100644
--- a/spec/fabricators/conversation_account_fabricator.rb
+++ b/spec/fabricators/conversation_account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:conversation_account) do
account nil
conversation nil
diff --git a/spec/fabricators/conversation_fabricator.rb b/spec/fabricators/conversation_fabricator.rb
index b4fadb46b..07c6780bf 100644
--- a/spec/fabricators/conversation_fabricator.rb
+++ b/spec/fabricators/conversation_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:conversation) do
end
diff --git a/spec/fabricators/conversation_mute_fabricator.rb b/spec/fabricators/conversation_mute_fabricator.rb
index 84f131c26..5cf4dd3d5 100644
--- a/spec/fabricators/conversation_mute_fabricator.rb
+++ b/spec/fabricators/conversation_mute_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:conversation_mute) do
end
diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb
index 119c343cf..6019baba2 100644
--- a/spec/fabricators/custom_emoji_category_fabricator.rb
+++ b/spec/fabricators/custom_emoji_category_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_emoji_category) do
name 'MyString'
end
diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb
index 18a7d23dc..298a50b4b 100644
--- a/spec/fabricators/custom_emoji_fabricator.rb
+++ b/spec/fabricators/custom_emoji_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_emoji) do
shortcode 'coolcat'
domain nil
diff --git a/spec/fabricators/custom_filter_fabricator.rb b/spec/fabricators/custom_filter_fabricator.rb
index 64297a7e3..5fee4f01a 100644
--- a/spec/fabricators/custom_filter_fabricator.rb
+++ b/spec/fabricators/custom_filter_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter) do
account
expires_at nil
diff --git a/spec/fabricators/custom_filter_keyword_fabricator.rb b/spec/fabricators/custom_filter_keyword_fabricator.rb
index 201566cbe..f1fb440dc 100644
--- a/spec/fabricators/custom_filter_keyword_fabricator.rb
+++ b/spec/fabricators/custom_filter_keyword_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter_keyword) do
custom_filter
keyword 'discourse'
diff --git a/spec/fabricators/custom_filter_status_fabricator.rb b/spec/fabricators/custom_filter_status_fabricator.rb
index d082b81c5..3ef1d0ec8 100644
--- a/spec/fabricators/custom_filter_status_fabricator.rb
+++ b/spec/fabricators/custom_filter_status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter_status) do
custom_filter
status
diff --git a/spec/fabricators/device_fabricator.rb b/spec/fabricators/device_fabricator.rb
index b15d8248f..26c71b4fd 100644
--- a/spec/fabricators/device_fabricator.rb
+++ b/spec/fabricators/device_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:device) do
access_token
account
diff --git a/spec/fabricators/domain_allow_fabricator.rb b/spec/fabricators/domain_allow_fabricator.rb
index 6f62ce3b8..b32af129b 100644
--- a/spec/fabricators/domain_allow_fabricator.rb
+++ b/spec/fabricators/domain_allow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:domain_allow) do
domain 'MyString'
end
diff --git a/spec/fabricators/domain_block_fabricator.rb b/spec/fabricators/domain_block_fabricator.rb
index cc1f928e5..c703a18e9 100644
--- a/spec/fabricators/domain_block_fabricator.rb
+++ b/spec/fabricators/domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:domain_block) do
domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } }
end
diff --git a/spec/fabricators/email_domain_block_fabricator.rb b/spec/fabricators/email_domain_block_fabricator.rb
index d18af6433..a74cca73d 100644
--- a/spec/fabricators/email_domain_block_fabricator.rb
+++ b/spec/fabricators/email_domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:email_domain_block) do
domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } }
end
diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb
index 4de0d7add..289882754 100644
--- a/spec/fabricators/encrypted_message_fabricator.rb
+++ b/spec/fabricators/encrypted_message_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:encrypted_message) do
device
from_account
diff --git a/spec/fabricators/favourite_fabricator.rb b/spec/fabricators/favourite_fabricator.rb
index 464ac8d71..005947e6f 100644
--- a/spec/fabricators/favourite_fabricator.rb
+++ b/spec/fabricators/favourite_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:favourite) do
account
status
diff --git a/spec/fabricators/featured_tag_fabricator.rb b/spec/fabricators/featured_tag_fabricator.rb
index 25cbdaac0..4bfa3e924 100644
--- a/spec/fabricators/featured_tag_fabricator.rb
+++ b/spec/fabricators/featured_tag_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:featured_tag) do
account
tag
diff --git a/spec/fabricators/follow_fabricator.rb b/spec/fabricators/follow_fabricator.rb
index 9b25dc547..41b5305d5 100644
--- a/spec/fabricators/follow_fabricator.rb
+++ b/spec/fabricators/follow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/follow_recommendation_suppression_fabricator.rb b/spec/fabricators/follow_recommendation_suppression_fabricator.rb
index 4a6a07a66..6477baee1 100644
--- a/spec/fabricators/follow_recommendation_suppression_fabricator.rb
+++ b/spec/fabricators/follow_recommendation_suppression_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow_recommendation_suppression) do
account
end
diff --git a/spec/fabricators/follow_request_fabricator.rb b/spec/fabricators/follow_request_fabricator.rb
index c00ddf84d..86b82611f 100644
--- a/spec/fabricators/follow_request_fabricator.rb
+++ b/spec/fabricators/follow_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow_request) do
account
target_account { Fabricate(:account, locked: true) }
diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb
index fcfb15518..b83010111 100644
--- a/spec/fabricators/identity_fabricator.rb
+++ b/spec/fabricators/identity_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:identity) do
user nil
provider 'MyString'
diff --git a/spec/fabricators/import_fabricator.rb b/spec/fabricators/import_fabricator.rb
index e2eb1e0df..11602f407 100644
--- a/spec/fabricators/import_fabricator.rb
+++ b/spec/fabricators/import_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:import) do
end
diff --git a/spec/fabricators/invite_fabricator.rb b/spec/fabricators/invite_fabricator.rb
index 62b9b3904..4f47d6ce2 100644
--- a/spec/fabricators/invite_fabricator.rb
+++ b/spec/fabricators/invite_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:invite) do
user
expires_at nil
diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb
index 5bd018f9c..a5da3f706 100644
--- a/spec/fabricators/ip_block_fabricator.rb
+++ b/spec/fabricators/ip_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:ip_block) do
ip ''
severity ''
diff --git a/spec/fabricators/list_account_fabricator.rb b/spec/fabricators/list_account_fabricator.rb
index 30e4004aa..b0af29e6f 100644
--- a/spec/fabricators/list_account_fabricator.rb
+++ b/spec/fabricators/list_account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:list_account) do
list nil
account nil
diff --git a/spec/fabricators/list_fabricator.rb b/spec/fabricators/list_fabricator.rb
index 4ad29a386..47af752b8 100644
--- a/spec/fabricators/list_fabricator.rb
+++ b/spec/fabricators/list_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:list) do
account
title 'MyString'
diff --git a/spec/fabricators/login_activity_fabricator.rb b/spec/fabricators/login_activity_fabricator.rb
index 686fd6483..2b30658ff 100644
--- a/spec/fabricators/login_activity_fabricator.rb
+++ b/spec/fabricators/login_activity_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:login_activity) do
user
authentication_method 'password'
diff --git a/spec/fabricators/marker_fabricator.rb b/spec/fabricators/marker_fabricator.rb
index 0c94150e0..561c2553a 100644
--- a/spec/fabricators/marker_fabricator.rb
+++ b/spec/fabricators/marker_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:marker) do
user
timeline 'home'
diff --git a/spec/fabricators/media_attachment_fabricator.rb b/spec/fabricators/media_attachment_fabricator.rb
index 651927c2d..4a081dccb 100644
--- a/spec/fabricators/media_attachment_fabricator.rb
+++ b/spec/fabricators/media_attachment_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:media_attachment) do
account
diff --git a/spec/fabricators/mention_fabricator.rb b/spec/fabricators/mention_fabricator.rb
index cb5fe4299..5a8392827 100644
--- a/spec/fabricators/mention_fabricator.rb
+++ b/spec/fabricators/mention_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:mention) do
account
status
diff --git a/spec/fabricators/mute_fabricator.rb b/spec/fabricators/mute_fabricator.rb
index 30d20e87e..242ae2b08 100644
--- a/spec/fabricators/mute_fabricator.rb
+++ b/spec/fabricators/mute_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:mute) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/notification_fabricator.rb b/spec/fabricators/notification_fabricator.rb
index 638844e0f..959fda913 100644
--- a/spec/fabricators/notification_fabricator.rb
+++ b/spec/fabricators/notification_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:notification) do
activity fabricator: [:mention, :status, :follow, :follow_request, :favourite].sample
account
diff --git a/spec/fabricators/one_time_key_fabricator.rb b/spec/fabricators/one_time_key_fabricator.rb
index 8794baeb5..e317c28bd 100644
--- a/spec/fabricators/one_time_key_fabricator.rb
+++ b/spec/fabricators/one_time_key_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:one_time_key) do
device
key_id { Faker::Alphanumeric.alphanumeric(number: 10) }
diff --git a/spec/fabricators/poll_fabricator.rb b/spec/fabricators/poll_fabricator.rb
index 746610f7c..19c3b1d16 100644
--- a/spec/fabricators/poll_fabricator.rb
+++ b/spec/fabricators/poll_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:poll) do
account
status
diff --git a/spec/fabricators/poll_vote_fabricator.rb b/spec/fabricators/poll_vote_fabricator.rb
index c06e61f67..9099ae96f 100644
--- a/spec/fabricators/poll_vote_fabricator.rb
+++ b/spec/fabricators/poll_vote_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:poll_vote) do
account
poll
diff --git a/spec/fabricators/preview_card_fabricator.rb b/spec/fabricators/preview_card_fabricator.rb
index 99b5edc43..b8f2c5097 100644
--- a/spec/fabricators/preview_card_fabricator.rb
+++ b/spec/fabricators/preview_card_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:preview_card) do
url { Faker::Internet.url }
title { Faker::Lorem.sentence }
diff --git a/spec/fabricators/relay_fabricator.rb b/spec/fabricators/relay_fabricator.rb
index d6255866c..ad8ba86fc 100644
--- a/spec/fabricators/relay_fabricator.rb
+++ b/spec/fabricators/relay_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:relay) do
inbox_url 'https://example.com/inbox'
state :idle
diff --git a/spec/fabricators/report_fabricator.rb b/spec/fabricators/report_fabricator.rb
index 3011c49c6..7124773ad 100644
--- a/spec/fabricators/report_fabricator.rb
+++ b/spec/fabricators/report_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:report) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb
index 33f384074..f257fe2b7 100644
--- a/spec/fabricators/report_note_fabricator.rb
+++ b/spec/fabricators/report_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:report_note) do
report
account { Fabricate(:account) }
diff --git a/spec/fabricators/rule_fabricator.rb b/spec/fabricators/rule_fabricator.rb
index bc29bc48e..a29fd905a 100644
--- a/spec/fabricators/rule_fabricator.rb
+++ b/spec/fabricators/rule_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:rule) do
priority 0
deleted_at nil
diff --git a/spec/fabricators/scheduled_status_fabricator.rb b/spec/fabricators/scheduled_status_fabricator.rb
index 52384d137..e517f258a 100644
--- a/spec/fabricators/scheduled_status_fabricator.rb
+++ b/spec/fabricators/scheduled_status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:scheduled_status) do
account
scheduled_at { 20.hours.from_now }
diff --git a/spec/fabricators/session_activation_fabricator.rb b/spec/fabricators/session_activation_fabricator.rb
index a7fc3b017..b28d5e41d 100644
--- a/spec/fabricators/session_activation_fabricator.rb
+++ b/spec/fabricators/session_activation_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:session_activation) do
user
session_id 'MyString'
diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb
index 2efc57e28..b6841dea3 100644
--- a/spec/fabricators/site_upload_fabricator.rb
+++ b/spec/fabricators/site_upload_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:site_upload) do
file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
end
diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb
index 0e5796b23..33735a459 100644
--- a/spec/fabricators/status_edit_fabricator.rb
+++ b/spec/fabricators/status_edit_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_edit) do
status nil
account nil
diff --git a/spec/fabricators/status_fabricator.rb b/spec/fabricators/status_fabricator.rb
index 8a0a8aa55..17ac9ccd8 100644
--- a/spec/fabricators/status_fabricator.rb
+++ b/spec/fabricators/status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status) do
account
text 'Lorem ipsum dolor sit amet'
diff --git a/spec/fabricators/status_pin_fabricator.rb b/spec/fabricators/status_pin_fabricator.rb
index f1f1c05f3..9ad0ac9de 100644
--- a/spec/fabricators/status_pin_fabricator.rb
+++ b/spec/fabricators/status_pin_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_pin) do
account
status { |attrs| Fabricate(:status, account: attrs[:account], visibility: :public) }
diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb
index feba9fbca..8a358c51a 100644
--- a/spec/fabricators/status_stat_fabricator.rb
+++ b/spec/fabricators/status_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_stat) do
status_id nil
replies_count ''
diff --git a/spec/fabricators/system_key_fabricator.rb b/spec/fabricators/system_key_fabricator.rb
index c744bb286..ef6cec9c4 100644
--- a/spec/fabricators/system_key_fabricator.rb
+++ b/spec/fabricators/system_key_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:system_key) do
end
diff --git a/spec/fabricators/tag_fabricator.rb b/spec/fabricators/tag_fabricator.rb
index 33d57c928..a7b52e967 100644
--- a/spec/fabricators/tag_fabricator.rb
+++ b/spec/fabricators/tag_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:tag) do
name { sequence(:hashtag) { |i| "#{Faker::Lorem.word}#{i}" } }
end
diff --git a/spec/fabricators/tag_follow_fabricator.rb b/spec/fabricators/tag_follow_fabricator.rb
index a2cccb07a..cbe5b0989 100644
--- a/spec/fabricators/tag_follow_fabricator.rb
+++ b/spec/fabricators/tag_follow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:tag_follow) do
tag
account
diff --git a/spec/fabricators/unavailable_domain_fabricator.rb b/spec/fabricators/unavailable_domain_fabricator.rb
index f661b87c4..300a9e7a1 100644
--- a/spec/fabricators/unavailable_domain_fabricator.rb
+++ b/spec/fabricators/unavailable_domain_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:unavailable_domain) do
domain { Faker::Internet.domain }
end
diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb
index 93ce07a74..967347319 100644
--- a/spec/fabricators/user_fabricator.rb
+++ b/spec/fabricators/user_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user) do
account { Fabricate.build(:account, user: nil) }
email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } }
diff --git a/spec/fabricators/user_invite_request_fabricator.rb b/spec/fabricators/user_invite_request_fabricator.rb
index 5cc6ae56f..7736263e4 100644
--- a/spec/fabricators/user_invite_request_fabricator.rb
+++ b/spec/fabricators/user_invite_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user_invite_request) do
user
text { Faker::Lorem.sentence }
diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb
index 592b4edca..d44322760 100644
--- a/spec/fabricators/user_role_fabricator.rb
+++ b/spec/fabricators/user_role_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user_role) do
name 'MyString'
color ''
diff --git a/spec/fabricators/web_push_subscription_fabricator.rb b/spec/fabricators/web_push_subscription_fabricator.rb
index 97f90675d..baffdbf83 100644
--- a/spec/fabricators/web_push_subscription_fabricator.rb
+++ b/spec/fabricators/web_push_subscription_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:web_push_subscription, from: Web::PushSubscription) do
endpoint Faker::Internet.url
key_p256dh Faker::Internet.password
diff --git a/spec/fabricators/web_setting_fabricator.rb b/spec/fabricators/web_setting_fabricator.rb
index 369b86bc1..7c9f30079 100644
--- a/spec/fabricators/web_setting_fabricator.rb
+++ b/spec/fabricators/web_setting_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:web_setting, from: Web::Setting) do
end
diff --git a/spec/fabricators/webauthn_credential_fabricator.rb b/spec/fabricators/webauthn_credential_fabricator.rb
index ba59ce967..b578d55f0 100644
--- a/spec/fabricators/webauthn_credential_fabricator.rb
+++ b/spec/fabricators/webauthn_credential_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:webauthn_credential) do
user_id { Fabricate(:user).id }
external_id { Base64.urlsafe_encode64(SecureRandom.random_bytes(16)) }
diff --git a/spec/fabricators/webhook_fabricator.rb b/spec/fabricators/webhook_fabricator.rb
index fa4f17b55..477e715ef 100644
--- a/spec/fabricators/webhook_fabricator.rb
+++ b/spec/fabricators/webhook_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:webhook) do
url { Faker::Internet.url }
secret { SecureRandom.hex }
diff --git a/spec/helpers/accounts_helper_spec.rb b/spec/helpers/accounts_helper_spec.rb
index 1f412a39f..184b47dec 100644
--- a/spec/helpers/accounts_helper_spec.rb
+++ b/spec/helpers/accounts_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountsHelper, type: :helper do
diff --git a/spec/helpers/admin/filter_helper_spec.rb b/spec/helpers/admin/filter_helper_spec.rb
index 9d4ea2829..bbf90a996 100644
--- a/spec/helpers/admin/filter_helper_spec.rb
+++ b/spec/helpers/admin/filter_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::FilterHelper do
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index e0f71afd5..2db2ee288 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ApplicationHelper do
diff --git a/spec/helpers/home_helper_spec.rb b/spec/helpers/home_helper_spec.rb
index a3dc6f836..77db327c2 100644
--- a/spec/helpers/home_helper_spec.rb
+++ b/spec/helpers/home_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeHelper, type: :helper do
diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb
index cba659bfb..ce2a4680e 100644
--- a/spec/helpers/statuses_helper_spec.rb
+++ b/spec/helpers/statuses_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusesHelper, type: :helper do
diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb
index 95a5a8747..890a07be5 100644
--- a/spec/lib/activitypub/activity/accept_spec.rb
+++ b/spec/lib/activitypub/activity/accept_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Accept do
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index a69c3d2b1..9c45e465e 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Add do
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index b3257e881..394b1d7b9 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Announce do
diff --git a/spec/lib/activitypub/activity/block_spec.rb b/spec/lib/activitypub/activity/block_spec.rb
index 42bdfdc81..6f6898401 100644
--- a/spec/lib/activitypub/activity/block_spec.rb
+++ b/spec/lib/activitypub/activity/block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Block do
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index fd4983037..933eff225 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Create do
diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb
index 40cd0fce9..3a73b3726 100644
--- a/spec/lib/activitypub/activity/delete_spec.rb
+++ b/spec/lib/activitypub/activity/delete_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Delete do
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index c2a505356..005e185e6 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Flag do
diff --git a/spec/lib/activitypub/activity/follow_spec.rb b/spec/lib/activitypub/activity/follow_spec.rb
index fd4ede82b..eb8b17d61 100644
--- a/spec/lib/activitypub/activity/follow_spec.rb
+++ b/spec/lib/activitypub/activity/follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Follow do
diff --git a/spec/lib/activitypub/activity/like_spec.rb b/spec/lib/activitypub/activity/like_spec.rb
index b69615a9d..640d61ab3 100644
--- a/spec/lib/activitypub/activity/like_spec.rb
+++ b/spec/lib/activitypub/activity/like_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Like do
diff --git a/spec/lib/activitypub/activity/move_spec.rb b/spec/lib/activitypub/activity/move_spec.rb
index c468fdeff..8bd23aa7b 100644
--- a/spec/lib/activitypub/activity/move_spec.rb
+++ b/spec/lib/activitypub/activity/move_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Move do
diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb
index 7f04db4e6..5e0f09bfe 100644
--- a/spec/lib/activitypub/activity/reject_spec.rb
+++ b/spec/lib/activitypub/activity/reject_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Reject do
diff --git a/spec/lib/activitypub/activity/remove_spec.rb b/spec/lib/activitypub/activity/remove_spec.rb
index 4209dfde2..fc12aec8c 100644
--- a/spec/lib/activitypub/activity/remove_spec.rb
+++ b/spec/lib/activitypub/activity/remove_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Remove do
diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb
index 0bd1f17d3..b4cbc7196 100644
--- a/spec/lib/activitypub/activity/undo_spec.rb
+++ b/spec/lib/activitypub/activity/undo_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Undo do
diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb
index d2a1edd7a..f77279c02 100644
--- a/spec/lib/activitypub/activity/update_spec.rb
+++ b/spec/lib/activitypub/activity/update_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Update do
diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb
index e4c403abb..b981ea9c6 100644
--- a/spec/lib/activitypub/adapter_spec.rb
+++ b/spec/lib/activitypub/adapter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Adapter do
diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb
index 800473a7c..11078de86 100644
--- a/spec/lib/activitypub/dereferencer_spec.rb
+++ b/spec/lib/activitypub/dereferencer_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Dereferencer do
diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb
index ecb1e16db..619d6df12 100644
--- a/spec/lib/activitypub/linked_data_signature_spec.rb
+++ b/spec/lib/activitypub/linked_data_signature_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::LinkedDataSignature do
diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb
index 606a1de2e..596e91e95 100644
--- a/spec/lib/activitypub/tag_manager_spec.rb
+++ b/spec/lib/activitypub/tag_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::TagManager do
diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb
index c6fe8cf37..b73d5be4b 100644
--- a/spec/lib/emoji_formatter_spec.rb
+++ b/spec/lib/emoji_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EmojiFormatter do
diff --git a/spec/lib/entity_cache_spec.rb b/spec/lib/entity_cache_spec.rb
index bd622e626..c750cddf3 100644
--- a/spec/lib/entity_cache_spec.rb
+++ b/spec/lib/entity_cache_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EntityCache do
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index d54050f8f..418bdf089 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FeedManager do
diff --git a/spec/lib/html_aware_formatter_spec.rb b/spec/lib/html_aware_formatter_spec.rb
index 3d3149b8f..315035957 100644
--- a/spec/lib/html_aware_formatter_spec.rb
+++ b/spec/lib/html_aware_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HtmlAwareFormatter do
diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb
index fcc265474..a46dd743a 100644
--- a/spec/lib/link_details_extractor_spec.rb
+++ b/spec/lib/link_details_extractor_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe LinkDetailsExtractor do
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index 0e5f39031..4a0519aaf 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PlainTextFormatter do
diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb
index 05aadfd8f..c61b1ef1e 100644
--- a/spec/lib/suspicious_sign_in_detector_spec.rb
+++ b/spec/lib/suspicious_sign_in_detector_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SuspiciousSignInDetector do
diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb
index d2bb24c0f..8de290541 100644
--- a/spec/lib/tag_manager_spec.rb
+++ b/spec/lib/tag_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagManager do
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index 04ae4e02c..3417b450c 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TextFormatter do
diff --git a/spec/lib/vacuum/access_tokens_vacuum_spec.rb b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
index 0244c3449..6b7234065 100644
--- a/spec/lib/vacuum/access_tokens_vacuum_spec.rb
+++ b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::AccessTokensVacuum do
diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb
index c505a3e1a..867dbe402 100644
--- a/spec/lib/vacuum/backups_vacuum_spec.rb
+++ b/spec/lib/vacuum/backups_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::BackupsVacuum do
diff --git a/spec/lib/vacuum/feeds_vacuum_spec.rb b/spec/lib/vacuum/feeds_vacuum_spec.rb
index 0aec26740..ede1e3c36 100644
--- a/spec/lib/vacuum/feeds_vacuum_spec.rb
+++ b/spec/lib/vacuum/feeds_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::FeedsVacuum do
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index afcb6f878..3c17ecb00 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
index 524f4c927..c1b7f7e9c 100644
--- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb
+++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::PreviewCardsVacuum do
diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb
index 9583376b7..d5c013950 100644
--- a/spec/lib/vacuum/statuses_vacuum_spec.rb
+++ b/spec/lib/vacuum/statuses_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::StatusesVacuum do
diff --git a/spec/lib/vacuum/system_keys_vacuum_spec.rb b/spec/lib/vacuum/system_keys_vacuum_spec.rb
index 565892f02..84cae3041 100644
--- a/spec/lib/vacuum/system_keys_vacuum_spec.rb
+++ b/spec/lib/vacuum/system_keys_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::SystemKeysVacuum do
diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb
index ee007da70..8ec6dd205 100644
--- a/spec/lib/webfinger_resource_spec.rb
+++ b/spec/lib/webfinger_resource_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WebfingerResource do
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index 6746871a3..a6db08d85 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe NotificationMailer, type: :mailer do
diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb
index 0ec9e9882..9572768cd 100644
--- a/spec/mailers/previews/admin_mailer_preview.rb
+++ b/spec/mailers/previews/admin_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer
class AdminMailerPreview < ActionMailer::Preview
diff --git a/spec/mailers/previews/notification_mailer_preview.rb b/spec/mailers/previews/notification_mailer_preview.rb
index e31445c36..bc41662a1 100644
--- a/spec/mailers/previews/notification_mailer_preview.rb
+++ b/spec/mailers/previews/notification_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/notification_mailer
class NotificationMailerPreview < ActionMailer::Preview
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
index 95712e6cf..098c9cd90 100644
--- a/spec/mailers/previews/user_mailer_preview.rb
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/user_mailer
class UserMailerPreview < ActionMailer::Preview
diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb
index 36e1a8595..6745fbb26 100644
--- a/spec/models/account/field_spec.rb
+++ b/spec/models/account/field_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Account::Field, type: :model do
diff --git a/spec/models/account_alias_spec.rb b/spec/models/account_alias_spec.rb
index c48b804b2..08c3eaff4 100644
--- a/spec/models/account_alias_spec.rb
+++ b/spec/models/account_alias_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountAlias, type: :model do
diff --git a/spec/models/account_conversation_spec.rb b/spec/models/account_conversation_spec.rb
index 70a76281e..c4e8918ad 100644
--- a/spec/models/account_conversation_spec.rb
+++ b/spec/models/account_conversation_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountConversation, type: :model do
diff --git a/spec/models/account_deletion_request_spec.rb b/spec/models/account_deletion_request_spec.rb
index afaecbe22..db332f14c 100644
--- a/spec/models/account_deletion_request_spec.rb
+++ b/spec/models/account_deletion_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountDeletionRequest, type: :model do
diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb
index a170abcd2..bc46f44ba 100644
--- a/spec/models/account_domain_block_spec.rb
+++ b/spec/models/account_domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountDomainBlock, type: :model do
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index c2bd8c220..853d20a0c 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountFilter do
diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb
index 5f66fe8da..a91ba5dc5 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountMigration, type: :model do
diff --git a/spec/models/account_moderation_note_spec.rb b/spec/models/account_moderation_note_spec.rb
index 69bd5500a..b7f5701e6 100644
--- a/spec/models/account_moderation_note_spec.rb
+++ b/spec/models/account_moderation_note_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountModerationNote, type: :model do
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index f3ad19877..1e5a80963 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Account, type: :model do
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index d170050fc..1b7857547 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountStatusesCleanupPolicy, type: :model do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 7248356e5..9f41b7c8e 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountAction, type: :model do
diff --git a/spec/models/announcement_mute_spec.rb b/spec/models/announcement_mute_spec.rb
index 9d0e4c903..f4a7a5dc9 100644
--- a/spec/models/announcement_mute_spec.rb
+++ b/spec/models/announcement_mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AnnouncementMute, type: :model do
diff --git a/spec/models/announcement_reaction_spec.rb b/spec/models/announcement_reaction_spec.rb
index f6e151584..38095b015 100644
--- a/spec/models/announcement_reaction_spec.rb
+++ b/spec/models/announcement_reaction_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AnnouncementReaction, type: :model do
diff --git a/spec/models/announcement_spec.rb b/spec/models/announcement_spec.rb
index 7f7b647a9..024fa2888 100644
--- a/spec/models/announcement_spec.rb
+++ b/spec/models/announcement_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Announcement, type: :model do
diff --git a/spec/models/appeal_spec.rb b/spec/models/appeal_spec.rb
index 14062dc4f..6aa013aba 100644
--- a/spec/models/appeal_spec.rb
+++ b/spec/models/appeal_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Appeal, type: :model do
diff --git a/spec/models/backup_spec.rb b/spec/models/backup_spec.rb
index 45230986d..239e7aef7 100644
--- a/spec/models/backup_spec.rb
+++ b/spec/models/backup_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Backup, type: :model do
diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb
index 1fd60c29d..64c39fce6 100644
--- a/spec/models/block_spec.rb
+++ b/spec/models/block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Block, type: :model do
diff --git a/spec/models/canonical_email_block_spec.rb b/spec/models/canonical_email_block_spec.rb
index 8e0050d65..2b3fd6d6a 100644
--- a/spec/models/canonical_email_block_spec.rb
+++ b/spec/models/canonical_email_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CanonicalEmailBlock, type: :model do
diff --git a/spec/models/concerns/account_counters_spec.rb b/spec/models/concerns/account_counters_spec.rb
index 4350496e7..fb02d79f1 100644
--- a/spec/models/concerns/account_counters_spec.rb
+++ b/spec/models/concerns/account_counters_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountCounters do
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index 50ff0b149..7396af6df 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountInteractions do
diff --git a/spec/models/conversation_mute_spec.rb b/spec/models/conversation_mute_spec.rb
index 3fc2915d4..6439b0ecd 100644
--- a/spec/models/conversation_mute_spec.rb
+++ b/spec/models/conversation_mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ConversationMute, type: :model do
diff --git a/spec/models/conversation_spec.rb b/spec/models/conversation_spec.rb
index 8b5e4fdaf..9d58ad0ac 100644
--- a/spec/models/conversation_spec.rb
+++ b/spec/models/conversation_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Conversation, type: :model do
diff --git a/spec/models/custom_emoji_category_spec.rb b/spec/models/custom_emoji_category_spec.rb
index 160033f4d..74881b26c 100644
--- a/spec/models/custom_emoji_category_spec.rb
+++ b/spec/models/custom_emoji_category_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomEmojiCategory, type: :model do
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index f6fcd468b..ef5f39aca 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomEmoji, type: :model do
diff --git a/spec/models/custom_filter_keyword_spec.rb b/spec/models/custom_filter_keyword_spec.rb
index e15b9dad5..bbc4b9c2e 100644
--- a/spec/models/custom_filter_keyword_spec.rb
+++ b/spec/models/custom_filter_keyword_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomFilterKeyword, type: :model do
diff --git a/spec/models/custom_filter_spec.rb b/spec/models/custom_filter_spec.rb
index 3943dd5f1..d2bc090ab 100644
--- a/spec/models/custom_filter_spec.rb
+++ b/spec/models/custom_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomFilter, type: :model do
diff --git a/spec/models/device_spec.rb b/spec/models/device_spec.rb
index 307552e91..cb214b9cb 100644
--- a/spec/models/device_spec.rb
+++ b/spec/models/device_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Device, type: :model do
diff --git a/spec/models/domain_allow_spec.rb b/spec/models/domain_allow_spec.rb
index e65435127..18cf5fe4c 100644
--- a/spec/models/domain_allow_spec.rb
+++ b/spec/models/domain_allow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DomainAllow, type: :model do
diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb
index d1d57c167..6a5925b89 100644
--- a/spec/models/domain_block_spec.rb
+++ b/spec/models/domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DomainBlock, type: :model do
diff --git a/spec/models/email_domain_block_spec.rb b/spec/models/email_domain_block_spec.rb
index e23116888..01a7a0f0e 100644
--- a/spec/models/email_domain_block_spec.rb
+++ b/spec/models/email_domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EmailDomainBlock, type: :model do
diff --git a/spec/models/encrypted_message_spec.rb b/spec/models/encrypted_message_spec.rb
index 64f9c6912..bf7a406ff 100644
--- a/spec/models/encrypted_message_spec.rb
+++ b/spec/models/encrypted_message_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EncryptedMessage, type: :model do
diff --git a/spec/models/export_spec.rb b/spec/models/export_spec.rb
index 5202ae9e1..3fb5fc3a5 100644
--- a/spec/models/export_spec.rb
+++ b/spec/models/export_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Export do
diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb
index f755590ee..f7e2812a6 100644
--- a/spec/models/favourite_spec.rb
+++ b/spec/models/favourite_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Favourite, type: :model do
diff --git a/spec/models/featured_tag_spec.rb b/spec/models/featured_tag_spec.rb
index 07533e0b9..4bf087c82 100644
--- a/spec/models/featured_tag_spec.rb
+++ b/spec/models/featured_tag_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FeaturedTag, type: :model do
diff --git a/spec/models/follow_recommendation_suppression_spec.rb b/spec/models/follow_recommendation_suppression_spec.rb
index 39107a2b0..4c1d8281b 100644
--- a/spec/models/follow_recommendation_suppression_spec.rb
+++ b/spec/models/follow_recommendation_suppression_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowRecommendationSuppression, type: :model do
diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb
index 901eabc9d..569c160ae 100644
--- a/spec/models/follow_request_spec.rb
+++ b/spec/models/follow_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowRequest, type: :model do
diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb
index e723a1ef2..f49d58532 100644
--- a/spec/models/follow_spec.rb
+++ b/spec/models/follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Follow, type: :model do
diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb
index 196bef1e4..d7034f3f0 100644
--- a/spec/models/home_feed_spec.rb
+++ b/spec/models/home_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeFeed, type: :model do
diff --git a/spec/models/identity_spec.rb b/spec/models/identity_spec.rb
index 689c9b797..6eab5a2e1 100644
--- a/spec/models/identity_spec.rb
+++ b/spec/models/identity_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Identity, type: :model do
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index 4280b3237..81c75a964 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Import, type: :model do
diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb
index b0596c561..dac4b6431 100644
--- a/spec/models/invite_spec.rb
+++ b/spec/models/invite_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Invite, type: :model do
diff --git a/spec/models/ip_block_spec.rb b/spec/models/ip_block_spec.rb
index 6603c6417..4c4028576 100644
--- a/spec/models/ip_block_spec.rb
+++ b/spec/models/ip_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe IpBlock, type: :model do
diff --git a/spec/models/list_account_spec.rb b/spec/models/list_account_spec.rb
index a0cf02efe..8312defac 100644
--- a/spec/models/list_account_spec.rb
+++ b/spec/models/list_account_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ListAccount, type: :model do
diff --git a/spec/models/list_spec.rb b/spec/models/list_spec.rb
index b780bb1de..8167f8a7e 100644
--- a/spec/models/list_spec.rb
+++ b/spec/models/list_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe List, type: :model do
diff --git a/spec/models/login_activity_spec.rb b/spec/models/login_activity_spec.rb
index 12d8c4363..1c3111a20 100644
--- a/spec/models/login_activity_spec.rb
+++ b/spec/models/login_activity_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe LoginActivity, type: :model do
diff --git a/spec/models/marker_spec.rb b/spec/models/marker_spec.rb
index d716aa75c..e8561c4c6 100644
--- a/spec/models/marker_spec.rb
+++ b/spec/models/marker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Marker, type: :model do
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 097c76f31..63edfc152 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe MediaAttachment, type: :model do
diff --git a/spec/models/mention_spec.rb b/spec/models/mention_spec.rb
index dbcf6a32c..3de2b4a07 100644
--- a/spec/models/mention_spec.rb
+++ b/spec/models/mention_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Mention, type: :model do
diff --git a/spec/models/mute_spec.rb b/spec/models/mute_spec.rb
index 38a87bdf4..48b5a37ab 100644
--- a/spec/models/mute_spec.rb
+++ b/spec/models/mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Mute, type: :model do
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index a8fb77639..64527e3d7 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Notification, type: :model do
diff --git a/spec/models/one_time_key_spec.rb b/spec/models/one_time_key_spec.rb
index 4b231c600..2a5fe8a9d 100644
--- a/spec/models/one_time_key_spec.rb
+++ b/spec/models/one_time_key_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe OneTimeKey, type: :model do
diff --git a/spec/models/poll_spec.rb b/spec/models/poll_spec.rb
index 666f8ca68..474399bf6 100644
--- a/spec/models/poll_spec.rb
+++ b/spec/models/poll_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Poll, type: :model do
diff --git a/spec/models/preview_card_spec.rb b/spec/models/preview_card_spec.rb
index 45233d1d4..1858644c9 100644
--- a/spec/models/preview_card_spec.rb
+++ b/spec/models/preview_card_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PreviewCard, type: :model do
diff --git a/spec/models/preview_card_trend_spec.rb b/spec/models/preview_card_trend_spec.rb
index c7ab6ed14..97ad05e75 100644
--- a/spec/models/preview_card_trend_spec.rb
+++ b/spec/models/preview_card_trend_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PreviewCardTrend, type: :model do
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index 59c81dd95..5653aee18 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PublicFeed, type: :model do
diff --git a/spec/models/relay_spec.rb b/spec/models/relay_spec.rb
index 12dc0f20f..86c1762c1 100644
--- a/spec/models/relay_spec.rb
+++ b/spec/models/relay_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Relay, type: :model do
diff --git a/spec/models/report_filter_spec.rb b/spec/models/report_filter_spec.rb
index 099c0731d..8269c4579 100644
--- a/spec/models/report_filter_spec.rb
+++ b/spec/models/report_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ReportFilter do
diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb
index 317851297..d5d40a34f 100644
--- a/spec/models/report_spec.rb
+++ b/spec/models/report_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Report do
diff --git a/spec/models/rule_spec.rb b/spec/models/rule_spec.rb
index 8666bda71..d5ec13ddf 100644
--- a/spec/models/rule_spec.rb
+++ b/spec/models/rule_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Rule, type: :model do
diff --git a/spec/models/scheduled_status_spec.rb b/spec/models/scheduled_status_spec.rb
index f8c9d8b81..294fa9f36 100644
--- a/spec/models/scheduled_status_spec.rb
+++ b/spec/models/scheduled_status_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ScheduledStatus, type: :model do
diff --git a/spec/models/status_edit_spec.rb b/spec/models/status_edit_spec.rb
index 2ecafef73..0b9fa7087 100644
--- a/spec/models/status_edit_spec.rb
+++ b/spec/models/status_edit_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusEdit, type: :model do
diff --git a/spec/models/status_pin_spec.rb b/spec/models/status_pin_spec.rb
index c18faca78..c4ebf96da 100644
--- a/spec/models/status_pin_spec.rb
+++ b/spec/models/status_pin_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusPin, type: :model do
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 442f14ddf..1e58c6d0d 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Status, type: :model do
diff --git a/spec/models/status_stat_spec.rb b/spec/models/status_stat_spec.rb
index af1a6f288..749ca097d 100644
--- a/spec/models/status_stat_spec.rb
+++ b/spec/models/status_stat_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusStat, type: :model do
diff --git a/spec/models/status_trend_spec.rb b/spec/models/status_trend_spec.rb
index 6b82204a6..9678b838a 100644
--- a/spec/models/status_trend_spec.rb
+++ b/spec/models/status_trend_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusTrend, type: :model do
diff --git a/spec/models/system_key_spec.rb b/spec/models/system_key_spec.rb
index 86f07f964..a4e8b7784 100644
--- a/spec/models/system_key_spec.rb
+++ b/spec/models/system_key_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SystemKey, type: :model do
diff --git a/spec/models/tag_feed_spec.rb b/spec/models/tag_feed_spec.rb
index 819fe3765..a498bcf46 100644
--- a/spec/models/tag_feed_spec.rb
+++ b/spec/models/tag_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe TagFeed, type: :service do
diff --git a/spec/models/tag_follow_spec.rb b/spec/models/tag_follow_spec.rb
index 50c04d2e4..88409bb28 100644
--- a/spec/models/tag_follow_spec.rb
+++ b/spec/models/tag_follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagFollow, type: :model do
diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb
index 98a8c7264..29a20a595 100644
--- a/spec/models/trends/statuses_spec.rb
+++ b/spec/models/trends/statuses_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Trends::Statuses do
diff --git a/spec/models/trends/tags_spec.rb b/spec/models/trends/tags_spec.rb
index f48c73503..a9473e15c 100644
--- a/spec/models/trends/tags_spec.rb
+++ b/spec/models/trends/tags_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Trends::Tags do
diff --git a/spec/models/unavailable_domain_spec.rb b/spec/models/unavailable_domain_spec.rb
index 3f2621034..5469ff693 100644
--- a/spec/models/unavailable_domain_spec.rb
+++ b/spec/models/unavailable_domain_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnavailableDomain, type: :model do
diff --git a/spec/models/user_invite_request_spec.rb b/spec/models/user_invite_request_spec.rb
index 1be38d8a4..95e128439 100644
--- a/spec/models/user_invite_request_spec.rb
+++ b/spec/models/user_invite_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UserInviteRequest, type: :model do
diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb
index 52a8622f9..97456c106 100644
--- a/spec/models/user_role_spec.rb
+++ b/spec/models/user_role_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UserRole, type: :model do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 9dfd6678a..3e7b59f17 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
require 'devise_two_factor/spec_helpers'
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index a5c34f4ed..e925e4c4c 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Web::PushSubscription, type: :model do
diff --git a/spec/models/web/setting_spec.rb b/spec/models/web/setting_spec.rb
index 6657d4030..b7ff3c868 100644
--- a/spec/models/web/setting_spec.rb
+++ b/spec/models/web/setting_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Web::Setting, type: :model do
diff --git a/spec/models/webauthn_credentials_spec.rb b/spec/models/webauthn_credentials_spec.rb
index e070a6b60..1a2a2f909 100644
--- a/spec/models/webauthn_credentials_spec.rb
+++ b/spec/models/webauthn_credentials_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe WebauthnCredential, type: :model do
diff --git a/spec/models/webhook_spec.rb b/spec/models/webhook_spec.rb
index 60c3d9524..fcf3dd14f 100644
--- a/spec/models/webhook_spec.rb
+++ b/spec/models/webhook_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Webhook, type: :model do
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index a451b5cba..29170a79a 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe InstancePresenter do
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 9a14fc3b1..faae02df0 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb
index dcfc1bf4b..e600bedfe 100644
--- a/spec/requests/catch_all_route_request_spec.rb
+++ b/spec/requests/catch_all_route_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The catch all route' do
diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb
index 60153ba8c..ec26ecba7 100644
--- a/spec/requests/host_meta_request_spec.rb
+++ b/spec/requests/host_meta_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The host_meta route' do
diff --git a/spec/requests/webfinger_request_spec.rb b/spec/requests/webfinger_request_spec.rb
index 209fda72a..68a1478be 100644
--- a/spec/requests/webfinger_request_spec.rb
+++ b/spec/requests/webfinger_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The webfinger route' do
diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb
index 3f0e9b3e9..8b2c124fd 100644
--- a/spec/routing/accounts_routing_spec.rb
+++ b/spec/routing/accounts_routing_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'Routes under accounts/' do
diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb
index 747463351..8cf08c13c 100644
--- a/spec/routing/well_known_routes_spec.rb
+++ b/spec/routing/well_known_routes_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'Well Known routes' do
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index 45e19d1ef..bb819bb6c 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountSearchService, type: :service do
diff --git a/spec/services/account_statuses_cleanup_service_spec.rb b/spec/services/account_statuses_cleanup_service_spec.rb
index a30e14ab6..e83063f73 100644
--- a/spec/services/account_statuses_cleanup_service_spec.rb
+++ b/spec/services/account_statuses_cleanup_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountStatusesCleanupService, type: :service do
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
index d9266ffc2..59d332599 100644
--- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 4f828bacc..071e4d92d 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb
index ec6f1f41d..868bc2a58 100644
--- a/spec/services/activitypub/fetch_remote_account_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
index 20117c66d..a72c6941e 100644
--- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb
index 3186c4270..0ec0c2736 100644
--- a/spec/services/activitypub/fetch_remote_key_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index 6e47392b3..1c39db21f 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb
index 0231a5e9a..bf8e29676 100644
--- a/spec/services/activitypub/fetch_replies_service_spec.rb
+++ b/spec/services/activitypub/fetch_replies_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRepliesService, type: :service do
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 78282e453..491b8ed5a 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::ProcessAccountService, type: :service do
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index c7d0bb92a..1433d0c50 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index c8aa56def..e9f23b9cf 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
def poll_option_json(name, votes)
diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb
index 0e829a302..c9a513e24 100644
--- a/spec/services/activitypub/synchronize_followers_service_spec.rb
+++ b/spec/services/activitypub/synchronize_followers_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb
index 9cca82bff..b75f92372 100644
--- a/spec/services/after_block_domain_from_account_service_spec.rb
+++ b/spec/services/after_block_domain_from_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AfterBlockDomainFromAccountService, type: :service do
diff --git a/spec/services/after_block_service_spec.rb b/spec/services/after_block_service_spec.rb
index 337766d06..d81bba1d8 100644
--- a/spec/services/after_block_service_spec.rb
+++ b/spec/services/after_block_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AfterBlockService, type: :service do
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index 10da07dcf..253230496 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AppSignUpService, type: :service do
diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb
index 8f8e44ec7..63d9e2a0f 100644
--- a/spec/services/authorize_follow_service_spec.rb
+++ b/spec/services/authorize_follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AuthorizeFollowService, type: :service do
diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb
index 920edeb13..9bedf3744 100644
--- a/spec/services/batched_remove_status_service_spec.rb
+++ b/spec/services/batched_remove_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BatchedRemoveStatusService, type: :service do
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index 56b3a5ad1..0ab97b8ce 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BlockDomainService, type: :service do
diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb
index 049644dbc..75f07f5ad 100644
--- a/spec/services/block_service_spec.rb
+++ b/spec/services/block_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BlockService, type: :service do
diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb
index 149f6e6df..670ac652f 100644
--- a/spec/services/bootstrap_timeline_service_spec.rb
+++ b/spec/services/bootstrap_timeline_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BootstrapTimelineService, type: :service do
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index 993ba789e..987507579 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ClearDomainMediaService, type: :service do
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index e5bfdd679..61e5c3c9b 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DeleteAccountService, type: :service do
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index d09750dd2..3b554f9ea 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 4f621200a..613ae203e 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FavouriteService, type: :service do
diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb
index 458473c39..d79ab7a43 100644
--- a/spec/services/fetch_link_card_service_spec.rb
+++ b/spec/services/fetch_link_card_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchLinkCardService, type: :service do
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index ace520b8f..694a75dc2 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchRemoteStatusService, type: :service do
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 226c98d70..da7e42351 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchResourceService, type: :service do
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index f95d59440..67a8b2c54 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowService, type: :service do
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 4a517fb93..f081f2d9d 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ImportService, type: :service do
diff --git a/spec/services/mute_service_spec.rb b/spec/services/mute_service_spec.rb
index 57d8c41de..50f74ff27 100644
--- a/spec/services/mute_service_spec.rb
+++ b/spec/services/mute_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe MuteService, type: :service do
diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb
index 294c31b04..c58cebbfb 100644
--- a/spec/services/notify_service_spec.rb
+++ b/spec/services/notify_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe NotifyService, type: :service do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index c34f2393a..33153c3d0 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PostStatusService, type: :service do
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 79ccfa322..adc45c60a 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ProcessMentionsService, type: :service do
diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb
index 7d8969ee8..310affa5e 100644
--- a/spec/services/purge_domain_service_spec.rb
+++ b/spec/services/purge_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PurgeDomainService, type: :service do
diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb
index e2ac0154c..c00472229 100644
--- a/spec/services/reblog_service_spec.rb
+++ b/spec/services/reblog_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ReblogService, type: :service do
diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb
index 97b7412b9..be9363d84 100644
--- a/spec/services/reject_follow_service_spec.rb
+++ b/spec/services/reject_follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RejectFollowService, type: :service do
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb
index 782f859e2..21cea2e4f 100644
--- a/spec/services/remove_from_follwers_service_spec.rb
+++ b/spec/services/remove_from_follwers_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RemoveFromFollowersService, type: :service do
diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb
index e253052f3..a836109a0 100644
--- a/spec/services/remove_status_service_spec.rb
+++ b/spec/services/remove_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RemoveStatusService, type: :service do
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index c3a3fddf8..9d81bd971 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ReportService, type: :service do
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 02869f8c8..3ce1f7f2b 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ResolveAccountService, type: :service do
diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb
index 5701090b3..4489bfed5 100644
--- a/spec/services/suspend_account_service_spec.rb
+++ b/spec/services/suspend_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SuspendAccountService, type: :service do
diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb
index ae7d00c7d..48e310a9d 100644
--- a/spec/services/unallow_domain_service_spec.rb
+++ b/spec/services/unallow_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnallowDomainService, type: :service do
diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb
index bd24005f6..8098d7e6d 100644
--- a/spec/services/unblock_service_spec.rb
+++ b/spec/services/unblock_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnblockService, type: :service do
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index 55969bef9..a12f01fa5 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnfollowService, type: :service do
diff --git a/spec/services/unmute_service_spec.rb b/spec/services/unmute_service_spec.rb
index 8463eb283..2edb6cfc2 100644
--- a/spec/services/unmute_service_spec.rb
+++ b/spec/services/unmute_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnmuteService, type: :service do
diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb
index 667507469..5d7012093 100644
--- a/spec/services/unsuspend_account_service_spec.rb
+++ b/spec/services/unsuspend_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnsuspendAccountService, type: :service do
diff --git a/spec/services/update_account_service_spec.rb b/spec/services/update_account_service_spec.rb
index c2dc791e4..a711a8ae7 100644
--- a/spec/services/update_account_service_spec.rb
+++ b/spec/services/update_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UpdateAccountService, type: :service do
diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb
index a7364ca8b..e52a0e52b 100644
--- a/spec/services/update_status_service_spec.rb
+++ b/spec/services/update_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UpdateStatusService, type: :service do
diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb
index 8f65f3a84..ea9ccc3fc 100644
--- a/spec/services/verify_link_service_spec.rb
+++ b/spec/services/verify_link_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe VerifyLinkService, type: :service do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 97b8d83c5..ddc872fc8 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
GC.disable
if ENV['DISABLE_SIMPLECOV'] != 'true'
diff --git a/spec/support/matchers/json/match_json_schema.rb b/spec/support/matchers/json/match_json_schema.rb
index 5d9c9a618..3a275199e 100644
--- a/spec/support/matchers/json/match_json_schema.rb
+++ b/spec/support/matchers/json/match_json_schema.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
RSpec::Matchers.define :match_json_schema do |schema|
match do |input_json|
schema_path = Rails.root.join('spec', 'support', 'schema', "#{schema}.json").to_s
diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb
index d85db2fca..21632b574 100644
--- a/spec/support/matchers/model/model_have_error_on_field.rb
+++ b/spec/support/matchers/model/model_have_error_on_field.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
RSpec::Matchers.define :model_have_error_on_field do |expected|
match do |record|
record.valid? if record.errors.empty?
diff --git a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
index d68a695b7..947acab3b 100644
--- a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
+++ b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::DistributePollUpdateWorker do
diff --git a/spec/workers/activitypub/distribution_worker_spec.rb b/spec/workers/activitypub/distribution_worker_spec.rb
index 7f63e197b..06d6ac738 100644
--- a/spec/workers/activitypub/distribution_worker_spec.rb
+++ b/spec/workers/activitypub/distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::DistributionWorker do
diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb
index 482fa9db4..4df6b2f16 100644
--- a/spec/workers/activitypub/move_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/move_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::MoveDistributionWorker do
diff --git a/spec/workers/activitypub/processing_worker_spec.rb b/spec/workers/activitypub/processing_worker_spec.rb
index b42c0bdbc..6b57f16a9 100644
--- a/spec/workers/activitypub/processing_worker_spec.rb
+++ b/spec/workers/activitypub/processing_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::ProcessingWorker do
diff --git a/spec/workers/activitypub/status_update_distribution_worker_spec.rb b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
index c014c6790..cf55a461d 100644
--- a/spec/workers/activitypub/status_update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::StatusUpdateDistributionWorker do
diff --git a/spec/workers/activitypub/update_distribution_worker_spec.rb b/spec/workers/activitypub/update_distribution_worker_spec.rb
index 0e057fd0b..7b1e6ff54 100644
--- a/spec/workers/activitypub/update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/update_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::UpdateDistributionWorker do
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index a5dfed369..b977bc1fb 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Scheduler::AccountsStatusesCleanupScheduler do
diff --git a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
index da99f10f9..990979500 100644
--- a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Scheduler::UserCleanupScheduler do
From 48aeab90f657055e5516b844f47fcf5c097458a1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:56:11 -0500
Subject: [PATCH 44/55] Ignore JSX files from Prettier (#23777)
---
.prettierignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.prettierignore b/.prettierignore
index 15e5f5994..2ea407533 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -69,6 +69,7 @@ app/javascript/styles/mastodon/reset.scss
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
+*.jsx
# Ignore HTML till cleaned and included in CI
*.html
From 8fd3fc404dd848253767252bbd76275e091832b1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:57:15 -0500
Subject: [PATCH 45/55] Autofix Rubocop Rails/RootPathnameMethods (#23760)
---
.rubocop_todo.yml | 12 ------------
lib/mastodon/premailer_webpack_strategy.rb | 2 +-
lib/tasks/emojis.rake | 2 +-
lib/tasks/mastodon.rake | 2 +-
lib/tasks/repo.rake | 6 +++---
spec/fabricators/custom_emoji_fabricator.rb | 2 +-
spec/fabricators/site_upload_fabricator.rb | 2 +-
spec/rails_helper.rb | 4 ++--
8 files changed, 10 insertions(+), 22 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index a72606b35..bbf01bacf 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1801,18 +1801,6 @@ Rails/ReversibleMigration:
- 'db/migrate/20180617162849_remove_unused_indexes.rb'
- 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
-# Offense count: 10
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Rails/RootPathnameMethods:
- Exclude:
- - 'lib/mastodon/premailer_webpack_strategy.rb'
- - 'lib/tasks/emojis.rake'
- - 'lib/tasks/mastodon.rake'
- - 'lib/tasks/repo.rake'
- - 'spec/fabricators/custom_emoji_fabricator.rb'
- - 'spec/fabricators/site_upload_fabricator.rb'
- - 'spec/rails_helper.rb'
-
# Offense count: 141
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb
index 4356b7285..5c297d4d0 100644
--- a/lib/mastodon/premailer_webpack_strategy.rb
+++ b/lib/mastodon/premailer_webpack_strategy.rb
@@ -13,7 +13,7 @@ module PremailerWebpackStrategy
HTTP.get(url).to_s
else
url = url[1..-1] if url.start_with?('/')
- File.read(Rails.public_path.join(url))
+ Rails.public_path.join(url).read
end
css.gsub(/url\(\//, "url(#{asset_host}/")
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index 02d772b48..c743f8a55 100644
--- a/lib/tasks/emojis.rake
+++ b/lib/tasks/emojis.rake
@@ -69,7 +69,7 @@ namespace :emojis do
end
end
- existence_maps = grouped_codes.map { |c| c.index_with { |cc| File.exist?(Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg")) } }
+ existence_maps = grouped_codes.map { |c| c.index_with { |cc| Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg").exist? } }
map = {}
existence_maps.each do |group|
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 0a3946ac7..6c0e66922 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -445,7 +445,7 @@ namespace :mastodon do
generated_header << "# using docker-compose or not.\n\n"
end
- File.write(Rails.root.join('.env.production'), "#{generated_header}#{env_contents}\n")
+ Rails.root.join('.env.production').write("#{generated_header}#{env_contents}\n")
if using_docker
prompt.ok 'Below is your configuration, save it to an .env.production file outside Docker:'
diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake
index 795b54c59..5d1b4f754 100644
--- a/lib/tasks/repo.rake
+++ b/lib/tasks/repo.rake
@@ -5,7 +5,7 @@ REPOSITORY_NAME = 'mastodon/mastodon'
namespace :repo do
desc 'Generate the AUTHORS.md file'
task :authors do
- file = File.open(Rails.root.join('AUTHORS.md'), 'w')
+ file = Rails.root.join('AUTHORS.md').open('w')
file << <<~HEADER
Authors
@@ -87,8 +87,8 @@ namespace :repo do
task check_locales_files: :environment do
pastel = Pastel.new
- missing_yaml_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('config', 'locales', "#{locale}.yml")) }
- missing_json_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json")) }
+ missing_yaml_files = I18n.available_locales.reject { |locale| Rails.root.join('config', 'locales', "#{locale}.yml").exist? }
+ missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? }
locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path|
file_name = File.basename(path)
diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb
index 298a50b4b..fa570eec6 100644
--- a/spec/fabricators/custom_emoji_fabricator.rb
+++ b/spec/fabricators/custom_emoji_fabricator.rb
@@ -3,5 +3,5 @@
Fabricator(:custom_emoji) do
shortcode 'coolcat'
domain nil
- image { File.open(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png')) }
+ image { Rails.root.join('spec', 'fixtures', 'files', 'emojo.png').open }
end
diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb
index b6841dea3..ad1b777cc 100644
--- a/spec/fabricators/site_upload_fabricator.rb
+++ b/spec/fabricators/site_upload_fabricator.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
Fabricator(:site_upload) do
- file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
+ file { Rails.root.join('spec', 'fabricators', 'assets', 'utah_teapot.png').open }
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index faae02df0..70d3a968c 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -73,11 +73,11 @@ end
RSpec::Matchers.define_negated_matcher :not_change, :change
def request_fixture(name)
- File.read(Rails.root.join('spec', 'fixtures', 'requests', name))
+ Rails.root.join('spec', 'fixtures', 'requests', name).read
end
def attachment_fixture(name)
- File.open(Rails.root.join('spec', 'fixtures', 'files', name))
+ Rails.root.join('spec', 'fixtures', 'files', name).open
end
def stub_jsonld_contexts!
From 4ff44be1348136fa602318cca343e716fea0e556 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:57:56 -0500
Subject: [PATCH 46/55] Autofix Rubocop Rails/Blank (#23765)
---
.rubocop_todo.yml | 7 -------
app/services/activitypub/fetch_remote_actor_service.rb | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index bbf01bacf..0bdf72084 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1485,13 +1485,6 @@ Rails/ApplicationController:
- 'app/controllers/well_known/nodeinfo_controller.rb'
- 'app/controllers/well_known/webfinger_controller.rb'
-# Offense count: 1
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent.
-Rails/Blank:
- Exclude:
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
-
# Offense count: 35
# Configuration parameters: Database, Include.
# SupportedDatabases: mysql, postgresql
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index ee0eaff08..c29570086 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -28,7 +28,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?
raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type?
raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present?
- raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" unless @json['preferredUsername'].present?
+ raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank?
@uri = @json['id']
@username = @json['preferredUsername']
From 3ed1b9ebb60a50ea1cb6a229ab25d4e7d6b848c8 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 22 Feb 2023 10:28:52 +0100
Subject: [PATCH 47/55] Fix rack:attack flaky tests and test end of throttle
period (#23799)
---
spec/config/initializers/rack_attack_spec.rb | 27 +++++++++++++++++---
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 2cfe90b1a..cc931b21b 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -10,6 +10,17 @@ describe Rack::Attack do
end
shared_examples 'throttled endpoint' do
+ before do
+ # Rack::Attack periods are not rolling, so avoid flaky tests by setting the time in a way
+ # to avoid crossing period boundaries.
+
+ # The code Rack::Attack uses to set periods is the following:
+ # https://github.com/rack/rack-attack/blob/v6.6.1/lib/rack/attack/cache.rb#L64-L66
+ # So we want to minimize `Time.now.to_i % period`
+
+ travel_to Time.zone.at((Time.now.to_i / period.seconds).to_i * period.seconds)
+ end
+
context 'when the number of requests is lower than the limit' do
it 'does not change the request status' do
limit.times do
@@ -20,11 +31,16 @@ describe Rack::Attack do
end
context 'when the number of requests is higher than the limit' do
- it 'returns http too many requests' do
+ it 'returns http too many requests after limit and returns to normal status after period' do
(limit * 2).times do |i|
request.call
expect(last_response.status).to eq(429) if i > limit
end
+
+ travel period
+
+ request.call
+ expect(last_response.status).to_not eq(429)
end
end
end
@@ -33,7 +49,8 @@ describe Rack::Attack do
describe 'throttle excessive sign-up requests by IP address' do
context 'through the website' do
- let(:limit) { 25 }
+ let(:limit) { 25 }
+ let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
@@ -50,7 +67,8 @@ describe Rack::Attack do
end
context 'through the API' do
- let(:limit) { 5 }
+ let(:limit) { 5 }
+ let(:period) { 30.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
@@ -71,7 +89,8 @@ describe Rack::Attack do
end
describe 'throttle excessive sign-in requests by IP address' do
- let(:limit) { 25 }
+ let(:limit) { 25 }
+ let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
From f682478de8b5a6e0b524bfca88f3469fd098d64c Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 22 Feb 2023 11:53:13 +0100
Subject: [PATCH 48/55] Fix inefficiency when searching accounts per username
in admin interface (#23801)
---
app/models/account.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/models/account.rb b/app/models/account.rb
index 09c450f2a..1ff083e54 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -108,7 +108,7 @@ class Account < ApplicationRecord
scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
- scope :matches_username, ->(value) { where(arel_table[:username].matches("#{value}%")) }
+ scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
scope :without_unapproved, -> { left_outer_joins(:user).remote.or(left_outer_joins(:user).merge(User.approved.confirmed)) }
From 25641171319a9cfde9b837d25bcab077b3d1da6a Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Wed, 22 Feb 2023 13:16:02 +0100
Subject: [PATCH 49/55] New Crowdin updates (#23625)
Co-authored-by: Yamagishi Kazutoshi
---
app/javascript/mastodon/locales/ast.json | 30 +-
app/javascript/mastodon/locales/be.json | 4 +-
app/javascript/mastodon/locales/bg.json | 8 +-
app/javascript/mastodon/locales/ca.json | 68 ++--
app/javascript/mastodon/locales/cy.json | 20 +-
app/javascript/mastodon/locales/de.json | 14 +-
app/javascript/mastodon/locales/es-MX.json | 2 +-
app/javascript/mastodon/locales/fr-QC.json | 4 +-
app/javascript/mastodon/locales/ko.json | 30 +-
app/javascript/mastodon/locales/lv.json | 2 +-
app/javascript/mastodon/locales/my.json | 10 +-
app/javascript/mastodon/locales/ru.json | 8 +-
app/javascript/mastodon/locales/th.json | 2 +-
app/javascript/mastodon/locales/zh-HK.json | 16 +-
app/javascript/mastodon/locales/zh-TW.json | 84 ++---
config/locales/activerecord.de.yml | 8 +-
config/locales/an.yml | 6 -
config/locales/ar.yml | 15 +-
config/locales/ast.yml | 24 +-
config/locales/be.yml | 18 +
config/locales/bg.yml | 62 ++--
config/locales/ca.yml | 37 +-
config/locales/ckb.yml | 5 -
config/locales/co.yml | 6 -
config/locales/cs.yml | 15 +-
config/locales/cy.yml | 23 +-
config/locales/da.yml | 15 +-
config/locales/de.yml | 391 +++++++++++----------
config/locales/devise.bg.yml | 2 +-
config/locales/devise.de.yml | 30 +-
config/locales/devise.fi.yml | 8 +-
config/locales/devise.my.yml | 12 +
config/locales/devise.zh-TW.yml | 4 +-
config/locales/doorkeeper.cy.yml | 2 +-
config/locales/doorkeeper.de.yml | 22 +-
config/locales/doorkeeper.fr-QC.yml | 12 +-
config/locales/doorkeeper.my.yml | 150 ++++++++
config/locales/doorkeeper.zh-HK.yml | 2 +
config/locales/el.yml | 38 +-
config/locales/en-GB.yml | 164 +++++++++
config/locales/eo.yml | 62 ++--
config/locales/es-AR.yml | 41 ++-
config/locales/es-MX.yml | 6 -
config/locales/es.yml | 13 +-
config/locales/et.yml | 15 +-
config/locales/eu.yml | 17 +-
config/locales/fa.yml | 6 -
config/locales/fi.yml | 25 +-
config/locales/fo.yml | 11 +
config/locales/fr-QC.yml | 31 +-
config/locales/fr.yml | 13 +-
config/locales/fy.yml | 11 +
config/locales/ga.yml | 4 -
config/locales/gd.yml | 6 -
config/locales/gl.yml | 17 +-
config/locales/he.yml | 17 +-
config/locales/hu.yml | 17 +-
config/locales/id.yml | 6 -
config/locales/io.yml | 6 -
config/locales/is.yml | 13 +-
config/locales/it.yml | 13 +-
config/locales/ja.yml | 17 +-
config/locales/ka.yml | 7 -
config/locales/kab.yml | 4 -
config/locales/kk.yml | 5 -
config/locales/ko.yml | 29 +-
config/locales/ku.yml | 6 -
config/locales/lt.yml | 9 -
config/locales/lv.yml | 27 +-
config/locales/ms.yml | 1 -
config/locales/my.yml | 261 +++++++++++++-
config/locales/nl.yml | 15 +-
config/locales/nn.yml | 6 -
config/locales/no.yml | 23 +-
config/locales/oc.yml | 6 -
config/locales/pl.yml | 15 +-
config/locales/pt-BR.yml | 6 -
config/locales/pt-PT.yml | 17 +-
config/locales/ro.yml | 3 -
config/locales/ru.yml | 26 +-
config/locales/sc.yml | 5 -
config/locales/sco.yml | 6 -
config/locales/si.yml | 6 -
config/locales/simple_form.ast.yml | 7 +-
config/locales/simple_form.be.yml | 4 +
config/locales/simple_form.bg.yml | 42 +--
config/locales/simple_form.cy.yml | 4 +-
config/locales/simple_form.de.yml | 56 +--
config/locales/simple_form.el.yml | 16 +
config/locales/simple_form.ko.yml | 4 +-
config/locales/simple_form.sr.yml | 26 +-
config/locales/simple_form.zh-HK.yml | 10 +
config/locales/simple_form.zh-TW.yml | 2 +-
config/locales/sk.yml | 12 +-
config/locales/sl.yml | 13 +-
config/locales/sq.yml | 16 +-
config/locales/sr-Latn.yml | 7 -
config/locales/sr.yml | 25 +-
config/locales/sv.yml | 6 -
config/locales/th.yml | 11 +
config/locales/tr.yml | 37 +-
config/locales/tt.yml | 4 -
config/locales/uk.yml | 13 +-
config/locales/vi.yml | 12 +-
config/locales/zh-CN.yml | 17 +-
config/locales/zh-HK.yml | 49 ++-
config/locales/zh-TW.yml | 83 +++--
107 files changed, 1856 insertions(+), 843 deletions(-)
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index bedfd9138..54bab60d0 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -218,21 +218,21 @@
"empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.",
"empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!",
"empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques dalgún, apaez equí.",
- "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
+ "empty_column.favourites": "Naide marcó esti artículu como favoritu. Cuando dalgún perfil lo faiga, apaez equí.",
"empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.",
"empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas dalguna, apaez equí.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag": "Entá nun hai nada con esta etiqueta.",
"empty_column.home": "¡La to llinia de tiempu ta balera! Sigui a cuentes pa enllenala. {suggestions}",
"empty_column.home.suggestions": "Ver dalgunes suxerencies",
- "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.",
+ "empty_column.list": "Entá nun hai nada nesta llista. Cuando perfiles d'esta llista espublicen artículos nuevos, apaecen equí.",
"empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees dalguna, apaez equí.",
"empty_column.mutes": "Entá nun tienes nengún perfil colos avisos desactivaos.",
"empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, apaez equí.",
"empty_column.public": "¡Equí nun hai nada! Escribi daqué públicamente o sigui a perfiles d'otros sirvidores pa enllenar esta seición",
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
"error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.next_steps": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
@@ -351,14 +351,14 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Desaniciar la llista",
"lists.edit": "Editar la llista",
- "lists.edit.submit": "Change title",
+ "lists.edit.submit": "Camudar el títulu",
"lists.new.create": "Amestar la llista",
"lists.new.title_placeholder": "Títulu",
"lists.replies_policy.followed": "Cualesquier perfil siguíu",
- "lists.replies_policy.list": "Miembros de la llista",
+ "lists.replies_policy.list": "Perfiles de la llista",
"lists.replies_policy.none": "Naide",
- "lists.replies_policy.title": "Show replies to:",
- "lists.search": "Search among people you follow",
+ "lists.replies_policy.title": "Amosar les rempuestes a:",
+ "lists.search": "Buscar ente los perfiles que sigues",
"lists.subheading": "Les tos llistes",
"load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando…",
@@ -463,15 +463,15 @@
"privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
"privacy_policy.title": "Política de privacidá",
- "refresh": "Refresh",
+ "refresh": "Anovar",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number} d",
- "relative_time.full.days": "Hai {number, plural, one {# día} other {# díes}}",
- "relative_time.full.hours": "Hai {number, plural, one {# hora} other {# hores}}",
+ "relative_time.full.days": "hai {number, plural, one {# día} other {# díes}}",
+ "relative_time.full.hours": "hai {number, plural, one {# hora} other {# hores}}",
"relative_time.full.just_now": "puramente agora",
- "relative_time.full.minutes": "Hai {number, plural, one {# minutu} other {# minutos}}",
- "relative_time.full.seconds": "Hai {number, plural, one {# segundu} other {# segundos}}",
+ "relative_time.full.minutes": "hai {number, plural, one {# minutu} other {# minutos}}",
+ "relative_time.full.seconds": "hai {number, plural, one {# segundu} other {# segundos}}",
"relative_time.hours": "{number} h",
"relative_time.just_now": "agora",
"relative_time.minutes": "{number} m",
@@ -557,7 +557,7 @@
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
"status.edit": "Edit",
- "status.edited": "Edited {date}",
+ "status.edited": "Editóse'l {date}",
"status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
"status.embed": "Empotrar",
"status.favourite": "Favourite",
@@ -613,7 +613,7 @@
"time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {Queda # segundu} other {Queden # segundos}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+ "timeline_hint.remote_resource_not_displayed": "Nun s'amuesa'l recursu «{resource}» d'otros sirvidores.",
"timeline_hint.resources.followers": "Siguidores",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Artículos antiguos",
@@ -647,7 +647,7 @@
"upload_progress.label": "Xubiendo…",
"upload_progress.processing": "Procesando…",
"video.close": "Zarrar el videu",
- "video.download": "Download file",
+ "video.download": "Baxar el ficheru",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Espander el videu",
"video.fullscreen": "Pantalla completa",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index f4a10a795..08aa5ef3b 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -213,7 +213,7 @@
"empty_column.account_unavailable": "Профіль недаступны",
"empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.",
"empty_column.bookmarked_statuses": "У вас яшчэ няма паведамленняў з закладкамі. Калі вы дадасце закладку, яна з'явіцца тут.",
- "empty_column.community": "Мясцовая шкала часу пустая. Напішыце што-небудзь публічна, каб зрушыць з месца",
+ "empty_column.community": "Мясцовая стужка пустая. Напішыце што-небудзь публічна, каб зрушыць з месца!",
"empty_column.direct": "Пакуль у вас няма асабістых паведамленняў. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.",
"empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.",
"empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней",
@@ -606,7 +606,7 @@
"suggestions.header": "Гэта можа Вас зацікавіць…",
"tabs_bar.federated_timeline": "Глабальнае",
"tabs_bar.home": "Галоўная",
- "tabs_bar.local_timeline": "Тутэйшыя",
+ "tabs_bar.local_timeline": "Мясцовае",
"tabs_bar.notifications": "Апавяшчэнні",
"time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}",
"time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index f357ed67d..cd6baafac 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -101,7 +101,7 @@
"column.about": "Относно",
"column.blocks": "Блокирани потребители",
"column.bookmarks": "Отметки",
- "column.community": "Локален инфопоток",
+ "column.community": "Локална часова ос",
"column.direct": "Директни съобщения",
"column.directory": "Разглеждане на профили",
"column.domain_blocks": "Блокирани домейни",
@@ -367,7 +367,7 @@
"missing_indicator.sublabel": "Ресурсът не може да се намери",
"moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.",
"mute_modal.duration": "Времетраене",
- "mute_modal.hide_notifications": "Скривате ли известията от този потребител?",
+ "mute_modal.hide_notifications": "Скривате ли известията от потребителя?",
"mute_modal.indefinite": "Неопределено",
"navigation_bar.about": "Относно",
"navigation_bar.blocks": "Блокирани потребители",
@@ -382,7 +382,7 @@
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",
- "navigation_bar.followed_tags": "Последвани хештагове",
+ "navigation_bar.followed_tags": "Последвани хаштагове",
"navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане",
@@ -619,7 +619,7 @@
"timeline_hint.resources.statuses": "По-стари публикации",
"trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}",
"trends.trending_now": "Налагащи се сега",
- "ui.beforeunload": "Черновата ви ще се загуби, ако излезете от Mastodon.",
+ "ui.beforeunload": "Черновата ви ще се загуби, излизайки от Mastodon.",
"units.short.billion": "{count}млрд",
"units.short.million": "{count}млн",
"units.short.thousand": "{count}хил",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 8dba6bb2c..381deaa0c 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -27,7 +27,7 @@
"account.enable_notifications": "Notifica'm els tuts de @{name}",
"account.endorse": "Recomana en el perfil",
"account.featured_tags.last_status_at": "Darrer tut el {date}",
- "account.featured_tags.last_status_never": "No hi ha publicacions",
+ "account.featured_tags.last_status_never": "No hi ha tuts",
"account.featured_tags.title": "etiquetes destacades de {name}",
"account.follow": "Segueix",
"account.followers": "Seguidors",
@@ -131,7 +131,7 @@
"compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.",
"compose_form.lock_disclaimer.lock": "blocat",
- "compose_form.placeholder": "Què et passa pel cap?",
+ "compose_form.placeholder": "En què penses?",
"compose_form.poll.add_option": "Afegeix una opció",
"compose_form.poll.duration": "Durada de l'enquesta",
"compose_form.poll.option_placeholder": "Opció {number}",
@@ -139,7 +139,7 @@
"compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions",
"compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció",
"compose_form.publish": "Tut",
- "compose_form.publish_form": "Publica",
+ "compose_form.publish_form": "Tut",
"compose_form.publish_loud": "Tut!",
"compose_form.save_changes": "Desa els canvis",
"compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}",
@@ -155,7 +155,7 @@
"confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud",
"confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?",
"confirmations.delete.confirm": "Elimina",
- "confirmations.delete.message": "Segur que vols eliminar la publicació?",
+ "confirmations.delete.message": "Segur que vols eliminar aquest tut?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.discard_edit_media.confirm": "Descarta",
@@ -212,7 +212,7 @@
"empty_column.account_timeline": "No hi ha tuts aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Encara no has blocat cap usuari.",
- "empty_column.bookmarked_statuses": "Encara no tens marcada cap publicació. Quan en marquis una apareixerà aquí.",
+ "empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, apareixerà aquí.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
"empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis un, sortirà aquí.",
"empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
@@ -242,21 +242,21 @@
"explore.trending_links": "Notícies",
"explore.trending_statuses": "Tuts",
"explore.trending_tags": "Etiquetes",
- "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.",
+ "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquest tut. Si també vols que el tut es filtri en aquest context, hauràs d'editar el filtre.",
"filter_modal.added.context_mismatch_title": "El context no coincideix!",
"filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necessitaràs canviar la seva data de caducitat per a aplicar-la.",
"filter_modal.added.expired_title": "Filtre caducat!",
"filter_modal.added.review_and_configure": "Per a revisar i configurar aquesta categoria de filtre, ves a {settings_link}.",
"filter_modal.added.review_and_configure_title": "Configuració del filtre",
"filter_modal.added.settings_link": "pàgina de configuració",
- "filter_modal.added.short_explanation": "Aquesta publicació s'ha afegit a la següent categoria de filtre: {title}.",
+ "filter_modal.added.short_explanation": "Aquest tut s'ha afegit a la següent categoria de filtre: {title}.",
"filter_modal.added.title": "Filtre afegit!",
"filter_modal.select_filter.context_mismatch": "no aplica en aquest context",
"filter_modal.select_filter.expired": "caducat",
"filter_modal.select_filter.prompt_new": "Nova categoria: {name}",
"filter_modal.select_filter.search": "Cerca o crea",
"filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova",
- "filter_modal.select_filter.title": "Filtra aquesta publicació",
+ "filter_modal.select_filter.title": "Filtra aquest tut",
"filter_modal.title.status": "Filtra un tut",
"follow_recommendations.done": "Fet",
"follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure els seus tuts! Aquí hi ha algunes recomanacions.",
@@ -293,29 +293,29 @@
"home.show_announcements": "Mostra els anuncis",
"interaction_modal.description.favourite": "Amb un compte a Mastodon pots afavorir aquest tut perquè l'autor sàpiga que t'ha agradat i desar-lo per a més endavant.",
"interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.",
- "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.",
- "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.",
+ "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo amb els teus seguidors.",
+ "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.",
"interaction_modal.on_another_server": "En un servidor diferent",
"interaction_modal.on_this_server": "En aquest servidor",
"interaction_modal.other_server_instructions": "Copia i enganxa aquest URL en el camp de cerca de la teva aplicació Mastodon preferida o a la interfície web del teu servidor Mastodon.",
"interaction_modal.preamble": "Com que Mastodon és descentralitzat, pots fer servir el teu compte existent en un altre servidor Mastodon o plataforma compatible si no tens compte en aquest.",
- "interaction_modal.title.favourite": "Marca la publicació de {name}",
+ "interaction_modal.title.favourite": "Marca el tut de {name}",
"interaction_modal.title.follow": "Segueix {name}",
"interaction_modal.title.reblog": "Impulsa el tut de {name}",
- "interaction_modal.title.reply": "Respon a la publicació de {name}",
+ "interaction_modal.title.reply": "Respon al tut de {name}",
"intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
"keyboard_shortcuts.back": "Vés enrere",
"keyboard_shortcuts.blocked": "Obre la llista d'usuaris blocats",
- "keyboard_shortcuts.boost": "Impulsa la publicació",
+ "keyboard_shortcuts.boost": "Impulsa el tut",
"keyboard_shortcuts.column": "Centra la columna",
"keyboard_shortcuts.compose": "Centra l'àrea de composició de text",
"keyboard_shortcuts.description": "Descripció",
"keyboard_shortcuts.direct": "Obre la columna de missatges directes",
"keyboard_shortcuts.down": "Abaixa a la llista",
"keyboard_shortcuts.enter": "Obre el tut",
- "keyboard_shortcuts.favourite": "Afavoreix la publicació",
+ "keyboard_shortcuts.favourite": "Afavoreix el tut",
"keyboard_shortcuts.favourites": "Obre la llista de preferits",
"keyboard_shortcuts.federated": "Obre la línia de temps federada",
"keyboard_shortcuts.heading": "Dreceres de teclat",
@@ -330,14 +330,14 @@
"keyboard_shortcuts.open_media": "Obre mèdia",
"keyboard_shortcuts.pinned": "Obre la llista de tuts fixats",
"keyboard_shortcuts.profile": "Obre el perfil de l'autor",
- "keyboard_shortcuts.reply": "Respon a la publicació",
+ "keyboard_shortcuts.reply": "Respon al tut",
"keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment",
"keyboard_shortcuts.search": "Centra la barra de cerca",
"keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW",
"keyboard_shortcuts.start": "Obre la columna \"Primeres passes\"",
"keyboard_shortcuts.toggle_hidden": "Mostra/amaga el text marcat com a sensible",
"keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut",
- "keyboard_shortcuts.toot": "Inicia una nova publicació",
+ "keyboard_shortcuts.toot": "Escriu un nou tut",
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Apuja a la llista",
"lightbox.close": "Tanca",
@@ -346,7 +346,7 @@
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostra el perfil de totes maneres",
- "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.",
+ "limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.",
"lists.account.add": "Afegeix a la llista",
"lists.account.remove": "Elimina de la llista",
"lists.delete": "Elimina la llista",
@@ -396,7 +396,7 @@
"not_signed_in_indicator.not_signed_in": "Necessites iniciar la sessió per a accedir aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}",
"notification.admin.sign_up": "{name} s'ha registrat",
- "notification.favourite": "a {name} li ha agradat la teva publicació",
+ "notification.favourite": "a {name} li ha agradat el teu tut",
"notification.follow": "{name} et segueix",
"notification.follow_request": "{name} ha sol·licitat seguir-te",
"notification.mention": "{name} t'ha mencionat",
@@ -404,7 +404,7 @@
"notification.poll": "Ha finalitzat una enquesta en què has votat",
"notification.reblog": "{name} t'ha impulsat",
"notification.status": "{name} acaba de publicar",
- "notification.update": "{name} ha editat una publicació",
+ "notification.update": "{name} ha editat un tut",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.column_settings.admin.report": "Nous informes:",
@@ -452,13 +452,13 @@
"poll.votes": "{votes, plural, one {# vot} other {# vots}}",
"poll_button.add_poll": "Afegeix una enquesta",
"poll_button.remove_poll": "Elimina l'enquesta",
- "privacy.change": "Canvia la privacitat de la publicació",
+ "privacy.change": "Canvia la privacitat del tut",
"privacy.direct.long": "Visible només per als usuaris esmentats",
"privacy.direct.short": "Només gent mencionada",
"privacy.private.long": "Visible només per als seguidors",
"privacy.private.short": "Només seguidors",
"privacy.public.long": "Visible per a tothom",
- "privacy.public.short": "Pública",
+ "privacy.public.short": "Públic",
"privacy.unlisted.long": "Visible per a tothom però exclosa de les funcions de descobriment",
"privacy.unlisted.short": "No llistada",
"privacy_policy.last_updated": "Darrera actualització {date}",
@@ -466,16 +466,16 @@
"refresh": "Actualitza",
"regeneration_indicator.label": "Es carrega…",
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!",
- "relative_time.days": "{number} d",
+ "relative_time.days": "{number}d",
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}",
"relative_time.full.just_now": "ara mateix",
"relative_time.full.minutes": "fa {number, plural, one {# minut} other {# minuts}}",
"relative_time.full.seconds": "fa {number, plural, one {# segon} other {# segons}}",
- "relative_time.hours": "{number} h",
+ "relative_time.hours": "{number}h",
"relative_time.just_now": "ara",
- "relative_time.minutes": "{number} min",
- "relative_time.seconds": "{number} s",
+ "relative_time.minutes": "{number}min",
+ "relative_time.seconds": "{number}s",
"relative_time.today": "avui",
"reply_indicator.cancel": "Cancel·la",
"report.block": "Bloca",
@@ -486,7 +486,7 @@
"report.category.subtitle": "Tria la millor coincidència",
"report.category.title": "Explica'ns què passa amb això ({type})",
"report.category.title_account": "perfil",
- "report.category.title_status": "publicació",
+ "report.category.title_status": "tut",
"report.close": "Fet",
"report.comment.title": "Hi ha res més que creguis que hauríem de saber?",
"report.forward": "Reenvia a {target}",
@@ -506,7 +506,7 @@
"report.rules.subtitle": "Selecciona totes les aplicables",
"report.rules.title": "Quines regles s'han violat?",
"report.statuses.subtitle": "Selecciona totes les aplicables",
- "report.statuses.title": "Hi ha cap publicació que doni suport a aquest informe?",
+ "report.statuses.title": "Hi ha cap tut que doni suport a aquest informe?",
"report.submit": "Envia",
"report.target": "Es denuncia {target}",
"report.thanks.take_action": "Aquestes són les teves opcions per a controlar el que veus a Mastodon:",
@@ -525,7 +525,7 @@
"search_popout.search_format": "Format de cerca avançada",
"search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.",
"search_popout.tips.hashtag": "etiqueta",
- "search_popout.tips.status": "publicació",
+ "search_popout.tips.status": "tut",
"search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes",
"search_popout.tips.user": "usuari",
"search_results.accounts": "Gent",
@@ -539,12 +539,12 @@
"server_banner.about_active_users": "Gent que ha fet servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)",
"server_banner.active_users": "usuaris actius",
"server_banner.administered_by": "Administrat per:",
- "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.",
+ "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada impulsada per {mastodon}.",
"server_banner.learn_more": "Més informació",
"server_banner.server_stats": "Estadístiques del servidor:",
"sign_in_banner.create_account": "Registra'm",
"sign_in_banner.sign_in": "Inicia sessió",
- "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre publicacions. També pots interactuar des del teu compte a un servidor diferent.",
+ "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts. També pots interactuar des del teu compte a un servidor diferent.",
"status.admin_account": "Obre la interfície de moderació per a @{name}",
"status.admin_domain": "Obre la interfície de moderació per a @{domain}",
"status.admin_status": "Obre aquest tut a la interfície de moderació",
@@ -552,7 +552,7 @@
"status.bookmark": "Marca",
"status.cancel_reblog_private": "Desfés l'impuls",
"status.cannot_reblog": "No es pot impulsar aquest tut",
- "status.copy": "Copia l'enllaç a la publicació",
+ "status.copy": "Copia l'enllaç al tut",
"status.delete": "Elimina",
"status.detailed_status": "Vista detallada de la conversa",
"status.direct": "Missatge directe a @{name}",
@@ -563,7 +563,7 @@
"status.favourite": "Favorit",
"status.filter": "Filtra aquesta publicació",
"status.filtered": "Filtrada",
- "status.hide": "Amaga la publicació",
+ "status.hide": "Amaga el tut",
"status.history.created": "creat per {name} {date}",
"status.history.edited": "editat per {name} {date}",
"status.load_more": "Carrega'n més",
@@ -572,9 +572,9 @@
"status.more": "Més",
"status.mute": "Silencia @{name}",
"status.mute_conversation": "Silencia la conversa",
- "status.open": "Amplia la publicació",
+ "status.open": "Amplia el tut",
"status.pin": "Fixa en el perfil",
- "status.pinned": "Publicació fixada",
+ "status.pinned": "Tut fixat",
"status.read_more": "Més informació",
"status.reblog": "Impulsa",
"status.reblog_private": "Impulsa amb la visibilitat original",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 84f8c70ac..c664046f0 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,7 +1,7 @@
{
"about.blocks": "Gweinyddion sy'n cael eu cymedroli",
"about.contact": "Cysylltwch â:",
- "about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.",
+ "about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael",
"about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
"about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
@@ -46,9 +46,9 @@
"account.media": "Cyfryngau",
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
- "account.mute": "Tewi @{name}",
- "account.mute_notifications": "Tewi hysbysiadau o @{name}",
- "account.muted": "Wedi tewi",
+ "account.mute": "Anwybyddu @{name}",
+ "account.mute_notifications": "Diffodd hysbysiadau o @{name}",
+ "account.muted": "Wedi anwybyddu",
"account.open_original_page": "Agor y dudalen wreiddiol",
"account.posts": "Postiadau",
"account.posts_with_replies": "Postiadau ac atebion",
@@ -491,8 +491,8 @@
"report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
"report.forward": "Ymlaen i {target}",
"report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
- "report.mute": "Tewi",
- "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
+ "report.mute": "Anwybyddu",
+ "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u hanwybyddu.",
"report.next": "Nesaf",
"report.placeholder": "Sylwadau ychwanegol",
"report.reasons.dislike": "Dydw i ddim yn ei hoffi",
@@ -538,10 +538,10 @@
"search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {canlyniad}}",
"server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
"server_banner.active_users": "defnyddwyr gweithredol",
- "server_banner.administered_by": "Yn cael ei weinyddu gan:",
+ "server_banner.administered_by": "Gweinyddir gan:",
"server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.",
"server_banner.learn_more": "Dysgu mwy",
- "server_banner.server_stats": "Ystagedau'r gweinydd:",
+ "server_banner.server_stats": "Ystadegau'r gweinydd:",
"sign_in_banner.create_account": "Creu cyfrif",
"sign_in_banner.sign_in": "Mewngofnodi",
"sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ateb postiadau. Gallwch hefyd ryngweithio o'ch cyfrif ar weinydd gwahanol.",
@@ -570,8 +570,8 @@
"status.media_hidden": "Cyfryngau wedi'u cuddio",
"status.mention": "Crybwyll @{name}",
"status.more": "Rhagor",
- "status.mute": "Tewi @{name}",
- "status.mute_conversation": "Tewi sgwrs",
+ "status.mute": "Anwybyddu @{name}",
+ "status.mute_conversation": "Anwybyddu sgwrs",
"status.open": "Ehangu'r post hwn",
"status.pin": "Pinio ar y proffil",
"status.pinned": "Postiad wedi'i binio",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index b34864cb0..7736877d9 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -403,7 +403,7 @@
"notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} teilte deinen Beitrag",
- "notification.status": "{name} hat etwas mitgeteilt",
+ "notification.status": "{name} veröffentlichte gerade",
"notification.update": "{name} bearbeitete einen Beitrag",
"notifications.clear": "Mitteilungen löschen",
"notifications.clear_confirmation": "Bist du dir sicher, dass du diese Mitteilungen für immer löschen möchtest?",
@@ -441,7 +441,7 @@
"notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.",
"notifications_permission_banner.enable": "Aktiviere Desktop-Benachrichtigungen",
"notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.",
- "notifications_permission_banner.title": "Verpasse nie etwas",
+ "notifications_permission_banner.title": "Nichts verpassen",
"picture_in_picture.restore": "Zurücksetzen",
"poll.closed": "Beendet",
"poll.refresh": "Aktualisieren",
@@ -457,7 +457,7 @@
"privacy.direct.short": "Nur erwähnte Profile",
"privacy.private.long": "Nur für deine Follower sichtbar",
"privacy.private.short": "Nur Follower",
- "privacy.public.long": "Für alle sichtbar",
+ "privacy.public.long": "Für alle sichtbar, auch für nicht-registrierte bzw. nicht-angemeldete Nutzer*innen",
"privacy.public.short": "Öffentlich",
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion",
"privacy.unlisted.short": "Nicht gelistet",
@@ -489,7 +489,7 @@
"report.category.title_status": "Beitrag",
"report.close": "Fertig",
"report.comment.title": "Gibt es etwas anderes, was wir wissen sollten?",
- "report.forward": "An {target} weiterleiten",
+ "report.forward": "Meldung zusätzlich an {target} weiterleiten",
"report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin geschickt werden?",
"report.mute": "Stummschalten",
"report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.",
@@ -501,18 +501,18 @@
"report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien",
"report.reasons.spam": "Das ist Spam",
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
- "report.reasons.violation": "Es verstößt gegen Serverregeln",
+ "report.reasons.violation": "Er verstößt gegen Serverregeln",
"report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt",
"report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus",
"report.rules.title": "Welche Regeln werden verletzt?",
"report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus",
- "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?",
+ "report.statuses.title": "Gibt es Beiträge, die diesen Bericht untermauern?",
"report.submit": "Abschicken",
"report.target": "{target} melden",
"report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:",
"report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:",
"report.thanks.title": "Möchtest du das nicht mehr sehen?",
- "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
+ "report.thanks.title_actionable": "Vielen Dank für die Meldung! Wir werden uns das ansehen.",
"report.unfollow": "@{name} entfolgen",
"report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
"report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index b371e0e9e..0c6b49593 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
- "footer.status": "Status",
+ "footer.status": "Estado",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",
diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json
index 1ad8e9353..4b7258685 100644
--- a/app/javascript/mastodon/locales/fr-QC.json
+++ b/app/javascript/mastodon/locales/fr-QC.json
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
- "footer.status": "Status",
+ "footer.status": "État",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.column_header.tag_mode.all": "et {additional}",
@@ -563,7 +563,7 @@
"status.favourite": "Ajouter aux favoris",
"status.filter": "Filtrer cette publication",
"status.filtered": "Filtrée",
- "status.hide": "Masquer la publication",
+ "status.hide": "Masquer le message",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "modifié par {name} {date}",
"status.load_more": "Charger plus",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 9ff4910ef..cf428b3d8 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -123,7 +123,7 @@
"column_subheading.settings": "설정",
"community.column_settings.local_only": "로컬만",
"community.column_settings.media_only": "미디어만",
- "community.column_settings.remote_only": "원격만",
+ "community.column_settings.remote_only": "원격지만",
"compose.language.change": "언어 변경",
"compose.language.search": "언어 검색...",
"compose_form.direct_message_warning_learn_more": "더 알아보기",
@@ -170,7 +170,7 @@
"confirmations.redraft.confirm": "삭제하고 다시 쓰기",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
"confirmations.reply.confirm": "답글",
- "confirmations.reply.message": "답글을 달기 위해 현재 작성 중인 메시지가 덮어 씌워집니다. 진행하시겠습니까?",
+ "confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?",
"confirmations.unfollow.confirm": "팔로우 해제",
"confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?",
"conversation.delete": "대화 삭제",
@@ -192,7 +192,7 @@
"dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.",
"dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.",
"embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.",
- "embed.preview": "이렇게 표시됩니다:",
+ "embed.preview": "여기처럼 보여집니다.",
"emoji_button.activity": "활동",
"emoji_button.clear": "지우기",
"emoji_button.custom": "사용자 지정",
@@ -355,9 +355,9 @@
"lists.new.create": "리스트 추가",
"lists.new.title_placeholder": "새 리스트의 이름",
"lists.replies_policy.followed": "팔로우 한 사용자 누구나",
- "lists.replies_policy.list": "리스트의 구성원들",
- "lists.replies_policy.none": "아무도 없음",
- "lists.replies_policy.title": "답글 표시:",
+ "lists.replies_policy.list": "리스트의 구성원",
+ "lists.replies_policy.none": "고르지 않음",
+ "lists.replies_policy.title": "답글을 볼 대상",
"lists.search": "팔로우 중인 사람들 중에서 찾기",
"lists.subheading": "리스트",
"load_pending": "{count}개의 새 항목",
@@ -389,7 +389,7 @@
"navigation_bar.mutes": "뮤트한 사용자",
"navigation_bar.personal": "개인용",
"navigation_bar.pins": "고정된 게시물",
- "navigation_bar.preferences": "사용자 설정",
+ "navigation_bar.preferences": "환경설정",
"navigation_bar.public_timeline": "연합 타임라인",
"navigation_bar.search": "검색",
"navigation_bar.security": "보안",
@@ -399,7 +399,7 @@
"notification.favourite": "{name} 님이 당신의 게시물을 마음에 들어합니다",
"notification.follow": "{name} 님이 나를 팔로우했습니다",
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
- "notification.mention": "{name} 님이 언급하였습니다",
+ "notification.mention": "{name}님의 멘션",
"notification.own_poll": "내 투표가 끝났습니다",
"notification.poll": "참여했던 투표가 끝났습니다.",
"notification.reblog": "{name} 님이 부스트했습니다",
@@ -411,12 +411,12 @@
"notifications.column_settings.admin.sign_up": "새로운 가입:",
"notifications.column_settings.alert": "데스크탑 알림",
"notifications.column_settings.favourite": "좋아요:",
- "notifications.column_settings.filter_bar.advanced": "카테고리의 모든 종류를 표시",
- "notifications.column_settings.filter_bar.category": "퀵 필터 바",
- "notifications.column_settings.filter_bar.show_bar": "필터 막대 표시",
+ "notifications.column_settings.filter_bar.advanced": "모든 범주 표시하기",
+ "notifications.column_settings.filter_bar.category": "빠른 필터 막대",
+ "notifications.column_settings.filter_bar.show_bar": "필터 막대 보이기",
"notifications.column_settings.follow": "새 팔로워:",
"notifications.column_settings.follow_request": "새 팔로우 요청:",
- "notifications.column_settings.mention": "답글:",
+ "notifications.column_settings.mention": "멘션:",
"notifications.column_settings.poll": "투표 결과:",
"notifications.column_settings.push": "푸시 알림",
"notifications.column_settings.reblog": "부스트:",
@@ -523,7 +523,7 @@
"search.placeholder": "검색",
"search.search_or_paste": "검색하거나 URL 붙여넣기",
"search_popout.search_format": "고급 검색 방법",
- "search_popout.tips.full_text": "단순한 텍스트 검색은 당신이 작성했거나, 관심글로 지정했거나, 부스트했거나, 멘션을 받은 게시글, 그리고 사용자명, 표시되는 이름, 해시태그를 반환합니다.",
+ "search_popout.tips.full_text": "단순한 텍스트 검색은 작성한 게시물 그리고 좋아요, 부스트, 받은 멘션, 사용자명, 표시 이름, 해시태그를 반환합니다.",
"search_popout.tips.hashtag": "해시태그",
"search_popout.tips.status": "게시물",
"search_popout.tips.text": "단순한 텍스트 검색은 관계된 프로필 이름, 사용자명 그리고 해시태그를 표시합니다",
@@ -568,7 +568,7 @@
"status.history.edited": "{name} 님이 {date}에 수정함",
"status.load_more": "더 보기",
"status.media_hidden": "미디어 숨겨짐",
- "status.mention": "@{name} 님에게 글 쓰기",
+ "status.mention": "@{name}님에게 멘션",
"status.more": "자세히",
"status.mute": "@{name} 님을 뮤트하기",
"status.mute_conversation": "이 대화를 뮤트",
@@ -589,7 +589,7 @@
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
"status.show_filter_reason": "그냥 표시하기",
- "status.show_less": "숨기기",
+ "status.show_less": "적게 보기",
"status.show_less_all": "모두 접기",
"status.show_more": "더 보기",
"status.show_more_all": "모두 펼치기",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index f54a92378..ba14ec5c0 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -258,7 +258,7 @@
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
"filter_modal.select_filter.title": "Filtrēt šo ziņu",
"filter_modal.title.status": "Filtrēt ziņu",
- "follow_recommendations.done": "Darīts",
+ "follow_recommendations.done": "Izpildīts",
"follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.",
"follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!",
"follow_request.authorize": "Autorizēt",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index d39ede21d..366544d2a 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -197,14 +197,14 @@
"emoji_button.clear": "ရှင်းလင်းမည်",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
- "emoji_button.food": "Food & Drink",
+ "emoji_button.food": "အစားအသောက်",
"emoji_button.label": "Insert emoji",
- "emoji_button.nature": "Nature",
+ "emoji_button.nature": "သဘာဝ",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects",
- "emoji_button.people": "People",
- "emoji_button.recent": "Frequently used",
- "emoji_button.search": "Search...",
+ "emoji_button.people": "လူများ",
+ "emoji_button.recent": "မကြာခဏ အသုံးပြုသော",
+ "emoji_button.search": "ရှာရန်...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 75e6f7edf..32845ab64 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -168,7 +168,7 @@
"confirmations.mute.explanation": "Это действие скроет посты данного пользователя и те, в которых он упоминается, но при этом он по-прежнему сможет подписаться и смотреть ваши посты.",
"confirmations.mute.message": "Вы уверены, что хотите добавить {name} в список игнорируемых?",
"confirmations.redraft.confirm": "Удалить и исправить",
- "confirmations.redraft.message": "Вы уверены, что хотите отредактировать этот пост? Старый пост будет удалён, а вместе с ним пропадут отметки «В избранное», продвижения и ответы.",
+ "confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут удалены.",
"confirmations.reply.confirm": "Ответить",
"confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?",
"confirmations.unfollow.confirm": "Отписаться",
@@ -200,10 +200,10 @@
"emoji_button.food": "Еда и напитки",
"emoji_button.label": "Вставить эмодзи",
"emoji_button.nature": "Природа",
- "emoji_button.not_found": "Нет эмодзи!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Подходящие эмодзи не найдены",
"emoji_button.objects": "Предметы",
"emoji_button.people": "Люди",
- "emoji_button.recent": "Последние",
+ "emoji_button.recent": "Часто используемые",
"emoji_button.search": "Найти...",
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
@@ -229,7 +229,7 @@
"empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.",
"empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.",
"empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
- "empty_column.public": "Здесь совсем пусто. Опубликуйте что-нибудь или подпишитесь на пользователей с других сообществ, чтобы заполнить ленту",
+ "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту",
"error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.",
"error.unexpected_crash.explanation_addons": "Эта страница не может быть корректно отображена. Скорее всего, эта ошибка вызвана расширением браузера или инструментом автоматического перевода.",
"error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index aaac5b784..e2db4627e 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -626,7 +626,7 @@
"upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
"upload_button.label": "เพิ่มไฟล์ภาพ, วิดีโอ หรือเสียง",
"upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
- "upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน",
+ "upload_error.poll": "ไม่อนุญาตการอัปโหลดไฟล์โดยมีการสำรวจความคิดเห็น",
"upload_form.audio_description": "อธิบายสำหรับผู้ที่สูญเสียการได้ยิน",
"upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น",
"upload_form.description_missing": "ไม่มีการเพิ่มคำอธิบาย",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index f99a1c00c..5c6f539aa 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -128,7 +128,7 @@
"compose.language.search": "搜尋語言...",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.encryption_warning": "Mastodon 上的帖文並未端對端加密。請不要透過 Mastodon 分享任何敏感資訊。",
- "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
+ "compose_form.hashtag_warning": "由於此帖文並非公開,因此它不會列在標籤下。只有公開帖文才可以經標籤搜尋。",
"compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
"compose_form.lock_disclaimer.lock": "鎖定",
"compose_form.placeholder": "你在想甚麼?",
@@ -221,7 +221,7 @@
"empty_column.favourites": "還沒有人收藏這則文章。這裡將會顯示被收藏的嘟文。",
"empty_column.follow_recommendations": "似乎未能替您產生任何建議。您可以試著搜尋您知道的帳戶或者探索熱門主題標籤",
"empty_column.follow_requests": "您尚未收到任何追蹤請求。這裡將會顯示收到的追蹤請求。",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "你還沒有追蹤標籤。當你追蹤後,標籤將顯示在此處。",
"empty_column.hashtag": "這個標籤暫時未有內容。",
"empty_column.home": "你還沒有關注任何使用者。快看看{public},向其他使用者搭訕吧。",
"empty_column.home.suggestions": "檢視部份建議",
@@ -264,7 +264,7 @@
"follow_request.authorize": "批准",
"follow_request.reject": "拒絕",
"follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "已追蹤標籤",
"footer.about": "關於",
"footer.directory": "個人檔案目錄",
"footer.get_app": "取得應用程式",
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "鍵盤快速鍵",
"footer.privacy_policy": "私隱政策",
"footer.source_code": "查看原始碼",
- "footer.status": "Status",
+ "footer.status": "狀態",
"generic.saved": "已儲存",
"getting_started.heading": "開始使用",
"hashtag.column_header.tag_mode.all": "以及{additional}",
@@ -382,7 +382,7 @@
"navigation_bar.favourites": "最愛的內容",
"navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "追蹤請求",
- "navigation_bar.followed_tags": "Followed hashtags",
+ "navigation_bar.followed_tags": "已追蹤標籤",
"navigation_bar.follows_and_followers": "追蹤及追蹤者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
@@ -544,9 +544,9 @@
"server_banner.server_stats": "伺服器統計:",
"sign_in_banner.create_account": "建立帳號",
"sign_in_banner.sign_in": "登入",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
+ "sign_in_banner.text": "登入以追蹤個人檔案和標籤,或最愛、分享和回覆帖文。你也可以使用帳戶在其他伺服器上互動。",
"status.admin_account": "開啟 @{name} 的管理介面",
- "status.admin_domain": "Open moderation interface for {domain}",
+ "status.admin_domain": "打開 {domain} 管理介面",
"status.admin_status": "在管理介面開啟這篇文章",
"status.block": "封鎖 @{name}",
"status.bookmark": "書籤",
@@ -563,7 +563,7 @@
"status.favourite": "最愛",
"status.filter": "篩選此帖文",
"status.filtered": "已過濾",
- "status.hide": "Hide post",
+ "status.hide": "隱藏帖文",
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 編輯",
"status.load_more": "載入更多",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 405e526bb..3af82e86e 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,15 +1,15 @@
{
- "about.blocks": "受管制的伺服器",
+ "about.blocks": "被限制的伺服器",
"about.contact": "聯絡我們:",
"about.disclaimer": "Mastodon 是一個自由的開源軟體,是 Mastodon gGmbH 的註冊商標。",
- "about.domain_blocks.no_reason_available": "無法存取之原因",
- "about.domain_blocks.preamble": "Mastodon 一般來說允許您閱讀並和聯邦宇宙上任何伺服器的使用者互動。這些伺服器是這個站台設下的例外。",
- "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著跟隨此個人檔案。",
- "about.domain_blocks.silenced.title": "受限的",
- "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法和此伺服器上的使用者互動與溝通。",
+ "about.domain_blocks.no_reason_available": "無法存取的原因",
+ "about.domain_blocks.preamble": "Mastodon 基本上允許您瀏覽聯邦宇宙中任何伺服器的內容並與使用者互動。以下是在本伺服器上設定的例外。",
+ "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確搜尋或主動跟隨對方。",
+ "about.domain_blocks.silenced.title": "已受限",
+ "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法與此伺服器上的使用者互動或交流。",
"about.domain_blocks.suspended.title": "已停權",
- "about.not_available": "這個資料於此伺服器上不可存取。",
- "about.powered_by": "由 {mastodon} 提供之去中心化社群媒體",
+ "about.not_available": "無法在本伺服器上使用此資訊。",
+ "about.powered_by": "由 {mastodon} 提供的去中心化社群媒體",
"about.rules": "伺服器規則",
"account.account_note_header": "備註",
"account.add_or_remove_from_list": "從列表中新增或移除",
@@ -18,9 +18,9 @@
"account.block": "封鎖 @{name}",
"account.block_domain": "封鎖來自 {domain} 網域的所有內容",
"account.blocked": "已封鎖",
- "account.browse_more_on_origin_server": "於該伺服器的個人檔案頁上瀏覽更多",
+ "account.browse_more_on_origin_server": "在該伺服器上的個人檔案頁面瀏覽更多",
"account.cancel_follow_request": "收回跟隨請求",
- "account.direct": "傳私訊給 @{name}",
+ "account.direct": "私訊 @{name}",
"account.disable_notifications": "取消來自 @{name} 嘟文的通知",
"account.domain_blocked": "已封鎖網域",
"account.edit_profile": "編輯個人檔案",
@@ -42,7 +42,7 @@
"account.joined_short": "加入時間",
"account.languages": "變更訂閱的語言",
"account.link_verified_on": "已於 {date} 檢查此連結的擁有者權限",
- "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。",
+ "account.locked_info": "此帳號的隱私狀態設定為鎖定。該擁有者會手動審核能跟隨此帳號的人。",
"account.media": "媒體",
"account.mention": "提及 @{name}",
"account.moved_to": "{name} 現在的新帳號為:",
@@ -58,15 +58,15 @@
"account.share": "分享 @{name} 的個人檔案",
"account.show_reblogs": "顯示來自 @{name} 的嘟文",
"account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
- "account.unblock": "取消封鎖 @{name}",
- "account.unblock_domain": "取消封鎖域名 {domain}",
+ "account.unblock": "解除封鎖 @{name}",
+ "account.unblock_domain": "解除封鎖網域 {domain}",
"account.unblock_short": "解除封鎖",
- "account.unendorse": "不再於個人檔案頁面推薦對方",
+ "account.unendorse": "取消在個人檔案推薦對方",
"account.unfollow": "取消跟隨",
- "account.unmute": "取消靜音 @{name}",
+ "account.unmute": "解除靜音 @{name}",
"account.unmute_notifications": "重新接收來自 @{name} 的通知",
"account.unmute_short": "解除靜音",
- "account_note.placeholder": "按此添加備注",
+ "account_note.placeholder": "按此新增備註",
"admin.dashboard.daily_retention": "註冊後使用者存留率(日)",
"admin.dashboard.monthly_retention": "註冊後使用者存留率(月)",
"admin.dashboard.retention.average": "平均",
@@ -93,10 +93,10 @@
"bundle_modal_error.close": "關閉",
"bundle_modal_error.message": "載入此元件時發生錯誤。",
"bundle_modal_error.retry": "重試",
- "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,所以您也能於其他伺服器上建立帳號,並仍然與這個伺服器互動。",
+ "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,您可以在其他伺服器上也建立帳號,並繼續與這個伺服器互動。",
"closed_registrations_modal.description": "目前無法在 {domain} 建立新帳號,但也請別忘了,您並不一定需要有 {domain} 伺服器的帳號,也能使用 Mastodon 。",
"closed_registrations_modal.find_another_server": "尋找另一個伺服器",
- "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器新增帳號,都可以與此伺服器上的任何人跟隨及互動。您甚至能自行架一個自己的伺服器!",
+ "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器上建立帳號,都可以跟隨並與此伺服器上的任何人互動。您甚至能架一個自己的伺服器!",
"closed_registrations_modal.title": "註冊 Mastodon",
"column.about": "關於",
"column.blocks": "已封鎖的使用者",
@@ -128,8 +128,8 @@
"compose.language.search": "搜尋語言...",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.encryption_warning": "Mastodon 上的嘟文並未進行端到端加密。請不要透過 Mastodon 分享任何敏感資訊。",
- "compose_form.hashtag_warning": "由於這則嘟文設定為「不公開」,它將不被列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤被找到。",
- "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只有跟隨者能看的嘟文。",
+ "compose_form.hashtag_warning": "由於這則嘟文設定為非公開,將不會列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤被找到。",
+ "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只對跟隨者顯示的嘟文。",
"compose_form.lock_disclaimer.lock": "上鎖",
"compose_form.placeholder": "正在想些什麼嗎?",
"compose_form.poll.add_option": "新增選項",
@@ -151,22 +151,22 @@
"confirmation_modal.cancel": "取消",
"confirmations.block.block_and_report": "封鎖並檢舉",
"confirmations.block.confirm": "封鎖",
- "confirmations.block.message": "您確定要封鎖 {name} ?",
+ "confirmations.block.message": "您確定要封鎖 {name} 嗎?",
"confirmations.cancel_follow_request.confirm": "收回跟隨請求",
"confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?",
"confirmations.delete.confirm": "刪除",
- "confirmations.delete.message": "您確定要刪除這則嘟文?",
+ "confirmations.delete.message": "您確定要刪除這則嘟文嗎?",
"confirmations.delete_list.confirm": "刪除",
- "confirmations.delete_list.message": "您確定要永久刪除此列表?",
+ "confirmations.delete_list.message": "您確定要永久刪除此列表嗎?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
- "confirmations.domain_block.confirm": "封鎖整個域名",
- "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳號能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
+ "confirmations.domain_block.confirm": "封鎖整個網域",
+ "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "您確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
"confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。",
- "confirmations.mute.message": "您確定要靜音 {name} ?",
+ "confirmations.mute.message": "您確定要靜音 {name} 嗎?",
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "您確定要刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
@@ -185,12 +185,12 @@
"directory.recently_active": "最近活躍",
"disabled_account_banner.account_settings": "帳號設定",
"disabled_account_banner.text": "您的帳號 {disabledAccount} 目前已停用。",
- "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。",
+ "dismissable_banner.community_timeline": "這些是託管於 {domain} 上帳號之最新公開嘟文。",
"dismissable_banner.dismiss": "關閉",
"dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
- "dismissable_banner.explore_statuses": "這些於這個伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
+ "dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
"dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
- "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。",
+ "dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。",
"embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。",
"embed.preview": "它將顯示成這樣:",
"emoji_button.activity": "活動",
@@ -208,10 +208,10 @@
"emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點",
- "empty_column.account_suspended": "帳號被暫停",
+ "empty_column.account_suspended": "帳號已被停權",
"empty_column.account_timeline": "這裡還沒有嘟文!",
"empty_column.account_unavailable": "無法取得個人檔案",
- "empty_column.blocks": "您還沒有封鎖任何使用者。",
+ "empty_column.blocks": "您尚未封鎖任何使用者。",
"empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。",
"empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!",
"empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
@@ -227,9 +227,9 @@
"empty_column.home.suggestions": "檢視部份建議",
"empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。",
"empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。",
- "empty_column.mutes": "您還沒有靜音任何使用者。",
+ "empty_column.mutes": "您尚未靜音任何使用者。",
"empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。",
- "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了",
+ "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了",
"error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
"error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
"error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。",
@@ -328,7 +328,7 @@
"keyboard_shortcuts.my_profile": "開啟個人檔案頁面",
"keyboard_shortcuts.notifications": "開啟通知欄",
"keyboard_shortcuts.open_media": "開啟媒體",
- "keyboard_shortcuts.pinned": "開啟釘選嘟文列表",
+ "keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
"keyboard_shortcuts.reply": "回應嘟文",
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
@@ -370,7 +370,7 @@
"mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?",
"mute_modal.indefinite": "無期限",
"navigation_bar.about": "關於",
- "navigation_bar.blocks": "封鎖使用者",
+ "navigation_bar.blocks": "已封鎖的使用者",
"navigation_bar.bookmarks": "書籤",
"navigation_bar.community_timeline": "本站時間軸",
"navigation_bar.compose": "撰寫新嘟文",
@@ -380,13 +380,13 @@
"navigation_bar.edit_profile": "編輯個人檔案",
"navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
- "navigation_bar.filters": "靜音詞彙",
+ "navigation_bar.filters": "已靜音的關鍵字",
"navigation_bar.follow_requests": "跟隨請求",
"navigation_bar.followed_tags": "已跟隨主題標籤",
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
- "navigation_bar.mutes": "靜音的使用者",
+ "navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.personal": "個人",
"navigation_bar.pins": "釘選嘟文",
"navigation_bar.preferences": "偏好設定",
@@ -453,13 +453,13 @@
"poll_button.add_poll": "建立投票",
"poll_button.remove_poll": "移除投票",
"privacy.change": "調整嘟文隱私狀態",
- "privacy.direct.long": "只有被提及的使用者能看到",
+ "privacy.direct.long": "只對被提及的使用者顯示",
"privacy.direct.short": "僅限提及的人",
- "privacy.private.long": "只有跟隨您的使用者能看到",
+ "privacy.private.long": "只對跟隨者顯示",
"privacy.private.short": "僅限跟隨者",
- "privacy.public.long": "對所有人可見",
+ "privacy.public.long": "對所有人顯示",
"privacy.public.short": "公開",
- "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能",
+ "privacy.unlisted.long": "對所有人顯示,但關閉探索功能",
"privacy.unlisted.short": "不公開",
"privacy_policy.last_updated": "最後更新:{date}",
"privacy_policy.title": "隱私權政策",
@@ -567,7 +567,7 @@
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 修改",
"status.load_more": "載入更多",
- "status.media_hidden": "隱藏媒體內容",
+ "status.media_hidden": "隱藏的媒體內容",
"status.mention": "提及 @{name}",
"status.more": "更多",
"status.mute": "靜音 @{name}",
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index fc46d0918..0c25cea8c 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -4,7 +4,7 @@ de:
attributes:
poll:
expires_at: Abstimmungsende
- options: Auswahlmöglichkeiten
+ options: Auswahlfelder
user:
agreement: Service-Vereinbarung
email: E-Mail-Adresse
@@ -47,9 +47,9 @@ de:
user_role:
attributes:
permissions_as_keys:
- dangerous: enthält Berechtigungen, welche nicht sicher sind für die Basisrolle
+ dangerous: enthält Berechtigungen, die für die Basisrolle nicht sicher sind
elevated: kann keine Berechtigungen enthalten, die deine aktuelle Rolle nicht besitzt
own_role: kann nicht mit deiner aktuellen Rolle geändert werden
position:
- elevated: kann nicht höher sein als deine aktuelle Rolle
- own_role: kann nicht mit deiner aktuellen Rolle geändert werden
+ elevated: darf nicht höher als deine derzeitige Rolle sein
+ own_role: darf nicht mit deiner aktuellen Rolle geändert werden
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 0f2423bfb..b1b32fc12 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1116,8 +1116,6 @@ an:
storage: Almagazenamiento
featured_tags:
add_new: Anyadir nuevo
- errors:
- limit: Ya has aconseguiu la cantidat maxima de hashtags
hint_html: "Qué son las etiquetas destacadas? S'amuestran de forma prominent en o tuyo perfil publico y permiten a los usuarios navegar per las tuyas publicacions publicas especificament baixo ixas etiquetas. Son una gran ferramienta pa fer un seguimiento de treballos creativos u prochectos a largo plazo."
filters:
contexts:
@@ -1227,9 +1225,6 @@ an:
expires_at: Expira
uses: Usos
title: Convidar a chent
- lists:
- errors:
- limit: Has aconseguiu la cantidat maxima de listas
login_activities:
authentication_methods:
otp: aplicación d'autenticación en dos pasos
@@ -1549,7 +1544,6 @@ an:
'7889238': 3 meses
min_age_label: Branquil de tiempo
min_favs: Mantener mensaches con un numero de favoritos mayor que
- min_favs_hint: No borra garra d'as publicacions que haigan recibiu mas d'esta cantidat de favoritos. Deixa en blanco pa eliminar publicacions sin importar lo numero de favoritos
min_reblogs: Mantener publicacions reblogueadas mas de
min_reblogs_hint: No borra garra d'as publicacions que haigan estau reblogueadas mas d'este numero de vegadas. Deixa en blanco pa eliminar publicacions sin importar lo numero de reblogueos
stream_entries:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index e9a7c3374..e8b1de6a9 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -99,6 +99,7 @@ ar:
moderation:
active: نشِط
all: الكل
+ disabled: مُعطَّل
pending: قيد المراجعة
silenced: محدود
suspended: مُجَمَّد
@@ -138,6 +139,7 @@ ar:
search: البحث
search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني
search_same_ip: مستخدِمون آخرون بنفس الـ IP
+ security: الأمان
security_measures:
only_password: كلمة المرور فقط
password_and_2fa: كلمة المرور و 2FA
@@ -431,6 +433,7 @@ ar:
resolve: العثور على عنوان النطاق
title: إضافة نطاق بريد جديد إلى اللائحة السوداء
no_email_domain_block_selected: لم يطرأ أي تغيير على أي نطاق بريد بما أنه لم يتم اختيار أي نطاق
+ not_permitted: غير مسموح به
resolved_dns_records_hint_html: عنوان النطاق يعود لخوادم البريد (MX) التالية وهو ما يسمح للنطاق باستقبال البريد. حظر خوادم البريد هذه سوف يتسبب في منع أي تسجيل خلال أي نطاق يستخدم هذه الخوادم حتى لو كان اسم النطاق مختلف عن اسماء خوادم البريد.احذر من حظر مزودي البريد العالميين.
resolved_through_html: الحصول على العنوان من خلال %{domain}
title: القائمة السوداء للبريد الإلكتروني
@@ -478,6 +481,7 @@ ar:
content_policies:
comment: ملاحظة داخلية
description_html: يمكنك تحديد سياسات المحتوى التي سيتم تطبيقها على جميع حسابات هذا النطاق وأي من نطاقاته الفرعية.
+ limited_federation_mode_description_html: يمكنك أن تختار بين السماح أو عدم السماح بالفديرالية مع هذا النطاق.
policies:
reject_media: رفض الوسائط
reject_reports: رفض الشكاوى
@@ -597,11 +601,13 @@ ar:
assign_to_self: عين لي
assigned: تعين رئيس
by_target_domain: نطاق الحساب المبلّغ عنه
+ cancel: إلغاء
category: الفئة
category_description_html: سيشار إلى سبب الإبلاغ عن هذا الحساب و/أو المحتوى في الاتصال بالحساب المبلغ عنه
comment:
none: لا شيء
comment_description_html: 'لتوفير المزيد من المعلومات، كتب %{name}:'
+ confirm: تأكيد
confirm_action: تأكيد اتخاذ إجراء إشراف على @%{acct}
created_at: ذكرت
delete_and_resolve: احذف المنشورات
@@ -803,6 +809,7 @@ ar:
suspend: قام %{name} بتعليق حساب %{target}
appeal_approved: طُعِن فيه
appeal_pending: طعن قيد المراجعة
+ appeal_rejected: رُفض الطعن
system_checks:
database_schema_check:
message_html: هناك عمليات هجرة معلقة لقواعد البيانات. يرجى تشغيلها لضمان تصرف التطبيق كما هو متوقع
@@ -835,6 +842,7 @@ ar:
no_publisher_selected: لم يطرأ أي تغيير على أي ناشر بما أنه لم يتم اختيار أي واحد
title: الروابط المتداولة
usage_comparison: تمت مشاركته %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس
+ not_allowed_to_trend: غير مسموح ظهوره في المتداولة
only_allowed: من سُمِحَ لهم فقط
pending_review: في انتظار المراجعة
preview_card_providers:
@@ -957,6 +965,7 @@ ar:
applications:
created: تم إنشاء التطبيق بنجاح
destroyed: تم حذف التطبيق بنجاح
+ logout: الخروج
regenerate_token: إعادة توليد رمز النفاذ
token_regenerated: تم إعادة إنشاء الرمز الوصول بنجاح
warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين!
@@ -993,6 +1002,8 @@ ar:
resend_confirmation: إعادة إرسال تعليمات التأكيد
reset_password: إعادة تعيين كلمة المرور
rules:
+ accept: قبول
+ back: العودة
preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}.
title: بعض القواعد الأساسية.
security: الأمان
@@ -1139,8 +1150,6 @@ ar:
storage: ذاكرة التخزين
featured_tags:
add_new: أضف واحدًا جديدا
- errors:
- limit: لقد قمت بالفعل بعرض الحد الأقصى من الوسوم
hint_html: "ما هي الوسوم الرائجة؟ يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل."
filters:
contexts:
@@ -1600,7 +1609,7 @@ ar:
'7889238': 3 أشهر
min_age_label: عتبة العمر
min_favs: إبقاء المشاركات المفضلة أكثر من
- min_favs_hint: لم تقوم بحذف أي من المشاركات الخاصة بك التي حصلت على أكثر من هذه الكمية من المفضلة. اتركه فارغاً لحذف المشاركات بغض النظر عن عدد المفضلات لديها
+ min_favs_hint: لن تُحذف أي من منشوراتك التي تلقّت على الأقل هذا العدد من المفضلات. اتركه فارغاً لحذف المنشورات مهما كان عدد المفضلات التي تلقتها
min_reblogs: إبقاء المشاركات المعززة أكثر من
min_reblogs_hint: لن تُحذف أي من منشوراتك التي أعيد مشاركتها أكثر من هذا العدد من المرات. اتركه فارغاً لحذف المنشورات بغض النظر عن عدد إعادات المشاركة
stream_entries:
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index d4e3fe20e..536e3887c 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -52,6 +52,7 @@ ast:
search: Buscar
search_same_email_domain: Otros perfiles col mesmu dominiu de corréu electrónicu
search_same_ip: Otros perfiles cola mesma IP
+ security: Seguranza
show:
created_reports: Informes fechos
statuses: Artículos
@@ -80,7 +81,9 @@ ast:
enable_custom_emoji_html: "%{name} activó'l fustaxe «%{target}»"
reject_user_html: "%{name} refugó'l rexistru de: %{target}"
remove_avatar_user_html: "%{name} quitó l'avatar de: %{target}"
+ reopen_report_html: "%{name} volvió abrir l'informe «%{target}»"
resend_user_html: "%{name} volvió unviar el mensaxe de confirmación pa: %{target}"
+ resolve_report_html: "%{name} resolvió l'informe «%{target}»"
unblock_email_account_html: "%{name} desbloquió la direición de corréu electrónicu de: %{target}"
update_announcement_html: "%{name} anovó l'anunciu «%{target}»"
update_custom_emoji_html: "%{name} anovó'l fustaxe «%{target}»"
@@ -217,11 +220,15 @@ ast:
title: 'Rellaciones de: %{acct}'
relays:
status: Estáu
+ report_notes:
+ created_msg: "¡La nota del informe creóse correutamente!"
reports:
account:
notes:
one: "%{count} nota"
other: "%{count} notes"
+ actions:
+ silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta.
actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría Puxarra.
add_to_report: Amestar más al informe
category: Categoría
@@ -236,6 +243,8 @@ ast:
notes:
create: Amestar la nota
create_and_resolve: Resolver con una nota
+ create_and_unresolve: Volver abrir con una nota
+ delete: Desaniciar
title: Notes
quick_actions_description_html: 'Toma una aición rápida o baxa pa ver el conteníu del que s''informó:'
report: 'Informe #%{id}'
@@ -326,6 +335,7 @@ ast:
metadata: Metadatos
original_status: Artículu orixinal
visibility: Visibilidá
+ with_media: Con elementos multimedia
strikes:
actions:
delete_statuses: "%{name} desanició l'artículu de: %{target}"
@@ -334,6 +344,7 @@ ast:
sensitive: "%{name} marcó la cuenta de %{target} como sensible"
suspend: "%{name} suspendió la cuenta de: %{target}"
appeal_approved: Apellóse
+ appeal_pending: Apellación pendiente
system_checks:
elasticsearch_running_check:
message_html: Nun se pudo conectar con Elasticsearch. Revisa que tea n'execución o desactiva la busca de testos completos
@@ -368,6 +379,8 @@ ast:
usable: Pue usase
title: Tendencies
trending: En tendencia
+ warning_presets:
+ title: Xestión d'alvertencies preconfiguraes
webhooks:
add_new: Amestar un estremu
delete: Desaniciar
@@ -446,6 +459,9 @@ ast:
register: Rexistrase
registration_closed: "%{instance} nun acepta cuentes nueves"
resend_confirmation: Volver unviar les instrucciones de confirmación
+ rules:
+ accept: Aceptar
+ back: Atrás
security: Seguranza
setup:
email_below_hint_html: Si la direición de corréu electrónicu ye incorreuta, pues camudala equí ya recibir un mensaxes de confirmación nuevu.
@@ -504,13 +520,16 @@ ast:
action_taken: Aición tomada
appeal: Apellación
appeal_rejected: Refugóse l'apellación
+ appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste.
appeals:
submit: Unviu d'una apellación
approve_appeal: Aprobar l'apellación
+ associated_report: Informe asociáu
created_at: Data
reject_appeal: Refugar l'apellación
status: 'Artículu #%{id}'
status_removed: L'artículu xá se quitó del sistema
+ your_appeal_approved: Aprobóse la to apellación
your_appeal_pending: Unviesti una apellación
your_appeal_rejected: Refugóse la to apellación
errors:
@@ -619,9 +638,6 @@ ast:
expires_at: Data de caducidá
uses: Usos
title: Invitación
- lists:
- errors:
- limit: Algamesti la cantidá máxima de llistes
login_activities:
authentication_methods:
password: contraseña
@@ -837,6 +853,8 @@ ast:
appeal_description: Si te paez que ye un error, pues unviar una apellación al personal de %{instance}.
explanation:
disable: Xá nun pues usar la cuenta mas el perfil ya otros datos siguen intautos. Pues solicitar una copia de seguranza de los datos, camudar la configuración de la cuenta o desaniciar la cuenta.
+ silence: Entá pues usar la cuenta mas namás vas ver los artículos de los perfiles que xá siguieres nesti sirvidor ya ye posible que se t'escluya de dalgunes funciones de descubrimientu. Por embargu, otros perfiles tovía puen siguite manualmente.
+ suspend: Xá nun pues usar la cuenta nin se pue acceder a los datos del to perfil. Entá pues aniciar la sesión pa pidir una copia de seguranza de los tos datos hasta que se desanicien en 30 díes, mas vamos caltener dalgunos datos básicos pa evitar que te saltes la suspensión.
reason: 'Motivu:'
statuses: 'Artículos citaos:'
subject:
diff --git a/config/locales/be.yml b/config/locales/be.yml
index ea5d01764..24dd86285 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -95,6 +95,7 @@ be:
moderation:
active: Актыўны
all: Усе
+ disabled: Адключана
pending: Чакаюць
silenced: Абмежаваны
suspended: Прыпынены
@@ -139,6 +140,7 @@ be:
search: Пошук
search_same_email_domain: Іншыя карыстальнікі з такім жа даменам эл. пошты
search_same_ip: Іншыя карыстальнікі з гэтым IP
+ security: Бяспека
security_measures:
only_password: Толькі пароль
password_and_2fa: Пароль і 2FA
@@ -443,6 +445,7 @@ be:
resolve: Вызначыць дамен
title: Заблакіраваць новы дамен эл. пошты
no_email_domain_block_selected: Блакіроўкі даменаў эл. пошты не былі змененыя, таму што ні адзін з іх не быў выбраны
+ not_permitted: Забаронена
resolved_dns_records_hint_html: Даменнае імя ператвараецца ў наступныя дамены MX, якія ў канчатковым выніку адказваюць за прыём электроннай пошты. Блакаванне дамена MX заблакуе рэгістрацыю з любога адраса электроннай пошты, які выкарыстоўвае той жа дамен MX, нават калі бачнае імя дамена адрозніваецца. Будзьце асцярожныя, каб не заблакіраваць асноўных пастаўшчыкоў электроннай пошты.
resolved_through_html: Вызначына каля %{domain}
title: Заблакаваныя паштовыя дамены
@@ -493,6 +496,7 @@ be:
content_policies:
comment: Унутраная нататка
description_html: Вы можаце вызначыць палітыку кантэнту, якая будзе прымяняцца да ўсіх уліковых запісаў гэтага дамена і любога з яго субдаменаў.
+ limited_federation_mode_description_html: Вы можаце выбраць ці дазволіць уваходзіць у федэрацыю з гэтым даменам.
policies:
reject_media: Адхіліць мультымедыя
reject_reports: Адхіліць справаздачы
@@ -609,11 +613,13 @@ be:
assign_to_self: Прызначыць мне
assigned: Прызначаны мадэратар
by_target_domain: Дамен уліковага запісу, на які падаецца скарга
+ cancel: Скасаваць
category: Катэгорыя
category_description_html: Прычына паведамлення аб гэтым уліковым запісе і/або кантэнце будзе згадана ў сувязі з уліковым запісам, на які пададзена скарга
comment:
none: Пуста
comment_description_html: 'Каб даць больш інфармацыі, %{name} напісаў:'
+ confirm: Пацвердзіць
confirm_action: Пацвердзіць мадэрацыю супраць @%{acct}
created_at: Створана
delete_and_resolve: Выдаліць допісы
@@ -645,14 +651,21 @@ be:
statuses: Змесціва, на якое паскардзіліся
statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга
summary:
+ action_preambles:
+ delete_html: 'Вы збіраецеся выдаліць некаторыя з допісаў @%{acct}. Гэта будуць:'
+ mark_as_sensitive_html: 'Вы збіраецеся пазначыць некаторыя з допісаў @%{acct} як уражальныя. Гэта будуць:'
+ silence_html: 'Вы збіраецеся абмежаваць уліковы запіс @%{acct}. Гэта будзе:'
+ suspend_html: 'Вы збіраецеся прыпыніць уліковы запіс @%{acct}. Гэта будзе:'
actions:
delete_html: Выдаліць абразлівы допіс
mark_as_sensitive_html: Пазначыць медыя абразлівага допіса як далікатнае
+ silence_html: Значна абмежаваць ахоп @%{acct}, зрабіўшы профіль і змесціва бачнымі толькі для людзей, якія ўжо падпісаныя, альбо шукае яго ўручную
suspend_html: Прыпыніць @%{acct}, зрабіць профіль і змесціва недаступным і не даваць магчымасці ўзаемадзейнічаць з імі
close_report: 'Пазначыць скаргу #%{id} як вырашаную'
close_reports_html: Адзначыць усе скаргі супраць @%{acct} як вырашаныя
delete_data_html: Выдаліць профіль @%{acct} і змесціва праз 30 дзён, калі тым часам гэтае дзеянне не будзе адменена
preview_preamble_html: "@%{acct} атрымае папярэджанне наступнага зместу:"
+ record_strike_html: Зарэгістраваць папярэджанне @%{acct}, каб дапамагчы вам эскаліраваць наступныя парушэнні з боку таго ж уліковага запісу
send_email_html: Адправіць @%{acct} папярэджанне па электроннай пошце
warning_placeholder: Неабавязковае дадатковае абгрунтаванне мадэрацыі.
target_origin: Крыніца уліковага запісу на які пададзена скарга
@@ -813,6 +826,7 @@ be:
suspend: Уліковы запіс %{target} выключаны %{name}
appeal_approved: Абскарджана
appeal_pending: Апеляцыя разглядаецца
+ appeal_rejected: Абскарджанне адхілена
system_checks:
database_schema_check:
message_html: Ёсць незавершаныя міграцыі базы дадзеных. Калі ласка, запусціце іх, каб пераканацца, што дадатак паводзіць сябе належным чынам
@@ -850,6 +864,7 @@ be:
other: Абагулілі %{count} чалавек за апошні тыдзень
title: Актуальныя спасылкі
usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
+ not_allowed_to_trend: Забаронена выходзіць у актуальныя
only_allowed: Толькі дазволенае
pending_review: Чакае праверкі
preview_card_providers:
@@ -987,6 +1002,7 @@ be:
applications:
created: Праграма паспяхова створана
destroyed: Праграма паспяхова выдалена
+ logout: Выйсці
regenerate_token: Стварыць новы токен доступу
token_regenerated: Новы токен доступу паспяхова створаны
warning: Будзьце вельмі асцярожныя з гэтымі данымі. Ніколі нікому не паведамляйце іх!
@@ -1023,6 +1039,8 @@ be:
resend_confirmation: Адправіць інструкцыю пацвярджэння зноў
reset_password: Скінуць пароль
rules:
+ accept: Прыняць
+ back: Назад
preamble: Правілы вызначаныя мадэратарамі дамена %{domain}.
title: Некалькі базавых правілаў.
security: Бяспека
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index cdcf6158b..d0d1888c0 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -91,6 +91,7 @@ bg:
moderation:
active: Дейно
all: Всичко
+ disabled: Изключено
pending: Чака
silenced: Ограничено
suspended: Спряно
@@ -133,6 +134,7 @@ bg:
search: Търсене
search_same_email_domain: Други потребители със същия домейн за имейл
search_same_ip: Други потребители със същия IP
+ security: Сигурност
security_measures:
only_password: Само парола
password_and_2fa: Парола и двуфакторно удостоверяване
@@ -372,8 +374,8 @@ bg:
empty: Няма намерени обжалвания.
title: Жалби
domain_allows:
- add_new: Позволявам федерацията с домейна
- created_msg: Домейнът е успешно позволен за федерацията
+ add_new: Позволявам федериране с домейна
+ created_msg: Успешно позволен домейн за федерацията
destroyed_msg: Домейнът е забранен от федерацията
export: Износ
import: Внос
@@ -402,7 +404,7 @@ bg:
obfuscate: Замъгляване на името на домейна
obfuscate_hint: Частично замъгляване на името на домейна в списъка, ако е включено рекламирането на списъка с ограничения на домейни
private_comment: Личен коментар
- private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите.
+ private_comment_hint: Коментирането за това ограничение на домейна е за вътрешна употреба от модераторите.
public_comment: Публичен коментар
public_comment_hint: Оставяне на коментар за ограничението на домейна за широката публика, ако рекламирането на списъка с ограниченията на домейни е включено.
reject_media: Отхвърляне на мултимедийните файлове
@@ -427,6 +429,7 @@ bg:
resolve: Преобразуване на домейна
title: Блокиране на нов домейн на имейл
no_email_domain_block_selected: Няма промяна, тъй като няма избрани блокирания на имейл домейн
+ not_permitted: Няма позволение
resolved_dns_records_hint_html: Името на домейна се преобразува към следните MX домейни, които са основно отговорни за получаване на имейл. Блокирането на MX домейн блокира записването от всеки имейл, използващ същия MX домейн, дори видимото име на домейна да е различно. Бъдете внимателни и не блокирайте често-срещани доставчици на имейл
resolved_through_html: Преобразувано чрез %{domain}
title: Блокирани домейни на имейл
@@ -473,6 +476,7 @@ bg:
content_policies:
comment: Вътрешна бележка
description_html: Може да определите политиките за съдържание, които ще се приложат към всички акаунти от този домейн и всеки от поддомейните му.
+ limited_federation_mode_description_html: Може да избирате дали да позволите федарацията с този домейн.
policies:
reject_media: Отхвърляне на мултимедия
reject_reports: Отхвърляне на докладите
@@ -585,11 +589,13 @@ bg:
assign_to_self: Назначаване на мен
assigned: Назначен модератор
by_target_domain: Домейн на докладвания акаунт
+ cancel: Отказ
category: Категория
category_description_html: Причината, поради която акаунтът и/или съдържанието е докладвано ще се цитира в комуникацията с докладвания акаунт
comment:
none: Нищо
comment_description_html: 'За да предостави повече информация, %{name} написа:'
+ confirm: Потвърждаване
confirm_action: Потвърждаване на модераторско действие срещу @%{acct}
created_at: Докладвано
delete_and_resolve: Изтриване на публикациите
@@ -620,9 +626,18 @@ bg:
statuses: Докладвано съдържание
statuses_description_html: Непристойно съдържание ще бъде цитирано в комуникацията с докладвания акаунт
summary:
+ action_preambles:
+ delete_html: 'На път сте да премахнете някои от публикациите на @%{acct}. Това ще:'
+ mark_as_sensitive_html: 'На път сте да означите някои от публикациите на @%{acct} като деликатни. Това ще:'
+ silence_html: 'На път сте да ограничите акаунта на @%{acct}. Това ще:'
+ suspend_html: 'На път сте да спрете акаунта на @%{acct}. Това ще:'
actions:
delete_html: Премахване на обидните публикации
+ silence_html: Силно ограничаване достигането на @%{acct}, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила
close_report: Отбелязване на доклад №%{id} като решен
+ close_reports_html: Означаване на всички доклади срещу @%{acct} като решени
+ preview_preamble_html: "@%{acct} ще получи предупреждение със следното съдържание:"
+ send_email_html: Изпращане на предупредително е-писмо на @%{acct}
warning_placeholder: Незадължителни допълнителни причини за модераторско действие.
target_origin: Произход на докладвания акаунт
title: Доклади
@@ -659,7 +674,7 @@ bg:
invite_users_description: Позволява на потребителите да канят нови хора в сървъра
manage_announcements: Управляване на оповестяванията
manage_announcements_description: Позволява на потребителите да управляват оповестяванията в сървъра
- manage_appeals: Управление на обжалванията
+ manage_appeals: Управление на жалбите
manage_appeals_description: Позволява на потребителите да разглеждат обжалвания срещу модераторски действия
manage_blocks: Управляване на блокиранията
manage_blocks_description: Позволява на потребителите да блокират доставчици на е-поща и IP адреси
@@ -698,7 +713,7 @@ bg:
description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки.
edit: Промяна на правило
empty: Още няма определени правила на сървъра.
- title: Правила на сървъра
+ title: Сървърни правила
settings:
about:
manage_rules: Управление на правилата на сървъра
@@ -720,12 +735,12 @@ bg:
discovery:
follow_recommendations: Препоръки за следване
preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър.
- profile_directory: Директория на профила
+ profile_directory: Указател на профила
public_timelines: Публични часови оси
publish_discovered_servers: Публикуване на откритите сървъри
publish_statistics: Публикуване на статистиката
title: Откриване
- trends: Налагащи се
+ trends: Изгряващи
domain_blocks:
all: До всеки
disabled: До никого
@@ -735,9 +750,9 @@ bg:
title: Регистрации
registrations_mode:
modes:
- approved: Нужно е одобрение за записване
+ approved: Изисква се одобрение за регистриране
none: Никой не може да се регистрира
- open: Всеки може да се запише
+ open: Всеки може да се регистрира
title: Настройки на сървъра
site_uploads:
delete: Изтриване на качения файл
@@ -778,6 +793,7 @@ bg:
suspend: "%{name} преустанови акаунта на %{target}"
appeal_approved: Обжалвано
appeal_pending: Чака се обжалването
+ appeal_rejected: Отхвърлено обжалване
system_checks:
database_schema_check:
message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението
@@ -802,29 +818,30 @@ bg:
links:
allow: Позволяване на връзка
allow_provider: Позволяване на публикуващия
- description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове.
+ description_html: Това са връзки, които в момента са много пъти споделяни от акаунти, чиито публикации сървърът ви вижда. Може да помогне на потребителите ви да разберат какво се случва по света. Никоя връзка няма да се показва публично, докато не одобрите публикуващия. Може още и да одобрявате или отхвърляте отделни връзки.
disallow: Забранявам връзката
disallow_provider: Забраняване на публикуващия
- no_link_selected: Няма промяна, тъй като няма избрани линкове
+ no_link_selected: Няма променени връзки, тъй като нито една не е била избрана
publishers:
no_publisher_selected: Няма промяна, тъй като няма избрани публикуващи
shared_by_over_week:
one: Споделено от един човек през последната седмица
other: Споделено от %{count} души през последната седмица
- title: Нашумели линкове
+ title: Изгряващи линкове
usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера
+ not_allowed_to_trend: Не е позволено да са изгряващи
only_allowed: Само позволените
- pending_review: В очакване на преглед
+ pending_review: Чака се преглед
preview_card_providers:
- allowed: Линкове от този публикуващ може да са нашумели
+ allowed: Линкове от този публикуващ може да са изгряващи
description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни.
- rejected: Линкове от този автор няма да се включат в нашумели
+ rejected: Връзки от този публикуващ няма да са изгряващи
title: Публикуващи
rejected: Отхвърлено
statuses:
allow: Позволяване на публикацията
allow_account: Позволяване на автора
- description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или маркирани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации.
+ description_html: Има публикации, за които сървърът ви знае, че в момента са често споделяни или означавани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора за последване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Може още да позволявате или отхвърляте отделни публикации.
disallow: Забраняване на публикацията
disallow_account: Забрана на автора
no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация
@@ -841,14 +858,14 @@ bg:
tag_servers_dimension: Водещи сървъри
tag_servers_measure: различни сървъри
tag_uses_measure: обща употреба
- description_html: Това са хаштагове, фигуриращи в момента в много публикации, които вашият сървър вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете няма да се покажат публично, докато не ги одобрите.
+ description_html: Има хаштагове, появяващи се в момента в много публикации, които сървърът ви вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете не се показват публично, докато не ги одобрите.
listable: Може да бъде предложено
no_tag_selected: Няма промяна, тъй като няма избран таг
not_listable: Няма да бъде препоръчан
not_trendable: Няма да се появи под налагащи се
- not_usable: Не може да се използва
+ not_usable: Не може да се употребява
peaked_on_and_decaying: Връх на актуалността на %{date}, сега е в спад
- title: Налагащи се хаштагове
+ title: Изгряващи хаштагове
trendable: Може да се появи под налагащи се
trending_rank: 'Налагащи се #%{rank}'
usable: Може да се употребява
@@ -856,7 +873,7 @@ bg:
used_by_over_week:
one: Употребено от един човек през последната седмица
other: Използвано от %{count} души през последната седмица
- title: Налагащи се
+ title: Изгряващи
trending: Изгряващи
warning_presets:
add_new: Добавяне на ново
@@ -944,6 +961,7 @@ bg:
applications:
created: Успешно създадено приложение
destroyed: Успешно изтрито приложение
+ logout: Излизане
regenerate_token: Регенериране на кода за достъп
token_regenerated: Успешно генериране на код за достъп
warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого!
@@ -980,6 +998,8 @@ bg:
resend_confirmation: Изпрати отново инструкции за потвърждение
reset_password: Нулиране на паролата
rules:
+ accept: Приемам
+ back: Назад
preamble: Тези са зададени и наложени от модераторите на %{domain}.
title: Някои основни правила.
security: Сигурност
@@ -1559,7 +1579,7 @@ bg:
'7889238': 3 месеца
min_age_label: Възрастов праг
min_favs: Запазване на публикации, маркирани като любими поне
- min_favs_hint: Не се изтриват ваши публикации, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя пъти маркирани като любими
+ min_favs_hint: Не се изтриват никоя от публикациите ви, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя маркирания като любими
min_reblogs: Запазване на публикации с поне толкова споделяния
min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния
stream_entries:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 616f8de17..afaf9e06d 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -31,7 +31,7 @@ ca:
created_msg: La nota de moderació s'ha creat correctament!
destroyed_msg: Nota de moderació destruïda amb èxit!
accounts:
- add_email_domain_block: Bloquejar el domini de l'adreça de correu electrònic
+ add_email_domain_block: Bloca el domini del correu
approve: Aprova
approved_msg: L’aplicació del registre de %{username} s’ha aprovat amb èxit
are_you_sure: N'estàs segur?
@@ -91,6 +91,7 @@ ca:
moderation:
active: Actiu
all: Tot
+ disabled: Desactivat
pending: Pendent
silenced: Limitat
suspended: Suspès
@@ -133,6 +134,7 @@ ca:
search: Cerca
search_same_email_domain: Altres usuaris amb el mateix domini de correu
search_same_ip: Altres usuaris amb la mateixa IP
+ security: Seguretat
security_measures:
only_password: Només contrasenya
password_and_2fa: Contrasenya i 2FA
@@ -180,7 +182,7 @@ ca:
create_custom_emoji: Crea un emoji personalitzat
create_domain_allow: Crea un domini permès
create_domain_block: Crea un bloqueig de domini
- create_email_domain_block: Crea un bloqueig de domini d'adreça de correu
+ create_email_domain_block: Crea un bloqueig de domini de correu
create_ip_block: Crear regla IP
create_unavailable_domain: Crea un domini no disponible
create_user_role: Crea Rol
@@ -188,9 +190,9 @@ ca:
destroy_announcement: Esborra l'anunci
destroy_canonical_email_block: Esborra el bloqueig de correu electrònic
destroy_custom_emoji: Esborra l'emoji personalitzat
- destroy_domain_allow: Esborra el domini permès
+ destroy_domain_allow: Esborra el permís del domini
destroy_domain_block: Esborra el bloqueig de domini
- destroy_email_domain_block: Esborra el bloqueig de domini de l'adreça de correu
+ destroy_email_domain_block: Esborra el bloqueig de domini de correu
destroy_instance: Purga Domini
destroy_ip_block: Eliminar regla IP
destroy_status: Elimina la publicació
@@ -372,15 +374,15 @@ ca:
empty: No s'ha trobat cap apel·lació.
title: Apel·lacions
domain_allows:
- add_new: Dominis autoritzats
- created_msg: El domini ha estat correctament autoritzat
- destroyed_msg: S'ha esborrat el domini de la llista blanca
+ add_new: Permet la federació amb el domini
+ created_msg: El domini ha estat autoritzat per a la federació
+ destroyed_msg: El domini ha estat desautoritzat de la federació
export: Exporta
import: Importa
- undo: Treure de la llista blanca
+ undo: No permetis la federació amb el domini
domain_blocks:
- add_new: Afegir nou bloqueig de domini
- created_msg: El bloqueig de domini ara s'està processant
+ add_new: Afegeix nou bloqueig de domini
+ created_msg: S'està processant el bloqueig de domini
destroyed_msg: El bloqueig de domini s'ha desfet
domain: Domini
edit: Editar el bloqueig del domini
@@ -396,7 +398,7 @@ ca:
noop: Cap
silence: Limitar
suspend: Suspensió
- title: Bloqueig de domini nou
+ title: Nou bloqueig de domini
no_domain_block_selected: No s'ha canviat cap bloqueig de domini perquè no se n'ha seleccionat cap
not_permitted: No tens permís per a realitzar aquesta acció
obfuscate: Oculta el nom del domini
@@ -427,6 +429,7 @@ ca:
resolve: Resol domini
title: Nova adreça de correu en la llista negra
no_email_domain_block_selected: No s'han canviat els bloquejos de domini perquè cap s'ha seleccionat
+ not_permitted: No permés
resolved_dns_records_hint_html: El nom del domini resol als següents dominis MX, els quals son els responsables finals per a acceptar els correus. Bloquejar un domini MX bloquejarà els registres des de qualsevol adreça de correu que utilitzi el mateix domini MX, encara que el nom visible del domini sigui diferent. Ves amb compte no bloquegis els grans proveïdors de correu electrònic.
resolved_through_html: Resolt mitjançant %{domain}
title: Llista negra de correus electrònics
@@ -473,6 +476,7 @@ ca:
content_policies:
comment: Nota interna
description_html: Pots definir polítiques de contingut que seran aplicades a tots els comptes d'aquest domini i a qualsevol dels seus subdominis.
+ limited_federation_mode_description_html: Pots triar si permets la federació amb aquest domini.
policies:
reject_media: Rebutja mèdia
reject_reports: Rebutja informes
@@ -585,11 +589,13 @@ ca:
assign_to_self: Assigna'm
assigned: Moderador assignat
by_target_domain: Domini del compte denunciat
+ cancel: Cancel·la
category: Categoria
category_description_html: El motiu pel qual aquest compte o contingut ha estat denunciat se citarà en la comunicació amb el compte denunciat
comment:
none: Cap
comment_description_html: 'Per a donar més informació, %{name} ha escrit:'
+ confirm: Confirma
confirm_action: Confirma l'acció de moderació contra @%{acct}
created_at: Denunciat
delete_and_resolve: Elimina les publicacions
@@ -792,6 +798,7 @@ ca:
suspend: "%{name} ha suspès el compte de %{target}"
appeal_approved: Apel·lat
appeal_pending: Apel·lació pendent
+ appeal_rejected: Apel·lació rebutjada
system_checks:
database_schema_check:
message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera
@@ -827,6 +834,7 @@ ca:
other: Compartit per %{count} persones en la darrera setmana
title: Enllaços en tendència
usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir
+ not_allowed_to_trend: No es permet la tendència
only_allowed: Només permesos
pending_review: Revisió pendent
preview_card_providers:
@@ -958,6 +966,7 @@ ca:
applications:
created: L'aplicació s'ha creat correctament
destroyed: L'aplicació s'ha suprimit correctament
+ logout: Surt
regenerate_token: Torna a generar l'identificador d'accés
token_regenerated: L'identificador d'accés s'ha generat correctament
warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú!
@@ -994,6 +1003,8 @@ ca:
resend_confirmation: Torna a enviar el correu de confirmació
reset_password: Restableix la contrasenya
rules:
+ accept: Accepta
+ back: Enrere
preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}.
title: Algunes regles bàsiques.
security: Seguretat
@@ -1139,7 +1150,7 @@ ca:
mutes: Persones silenciades
storage: Emmagatzematge
featured_tags:
- add_new: Afegir nova etiqueta
+ add_new: Afegeix-ne una de nova
errors:
limit: Ja has mostrat la quantitat màxima d'etiquetes
hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per els teus tuts gràcies a aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini."
@@ -1573,7 +1584,7 @@ ca:
'7889238': 3 mesos
min_age_label: Antiguitat
min_favs: Mantenir els tuts afavorits més de
- min_favs_hint: No suprimeix cap dels teus tuts que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per a suprimir tuts independentment del nombre de favorits que tinguin
+ min_favs_hint: No suprimeix cap dels teus tuts que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per a suprimir tuts independentment del nombre de favorits
min_reblogs: Mantenir les publicacions impulsades més de
min_reblogs_hint: No suprimeix cap de les teves publicacions que s'hagin impulsat més que aquest nombre de vegades. Deixa-ho en blanc per a suprimir les publicacions independentment del nombre d'impulsos que tinguin.
stream_entries:
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 19e1d50f4..5b945d442 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -726,8 +726,6 @@ ckb:
storage: هەمارگەی میدیا
featured_tags:
add_new: زیادکردنی نوێ
- errors:
- limit: ئێوە ژمارەی بڕی ڕێگەپێدراوەی هاشتاگت هەیە
hint_html: " هاشتاگی تایبەت چییە؟ بە شێوەیەکی دیار نیشان دەدرێت لەسەر پرۆفایلی گشتی و ڕێگە بە خەڵک دەدات بۆ گەڕان لە نووسراوە گشتیەکانت بە تایبەتی لەژێر ئەو هاشتاگە. ئامرازێکی زۆر باشن بۆ پاراستنی کاری داهێنەرانە یان پڕۆژەی درێژخایەنی ئێوە."
filters:
contexts:
@@ -797,9 +795,6 @@ ckb:
expires_at: بەسەرچووە
uses: بەکارهاوردنەکان
title: بانگهێشتکردنی خەڵک
- lists:
- errors:
- limit: تۆ گەیشتوویتە زۆرترین ڕێژەی لیستەکان
media_attachments:
validations:
images_and_video: ناتوانرێت لەگەڵ ئەو نووسراوانە کە وێنەی لەگەڵە ،ڤیدیۆ بار بکەی
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 2ab6c63f9..4a2692018 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -686,8 +686,6 @@ co:
storage: I vostri media
featured_tags:
add_new: Aghjunghje
- errors:
- limit: Avete digià messu in mostra u numeru massimale di hashtag
hint_html: "Quale sò i hashtag in mostra? Sò messi in vista nant'à u vostru prufile pubblicu è permettenu à a ghjente di vede i vostri statuti ch'annu stu hashtag. Sò una bona manere di mustrà e vostre opere creative o i prughjetti à longu termine."
filters:
contexts:
@@ -759,9 +757,6 @@ co:
expires_at: Spira
uses: Utiliza
title: Invità ghjente
- lists:
- errors:
- limit: Ùn pudete più creà altre liste
login_activities:
authentication_methods:
otp: app d'identificazione à dui fattori
@@ -1037,7 +1032,6 @@ co:
'7889238': 3 mesi
min_age_label: Età minima
min_favs: Cunservà i statuti favurizzati più di
- min_favs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di favuriti. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di favuriti
min_reblogs: Cunservà i statuti spartuti più di
min_reblogs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di spartere. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di spartere
stream_entries:
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index f96eaae15..8c5fdd1db 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -95,6 +95,7 @@ cs:
moderation:
active: Aktivní
all: Vše
+ disabled: Deaktivován
pending: Čekající
silenced: Omezeno
suspended: Pozastavené
@@ -139,6 +140,7 @@ cs:
search: Hledat
search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou
search_same_ip: Další uživatelé se stejnou IP adresou
+ security: Zabezpečení
security_measures:
only_password: Pouze heslo
password_and_2fa: Heslo a 2FA
@@ -443,6 +445,7 @@ cs:
resolve: Přeložit doménu
title: Blokovat novou e-mailovou doménu
no_email_domain_block_selected: Žádné blokace e-mailové domény nebyly změněny, protože nebyly žádné vybrány
+ not_permitted: Nepovoleno
resolved_dns_records_hint_html: Doménové jméno vede na následující MX domény, které mají nakonec na starost přijímání e-mailů. Blokování MX domény zablokuje registrace z jakékoliv e-mailové adresy, která používá stejnou MX doménu, i když je viditelné doménové jméno jiné. Dejte si pozor, abyste nezablokovali velké e-mailové poskytovatele.
resolved_through_html: Přeložena přes %{domain}
title: Blokované e-mailové domény
@@ -492,6 +495,7 @@ cs:
content_policies:
comment: Interní poznámka
description_html: Můžete definovat politiky obsahu, které budou aplikovány na všechny účty z této domény i jakoukoliv z jejích subdomén.
+ limited_federation_mode_description_html: Můžete si vybrat, zda povolit federaci s touto doménou.
policies:
reject_media: Odmítat média
reject_reports: Odmítat hlášení
@@ -608,11 +612,13 @@ cs:
assign_to_self: Přidělit ke mně
assigned: Přiřazený moderátor
by_target_domain: Doména nahlášeného účtu
+ cancel: Zrušit
category: Kategorie
category_description_html: Důvod nahlášení tohoto účtu a/nebo obsahu bude uveden v komunikaci s nahlášeným účtem
comment:
none: Žádné
comment_description_html: 'Pro upřesnění uživatel %{name} napsal:'
+ confirm: Potvrdit
created_at: Nahlášené
delete_and_resolve: Smazat příspěvky
forwarded: Přeposláno
@@ -973,6 +979,7 @@ cs:
applications:
created: Aplikace úspěšně vytvořena
destroyed: Aplikace úspěšně smazána
+ logout: Odhlásit se
regenerate_token: Znovu vygenerovat přístupový token
token_regenerated: Přístupový token byl úspěšně vygenerován
warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte!
@@ -1009,6 +1016,8 @@ cs:
resend_confirmation: Znovu odeslat pokyny pro potvrzení
reset_password: Obnovit heslo
rules:
+ accept: Přijmout
+ back: Zpět
preamble: Tohle nastavují a prosazují moderátoři %{domain}.
title: Některá základní pravidla.
security: Zabezpečení
@@ -1155,8 +1164,6 @@ cs:
storage: Úložiště médií
featured_tags:
add_new: Přidat nový
- errors:
- limit: Již jste zvýraznili maximální počet hashtagů
hint_html: "Co jsou zvýrazněné hashtagy? Zobrazují se prominentně na vašem veřejném profilu a dovolují lidem prohlížet si vaše veřejné příspěvky konkrétně pod těmi hashtagy. Je to skvělý nástroj pro sledování kreativních děl nebo dlouhodobých projektů."
filters:
contexts:
@@ -1284,7 +1291,7 @@ cs:
title: Pozvat lidi
lists:
errors:
- limit: Dosáhli jste maximálního počtu seznamů
+ limit: Dosáhl jste maximálního počtu seznamů
login_activities:
authentication_methods:
otp: aplikací pro dvoufaktorové ověření
@@ -1616,7 +1623,7 @@ cs:
'7889238': 3 měsíce
min_age_label: Hranice stáří
min_favs: Zachovat příspěvky oblíbené alespoň
- min_favs_hint: Nesmaže žádný z vašich příspěvků, který obdržel alespoň dané množství oblíbení. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich oblíbení
+ min_favs_hint: Neodstraňuje žádný z vašich příspěvků, které obdržely alespoň tento počet oblíbených. Nechte prázdné pro odstranění příspěvků bez ohledu na jejich počet oblíbených
min_reblogs: Zachovat příspěvky boostnuté alespoň
min_reblogs_hint: Nesmaže žádný z vašich příspěvků, který byl boostnut alespoň tolikrát. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich boostnutí
stream_entries:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index f870413a5..1e07fcedf 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -99,6 +99,7 @@ cy:
moderation:
active: Yn weithredol
all: Popeth
+ disabled: Analluogwyd
pending: Yn aros
silenced: Cyfyngedig
suspended: Wedi ei atal
@@ -145,6 +146,7 @@ cy:
search: Chwilio
search_same_email_domain: Defnyddwyr eraill gyda'r un parth e-bost
search_same_ip: Defnyddwyr eraill gyda'r un IP
+ security: Diogelwch
security_measures:
only_password: Cyfrinair yn unig
password_and_2fa: Cyfrinair a 2FA
@@ -207,7 +209,7 @@ cy:
destroy_ip_block: Dileu rheol IP
destroy_status: Dileu Postiad
destroy_unavailable_domain: Dileu Parth Ddim ar Gael
- destroy_user_role: Dinistrio Rôl
+ destroy_user_role: Dileu Rôl
disable_2fa_user: Diffodd 2FA
disable_custom_emoji: Analluogi Emoji Addasedig
disable_sign_in_token_auth_user: Analluogi Dilysu Tocyn E-bost ar gyfer Defnyddiwr
@@ -459,6 +461,7 @@ cy:
resolve: Datrys parth
title: Rhwystro parth e-bost newydd
no_email_domain_block_selected: Heb newid unrhyw flociau parth e-bost gan nad oes un wedi'i ddewis
+ not_permitted: Dim caniatâd
resolved_dns_records_hint_html: Mae'r enw parth yn cyd-fynd â'r parthau MX canlynol, sy'n gyfrifol yn y pen draw am dderbyn e-bost. Bydd rhwystro parth MX yn rhwystro cofrestriadau o unrhyw gyfeiriad e-bost sy'n defnyddio'r un parth MX, hyd yn oed os yw'r enw parth gweladwy yn wahanol. Byddwch yn ofalus i beidio â rhwystro darparwyr e-bost mawr.
resolved_through_html: Wedi'i ddatrys trwy %{domain}
title: Parthau e-bost wedi'u rhwystro
@@ -513,6 +516,7 @@ cy:
content_policies:
comment: Nodyn mewnol
description_html: Gallwch ddiffinio polisïau cynnwys a fydd yn cael eu cymhwyso i bob cyfrif o'r parth hwn ac unrhyw un o'i is-barthau.
+ limited_federation_mode_description_html: Gallwch ddewis a ydych am ganiatáu ffedereiddio â'r parth hwn.
policies:
reject_media: Gwrthod cyfryngau
reject_reports: Gwrthod adroddiadau
@@ -633,11 +637,13 @@ cy:
assign_to_self: Neilltuo i mi
assigned: Cymedrolwr wedi'i neilltuo
by_target_domain: Parth y cyfrif a adroddwyd
+ cancel: Canslo
category: Categori
category_description_html: Bydd y rheswm dros adrodd am y cyfrif a/neu’r cynnwys hwn yn cael ei ddyfynnu wrth gyfathrebu â’r cyfrif a adroddwyd
comment:
none: Dim
comment_description_html: 'I ddarparu rhagor o wybodaeth, ysgrifennodd %{name}:'
+ confirm: Cadarnhau
confirm_action: Cadarnhau gweithred cymedroli yn erbyn @%{acct}
created_at: Adroddwyd
delete_and_resolve: Dileu postiadau
@@ -795,7 +801,7 @@ cy:
publish_discovered_servers: Cyhoeddi gweinyddion a ddarganfuwyd
publish_statistics: Cyhoeddi ystadegau
title: Darganfod
- trends: Trendiau
+ trends: Tueddiadau
domain_blocks:
all: I bawb
disabled: I neb
@@ -848,6 +854,7 @@ cy:
suspend: Mae %{name} wedi atal cyfrif %{target}
appeal_approved: Apeliwyd
appeal_pending: Apêl yn aros
+ appeal_rejected: Mae'r apêl wedi'i gwrthod
system_checks:
database_schema_check:
message_html: Mae mudo cronfa ddata ar fin digwydd. Rhedwch nhw i sicrhau bod y rhaglen yn ymddwyn yn ôl y disgwyl
@@ -887,6 +894,7 @@ cy:
zero: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf
title: Dolenni sy'n trendio
usage_comparison: Wedi'i rannu %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe
+ not_allowed_to_trend: Dim caniatâd i dueddu
only_allowed: Derbyniwyd yn unig
pending_review: Yn aros am adolygiad
preview_card_providers:
@@ -1030,6 +1038,7 @@ cy:
applications:
created: Cais wedi ei greu'n llwyddiannus
destroyed: Cais wedi ei ddileu'n llwyddiannus
+ logout: Allgofnodi
regenerate_token: Adfywio tocyn mynediad
token_regenerated: Adfywiwyd y tocyn mynediad yn llwyddiannus
warning: Byddwch yn ofalus iawn gyda'r data hwn. Peidiwch byth â'i rannu ag unrhyw un!
@@ -1066,6 +1075,8 @@ cy:
resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau
reset_password: Ailosod cyfrinair
rules:
+ accept: Derbyn
+ back: Nôl
preamble: Mae'r rhain yn cael eu gosod a'u gorfodi gan y %{domain} cymedrolwyr.
title: Rhai rheolau sylfaenol.
security: Diogelwch
@@ -1213,7 +1224,7 @@ cy:
featured_tags:
add_new: Ychwanegu
errors:
- limit: Rydych chi eisoes wedi cynnwys yr uchafswm o hashnodau
+ limit: Rydych chi eisoes wedi cynnwys y nifer mwyaf o hashnodau
hint_html: "Beth yw hashnodau dan sylw? Maen nhw'n cael eu dangos yn amlwg ar eich proffil cyhoeddus ac yn caniatáu i bobl bori'ch postiadau cyhoeddus yn benodol o dan yr hashnodau hynny. Maen nhw'n arf gwych ar gyfer cadw golwg ar weithiau creadigol neu brojectau tymor hir."
filters:
contexts:
@@ -1357,7 +1368,7 @@ cy:
title: Gwahodd pobl
lists:
errors:
- limit: Rydych wedi cyrraedd uchafswm y rhestrau
+ limit: Rydych chi wedi cyrraedd y nifer mwyaf o restrau
login_activities:
authentication_methods:
otp: ap dilysu dau ffactor
@@ -1409,7 +1420,7 @@ cy:
title: Cymedroil
move_handler:
carry_blocks_over_text: Symudodd y defnyddiwr hwn o %{acct}, yr oeddech wedi'i rwystro.
- carry_mutes_over_text: Symudodd y defnyddiwr hwn o %{acct}, lle roeddech chi wedi'i dewi.
+ carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i anwybyddu.
copy_account_note_text: 'Symudodd y defnyddiwr hwn o %{acct}, dyma oedd eich nodiadau blaenorol amdanynt:'
navigation:
toggle_menu: Toglo'r ddewislen
@@ -1701,7 +1712,7 @@ cy:
'7889238': 3 mis
min_age_label: Trothwy oedran
min_favs: Cadw postiadau ffafriwyd am o leiaf
- min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y swm hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau waeth beth fo'u ffefrynnau
+ min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y nifer hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau, beth bynnag yw eu ffefrynnau
min_reblogs: Cadw postiadau wedi eu hybu o leiaf
min_reblogs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi cael eu hybu o leiaf y nifer hwn o weithiau. Gadewch yn wag i ddileu postiadau waeth beth fo'u nifer o hybiadau
stream_entries:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index d89aef9f3..52313defa 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -91,6 +91,7 @@ da:
moderation:
active: Aktiv
all: Alle
+ disabled: Deaktiveret
pending: Afventer
silenced: Begrænset
suspended: Suspenderet
@@ -133,6 +134,7 @@ da:
search: Søg
search_same_email_domain: Øvrige brugere med samme e-maildomæne
search_same_ip: Øvrige brugere med identisk IP
+ security: Sikkerhed
security_measures:
only_password: Kun adgangskode
password_and_2fa: Adgangskode og 2FA
@@ -427,6 +429,7 @@ da:
resolve: Opløs domæne
title: Blokér nyt e-maildomæne
no_email_domain_block_selected: Ingen e-mailblokeringer ændret (ingen var valgt)
+ not_permitted: Ikke tilladt
resolved_dns_records_hint_html: Domænenavnet opløses til flg. MX-domæner, som i sidste ende er ansvarlige for e-mailmodtagelse. Blokering af et MX-domæne blokerer også tilmeldinger fra enhver e-mailadresse på det pågældende MX-domæne, selv hvis det synlige domænenavn er et andet. Pas på ikke ikke at blokere større e-mailudbydere.
resolved_through_html: Opløst via %{domain}
title: Blokerede e-maildomæner
@@ -473,6 +476,7 @@ da:
content_policies:
comment: Internt notat
description_html: Der kan defineres indholdspolitikker, som anvendes på alle konti fra dette domæne samt alle dets underdomæner.
+ limited_federation_mode_description_html: Man kan vælge, om føderation med dette domæne skal tillades.
policies:
reject_media: Afvis medier
reject_reports: Afvis anmeldelser
@@ -582,11 +586,13 @@ da:
assign_to_self: Tildel til mig
assigned: Tildelt moderator
by_target_domain: Anmeldte kontos domæne
+ cancel: Afbryd
category: Kategori
category_description_html: Årsagen til anmeldelsen af denne konto og/eller indhold refereres i kommunikationen med den anmeldte konto
comment:
none: Ingen
comment_description_html: 'For at give mere information, skrev %{name}:'
+ confirm: Bekræft
confirm_action: Bekræft moderatorhandling for %{acct}
created_at: Anmeldt
delete_and_resolve: Slet indlæg
@@ -788,6 +794,7 @@ da:
suspend: "%{name} suspenderede %{target}s konto"
appeal_approved: Appelleret
appeal_pending: Appel afventer
+ appeal_rejected: Appel afvist
system_checks:
database_schema_check:
message_html: Databasemigreringer afventer. Kør dem for at sikre den forventede adfærd fra applikationen
@@ -823,6 +830,7 @@ da:
other: Delt af %{count} personer den seneste uge
title: Populære links
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
+ not_allowed_to_trend: Ikke tilladt at trende
only_allowed: Kun tilladte
pending_review: Afventer revision
preview_card_providers:
@@ -954,6 +962,7 @@ da:
applications:
created: Applikation oprettet
destroyed: Applikation slettet
+ logout: Log af
regenerate_token: Regenerér adgangstoken
token_regenerated: Adgangstoken regenereret
warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen!
@@ -990,6 +999,8 @@ da:
resend_confirmation: Gensend bekræftelsesinstruktioner
reset_password: Nulstil adgangskode
rules:
+ accept: Acceptér
+ back: Tilbage
preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne.
title: Nogle grundregler.
security: Sikkerhed
@@ -1137,7 +1148,7 @@ da:
featured_tags:
add_new: Tilføj nyt
errors:
- limit: Du har allerede fremhævet det maksimale antal hashtags
+ limit: Det maksimale antal hashtags er allerede fremhævet
hint_html: "Hvad er fremhævede hashtags? De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse hashtags. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter."
filters:
contexts:
@@ -1568,7 +1579,7 @@ da:
'7889238': 3 måneder
min_age_label: Alderstærskel
min_favs: Behold indlæg favoritmarkeret mindst
- min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at ignorere denne tærskel under sletning
+ min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer
min_reblogs: Behold indlæg boostet mindst
min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
stream_entries:
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 6944b54e4..6679ebd23 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -25,7 +25,7 @@ de:
admin:
account_actions:
action: Aktion ausführen
- title: Moderationsaktion auf %{acct} ausführen
+ title: "@%{acct} moderieren"
account_moderation_notes:
create: Notiz abspeichern
created_msg: Moderationshinweis erfolgreich abgespeichert!
@@ -64,8 +64,8 @@ de:
display_name: Angezeigter Name
domain: Domain
edit: Bearbeiten
- email: E-Mail
- email_status: E-Mail-Status
+ email: E-Mail-Adresse
+ email_status: Status der E-Mail-Adresse
enable: Freischalten
enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail
enabled: Freigegeben
@@ -73,7 +73,7 @@ de:
followers: Follower
follows: Folge ich
header: Titelbild
- inbox_url: Posteingangsadresse
+ inbox_url: Privates Postfach (URL)
invite_request_text: Begründung für das Beitreten
invited_by: Eingeladen von
ip: IP-Adresse
@@ -83,7 +83,7 @@ de:
local: Lokal
remote: Extern
title: Herkunft
- login_status: Anmeldestatus
+ login_status: Status
media_attachments: Speicherplatz
memorialize: In Gedenkseite umwandeln
memorialized: Gedenkseite
@@ -91,6 +91,7 @@ de:
moderation:
active: Aktiv
all: Alle
+ disabled: Deaktiviert
pending: In Warteschlange
silenced: Stummgeschaltet
suspended: Gesperrt
@@ -125,27 +126,28 @@ de:
resend_confirmation:
already_confirmed: Dieses Profil wurde bereits bestätigt
send: Bestätigungs-E-Mail erneut senden
- success: Bestätigungs-E-Mail erfolgreich gesendet!
+ success: Bestätigungs-E-Mail erfolgreich verschickt!
reset: Zurücksetzen
reset_password: Passwort zurücksetzen
- resubscribe: Wieder abonnieren
+ resubscribe: Erneut abonnieren
role: Rolle
search: Suchen
search_same_email_domain: Andere Benutzer*innen mit der gleichen E-Mail-Domain
search_same_ip: Andere Benutzer*innen mit derselben IP-Adresse
+ security: Sicherheit
security_measures:
only_password: Nur Passwort
password_and_2fa: Passwort und 2FA
sensitive: Inhaltswarnung
sensitized: Mit Inhaltswarnung versehen
- shared_inbox_url: Geteilte Posteingangsadresse
+ shared_inbox_url: Gemeinsames Postfach (URL)
show:
created_reports: Erstellte Meldungen
targeted_reports: Von Anderen gemeldet
silence: Stummschalten
silenced: Stummgeschaltet
statuses: Beiträge
- strikes: Vorherige Verstöße
+ strikes: Vorherige Maßnahmen
subscribe: Abonnieren
suspend: Sperren
suspended: Gesperrt
@@ -163,12 +165,12 @@ de:
unsuspended_msg: Kontosperre von %{username} erfolgreich aufgehoben
username: Profilname
view_domain: Übersicht für Domain anzeigen
- warn: Warnen
+ warn: Verwarnen
web: Web
whitelisted: Auf der Whitelist
action_logs:
action_types:
- approve_appeal: Einspruch annehmen
+ approve_appeal: Einspruch zulassen
approve_user: Benutzer*in genehmigen
assigned_to_self_report: Bericht zuweisen
change_email_user: E-Mail des Profils ändern
@@ -211,7 +213,7 @@ de:
reopen_report: Meldung wieder eröffnen
resend_user: Bestätigungs-E-Mail erneut senden
reset_password_user: Passwort zurücksetzen
- resolve_report: Bericht lösen
+ resolve_report: Meldung klären
sensitive_account: Konto mit erzwungener Inhaltswarnung
silence_account: Konto stummschalten
suspend_account: Konto sperren
@@ -225,65 +227,65 @@ de:
update_domain_block: Domain-Sperre aktualisieren
update_ip_block: IP-Regel aktualisieren
update_status: Beitrag aktualisieren
- update_user_role: Rolle aktualisieren
+ update_user_role: Rolle bearbeiten
actions:
approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}"
approve_user_html: "%{name} genehmigte die Registrierung von %{target}"
- assigned_to_self_report_html: "%{name} hat sich die Meldung %{target} selbst zugewiesen"
+ assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu"
change_email_user_html: "%{name} hat die E-Mail-Adresse von %{target} geändert"
change_role_user_html: "%{name} hat die Rolle von %{target} geändert"
- confirm_user_html: "%{name} hat die E-Mail-Adresse von %{target} bestätigt"
- create_account_warning_html: "%{name} hat eine Warnung an %{target} gesendet"
- create_announcement_html: "%{name} hat die neue Ankündigung erstellt: %{target}"
+ confirm_user_html: "%{name} bestätigte die E-Mail-Adresse von %{target}"
+ create_account_warning_html: "%{name} sendete eine Warnung an %{target}"
+ create_announcement_html: "%{name} erstellte die neue Ankündigung: %{target}"
create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} gesperrt"
- create_custom_emoji_html: "%{name} hat neues Emoji hochgeladen: %{target}"
- create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet"
+ create_custom_emoji_html: "%{name} lud das neue Emoji %{target} hoch"
+ create_domain_allow_html: "%{name} erlaubte die Föderation mit der Domain %{target}"
create_domain_block_html: "%{name} hat die Domain %{target} gesperrt"
create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gesperrt"
create_ip_block_html: "%{name} hat eine IP-Regel für %{target} erstellt"
- create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt"
- create_user_role_html: "%{name} hat die Rolle %{target} erstellt"
+ create_unavailable_domain_html: "%{name} beendete die Zustellung an die Domain %{target}"
+ create_user_role_html: "%{name} erstellte die Rolle %{target}"
demote_user_html: "%{name} hat %{target} heruntergestuft"
- destroy_announcement_html: "%{name} hat die neue Ankündigung %{target} gelöscht"
+ destroy_announcement_html: "%{name} löschte die Ankündigung %{target}"
destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} entsperrt"
- destroy_custom_emoji_html: "%{name} hat das Emoji gelöscht: %{target}"
- destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt"
+ destroy_custom_emoji_html: "%{name} löschte das Emoji %{target}"
+ destroy_domain_allow_html: "%{name} verwehrte die Föderation mit der Domain %{target}"
destroy_domain_block_html: "%{name} hat die Domain %{target} entsperrt"
destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} entsperrt"
- destroy_instance_html: "%{name} hat die Daten der Domain %{target} entfernt"
+ destroy_instance_html: "%{name} entfernte die Daten der Domain %{target} von diesem Server"
destroy_ip_block_html: "%{name} hat eine IP-Regel für %{target} entfernt"
- destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt"
- destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort"
- destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht"
+ destroy_status_html: "%{name} entfernte einen Beitrag von %{target}"
+ destroy_unavailable_domain_html: "%{name} nahm die Zustellung an die Domain %{target} wieder auf"
+ destroy_user_role_html: "%{name} löschte die Rolle %{target}"
disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert"
- disable_custom_emoji_html: "%{name} hat das Emoji deaktiviert: %{target}"
+ disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} deaktiviert"
disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert"
- enable_custom_emoji_html: "%{name} hat das Emoji aktiviert: %{target}"
+ enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}"
enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert"
enable_user_html: "%{name} hat den Zugang für %{target} aktiviert"
- memorialize_account_html: "%{name} hat das Konto von %{target} in eine Gedenkseite umgewandelt"
- promote_user_html: "%{name} hat %{target} befördert"
+ memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um"
+ promote_user_html: "%{name} beförderte %{target}"
reject_appeal_html: "%{name} hat den Moderations-Beschlussantrag von %{target} abgelehnt"
reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt"
- remove_avatar_user_html: "%{name} hat das Profilbild von %{target} entfernt"
- reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet"
+ remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}"
+ reopen_report_html: "%{name} öffnete die Meldung %{target} wieder"
resend_user_html: "%{name} hat erneut eine Bestätigungs-E-Mail für %{target} gesendet"
- reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt"
+ reset_password_user_html: "%{name} setzte das Passwort von %{target} zurück"
resolve_report_html: "%{name} hat die Meldung %{target} geklärt"
sensitive_account_html: "%{name} hat die Medien von %{target} mit einer Inhaltswarnung versehen"
- silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet"
- suspend_account_html: "%{name} hat das Konto von %{target} gesperrt"
- unassigned_report_html: "%{name} hat die Zuweisung der Meldung %{target} entfernt"
+ silence_account_html: "%{name} schaltete das Konto von %{target} stumm"
+ suspend_account_html: "%{name} sperrte das Konto von %{target}"
+ unassigned_report_html: "%{name} entfernte die Zuweisung der Meldung %{target}"
unblock_email_account_html: "%{name} hat die E-Mail-Adresse von %{target} entsperrt"
unsensitive_account_html: "%{name} hat die Inhaltswarnung für Medien von %{target} aufgehoben"
- unsilence_account_html: "%{name} hat die Stummschaltung von %{target} aufgehoben"
- unsuspend_account_html: "%{name} hat die Kontosperre von %{target} aufgehoben"
- update_announcement_html: "%{name} aktualisierte Ankündigung %{target}"
- update_custom_emoji_html: "%{name} hat das Emoji geändert: %{target}"
+ unsilence_account_html: "%{name} hob die Stummschaltung von %{target} auf"
+ unsuspend_account_html: "%{name} entsperrte das Konto von %{target}"
+ update_announcement_html: "%{name} überarbeitete die Ankündigung %{target}"
+ update_custom_emoji_html: "%{name} bearbeitete das Emoji %{target}"
update_domain_block_html: "%{name} hat die Domain-Sperre für %{target} aktualisiert"
- update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert"
- update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert"
+ update_ip_block_html: "%{name} änderte die Regel für die IP-Adresse %{target}"
+ update_status_html: "%{name} überarbeitete einen Beitrag von %{target}"
update_user_role_html: "%{name} hat die Rolle %{target} geändert"
deleted_account: gelöschtes Konto
empty: Protokolle nicht gefunden.
@@ -310,36 +312,36 @@ de:
custom_emojis:
assign_category: Kategorie zuweisen
by_domain: Domain
- copied_msg: Lokale Kopie des Emoji erfolgreich erstellt
+ copied_msg: Lokale Kopie des Emojis erfolgreich erstellt
copy: Kopieren
- copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden
+ copy_failed_msg: Es konnte keine lokale Kopie dieses Emojis auf diesem Server erstellt werden
create_new_category: Neue Kategorie erstellen
created_msg: Emoji erfolgreich erstellt!
delete: Löschen
destroyed_msg: Emoji erfolgreich gelöscht!
disable: Deaktivieren
disabled: Deaktiviert
- disabled_msg: Das Emoji wurde erfolgreich deaktiviert
+ disabled_msg: Dieses Emoji wurde erfolgreich deaktiviert
emoji: Emoji
enable: Aktivieren
enabled: Aktiviert
- enabled_msg: Das Emoji wurde erfolgreich aktiviert
+ enabled_msg: Dieses Emoji wurde erfolgreich aktiviert
image_hint: PNG oder GIF bis %{size}
list: Aufführen
listed: Angezeigt
new:
- title: Eigenes Emoji hinzufügen
- no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden
+ title: Benutzerdefiniertes Emoji hinzufügen
+ no_emoji_selected: Keine Emojis wurden bearbeitet, da keine ausgewählt wurden
not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt
overwrite: Überschreiben
shortcode: Shortcode
shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche
title: Eigene Emojis
- uncategorized: Nicht kategorisiert
+ uncategorized: Unkategorisiert
unlist: Nicht Aufführen
unlisted: Nicht aufgeführt
- update_failed_msg: Konnte dieses Emoji nicht aktualisieren
- updated_msg: Emoji erfolgreich aktualisiert!
+ update_failed_msg: Konnte dieses Emoji nicht bearbeiten
+ updated_msg: Emoji erfolgreich bearbeitet!
upload: Hochladen
dashboard:
active_users: aktive Benutzer*innen
@@ -360,10 +362,10 @@ de:
one: "%{count} unerledigte*r Benutzer*in"
other: "%{count} unerledigte Benutzer*innen"
resolved_reports: erledigte Meldungen
- software: Software
+ software: Programme
sources: Registrierungsort
- space: Speicherverbrauch
- title: Übersicht
+ space: Speicherplatz
+ title: Dashboard
top_languages: Häufigste Sprachen
top_servers: Aktivste Server
website: Website
@@ -372,31 +374,31 @@ de:
empty: Keine Einsprüche gefunden.
title: Einsprüche
domain_allows:
- add_new: Whitelist-Domain
+ add_new: Föderation mit Domain erlauben
created_msg: Domain wurde erfolgreich zur Whitelist hinzugefügt
- destroyed_msg: Domain wurde von der Whitelist entfernt
+ destroyed_msg: Domain wurde von der Föderation ausgeschlossen
export: Exportieren
import: Import
- undo: Von der Whitelist entfernen
+ undo: Von der Föderation ausschließen
domain_blocks:
- add_new: Neue Domain-Sperre hinzufügen
+ add_new: Neue Domain einschränken
created_msg: Die Domain ist jetzt gesperrt bzw. eingeschränkt
- destroyed_msg: Die Domain-Sperre wurde aufgehoben
+ destroyed_msg: Die Einschränkungen zu dieser Domain wurde entfernt
domain: Domain
- edit: Domain-Sperre bearbeiten
+ edit: Einschränkungen bearbeiten
existing_domain_block: Du hast %{name} bereits stärker eingeschränkt.
existing_domain_block_html: Du hast bereits strengere Beschränkungen für die Domain %{name} verhängt. Du musst diese erst aufheben.
export: Exportieren
import: Importieren
new:
- create: Sperre einrichten
- hint: Die Domainsperre wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden, sondern rückwirkend und automatisch alle Moderationsmethoden auf diese Konten anwenden.
+ create: Server einschränken
+ hint: Die Einschränkung einer Domain wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden. Es werden aber alle Moderationsmethoden rückwirkend und automatisch auf diese Konten angewendet.
severity:
desc_html: "Stummschaltung wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine Sperre wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende keine, um nur Mediendateien abzulehnen."
noop: Kein
silence: Stummschaltung
suspend: Sperren
- title: Neue Domain-Sperre
+ title: Neue Domain einschränken
no_domain_block_selected: Keine Domains gesperrt, weil keine ausgewählt wurde(n)
not_permitted: Dir ist es nicht erlaubt, diese Handlung durchzuführen
obfuscate: Domain-Name verschleiern
@@ -409,7 +411,7 @@ de:
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
reject_reports: Meldungen ablehnen
reject_reports_hint: Alle Meldungen von dieser Domain ignorieren. Irrelevant für Sperrungen.
- undo: Domain-Sperre aufheben
+ undo: Einschränkungen aufheben
view: Domain-Sperre ansehen
email_domain_blocks:
add_new: Neue hinzufügen
@@ -427,6 +429,7 @@ de:
resolve: Domain auflösen
title: Neue E-Mail-Domain sperren
no_email_domain_block_selected: Keine E-Mail-Domain-Sperren wurden geändert, da keine ausgewählt wurden
+ not_permitted: Nicht gestattet
resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails zuständig sind. Das Sperren einer MX-Domain sperrt Anmeldungen aller E-Mail-Adressen, die dieselbe MX-Domain verwenden, auch wenn die sichtbare Domain anders lautet. Achte daher darauf, große E-Mail-Anbieter versehentlich nicht auszusperren.
resolved_through_html: Durch %{domain} aufgelöst
title: Gesperrte E-Mail-Domains
@@ -436,14 +439,14 @@ de:
no_file: Keine Datei ausgewählt
export_domain_blocks:
import:
- description_html: Du bist dabei, eine Liste von Domain-Sperren zu importieren. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
+ description_html: Du bist dabei, eine Liste von Domains zu importieren, die auf diesem Server gesperrt oder anderweitig eingeschränkt werden. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
existing_relationships_warning: Bestehende Folgebeziehungen
private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}'
private_comment_template: Importiert von %{source} am %{date}
- title: Domain-Sperren importieren
+ title: Domains importieren
invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}'
new:
- title: Domain-Sperren importieren
+ title: Domains importieren
no_file: Keine Datei ausgewählt
follow_recommendations:
description_html: "Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet."
@@ -456,7 +459,7 @@ de:
instances:
availability:
description_html:
- one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
+ one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Auslieferungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
other: Wenn die Zustellung an die Domain seit %{count} Tagen erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht.
failures_recorded:
@@ -473,33 +476,34 @@ de:
content_policies:
comment: Interne Notiz
description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden.
+ limited_federation_mode_description_html: Du kannst wählen, ob du eine Föderation mit dieser Domain gestattest.
policies:
reject_media: Medien ablehnen
reject_reports: Meldungen ablehnen
- silence: Stummschalten
+ silence: Stummschaltung
suspend: Gesperrt
- policy: Richtlinie
- reason: Öffentlicher Grund
+ policy: Einschränkung
+ reason: Öffentliche Begründung
title: Inhaltsrichtlinien
dashboard:
- instance_accounts_dimension: Meiste gefolgte Konten
- instance_accounts_measure: gespeicherte Konten
- instance_followers_measure: unsere Follower dort
+ instance_accounts_dimension: Meistgefolgte Konten
+ instance_accounts_measure: deren Konten hier im Cache
+ instance_followers_measure: eigene Follower dort
instance_follows_measure: deren Follower hier
- instance_languages_dimension: Top Sprachen
- instance_media_attachments_measure: gespeicherte Medienanhänge
- instance_reports_measure: Meldungen über deren Accounts
- instance_statuses_measure: gespeicherte Beiträge
+ instance_languages_dimension: Meistverwendete Sprachen
+ instance_media_attachments_measure: deren Medien hier im Cache
+ instance_reports_measure: Meldungen zu deren Accounts
+ instance_statuses_measure: deren Beiträge hier im Cache
delivery:
all: Alle
clear: Zustellfehler löschen
failing: Fehlerhaft
- restart: Lieferung neu starten
- stop: Lieferung stoppen
+ restart: Zustellung neu starten
+ stop: Zustellung beenden
unavailable: Nicht verfügbar
delivery_available: Zustellung funktioniert
- delivery_error_days: Tage seitdem die Zustellung nicht funktioniert
- delivery_error_hint: Wenn eine Lieferung für %{count} Tage nicht möglich ist, wird sie automatisch als nicht lieferbar markiert.
+ delivery_error_days: Tage der fehlerhaften Zustellung
+ delivery_error_hint: Wenn eine Auslieferung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert.
destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung.
empty: Keine Domains gefunden.
known_accounts:
@@ -508,11 +512,11 @@ de:
moderation:
all: Alle
limited: Eingeschränkt
- title: Moderation
+ title: Server
private_comment: Privater Kommentar
public_comment: Öffentlicher Kommentar
- purge: Löschen
- purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten aus dieser Domain löschen. Das kann eine Weile dauern.
+ purge: Säubern
+ purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten von diesem Server löschen. Das kann eine Weile dauern.
title: Föderation
total_blocked_by_us: Von uns gesperrt
total_followed_by_them: Gefolgt von denen
@@ -546,8 +550,8 @@ de:
relationships:
title: Beziehungen von %{acct}
relays:
- add_new: Neues Relay hinzufügen
- delete: Löschen
+ add_new: Neues Relais hinzufügen
+ delete: Entfernen
description_html: Ein Föderierungsrelay ist ein vermittelnder Server, der eine große Anzahl öffentlicher Beiträge zwischen Servern austauscht, die es abonnieren und zu ihm veröffentlichen. Es kann kleinen und mittleren Servern dabei helfen, Inhalte des Fediverse zu entdecken, was andernfalls das manuelle Folgen anderer Leute auf entfernten Servern durch lokale Nutzer erfordern würde.
disable: Ausschalten
disabled: Ausgeschaltet
@@ -557,8 +561,8 @@ de:
inbox_url: Relay-URL
pending: Warte auf Zustimmung des Relays
save_and_enable: Speichern und aktivieren
- setup: Relaisverbindung einrichten
- signatures_not_enabled: Relais funktionieren nicht korrekt, während der sichere Modus oder der Whitelist-Modus aktiviert ist
+ setup: Neues Relais verbinden
+ signatures_not_enabled: Die Relais funktionieren nicht korrekt, wenn der "secure mode" aktiviert oder die Föderation eingeschränkt ist
status: Status
title: Relais
report_notes:
@@ -570,7 +574,7 @@ de:
one: "%{count} Notiz"
other: "%{count} Notizen"
action_log: Protokoll
- action_taken_by: Maßnahme ergriffen durch
+ action_taken_by: Maßnahme ergriffen von
actions:
delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen.
mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung versehen und ein Verstoß wird vermerkt, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können.
@@ -585,11 +589,13 @@ de:
assign_to_self: Mir zuweisen
assigned: Zugewiesene*r Moderator*in
by_target_domain: Domain des gemeldeten Kontos
+ cancel: Abbrechen
category: Kategorie
category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert
comment:
none: Kein
comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:'
+ confirm: Bestätigen
confirm_action: Moderationsaktion gegen @%{acct} bestätigen
created_at: Gemeldet
delete_and_resolve: Beiträge löschen
@@ -600,9 +606,9 @@ de:
mark_as_unresolved: Als ungelöst markieren
no_one_assigned: Niemand
notes:
- create: Kommentar hinzufügen
- create_and_resolve: Mit Kommentar lösen
- create_and_unresolve: Mit Kommentar wieder öffnen
+ create: Notiz hinzufügen
+ create_and_resolve: Mit Notiz wieder lösen
+ create_and_unresolve: Mit Notiz wieder öffnen
delete: Löschen
placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt …
title: Notizen
@@ -636,7 +642,7 @@ de:
delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt
preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:"
record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können
- send_email_html: "@%{acct} eine Warnung per E-Mail senden"
+ send_email_html: "@%{acct} eine Verwarnung per E-Mail schicken"
warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme.
target_origin: Domain des gemeldeten Kontos
title: Meldungen
@@ -655,11 +661,11 @@ de:
devops: DevOps
invites: Einladungen
moderation: Moderation
- special: Spezial
- delete: Löschen
+ special: Besonderheit
+ delete: Entfernen
description_html: Mit Benutzer*inn-Rollen kannst du die Funktionen und Bereiche von Mastodon anpassen, auf die deine Benutzer*innen zugreifen können.
edit: Rolle „%{name}“ bearbeiten
- everyone: Standardberechtigungen
+ everyone: Standard
everyone_full_description_html: Das ist die Basis-Rolle, die für alle Benutzer*innen gilt – auch für diejenigen ohne zugewiesene Rolle. Alle anderen Rollen erben Berechtigungen davon.
permissions_count:
one: "%{count} Berechtigung"
@@ -784,14 +790,15 @@ de:
strikes:
actions:
delete_statuses: "%{name} hat die Beiträge von %{target} entfernt"
- disable: "%{name} hat das Konto von %{target} eingefroren"
+ disable: "%{name} fror das Konto von %{target} ein"
mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen"
none: "%{name} hat eine Warnung an %{target} gesendet"
sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen"
- silence: "%{name} hat das Konto von %{target} stummgeschaltet"
- suspend: "%{name} hat das Konto von %{target} gesperrt"
+ silence: "%{name} schaltete das Konto von %{target} stumm"
+ suspend: "%{name} sperrte das Konto von %{target}"
appeal_approved: Einspruch angenommen
appeal_pending: Einspruch ausstehend
+ appeal_rejected: Einspruch abgelehnt
system_checks:
database_schema_check:
message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führe sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält
@@ -827,6 +834,7 @@ de:
other: In der letzten Woche von %{count} Personen geteilt
title: Angesagte Links
usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal
+ not_allowed_to_trend: Darf nicht trenden
only_allowed: Nur Genehmigte
pending_review: Überprüfung ausstehend
preview_card_providers:
@@ -851,7 +859,7 @@ de:
current_score: Aktuelle Punktzahl %{score}
dashboard:
tag_accounts_measure: eindeutige Verwendungen
- tag_languages_dimension: Top Sprachen
+ tag_languages_dimension: Meistverwendete Sprachen
tag_servers_dimension: Top Server
tag_servers_measure: verschiedene Server
tag_uses_measure: Gesamtnutzungen
@@ -863,21 +871,21 @@ de:
not_usable: Kann nicht verwendet werden
peaked_on_and_decaying: In den Trends am %{date}, jetzt absteigend
title: Angesagte Hashtags
- trendable: Darf unter Trends erscheinen
- trending_rank: 'Trend #%{rank}'
- usable: Kann verwendet werden
- usage_comparison: Heute %{today} Mal genutzt, gestern %{yesterday} Mal
+ trendable: Darf in den Trends erscheinen
+ trending_rank: Platz %{rank}
+ usable: Darf verwendet werden
+ usage_comparison: Heute %{today}-mal und gestern %{yesterday}-mal genutzt
used_by_over_week:
one: In der letzten Woche von einer Person genutzt
other: In der letzten Woche von %{count} Personen genutzt
title: Trends
- trending: Häufig diskutiert
+ trending: Angesagt
warning_presets:
add_new: Neu hinzufügen
delete: Löschen
edit_preset: Warnungsvorlage bearbeiten
- empty: Du hast noch keine Warnungsvorlagen hinzugefügt.
- title: Warnungsvorlagen verwalten
+ empty: Du hast noch keine Moderationsvorlagen hinzugefügt.
+ title: Moderationsvorlagen verwalten
webhooks:
add_new: Endpunkt hinzufügen
delete: Löschen
@@ -925,7 +933,7 @@ de:
new_trending_statuses:
title: Angesagte Beiträge
new_trending_tags:
- no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags.
+ no_approved_tags: Es gibt keine genehmigten Hashtags, die gerade im Trend liegen.
requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten angesagten Hashtag übertreffen, der derzeit #%{lowest_tag_name} mit einer Punktzahl von %{lowest_tag_score} ist.'
title: Angesagte Hashtags
subject: Neue Trends zur Überprüfung auf %{instance}
@@ -944,7 +952,7 @@ de:
discovery: Entdecken
localization:
body: Mastodon wird von Freiwilligen übersetzt.
- guide_link: https://de.crowdin.com/project/mastodon
+ guide_link: https://de.crowdin.com/project/mastodon/de
guide_link_text: Alle können mitmachen und etwas dazu beitragen.
sensitive_content: Inhaltswarnung
toot_layout: Timeline-Layout
@@ -952,12 +960,13 @@ de:
notification_preferences: E-Mail-Einstellungen ändern
salutation: "%{name},"
settings: 'E-Mail-Einstellungen ändern: %{link}'
- view: 'Ansehen:'
+ view: 'Hier überprüfen:'
view_profile: Profil anzeigen
- view_status: Beitrag öffnen
+ view_status: Beitrag anschauen
applications:
created: Anwendung erfolgreich erstellt
destroyed: Anwendung erfolgreich gelöscht
+ logout: Abmelden
regenerate_token: Zugangs-Token neu erstellen
token_regenerated: Zugriffstoken erfolgreich neu erstellt
warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
@@ -991,13 +1000,15 @@ de:
saml: SAML
register: Registrieren
registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
- resend_confirmation: Bestätigungsanweisungen erneut senden
+ resend_confirmation: Bestätigungs-E-Mail erneut versenden
reset_password: Passwort zurücksetzen
rules:
+ accept: Akzeptieren
+ back: Zurück
preamble: Diese werden von den %{domain}-Moderator*innen festgelegt und erzwungen.
title: Einige Grundregeln.
security: Sicherheit
- set_new_password: Neues Passwort setzen
+ set_new_password: Neues Passwort einrichten
setup:
email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten.
email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern.
@@ -1015,14 +1026,14 @@ de:
pending: Die Prüfung deiner Bewerbung steht noch aus. Dies kann einige Zeit in Anspruch nehmen. Sobald deine Bewerbung genehmigt wurde, erhältst du eine E-Mail.
redirecting_to: Dein Konto ist inaktiv, weil es zu %{acct} umgezogen ist.
view_strikes: Vorherige Verstöße deines Kontos ansehen
- too_fast: Formular zu schnell gesendet, versuche es erneut.
+ too_fast: Formular zu schnell abgeschickt, versuche es erneut.
use_security_key: Sicherheitsschlüssel verwenden
authorize_follow:
already_following: Du folgst diesem Konto bereits
- already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts versendet
- error: Das Remote-Konto konnte nicht geladen werden
+ already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts gestellt
+ error: Bedauerlicherweise konnte das externe Konto nicht geladen werden
follow: Folgen
- follow_request: 'Du hast eine Folgeanfrage gesendet an:'
+ follow_request: 'Du hast eine Folgeanfrage gestellt an:'
following: 'Erfolg! Du folgst nun:'
post_follow:
close: Oder du schließt einfach dieses Fenster.
@@ -1033,7 +1044,7 @@ de:
confirm: Fortfahren
hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen."
invalid_password: Ungültiges Passwort
- prompt: Gib dein Passwort ein, um fortzufahren
+ prompt: Bestätige mit deinem Passwort, um fortzufahren
crypto:
errors:
invalid_key: ist kein gültiger Ed25519- oder Curve25519-Schlüssel
@@ -1044,12 +1055,12 @@ de:
with_month_name: "%B %d, %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count}h"
- about_x_months: "%{count}mo"
- about_x_years: "%{count}y"
- almost_x_years: "%{count}y"
+ about_x_hours: "%{count} h"
+ about_x_months: "%{count} Mon."
+ about_x_years: "%{count} J"
+ almost_x_years: "%{count} J"
half_a_minute: Gerade eben
- less_than_x_minutes: "%{count}m"
+ less_than_x_minutes: "%{count} Min"
less_than_x_seconds: Gerade eben
over_x_years: "%{count}J"
x_days: "%{count}T"
@@ -1114,10 +1125,10 @@ de:
'422':
content: Sicherheitsüberprüfung fehlgeschlagen. Sperrst du Cookies aus?
title: Sicherheitsüberprüfung fehlgeschlagen
- '429': Du wurdest gedrosselt
+ '429': Zu viele Anfragen
'500':
content: Bitte verzeih', etwas ist bei uns schiefgegangen.
- title: Diese Seite ist kaputt
+ title: Diese Seite enthält einen Fehler
'503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden.
noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren.
existing_username_validator:
@@ -1130,29 +1141,29 @@ de:
hint_html: Du kannst ein Archiv deiner Beiträge, Listen, hochgeladenen Medien usw. anfordern. Die exportierten Daten werden im ActivityPub-Format gespeichert und können mit geeigneter Software ausgewertet und angezeigt werden. Du kannst alle 7 Tage ein Archiv erstellen lassen.
in_progress: Persönliches Archiv wird erstellt …
request: Dein Archiv anfordern
- size: Größe
- blocks: Gesperrte Accounts
+ size: Dateigröße
+ blocks: Gesperrte Profile
bookmarks: Lesezeichen
csv: CSV
domain_blocks: Gesperrte Domains
lists: Listen
- mutes: Stummgeschaltete Accounts
+ mutes: Stummgeschaltete Profile
storage: Medienspeicher
featured_tags:
- add_new: Neu hinzufügen
+ add_new: Neuen hinzufügen
errors:
- limit: Du hast bereits die maximale Anzahl an empfohlenen Hashtags erreicht
+ limit: Du hast bereits die maximale Anzahl an Hashtags erreicht
hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil hervorgehoben und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen."
filters:
contexts:
account: Profile
- home: Startseite
+ home: Startseite und Listen
notifications: Mitteilungen
public: Öffentliche Timelines
thread: Unterhaltungen
edit:
- add_keyword: Stichwort hinzufügen
- keywords: Stichwörter
+ add_keyword: Schlagwort hinzufügen
+ keywords: Schlagworte
statuses: Individuelle Beiträge
statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen..
title: Filter bearbeiten
@@ -1166,7 +1177,7 @@ de:
expires_in: Läuft ab in %{distance}
expires_on: Läuft am %{date} ab
keywords:
- one: "%{count} Stichwort"
+ one: "%{count} Schlagworte"
other: "%{count} Stichwörter"
statuses:
one: "%{count} Beitrag"
@@ -1179,14 +1190,14 @@ de:
save: Neuen Filter speichern
title: Neuen Filter hinzufügen
statuses:
- back_to_filter: Zurück zum Filter
+ back_to_filter: Zurück zu den Filtern
batch:
remove: Filter entfernen
index:
hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen.
title: Gefilterte Beiträge
footer:
- trending_now: In den Trends
+ trending_now: Jetzt in den Trends
generic:
all: Alle
all_items_on_page_selected_html:
@@ -1198,7 +1209,7 @@ de:
changes_saved_msg: Änderungen gespeichert!
copy: Kopieren
delete: Löschen
- deselect: Auswahl für alle aufheben
+ deselect: Alle abwählen
none: Keine
order_by: Sortieren nach
save_changes: Änderungen speichern
@@ -1220,15 +1231,15 @@ de:
merge_long: Behalte existierende Datensätze und füge neue hinzu
overwrite: Überschreiben
overwrite_long: Ersetze aktuelle Datensätze mit neuen
- preface: Daten, die du von einem anderen Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast.
+ preface: Daten, die du von einem Mastodon-Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast.
success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet
types:
- blocking: Sperrliste
+ blocking: Gesperrte Profile
bookmarks: Lesezeichen
- domain_blocking: Domain-Sperrliste
- following: Folgeliste
- muting: Stummschaltungsliste
- upload: Liste importieren
+ domain_blocking: Gesperrte Domains
+ following: Folge ich
+ muting: Stummgeschaltete Profile
+ upload: Datei importieren
invites:
delete: Deaktivieren
expired: Abgelaufen
@@ -1243,14 +1254,14 @@ de:
generate: Einladungslink erstellen
invited_by: 'Du wurdest eingeladen von:'
max_uses:
- one: 1 mal verwendet
- other: "%{count} mal verwendet"
+ one: 1-mal verwendet
+ other: "%{count}-mal verwendet"
max_uses_prompt: Keine Einschränkung
prompt: Erstelle Einladungen und teile die dazugehörigen Links, um anderen einen Zugang zu diesem Server zu gewähren
table:
expires_at: Läuft ab
uses: Verwendet
- title: Leute einladen
+ title: Einladungen
lists:
errors:
limit: Du hast die maximale Anzahl an Listen erreicht
@@ -1279,7 +1290,7 @@ de:
already_moved: ist das gleiche Konto, zu dem du bereits umgezogen bist
missing_also_known_as: referenziert nicht zurück auf dieses Konto
move_to_self: darf nicht das aktuelles Konto sein
- not_found: kann nicht gefunden werden
+ not_found: konnte nicht gefunden werden
on_cooldown: Die Abklingzeit läuft gerade
followers_count: Anzahl der Follower zum Zeitpunkt der Migration des Accounts
incoming_migrations: Von einem anderen Konto umziehen
@@ -1317,7 +1328,7 @@ de:
subject: "%{name} registrierte sich"
favourite:
body: 'Dein Beitrag wurde von %{name} favorisiert:'
- subject: "%{name} hat deinen Beitrag favorisiert"
+ subject: "%{name} favorisierte deinen Beitrag"
title: Neue Favorisierung
follow:
body: "%{name} folgt dir jetzt!"
@@ -1326,12 +1337,12 @@ de:
follow_request:
action: Verwalte Folge-Anfragen
body: "%{name} möchte dir folgen"
- subject: 'Ausstehender Follower: %{name}'
- title: Neue Folge-Anfrage
+ subject: 'Ausstehende Folgeanfragen: %{name}'
+ title: Neue Folgeanfrage
mention:
action: Antworten
- body: "%{name} hat dich erwähnt:"
- subject: "%{name} hat dich erwähnt"
+ body: 'Du wurdest von %{name} erwähnt:'
+ subject: "%{name} erwähnte dich"
title: Neue Erwähnung
poll:
subject: Eine Umfrage von %{name} ist beendet
@@ -1340,7 +1351,7 @@ de:
subject: "%{name} hat deinen Beitrag geteilt"
title: Dein Beitrag wurde geteilt
status:
- subject: "%{name} hat gerade etwas gepostet"
+ subject: "%{name} veröffentlichte gerade einen Beitrag"
update:
subject: "%{name} bearbeitete einen Beitrag"
notifications:
@@ -1350,12 +1361,12 @@ de:
number:
human:
decimal_units:
- format: "%n%u"
+ format: "%n %u"
units:
- billion: B
- million: M
+ billion: Mrd
+ million: Mio
quadrillion: Q
- thousand: K
+ thousand: Tsd
trillion: T
otp_authentication:
code_hint: Gib den Code ein, den deine 2FA- bzw. TOTP-App generiert hat, um den Vorgang zu bestätigen
@@ -1364,7 +1375,7 @@ de:
instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst."
manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App.
setup: Einrichten
- wrong_code: Der eingegebene Code war ungültig! Sind die Serverzeit und die Gerätezeit korrekt?
+ wrong_code: Der eingegebene Code ist ungültig! Laufen Serverzeit und Gerätezeit synchron?
pagination:
newer: Neuer
next: Weiter
@@ -1373,12 +1384,12 @@ de:
truncate: "…"
polls:
errors:
- already_voted: Du hast bereits für diese Umfrage abgestimmt
+ already_voted: Du hast an dieser Umfrage bereits teilgenommen
duplicate_options: enthält doppelte Einträge
- duration_too_long: ist zu weit in der Zukunft
+ duration_too_long: liegt zu weit in der Zukunft
duration_too_short: ist zu früh
- expired: Die Umfrage ist bereits vorbei
- invalid_choice: Die gewählte Abstimmoption existiert nicht
+ expired: Diese Umfrage ist bereits beendet
+ invalid_choice: Diese Auswahl existiert nicht
over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein
too_few_options: muss mindestens einen Eintrag haben
too_many_options: kann nicht mehr als %{max} Einträge beinhalten
@@ -1421,7 +1432,7 @@ de:
content_warning: 'Inhaltswarnung:'
descriptions:
account: Öffentliche Beiträge von @%{acct}
- tag: 'Öffentliche Beiträge mit dem Tag #%{hashtag}'
+ tag: 'Öffentliche Beiträge mit dem Hashtag #%{hashtag}'
scheduled_statuses:
over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht
over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht
@@ -1433,7 +1444,7 @@ de:
alipay: Alipay
blackberry: BlackBerry
chrome: Chrome
- edge: Microsoft Edge
+ edge: Edge
electron: Electron
firefox: Firefox
generic: Unbekannter Browser
@@ -1459,15 +1470,15 @@ de:
firefox_os: Firefox OS
ios: iOS
linux: Linux
- mac: Mac
+ mac: macOS
other: unbekanntes Betriebssystem
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: Widerrufen
- revoke_success: Sitzung erfolgreich geschlossen
+ revoke_success: Sitzung erfolgreich widerrufen
title: Sitzungen
- view_authentication_history: Authentifizierungsverlauf deines Kontos anzeigen
+ view_authentication_history: Anmeldeverlauf deines Kontos anzeigen
settings:
account: Konto
account_settings: Kontoeinstellungen
@@ -1475,14 +1486,14 @@ de:
appearance: Design
authorized_apps: Genehmigte Apps
back: Zurück zu Mastodon
- delete: Konto löschen
+ delete: Kontolöschung
development: Entwicklung
edit_profile: Profil bearbeiten
export: Exportieren
featured_tags: Empfohlene Hashtags
import: Importieren
import_and_export: Importieren und exportieren
- migrate: Konto-Umzug
+ migrate: Kontoumzug
notifications: Benachrichtigungen
preferences: Einstellungen
profile: Profil
@@ -1507,9 +1518,9 @@ de:
content_warning: 'Inhaltswarnung: %{warning}'
default_language: Wie die Sprache des Webinterface
disallowed_hashtags:
- one: 'enthält einen verbotenen Hashtag: %{tags}'
- other: 'enthält verbotene Hashtags: %{tags}'
- edited_at_html: Bearbeitet %{date}
+ one: 'enthält einen nicht-erlaubten Hashtag: %{tags}'
+ other: 'enthält nicht-erlaubte Hashtags: %{tags}'
+ edited_at_html: 'Bearbeitet: %{date}'
errors:
in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren.
open_in_web: Im Web öffnen
@@ -1532,7 +1543,7 @@ de:
show_older: Ältere anzeigen
show_thread: Thread anzeigen
sign_in_to_participate: Melde dich an, um an der Unterhaltung teilzunehmen
- title: '%{name}: "%{quote}"'
+ title: "%{name}: „%{quote}“"
visibilities:
direct: Direktnachricht
private: Nur eigene Follower
@@ -1540,7 +1551,7 @@ de:
public: Öffentlich
public_long: Für alle sichtbar
unlisted: Nicht gelistet
- unlisted_long: Für alle sichtbar, aber in öffentlichen Timelines nicht aufgelistet
+ unlisted_long: Für alle sichtbar (mit Ausnahme von öffentlichen Timelines)
statuses_cleanup:
enabled: Automatisch alte Beiträge löschen
enabled_hint: Löscht automatisch deine Beiträge, sobald sie die angegebene Altersgrenze erreicht haben, es sei denn, sie entsprechen einer der unten angegebenen Ausnahmen
@@ -1573,7 +1584,7 @@ de:
'7889238': 3 Monate
min_age_label: Altersgrenze
min_favs: Behalte Beiträge, die häufiger favorisiert wurden als …
- min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen
+ min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge, unabhängig der Anzahl an Favorisierungen zu löschen
min_reblogs: Behalte Beiträge, die öfter geteilt wurden als
min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen
stream_entries:
@@ -1582,7 +1593,7 @@ de:
sensitive_content: Inhaltswarnung
strikes:
errors:
- too_late: Es ist zu spät, um gegen diesen Verstoß Einspruch zu erheben
+ too_late: Es ist zu spät, um gegen diese Maßnahme Einspruch zu erheben
tags:
does_not_match_previous_name: entspricht nicht dem vorherigen Namen
themes:
@@ -1591,9 +1602,9 @@ de:
mastodon-light: Mastodon (Hell)
time:
formats:
- default: "%d.%m.%Y %H:%M"
+ default: "%d.%m.%Y um %H:%M Uhr"
month: "%b %Y"
- time: "%H:%M"
+ time: "%H:%M Uhr"
two_factor_authentication:
add: Hinzufügen
disable: Zwei-Faktor-Authentisierung (2FA) deaktivieren
@@ -1622,16 +1633,16 @@ de:
backup_ready:
explanation: Du hast eine vollständige Sicherung deines Mastodon-Kontos angefordert. Das Backup kann jetzt heruntergeladen werden!
subject: Dein persönliches Archiv kann heruntergeladen werden
- title: Archivmitnahme
+ title: Archiv-Download
suspicious_sign_in:
- change_password: dein Passwort zu ändern
- details: 'Hier sind die Details des Versuchs:'
+ change_password: dein Passwort ändern
+ details: 'Hier sind die Details zu den Anmeldeversuchen:'
explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt.
further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern.
subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen
title: Eine neue Anmeldung
warning:
- appeal: Einspruch einsenden
+ appeal: Einspruch erheben
appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden.
categories:
spam: Spam
@@ -1643,7 +1654,7 @@ de:
sensitive: Von nun an werden alle deine hochgeladenen Mediendateien mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt.
silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
- reason: 'Grund:'
+ reason: 'Begründung:'
statuses: 'Zitierte Beiträge:'
subject:
delete_statuses: Deine Beiträge auf %{acct} wurden entfernt
@@ -1662,14 +1673,14 @@ de:
silence: Konto stummgeschaltet
suspend: Konto gesperrt
welcome:
- edit_profile_action: Profil einrichten
+ edit_profile_action: Profil bearbeiten
edit_profile_step: Du kannst dein Profil anpassen, indem du ein Profilbild hochlädst, deinen Anzeigenamen änderst und vieles mehr. Du kannst dich dafür entscheiden, neue Follower zu überprüfen, bevor sie dir folgen dürfen.
explanation: Hier sind ein paar Tipps, um loszulegen
- final_action: Fang an zu posten
+ final_action: Mit erstem Beitrag starten
final_step: 'Fang jetzt an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel in der lokalen Timeline oder über die Hashtags. Möglicherweise möchtest du dich allen mit dem Hashtag #neuhier vorstellen.'
full_handle: Dein vollständiger Profilname
full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können.
- subject: Willkommen bei Mastodon
+ subject: Willkommen bei Mastodon!
title: Willkommen an Bord, %{name}!
users:
follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen
@@ -1686,7 +1697,7 @@ de:
error: Beim Hinzufügen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut.
success: Dein Sicherheitsschlüssel wurde erfolgreich hinzugefügt.
delete: Löschen
- delete_confirmation: Bist du sicher, dass du diesen Sicherheitsschlüssel löschen möchtest?
+ delete_confirmation: Bist du dir sicher, dass du diesen Sicherheitsschlüssel löschen möchtest?
description_html: Wenn du die Authentifizierung mit Sicherheitsschlüssel aktivierst, musst du einen deiner Sicherheitsschlüssel verwenden, um dich anmelden zu können.
destroy:
error: Es gab ein Problem beim Löschen deines Sicherheitsschlüssels. Bitte versuche es erneut.
diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml
index 5ce015704..2881ce4c6 100644
--- a/config/locales/devise.bg.yml
+++ b/config/locales/devise.bg.yml
@@ -41,7 +41,7 @@ bg:
subject: 'Mastodon: Потвърдете имейла за %{instance}'
title: Потвърдете своя имейл адрес
reset_password_instructions:
- action: Промяна на парола
+ action: Промяна на паролата
explanation: Поискахте нова парола за акаунта си.
extra: Ако не сте заявили това, то игнорирайте това е-писмо. Паролата ви няма да се променя, докато не влезете от връзката по-горе и не създадете нова.
subject: 'Mastodon: Указания за задаване на нова парола'
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index e5ce87ebe..577cf1300 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -2,24 +2,24 @@
de:
devise:
confirmations:
- confirmed: Deine E-Mail-Adresse wurde bestätigt.
+ confirmed: Deine E-Mail-Adresse wurde erfolgreich bestätigt.
send_instructions: Du wirst in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, wirst du in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast.
failure:
already_authenticated: Du bist bereits angemeldet.
inactive: Dein Konto wurde noch nicht aktiviert.
invalid: "%{authentication_keys} oder Passwort ungültig."
- last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird.
+ last_attempt: Du hast nur noch einen Versuch, bevor dein Zugang gesperrt wird.
locked: Dein Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
- pending: Dein Konto wird immer noch überprüft.
+ pending: Dein Konto wird weiterhin überprüft.
timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren.
unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.
unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst.
mailer:
confirmation_instructions:
action: E-Mail-Adresse verifizieren
- action_with_app: Bestätigen und zu %{app} zurückkehren
+ action_with_app: Bestätigen – und dann zur App %{app} zurückkehren
explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen.
@@ -31,35 +31,35 @@ de:
subject: 'Mastodon: E-Mail-Adresse geändert'
title: Neue E-Mail-Adresse
password_change:
- explanation: Das Passwort für deinen Account wurde geändert.
+ explanation: Deine Zugangsdaten wurden geändert.
extra: Wenn du dein Passwort nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff auf deinem Account erlangt hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: Passwort geändert'
title: Passwort geändert
reconfirmation_instructions:
explanation: Bestätige deine neue E-Mail-Adresse, um sie zu ändern.
extra: Wenn diese Änderung nicht von dir ausgeführt wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst.
- subject: 'Mastodon: Bestätige E-Mail-Adresse für %{instance}'
+ subject: 'Mastodon: E-Mail-Adresse für %{instance} bestätigen'
title: E-Mail-Adresse verifizieren
reset_password_instructions:
- action: Ändere Passwort
+ action: Passwort ändern
explanation: Du hast ein neues Passwort für deinen Account angefragt.
extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern, solange du den obigen Link anklickst und ein neues erstellst.
- subject: 'Mastodon: Passwort zurücksetzen'
+ subject: 'Mastodon: Anleitung zum Zurücksetzen deines Passworts'
title: Passwort zurücksetzen
two_factor_disabled:
- explanation: Zwei-Faktor-Authentifizierung für dein Konto wurde deaktiviert. Login ist jetzt nur mit E-Mail-Adresse und Passwort möglich.
- subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung deaktiviert'
+ explanation: Zwei-Faktor-Authentisierung (2FA) für dein Konto wurde deaktiviert. Eine Anmeldung ist jetzt nur noch mit E-Mail-Adresse und Passwort möglich.
+ subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) deaktiviert'
title: 2FA deaktiviert
two_factor_enabled:
- explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, das von der verbundenen TOTP-App generiert wird, wird für den Login benötigt.
- subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert'
+ explanation: Die Zwei-Faktor-Authentisierung (2FA) wurde für dein Konto aktiviert. Das zeitbasierte Einmalkennwort, das von deiner TOTP-App generiert wird, muss bei jeder Anmeldung zusätzlich eingegeben werden.
+ subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) aktiviert'
title: 2FA aktiviert
two_factor_recovery_codes_changed:
explanation: Die vorherigen Wiederherstellungscodes wurden ungültig gemacht und es wurden neue erstellt.
subject: 'Mastodon: Zwei-Faktor-Wiederherstellungscodes neu erstellt'
title: 2FA-Wiederherstellungscodes geändert
unlock_instructions:
- subject: 'Mastodon: Konto entsperren'
+ subject: 'Mastodon: Anleitung zur Entsperrung deines Kontos'
webauthn_credential:
added:
explanation: Der folgende Sicherheitsschlüssel wurde zu deinem Konto hinzugefügt
@@ -87,8 +87,8 @@ de:
updated: Ihr Passwort wurde erfolgreich geändert. Du bist jetzt angemeldet.
updated_not_active: Dein Passwort wurde erfolgreich geändert.
registrations:
- destroyed: Dein Konto wurde gelöscht.
- signed_up: Willkommen! Du hast dich erfolgreich registriert.
+ destroyed: Tschüss! Dein Konto wurde erfolgreich gelöscht. Wir hoffen, dich bald wiederzusehen.
+ signed_up: Herzlich willkommen! Du hast dich erfolgreich registriert.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Allerdings ist dein Konto noch nicht aktiviert und du kannst dich daher noch nicht anmelden.
signed_up_but_locked: Du hast dich erfolgreich registriert. Allerdings ist dein Konto gesperrt und du kannst dich daher nicht anmelden.
signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast, werden wir deine Anfrage überprüfen. Du wirst benachrichtigt werden, falls die Anfrage angenommen wurde.
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index ce5a35efd..08bc18ec1 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -18,13 +18,13 @@ fi:
unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat.
mailer:
confirmation_instructions:
- action: Vahvista sähköpostiosoitteesi
+ action: Vahvista sähköpostiosoite
action_with_app: Vahvista ja palaa %{app}
- explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Aktivoi tili yhdellä klikkauksella. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta.
+ explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta.
explanation_when_pending: Teit hakemuksen kutsusta palvelimelle %{host} tällä sähköpostiosoitteella. Kun olet vahvistanut sähköpostiosoitteesi, tarkistamme hakemuksesi. Voit kirjautua sisään muuttaaksesi hakemuksen sisältöä tai poistaaksesi tilin, mutta et voi käyttää suurinta osaa toiminnallisuudesta ennen kuin hakemuksesi on hyväksytty. Jos hakemuksesi hylätään, tietosi poistetaan eikä sinulta tarvita enempää toimia. Jos sinä et tehnyt hakemusta, voit jättää tämän viestin huomiotta.
- extra_html: Katso myös palvelimen säännöt ja käyttöehdot.
+ extra_html: Tutustu myös palvelimen sääntöihin ja palveluehtoihimme.
subject: 'Mastodon: Vahvistusohjeet instanssille %{instance}'
- title: Vahvista sähköpostiosoitteesi
+ title: Vahvista sähköpostiosoite
email_changed:
explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:'
extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään.
diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml
index 6ae910da0..14b26845a 100644
--- a/config/locales/devise.my.yml
+++ b/config/locales/devise.my.yml
@@ -3,18 +3,30 @@ my:
devise:
confirmations:
confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။
+ send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
failure:
+ already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။
invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
+ last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။
+ locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။
not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
+ timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။
+ unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။
+ unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။
mailer:
confirmation_instructions:
action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ
+ extra_html: ကျေးဇူးပြု၍ ဆာဗာစည်းမျဉ်းများ နှင့် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများကိုလည်း စစ်ဆေးကြည့်ပါ။
+ subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ
title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
email_changed:
+ explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် -
subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ'
title: အီးမေးလ်လိပ်စာအသစ်
password_change:
+ explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။
subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ'
title: စကားဝှက်ပြောင်းလဲသွားပြီ
reconfirmation_instructions:
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index e3f5dee2a..85b775b0b 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -20,8 +20,8 @@ zh-TW:
confirmation_instructions:
action: 驗證電子郵件地址
action_with_app: 確認並返回 %{app}
- explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
- explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
+ explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。
+ explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。
extra_html: 同時也請看看伺服器規則與服務條款。
subject: Mastodon:%{instance} 確認說明
title: 驗證電子郵件地址
diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml
index 21a94acec..e79aa0359 100644
--- a/config/locales/doorkeeper.cy.yml
+++ b/config/locales/doorkeeper.cy.yml
@@ -129,7 +129,7 @@ cy:
crypto: Amgryptio o ben i ben
favourites: Ffefrynnau
filters: Hidlyddion
- follow: Yn dilyn, Wedi Tewi a Blociau
+ follow: Dilynion, Anwybyddiadau a Blociau
follows: Yn dilyn
lists: Rhestrau
media: Atodiadau cyfryngau
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index 21f508d90..00c4ad678 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -25,11 +25,11 @@ de:
edit: Bearbeiten
submit: Speichern
confirmations:
- destroy: Bist du sicher?
+ destroy: Bist du dir sicher?
edit:
title: Anwendung bearbeiten
form:
- error: Hoppla! Bitte überprüfe das Formular auf mögliche Fehler
+ error: Ups! Bitte überprüfe das Formular auf mögliche Fehler
help:
native_redirect_uri: Benutze %{native_redirect_uri} für lokale Tests
redirect_uri: Benutze eine Zeile pro URI
@@ -61,7 +61,7 @@ de:
title: Ein Fehler ist aufgetreten
new:
prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es ist eine Anwendung von Drittanbietern. Wenn du ihr nicht vertraust, dann solltest du sie nicht autorisieren."
- review_permissions: Rechte überprüfen
+ review_permissions: Berechtigungen überprüfen
title: Autorisierung erforderlich
show:
title: Kopiere diesen Autorisierungs-Code und füge ihn in die Anwendung ein.
@@ -69,7 +69,7 @@ de:
buttons:
revoke: Widerrufen
confirmations:
- revoke: Bist du sicher?
+ revoke: Bist du dir sicher?
index:
authorized_at: Autorisiert am %{date}
description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht zuordnen kannst oder wenn sich eine Anwendung verdächtig verhält, kannst du den Zugriff widerrufen.
@@ -114,9 +114,9 @@ de:
notice: Anwendung widerrufen.
grouped_scopes:
access:
- read: Nur-Lese-Zugriff
+ read: Nur Lesezugriff
read/write: Lese- und Schreibzugriff
- write: Schreibzugriff
+ write: Nur Schreibzugriff
title:
accounts: Konten
admin/accounts: Verwaltung der Konten
@@ -129,7 +129,7 @@ de:
crypto: Ende-zu-Ende-Verschlüsselung
favourites: Favoriten
filters: Filter
- follow: Folge ich, Stummschaltungen und Blockierungen
+ follow: Folge ich, Stummschaltungen und Sperrungen
follows: Folge ich
lists: Listen
media: Medienanhänge
@@ -168,9 +168,9 @@ de:
push: deine Push-Benachrichtigungen erhalten
read: all deine Daten lesen
read:accounts: deine Konteninformationen einsehen
- read:blocks: deine Blockaden einsehen
+ read:blocks: deine Sperren einsehen
read:bookmarks: deine Lesezeichen lesen
- read:favourites: deine Favoriten ansehen
+ read:favourites: deine Favoriten lesen
read:filters: deine Filter ansehen
read:follows: sehen, wem du folgst
read:lists: deine Listen sehen
@@ -186,10 +186,10 @@ de:
write:conversations: Unterhaltungen stummschalten und löschen
write:favourites: Beiträge favorisieren
write:filters: Filter erstellen
- write:follows: Leuten folgen
+ write:follows: Profilen folgen
write:lists: Listen erstellen
write:media: Mediendateien hochladen
write:mutes: Profile und Unterhaltungen stummschalten
write:notifications: deine Benachrichtigungen leeren
- write:reports: andere Leute melden
+ write:reports: andere Profile melden
write:statuses: Beiträge veröffentlichen
diff --git a/config/locales/doorkeeper.fr-QC.yml b/config/locales/doorkeeper.fr-QC.yml
index f8a5b6484..6cccf4847 100644
--- a/config/locales/doorkeeper.fr-QC.yml
+++ b/config/locales/doorkeeper.fr-QC.yml
@@ -122,12 +122,14 @@ fr-QC:
admin/accounts: Gestion des comptes
admin/all: Toutes les fonctionnalités d'administration
admin/reports: Gestion des rapports
+ all: Accès complet à votre compte Mastodon
blocks: Bloqués
bookmarks: Marque-pages
conversations: Conversations
crypto: Chiffrement de bout-en-bout
favourites: Favoris
filters: Filtres
+ follow: Abonnements, comptes masqués et comptes bloqués
follows: Abonnements
lists: Listes
media: Fichiers médias
@@ -147,18 +149,18 @@ fr-QC:
scopes:
admin:read: lire toutes les données du serveur
admin:read:accounts: lire les informations sensibles de tous les comptes
- admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs d'e-mails canoniques
+ admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs de courriels canoniques
admin:read:domain_allows: lire les informations sensibles de tous les domaines autorisés
- admin:read:domain_blocks: lire les informations sensibles de tous les blocqueurs de domaines
- admin:read:email_domain_blocks: lire les informations sensibles de tous les blocqueurs d'e-mails de domaines
+ admin:read:domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines
+ admin:read:email_domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines de courriel
admin:read:ip_blocks: lire les informations sensibles de tous les blocqueurs d'IP
admin:read:reports: lire les informations sensibles de tous les signalements et des comptes signalés
admin:write: modifier toutes les données sur le serveur
admin:write:accounts: effectuer des actions de modération sur les comptes
- admin:write:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs d'e-mails canoniques
+ admin:write:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs de courriels canoniques
admin:write:domain_allows: effectuer des actions de modération sur les autorisations de domaines
admin:write:domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines
- admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs d'e-mails de domaines
+ admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines de courriel
admin:write:ip_blocks: effectuer des actions de modération sur des bloqueurs d'IP
admin:write:reports: effectuer des actions de modération sur les signalements
crypto: utiliser le chiffrement de bout-en-bout
diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml
index b7697074c..345a3b264 100644
--- a/config/locales/doorkeeper.my.yml
+++ b/config/locales/doorkeeper.my.yml
@@ -1,24 +1,174 @@
---
my:
activerecord:
+ attributes:
+ doorkeeper/application:
+ name: အက်ပလီကေးရှင်းအမည်
+ redirect_uri: URI ကို ပြန်ညွှန်းရန်
+ scopes: နယ်ပယ်များ
+ website: အက်ပလီကေးရှင်းဝဘ်ဆိုဒ်
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။
+ relative_uri: URI ဖြစ်ရမည်။
secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။
doorkeeper:
applications:
buttons:
+ authorize: လုပ်ပိုင်ခွင့်
cancel: ပယ်ဖျက်မည်
destroy: ဖျက်ဆီးမည်
edit: ပြင်မည်
submit: တင်သွင်းမည်
confirmations:
destroy: သေချာပါသလား?
+ edit:
+ title: အက်ပလီကေးရှင်းကို ပြင်ဆင်ရန်
+ form:
+ error: အိုး၊ သင့်ဖောင်မှာ အမှားအယွင်းများရှိနိုင်သောကြောင့် စစ်ဆေးပါ
help:
+ native_redirect_uri: ဒေသတွင်းစမ်းသပ်မှုများအတွက် %{native_redirect_uri} ကို အသုံးပြုပါ
redirect_uri: URI တစ်ခုစီအတွက် လိုင်းတစ်ကြောင်းသုံးပါ
+ scopes: နယ်ပယ်များကို နေရာလွတ်များဖြင့် ခွဲခြားပါ။ မူလသတ်မှတ်ထားသည့်နယ်ပယ်များ အသုံးပြုရန်အတွက် အလွတ် ချန်ထားပါ။
index:
+ application: အက်ပလီကေးရှင်း
+ callback_url: URL ပြန်ခေါ်ရန်
delete: ဖျက်မည်
+ empty: သင့်တွင် အက်ပလီကေးရှင်းများ မရှိပါ။
name: အမည်
+ new: အက်ပလီကေးရှင်းအသစ်
+ scopes: နယ်ပယ်များ
+ show: ပြရန်
+ title: သင့်အက်ပလီကေးရှင်းများ
+ new:
+ title: အက်ပလီကေးရှင်းအသစ်
+ show:
+ actions: လုပ်ဆောင်ချက်များ
+ application_id: Client ကီး
+ callback_urls: URLs ပြန်ခေါ်ရန်
+ scopes: နယ်ပယ်များ
+ secret: Client လျှို့ဝှက်ချက်
+ title: အက်ပလီကေးရှင်း - %{name}
+ authorizations:
+ buttons:
+ authorize: လုပ်ပိုင်ခွင့်
+ deny: ငြင်းရန်
+ error:
+ title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်
+ new:
+ review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ
+ title: ခွင့်ပြုချက် လိုအပ်သည်
+ show:
+ title: ဤခွင့်ပြုချက်ကုဒ်ကို ကူးယူပြီး အက်ပလီကေးရှင်းသို့ ကူးထည့်ပါ။
+ authorized_applications:
+ buttons:
+ revoke: ပြန်ရုပ်သိမ်းရန်
+ confirmations:
+ revoke: သေချာပါသလား။
+ index:
+ authorized_at: "%{date} တွင် ခွင့်ပြုခဲ့သည်"
+ description_html: "၎င်းတို့မှာ API အသုံးပြု၍ သင့်အကောင့်ကို ဝင်ရောက်ကြည့်ရှုနိုင်သော အက်ပလီကေးရှင်းများဖြစ်သည်။ ဤနေရာတွင် သင်မသိသော အက်ပလီကေးရှင်းများ ရှိပါက သို့မဟုတ် အက်ပလီကေးရှင်းတစ်ခုသည် လွဲမှားစွာ လုပ်ဆောင်နေပါက ၎င်း၏ ဝင်ရောက်ခွင့်ကို သင် ပြန်လည်ရုပ်သိမ်းနိုင်သည်။"
+ last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်"
+ never_used: မသုံးဖူးပါ
+ scopes: ခွင့်ပြုချက်များ
+ title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ
+ errors:
+ messages:
+ access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။
+ credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။
+ invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။
+ invalid_token:
+ expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ
+ revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည်
+ unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ
+ unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။
+ flash:
+ applications:
+ create:
+ notice: အက်ပလီကေးရှင်းကို ဖန်တီးခဲ့သည်။
+ destroy:
+ notice: အက်ပလီကေးရှင်းကို ဖျက်ခဲ့သည်။
+ update:
+ notice: အက်ပလီကေးရှင်းကို ပြင်ဆင်ခဲ့သည်။
+ authorized_applications:
+ destroy:
+ notice: အက်ပလီကေးရှင်းကို ပြန်ရုပ်သိမ်းခဲ့သည်။
+ grouped_scopes:
+ access:
+ read: ဖတ်ခွင့်သာရှိသည်
+ read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည်
+ title:
+ accounts: အကောင့်များ
+ admin/accounts: အကောင့်စီမံခန့်ခွဲမှု
+ admin/all: စီမံခွင့်ဆိုင်ရာ လုပ်ငန်းဆောင်တာအားလုံး
+ admin/reports: မှတ်တမ်းများ စီမံခန့်ခွဲခြင်း
+ all: သင်၏ Mastodon အကောင့်သို့ အပြည့်အဝ ဝင်ရောက်ခွင့်
+ blocks: ပိတ်ပင်ထားမှုများ
+ bookmarks: မှတ်ထားသည်များ
+ conversations: စကားဝိုင်းများ
+ crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်း
+ favourites: အကြိုက်ဆုံးများ
+ filters: စစ်ထုတ်ထားခြင်းများ
+ follow: စောင့်ကြည့်ခြင်း၊ အသံပိတ်ခြင်းနှင့် ပိတ်ပင်ခြင်းများ
+ follows: စောင့်ကြည့်မယ်
+ lists: စာရင်းများ
+ media: မီဒီယာ ပူးတွဲချက်များ
+ mutes: အသံပိတ်ထားရန်
+ notifications: အသိပေးချက်များ
+ push: အသိပေးချက်များအား ရအောင်ပို့ခြင်း
+ reports: မှတ်တမ်းများ
+ search: ရှာရန်
+ statuses: ပို့စ်များ
+ layouts:
+ admin:
+ nav:
+ applications: အက်ပလီကေးရှင်းများ
+ oauth2_provider: OAuth2 ပံ့ပိုးပေးသူ
+ application:
+ title: OAuth ခွင့်ပြုချက် လိုအပ်ပါသည်
+ scopes:
+ admin:read: ဆာဗာရှိ အချက်အလက်အားလုံးကို ဖတ်ပါ
+ admin:read:accounts: အကောင့်အားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:domain_allows: ခွင့်ပြုထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:domain_blocks: ပိတ်ပင်ထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းအားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:ip_blocks: ပိတ်ပင်ထားသော IP အားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:reports: မှတ်တမ်းများနှင့် တိုင်ကြားထားသောအကောင့်များအားလုံး၏ အရေးကြီးသော အချက်အလက်ကို ဖတ်ပါ။
+ admin:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
+ admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
+ admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:ip_blocks: IP ပိတ်ပင်ခြင်းများအတွက် စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
+ admin:write:reports: အစီရင်ခံစာများပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်းကို အသုံးပြုပါ
+ follow: အကောင့်ဆက်ဆံရေးများကို ပြင်ဆင်ပါ
+ push: သင်ရရှိအောင်ပေးပို့ထားသည့် အသိပေးချက်များကို လက်ခံပါ
+ read: သင့်အကောင့်အချက်အလက်အားလုံးကို ဖတ်ပါ
+ read:accounts: အကောင့်အချက်အလက်များကို ကြည့်ပါ
+ read:blocks: သင် ပိတ်ပင်ထားသည်များကို ကြည့်ပါ
+ read:bookmarks: သင် မှတ်ထားသည်များကို ကြည့်ပါ
+ read:favourites: သင့်အကြိုက်ဆုံးများကို ကြည့်ပါ
+ read:filters: သင် စစ်ထုတ်ထားမှုများကို ကြည့်ပါ
+ read:follows: သင့်အားစောင့်ကြည့်နေသူများကို ကြည့်ပါ
+ read:lists: သင့်စာရင်းများကို ကြည့်ပါ
+ read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ
+ read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ
+ read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ
+ read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ
+ write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
+ write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ
+ write:blocks: အကောင့်များနှင့် ဒိုမိန်းများကို ပိတ်ပင်ပါ
+ write:bookmarks: မှတ်ထားသောပို့စ်များ
+ write:conversations: စကားဝိုင်းများကို အသံပိတ်ပြီး ဖျက်ပါ
+ write:favourites: အကြိုက်ဆုံးပို့စ်များ
+ write:filters: စစ်ထုတ်ခြင်းအား ဖန်တီးပါ
+ write:follows: စောင့်ကြည့်ရန်
+ write:lists: စာရင်းများ ဖန်တီးရန်
+ write:media: မီဒီယာဖိုင်များကို အင်တာနက်ပေါ်တင်ပါ
+ write:mutes: လူများနှင့် စကားဝိုင်းများကို ပိတ်ထားပါ
+ write:notifications: သင့်အအသိပေးချက်များကို ရှင်းလင်းပါ
+ write:statuses: ပို့စ်များအား ရအောင်ပို့ခြင်း
diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml
index 59e133a70..6b078d609 100644
--- a/config/locales/doorkeeper.zh-HK.yml
+++ b/config/locales/doorkeeper.zh-HK.yml
@@ -122,12 +122,14 @@ zh-HK:
admin/accounts: 帳號管理
admin/all: 所有管理功能
admin/reports: 檢舉報告管理
+ all: 完整存取你的 Mastodon 帳號
blocks: 封鎖
bookmarks: 書籤
conversations: 對話
crypto: 端到端加密
favourites: 最愛
filters: 篩選器
+ follow: 追蹤、靜音及封鎖
follows: 追蹤
lists: 名單
media: 媒體附件
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 903fcb8e1..3d28a0e0a 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -91,6 +91,7 @@ el:
moderation:
active: Ενεργός/ή
all: Όλα
+ disabled: Απενεργοποιημένο
pending: Εκκρεμούν
silenced: Περιορισμένοι
suspended: Σε αναστολή
@@ -133,6 +134,7 @@ el:
search: Αναζήτηση
search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail
search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP
+ security: Ασφάλεια
security_measures:
only_password: Μόνο κωδικός πρόσβασης
password_and_2fa: Κωδικός πρόσβασης και 2FA
@@ -237,6 +239,18 @@ el:
create_announcement_html: Ο/Η %{name} δημιούργησε νέα ανακοίνωση %{target}
create_canonical_email_block_html: Ο/Η %{name} απέκλεισε e-mail με το hash %{target}
create_custom_emoji_html: Ο/Η %{name} ανέβασε νέο emoji %{target}
+ create_domain_allow_html: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα
+ create_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα %{target}
+ create_email_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα email %{target}
+ create_ip_block_html: Ο/Η %{name} δημιούργησε κανόνα για την IP %{target}
+ create_unavailable_domain_html: Ο/Η %{name} σταμάτησε να τροφοδοτεί τον τομέα %{target}
+ create_user_role_html: Ο/Η %{name} δημιούργησε ρόλο %{target}
+ demote_user_html: Ο/Η %{name} υποβίβασε τον χρήστη %{target}
+ destroy_announcement_html: Ο/Η %{name} διέγραψε την ανακοίνωση %{target}
+ destroy_canonical_email_block_html: Ο/Η %{name} επέτρεψε email με το hash %{target}
+ destroy_custom_emoji_html: Ο/Η %{name} διέγραψε το emoji %{target}
+ destroy_domain_allow_html: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από τη λίστα εγκρίσεων
+ destroy_domain_block_html: Ο/Η %{name} επέτρεψε τον τομέα %{target}
destroy_email_domain_block_html: Ο/Η %{name} ξεμπλόκαρε το email domain %{target}
destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target}
destroy_ip_block_html: Ο/Η %{name} διέγραψε τον κανόνα για την IP %{target}
@@ -252,7 +266,17 @@ el:
enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target}
memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης
promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target}
+ reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των διαχειριστών από %{target}
reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}"
+ remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target}
+ reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target}
+ resend_user_html: Ο/Η %{name} έστειλε ξανά e-mail επιβεβαίωσης για τον/την %{target}
+ reset_password_user_html: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target}
+ resolve_report_html: Ο/Η %{name} επέλυσε την αναφορά %{target}
+ sensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
+ silence_account_html: Ο/Η %{name} περιόρισε τον λογαριασμό του/της %{target}
+ suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target}
+ unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target}
unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}"
deleted_account: διαγραμμένος λογαριασμός
empty: Δεν βρέθηκαν αρχεία καταγραφής.
@@ -367,6 +391,7 @@ el:
new:
create: Πρόσθεση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
+ not_permitted: Δεν επιτρέπεται
title: Μαύρη λίστα email
export_domain_allows:
no_file: Δεν επιλέχθηκε αρχείο
@@ -455,9 +480,11 @@ el:
assign_to_self: Ανάθεση σε μένα
assigned: Αρμόδιος συντονιστής
by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία
+ cancel: Άκυρο
category: Κατηγορία
comment:
none: Κανένα
+ confirm: Επιβεβαίωση
created_at: Καταγγέλθηκε
delete_and_resolve: Διαγραφή δημοσιεύσεων
forwarded: Προωθημένα
@@ -573,6 +600,8 @@ el:
trending: Δημοφιλή
visibility: Ορατότητα
with_media: Με πολυμέσα
+ strikes:
+ appeal_rejected: Η αίτηση απορρίφθηκε
system_checks:
database_schema_check:
message_html: Υπάρχουν μετακινήσεις βάσης δεδομένων που εκκρεμούν. Παρακαλώ εκτελέστε τις για να βεβαιωθείτε ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται
@@ -584,6 +613,7 @@ el:
updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς
title: Διαχείριση
trends:
+ not_allowed_to_trend: Δεν επιτρέπεται η τάση
only_allowed: Μόνο επιτρεπόμενα
tags:
dashboard:
@@ -643,6 +673,7 @@ el:
applications:
created: Η εφαρμογή δημιουργήθηκε επιτυχώς
destroyed: Η εφαρμογή διαγράφηκε επιτυχώς
+ logout: Αποσύνδεση
regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token)
token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
@@ -676,6 +707,8 @@ el:
resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης
reset_password: Επαναφορά συνθηματικού
rules:
+ accept: Αποδοχή
+ back: Πίσω
title: Ορισμένοι βασικοί κανόνες.
security: Ασφάλεια
set_new_password: Ορισμός νέου συνθηματικού
@@ -787,8 +820,6 @@ el:
storage: Αποθήκευση πολυμέσων
featured_tags:
add_new: Προσθήκη νέας
- errors:
- limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ετικετών
hint_html: "Τι είναι οι προβεβλημένες ετικέτες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ένας ωραίος τρόπος να παρακολουθείς την πορεία μιας δημιουργία ή ενός μακροπρόθεσμου έργου."
filters:
contexts:
@@ -868,9 +899,6 @@ el:
expires_at: Λήγει
uses: Χρήσεις
title: Προσκάλεσε κόσμο
- lists:
- errors:
- limit: Έχεις φτάσει το μέγιστο πλήθος επιτρεπτών λιστών
media_attachments:
validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ενημέρωση που ήδη περιέχει εικόνες
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index e624bb27e..9b4f28c5d 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -91,6 +91,7 @@ en-GB:
moderation:
active: Active
all: All
+ disabled: Disabled
pending: Pending
silenced: Limited
suspended: Suspended
@@ -133,6 +134,7 @@ en-GB:
search: Search
search_same_email_domain: Other users with the same e-mail domain
search_same_ip: Other users with the same IP
+ security: Security
security_measures:
only_password: Only password
password_and_2fa: Password and 2FA
@@ -248,6 +250,122 @@ en-GB:
destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}"
destroy_custom_emoji_html: "%{name} deleted emoji %{target}"
destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}"
+ destroy_domain_block_html: "%{name} unblocked domain %{target}"
+ destroy_email_domain_block_html: "%{name} unblocked e-mail domain %{target}"
+ destroy_instance_html: "%{name} purged domain %{target}"
+ destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
+ destroy_status_html: "%{name} removed post by %{target}"
+ destroy_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
+ destroy_user_role_html: "%{name} deleted %{target} role"
+ disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
+ disable_custom_emoji_html: "%{name} disabled emoji %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}"
+ disable_user_html: "%{name} disabled login for user %{target}"
+ enable_custom_emoji_html: "%{name} enabled emoji %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} enabled e-mail token authentication for %{target}"
+ enable_user_html: "%{name} enabled login for user %{target}"
+ memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page"
+ promote_user_html: "%{name} promoted user %{target}"
+ reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}"
+ reject_user_html: "%{name} rejected sign-up from %{target}"
+ remove_avatar_user_html: "%{name} removed %{target}'s avatar"
+ reopen_report_html: "%{name} reopened report %{target}"
+ resend_user_html: "%{name} resent confirmation e-mail for %{target}"
+ reset_password_user_html: "%{name} reset password of user %{target}"
+ resolve_report_html: "%{name} resolved report %{target}"
+ sensitive_account_html: "%{name} marked %{target}'s media as sensitive"
+ silence_account_html: "%{name} limited %{target}'s account"
+ suspend_account_html: "%{name} suspended %{target}'s account"
+ unassigned_report_html: "%{name} unassigned report %{target}"
+ unblock_email_account_html: "%{name} unblocked %{target}'s email address"
+ unsensitive_account_html: "%{name} unmarked %{target}'s media as sensitive"
+ unsilence_account_html: "%{name} undid limit of %{target}'s account"
+ unsuspend_account_html: "%{name} unsuspended %{target}'s account"
+ update_announcement_html: "%{name} updated announcement %{target}"
+ update_custom_emoji_html: "%{name} updated emoji %{target}"
+ update_domain_block_html: "%{name} updated domain block for %{target}"
+ update_ip_block_html: "%{name} changed rule for IP %{target}"
+ update_status_html: "%{name} updated post by %{target}"
+ update_user_role_html: "%{name} changed %{target} role"
+ deleted_account: deleted account
+ empty: No logs found.
+ filter_by_action: Filter by action
+ filter_by_user: Filter by user
+ title: Audit log
+ announcements:
+ destroyed_msg: Announcement successfully deleted!
+ edit:
+ title: Edit announcement
+ empty: No announcements found.
+ live: Live
+ new:
+ create: Create announcement
+ title: New announcement
+ publish: Publish
+ published_msg: Announcement successfully published!
+ scheduled_for: Scheduled for %{time}
+ scheduled_msg: Announcement scheduled for publication!
+ title: Announcements
+ unpublish: Unpublish
+ unpublished_msg: Announcement successfully unpublished!
+ updated_msg: Announcement successfully updated!
+ custom_emojis:
+ assign_category: Assign category
+ by_domain: Domain
+ copied_msg: Successfully created local copy of the emoji
+ copy: Copy
+ copy_failed_msg: Could not make a local copy of that emoji
+ create_new_category: Create new category
+ created_msg: Emoji successfully created!
+ delete: Delete
+ destroyed_msg: Emojo successfully destroyed!
+ disable: Disable
+ disabled: Disabled
+ disabled_msg: Successfully disabled that emoji
+ emoji: Emoji
+ enable: Enable
+ enabled: Enabled
+ enabled_msg: Successfully enabled that emoji
+ image_hint: PNG or GIF up to %{size}
+ list: List
+ listed: Listed
+ new:
+ title: Add new custom emoji
+ no_emoji_selected: No emojis were changed as none were selected
+ not_permitted: You are not permitted to perform this action
+ overwrite: Overwrite
+ shortcode: Shortcode
+ shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+ title: Custom emojis
+ uncategorized: Uncategorised
+ unlist: Unlist
+ unlisted: Unlisted
+ update_failed_msg: Could not update that emoji
+ updated_msg: Emoji successfully updated!
+ upload: Upload
+ dashboard:
+ active_users: active users
+ interactions: interactions
+ media_storage: Media storage
+ new_users: new users
+ opened_reports: reports opened
+ pending_appeals_html:
+ one: "%{count} pending appeal"
+ other: "%{count} pending appeals"
+ pending_reports_html:
+ one: "%{count} pending report"
+ other: "%{count} pending reports"
+ pending_tags_html:
+ one: "%{count} pending hashtag"
+ other: "%{count} pending hashtags"
+ pending_users_html:
+ one: "%{count} pending user"
+ other: "%{count} pending users"
+ resolved_reports: reports resolved
+ software: Software
+ sources: Sign-up sources
+ space: Space usage
+ title: Dashboard
roles:
categories:
devops: DevOps
@@ -268,7 +386,38 @@ en-GB:
platforms:
blackberry: BlackBerry
chrome_os: ChromeOS
+ statuses_cleanup:
+ min_age_label: Age threshold
+ min_favs: Keep posts favourited at least
+ min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites
+ min_reblogs: Keep posts boosted at least
+ min_reblogs_hint: Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts
+ stream_entries:
+ pinned: Pinned post
+ reblogged: boosted
+ sensitive_content: Sensitive content
+ strikes:
+ errors:
+ too_late: It is too late to appeal this strike
+ themes:
+ mastodon-light: Mastodon (Light)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
+ add: Add
+ disable: Disable 2FA
+ disabled_success: Two-factor authentication successfully disabled
+ edit: Edit
+ enabled: Two-factor authentication is enabled
+ enabled_success: Two-factor authentication successfully enabled
+ generate_recovery_codes: Generate recovery codes
+ lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
+ methods: Two-factor methods
+ otp: Authenticator app
+ recovery_codes: Backup recovery codes
recovery_codes_regenerated: Recovery codes successfully regenerated
recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe. For example, you may print them and store them with other important documents.
webauthn: Security keys
@@ -277,8 +426,23 @@ en-GB:
action: Go to your account
explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing.
subject: Your appeal from %{date} has been approved
+ title: Appeal approved
+ appeal_rejected:
+ explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been rejected.
+ subject: Your appeal from %{date} has been rejected
+ title: Appeal rejected
+ backup_ready:
+ explanation: You requested a full backup of your Mastodon account. It's now ready for download!
+ suspicious_sign_in:
+ title: A new sign-in
warning:
+ appeal: Submit an appeal
+ appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.
+ categories:
+ spam: Spam
+ violation: Content violates the following community guidelines
explanation:
+ delete_statuses: Some of your posts have been found to violate one or more community guidelines and have been subsequently removed by the moderators of %{instance}.
disable: You can no longer use your account, but your profile and other data remains intact. You can request a backup of your data, change account settings or delete your account.
mark_statuses_as_sensitive: Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future.
sensitive: From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning.
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index ce532d602..34a689531 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -38,14 +38,14 @@ eo:
avatar: Profilbildo
by_domain: Domajno
change_email:
- changed_msg: Retpoŝta adreso estis sukcese ŝanĝita!
+ changed_msg: Retpoŝta adreso sukcese ŝanĝita!
current_email: Nuna retadreso
label: Ŝanĝi retadreson
new_email: Nova retadreso
submit: Ŝanĝi retadreson
title: Ŝanĝi retadreson por %{username}
change_role:
- changed_msg: Rolo estis sukcese ŝanĝita!
+ changed_msg: Rolo sukcese ŝanĝita!
label: Ŝanĝi rolon
no_role: Neniu rolo
title: Ŝanĝi rolon por %{username}
@@ -91,6 +91,7 @@ eo:
moderation:
active: Aktivaj
all: Ĉio
+ disabled: Neebligita
pending: Pritraktata
silenced: Limigita
suspended: Suspendita
@@ -113,7 +114,7 @@ eo:
public: Publika
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
redownload: Aktualigi profilon
- redownloaded_msg: Sukcese refreŝis profilon de %{username} de origino
+ redownloaded_msg: Sukcese aktualigis profilon de %{username} el origino
reject: Malakcepti
rejected_msg: Sukcese malaprobis aliĝ-peton de %{username}
remote_suspension_irreversible: La informoj de ĉi tiu konto estis neinversigeble forigitaj.
@@ -121,11 +122,11 @@ eo:
remove_avatar: Forigi la profilbildon
remove_header: Forigi kapan bildon
removed_avatar_msg: La rolfiguro de %{username} estas sukcese forigita
- removed_header_msg: Sukcese forigis kapbildon de %{username}
+ removed_header_msg: Kapbildo de %{username} suksece forigita
resend_confirmation:
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
send: Resendi konfirman retpoŝton
- success: Konfirma retpoŝto estis sukcese sendita!
+ success: Konfirma retmesaĝo sukcese sendita!
reset: Restarigi
reset_password: Restarigi pasvorton
resubscribe: Reaboni
@@ -133,6 +134,7 @@ eo:
search: Serĉi
search_same_email_domain: Aliaj uzantoj kun la sama domajno de retpoŝto
search_same_ip: Aliaj uzantoj kun la sama IP
+ security: Sekureco
security_measures:
only_password: Nur pasvorto
password_and_2fa: Pasvorto kaj 2FA
@@ -149,7 +151,7 @@ eo:
subscribe: Aboni
suspend: Haltigu
suspended: Suspendita
- suspension_irreversible: La datumoj de ĉi tiu konto neinverseble forigitas.
+ suspension_irreversible: La datumoj de ĉi tiu konto estas porĉiame forigitaj. Vi povas malsuspendi tiun konton por igi ĝin uzebla, sed ĝi ne rehavos ajnan datumon kiun ĝi antaŭe havis.
suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forigitaj je %{date}. Ĝis tiam, la konto povas esti malsuspendita sen flankefiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari tion sube.
title: Kontoj
unblock_email: Malbloki retpoŝtadresojn
@@ -227,7 +229,7 @@ eo:
update_status: Ĝisdatigi afiŝon
update_user_role: Ĝisdatigi rolon
actions:
- approve_appeal_html: "%{name} aprobis kontroldecidapelacion de %{target}"
+ approve_appeal_html: "%{name} aprobis apelacion kontraŭ moderiga decido de %{target}"
approve_user_html: "%{name} aprobis registriĝon de %{target}"
assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem"
change_email_user_html: "%{name} ŝanĝis retadreson de uzanto %{target}"
@@ -253,7 +255,7 @@ eo:
destroy_instance_html: "%{name} forigis domajnon %{target}"
destroy_ip_block_html: "%{name} forigis regulon por IP %{target}"
destroy_status_html: "%{name} forigis mesaĝojn de %{target}"
- destroy_unavailable_domain_html: "%{name} daurigis sendon al domajno %{target}"
+ destroy_unavailable_domain_html: "%{name} restartigis sendon al domajno %{target}"
destroy_user_role_html: "%{name} forigis rolon de %{target}"
disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}"
disable_custom_emoji_html: "%{name} malebligis la emoĝion %{target}"
@@ -264,20 +266,20 @@ eo:
enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}"
memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo"
promote_user_html: "%{name} plirangigis uzanton %{target}"
- reject_appeal_html: "%{name} malakceptis kontroldecidapelacion de %{target}"
+ reject_appeal_html: "%{name} malakceptis apelacion kontraŭ moderiga decido de %{target}"
reject_user_html: "%{name} malakceptis registriĝon de %{target}"
remove_avatar_user_html: "%{name} forigis la profilbildon de %{target}"
reopen_report_html: "%{name} remalfermis signalon %{target}"
resend_user_html: "%{name} resendis konfirman retmesaĝon por %{target}"
reset_password_user_html: "%{name} restarigis la pasvorton de la uzanto %{target}"
resolve_report_html: "%{name} solvis raporton %{target}"
- sensitive_account_html: "%{name} markis audovidaĵojn de %{target} kiel sentemaj"
+ sensitive_account_html: "%{name} markis audovidaĵon de %{target} kiel tiklan"
silence_account_html: "%{name} limigis la konton de %{target}"
suspend_account_html: "%{name} suspendis la konton de %{target}"
unassigned_report_html: "%{name} malasignis raporton %{target}"
unblock_email_account_html: "%{name} malblokis retpoŝtoadreson de %{target}"
- unsensitive_account_html: "%{name} malmarkis audovidaĵojn de %{target} kiel sentemaj"
- unsilence_account_html: "%{name} malfaris limon de konto de %{target}"
+ unsensitive_account_html: "%{name} malmarkis audovidaĵon de %{target} kiel tiklan"
+ unsilence_account_html: "%{name} malfaris limon al konto de %{target}"
unsuspend_account_html: "%{name} malsuspendis la konton de %{target}"
update_announcement_html: "%{name} ĝisdatigis la anoncon %{target}"
update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}"
@@ -323,13 +325,13 @@ eo:
emoji: Emoĝio
enable: Ebligi
enabled: Ebligita
- enabled_msg: Tiu emoĝio estis sukcese ebligita
+ enabled_msg: Emoĝio sukcese ebligita
image_hint: PNG aŭ GIF malpli granda ol %{size}
list: Listo
listed: Listigita
new:
title: Aldoni novan propran emoĝion
- no_emoji_selected: Neniuj emoĝioj ŝanĝitas ĉar nenio elektitas
+ no_emoji_selected: Neniu emoĝio estis ŝanĝita ĉar neniu estis elektita
not_permitted: Vi ne rajtas plenumi ĉi tiun agon
overwrite: Anstataŭigi
shortcode: Mallonga kodo
@@ -348,17 +350,17 @@ eo:
new_users: novaj uzantoj
opened_reports: raportoj malfermitaj
pending_appeals_html:
- one: "%{count} restanta apelacio"
- other: "%{count} restantaj aplecioj"
+ one: "%{count} apelacio atendas kontrolon"
+ other: "%{count} apelacioj atendas kontrolon"
pending_reports_html:
- one: "%{count} restanta raporto"
- other: "%{count} restantaj raportoj"
+ one: "%{count} raporto atendas kontrolon"
+ other: "%{count} raportoj atendas kontrolon"
pending_tags_html:
one: "%{count} pritraktota kradvorto"
other: "%{count} pritraktotaj kradvortoj"
pending_users_html:
- one: "%{count} restanta uzanto"
- other: "%{count} restantaj uzantoj"
+ one: "%{count} uzanto atendas kontrolon"
+ other: "%{count} uzantoj atendas kontrolon"
resolved_reports: raportoj solvitaj
software: Programo
sources: Fontoj de konto-kreado
@@ -373,7 +375,7 @@ eo:
title: Apelacioj
domain_allows:
add_new: Aldoni domajnon al la blanka listo
- created_msg: Domajno estis sukcese aldonita al la blanka listo
+ created_msg: Domajno sukcese permesita al federacii
destroyed_msg: Domajno estis forigita el la blanka listo
export: Eksporti
import: Enporti
@@ -427,6 +429,7 @@ eo:
resolve: Solvi domajnon
title: Nova blokado de retadresa domajno
no_email_domain_block_selected: Neniuj retpoŝtoadresodomajnblokoj ŝanĝitas ĉar nenio elektitas
+ not_permitted: Ne permesita
resolved_dns_records_hint_html: La domajnnomo referencas al la MX-domajnoj kiuj akceptas retpoŝton. Ne bloku grandajn retpoŝtoservilojn.
resolved_through_html: Solvis tra %{domain}
title: Nigra listo de retadresaj domajnoj
@@ -473,6 +476,7 @@ eo:
content_policies:
comment: Interna noto
description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj.
+ limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno.
policies:
reject_media: Malakcepti plurmediojn
reject_reports: Malakcepti raportojn
@@ -585,11 +589,13 @@ eo:
assign_to_self: Asigni al mi
assigned: Asignita kontrolanto
by_target_domain: Domajno de la signalita konto
+ cancel: Nuligi
category: Kategorio
category_description_html: La kialo pri ĉi tiuj konto kaj enhavo raportitaj sendotas al la raportita konto
comment:
none: Nenio
comment_description_html: 'Por doni pli da informo, %{name} skribis:'
+ confirm: Konfirmi
confirm_action: Konfirmi moderigadagon kontra @%{acct}
created_at: Signalita
delete_and_resolve: Forigi afiŝojn
@@ -792,6 +798,7 @@ eo:
suspend: "%{name} suspendis la konton de %{target}"
appeal_approved: Apelaciita
appeal_pending: Apelacio pritraktiĝos
+ appeal_rejected: Apelacio malakceptita
system_checks:
database_schema_check:
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite
@@ -958,6 +965,7 @@ eo:
applications:
created: Aplikaĵo sukcese kreita
destroyed: Aplikaĵo sukcese forigita
+ logout: Elsaluti
regenerate_token: Regeneri aliran ĵetonon
token_regenerated: Alira ĵetono sukcese regeneria
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
@@ -980,7 +988,7 @@ eo:
link_to_otp: Enigu 2-faktorkodo de via telefono au regajnkodo
link_to_webauth: Uzi vian sekurecan ŝlosilon
log_in_with: Ensaluti per
- login: Saluti
+ login: Ensaluti
logout: Adiaŭi
migrate_account: Movi al alia konto
migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas agordi ĝin ĉi tie.
@@ -994,6 +1002,8 @@ eo:
resend_confirmation: Resendi la instrukciojn por konfirmi
reset_password: Restarigi pasvorton
rules:
+ accept: Akcepti
+ back: Reen
preamble: Ĉi tioj fiksitas kaj devigitas de kontrolantoj de %{domain}.
title: Bazaj reguloj.
security: Sekureco
@@ -1012,7 +1022,7 @@ eo:
account_status: Statuso de la konto
confirming: Retpoŝtokonfirmo bezonas kompletigitis.
functional: Via konto estas tute funkcia.
- pending: Via apliko ankarou bezonas kontrolon de nia teamo. Vi ricevos retpoŝto malantau ol aprobo.
+ pending: Via aliĝo estos kontrolita de nia teamo. Tio povas bezoni iom da tempo. Vi ricevos retpoŝtmesaĝon se via aliĝo estas aprobita.
redirecting_to: Via konto estas neaktiva ĉar ĝi nun alidirektas al %{acct}.
view_strikes: Vidi antauaj admonoj kontra via konto
too_fast: Formularo sendita tro rapide, klopodu denove.
@@ -1342,7 +1352,7 @@ eo:
subject: "%{name} diskonigis vian mesaĝon"
title: Nova diskonigo
status:
- subject: "%{name} ĵus afiŝita"
+ subject: "%{name} ĵus afiŝis"
update:
subject: "%{name} redaktis afiŝon"
notifications:
@@ -1575,7 +1585,7 @@ eo:
'7889238': 3 monatoj
min_age_label: Aĝlimo
min_favs: Konservi mesaĝojn stelumitajn almenaŭ
- min_favs_hint: Ne forigas mesaĝojn de vi kiuj ricevis almenaŭ tiom da stelumoj. Lasu malplena por forigi mesaĝojn sendepende de la nombro de stelumoj
+ min_favs_hint: Oni ne forigas viajn afiŝojn, kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
min_reblogs: Konservi diskonitajn mesaĝojn almenau
min_reblogs_hint: Oni ne forigas viajn afiŝojn kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
stream_entries:
@@ -1695,7 +1705,7 @@ eo:
success: Via sekureca ŝlosilo estis sukcese forigita.
invalid_credential: Nevalida sekureca ŝlosilo
nickname_hint: Enigu alinomon de via nova sekurecŝlosilo
- not_enabled: Vu ne ebligas WebAuthn ĝis nun
+ not_enabled: Vi ankoraŭ ne ŝaltis WebAuth
not_supported: Ĉi tiu legilo ne povas uzi sekurecŝlosilojn
otp_required: Por uzi sekurecŝlosilojn, ebligu 2-faktoran autentigon unue.
registered_on: Registrigita je %{date}
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 9b0ab12cc..bf65495b9 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -91,6 +91,7 @@ es-AR:
moderation:
active: Activas
all: Todas
+ disabled: Deshabilitadas
pending: Pendientes
silenced: Limitada
suspended: Suspendidas
@@ -133,6 +134,7 @@ es-AR:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico
search_same_ip: Otros usuarios con la misma dirección IP
+ security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@@ -427,6 +429,7 @@ es-AR:
resolve: Resolver dominio
title: Bloquear nuevo dominio de correo electrónico
no_email_domain_block_selected: No se cambiaron bloques de dominio ya que no se seleccionó ninguno
+ not_permitted: No permitidos
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tené cuidado de no bloquear los principales proveedores de correo electrónico.
resolved_through_html: Resuelto a través de %{domain}
title: Dominios bloqueados de correo electrónico
@@ -473,6 +476,7 @@ es-AR:
content_policies:
comment: Nota interna
description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+ limited_federation_mode_description_html: Podés elegir si permit´s la federación con este dominio.
policies:
reject_media: Rechazar medios
reject_reports: Rechazar denuncias
@@ -585,11 +589,13 @@ es-AR:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta denunciada
+ cancel: Cancelar
category: Categoría
category_description_html: El motivo por el que se denunció esta cuenta o contenido será citado en las comunicaciones con la cuenta denunciada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
+ confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar mensajes
@@ -792,6 +798,7 @@ es-AR:
suspend: "%{name} suspendió la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
+ appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecutalas para asegurarte de que la aplicación funciona según lo esperado
@@ -827,6 +834,7 @@ es-AR:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado con la/s %{yesterday} vez/veces de ayer
+ not_allowed_to_trend: No se permite la tendencia
only_allowed: Sólo permitidas
pending_review: Revisión pendiente
preview_card_providers:
@@ -958,6 +966,7 @@ es-AR:
applications:
created: Aplicación creada exitosamente
destroyed: Aplicación eliminada exitosamente
+ logout: Cerrar sesión
regenerate_token: Regenerar clave de acceso
token_regenerated: Clave de acceso regenerada exitosamente
warning: Ojo con estos datos. ¡Nunca los compartas con nadie!
@@ -994,6 +1003,8 @@ es-AR:
resend_confirmation: Reenviar correo electrónico de confirmación
reset_password: Cambiar contraseña
rules:
+ accept: Aceptar
+ back: Volver
preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Seguridad
@@ -1040,22 +1051,22 @@ es-AR:
invalid_signature: no es una firma Ed25519 válida
date:
formats:
- default: "%Y.%b.%d"
- with_month_name: "%Y.%B.%d"
+ default: "%d de %b de %Y"
+ with_month_name: "%d de %B de %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count}h"
- about_x_months: "%{count}M"
- about_x_years: "%{count}A"
- almost_x_years: "%{count}A"
+ about_x_hours: "%{count}hrs."
+ about_x_months: "%{count}mes."
+ about_x_years: "%{count}año."
+ almost_x_years: "%{count}año."
half_a_minute: Recién
- less_than_x_minutes: "%{count}min"
+ less_than_x_minutes: "%{count}min."
less_than_x_seconds: Recién
- over_x_years: "%{count}A"
- x_days: "%{count}D"
- x_minutes: "%{count}min"
- x_months: "%{count}M"
- x_seconds: "%{count}s"
+ over_x_years: "%{count}año."
+ x_days: "%{count}día."
+ x_minutes: "%{count}min."
+ x_months: "%{count}mes."
+ x_seconds: "%{count}seg."
deletes:
challenge_not_passed: La información que ingresaste no es correcta
confirm_password: Ingresá tu contraseña actual para verificar tu identidad
@@ -1141,7 +1152,7 @@ es-AR:
featured_tags:
add_new: Agregar nueva
errors:
- limit: Alcanzaste el máximo de etiquetas destacadas
+ limit: Ya estableciste el número máximo de etiquetas
hint_html: "¿Qué son las etiquetas destacadas? Son etiquetas que se muestran de forma permanente en tu perfil público y permiten a los usuarios navegar por tus mensajes públicos que contengan esas etiquetas. Las etiquetas destacadas son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
@@ -1253,7 +1264,7 @@ es-AR:
title: Invitar a gente
lists:
errors:
- limit: Alcanzaste el máximo de listas
+ limit: Alcanzaste el número máximo de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación de dos factores
@@ -1573,7 +1584,7 @@ es-AR:
'7889238': 3 meses
min_age_label: Umbral de edad
min_favs: Conservar mensajes marcados como favoritos de por lo menos
- min_favs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos.
+ min_favs_hint: No elimina ninguno de tus mensajes que haya recibido al menos esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos.
min_reblogs: Conservar adhesiones de por lo menos
min_reblogs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de adhesiones. Dejá en blanco para eliminar mensajes independientemente de su número de adhesiones.
stream_entries:
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 486a122b1..700db7868 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1140,8 +1140,6 @@ es-MX:
storage: Almacenamiento
featured_tags:
add_new: Añadir nuevo
- errors:
- limit: Ya has alcanzado la cantidad máxima de hashtags
hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
@@ -1251,9 +1249,6 @@ es-MX:
expires_at: Expira
uses: Usos
title: Invitar a gente
- lists:
- errors:
- limit: Has alcanzado la cantidad máxima de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación en dos pasos
@@ -1573,7 +1568,6 @@ es-MX:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
- min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 38cee2adb..4c28aa8a0 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -91,6 +91,7 @@ es:
moderation:
active: Activo
all: Todos
+ disabled: Deshabilitado
pending: Pendiente
silenced: Limitado
suspended: Suspendidos
@@ -133,6 +134,7 @@ es:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
+ security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@@ -427,6 +429,7 @@ es:
resolve: Resolver dominio
title: Nueva entrada en la lista negra de correo
no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado
+ not_permitted: No permitido
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tenga cuidado de no bloquear los principales proveedores de correo electrónico.
resolved_through_html: Resuelto a través de %{domain}
title: Lista negra de correo
@@ -473,6 +476,7 @@ es:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+ limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@@ -585,11 +589,13 @@ es:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
+ cancel: Cancelar
category: Categoría
category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
+ confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicaciones
@@ -792,6 +798,7 @@ es:
suspend: "%{name} suspendió la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
+ appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería
@@ -827,6 +834,7 @@ es:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado con %{yesterday} ayer
+ not_allowed_to_trend: No permitido para tendencia
only_allowed: Sólo las permitidas
pending_review: Revisión pendiente
preview_card_providers:
@@ -958,6 +966,7 @@ es:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
+ logout: Cerrar sesión
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
@@ -994,6 +1003,8 @@ es:
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
rules:
+ accept: Aceptar
+ back: Atrás
preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Cambiar contraseña
@@ -1573,7 +1584,7 @@ es:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
- min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
+ min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 12dabbbc2..602e79c46 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -91,6 +91,7 @@ et:
moderation:
active: Aktiivne
all: Kõik
+ disabled: Keelatud
pending: Ootel
silenced: Vaigistatud
suspended: Kustutatud
@@ -133,6 +134,7 @@ et:
search: Otsi
search_same_email_domain: Muud kasutajad sama e-posti domeeniga
search_same_ip: Teised kasutajad, kellel on sama IP
+ security: Turvalisus
security_measures:
only_password: Ainult salasõna
password_and_2fa: Salasõna ja 2-etapine autentimine (2FA)
@@ -427,6 +429,7 @@ et:
resolve: Domeeni lahendamine
title: Blokeeri uus e-posti domeen
no_email_domain_block_selected: Ühtegi e-posti domeeni keeldu ei muudetud, kuna midagi polnud valitud
+ not_permitted: Ei ole lubatud
resolved_dns_records_hint_html: Domeeninimi lahendub järgnevateks MX-domeenideks, mis vastutavad e-kirjade vastuvõtmise eest. MX-domeeni blokeerimine blokeerib liitumistaotlused kõigilt e-postiaadressidelt, mis kasutavad sama MX-domeeni, kuigi kasutatav domeeninimi on erinev. Ole tähelepanelik, et mitte blokeerida suuremaid e-postiteenuse pakkujaid.
resolved_through_html: Lahendatud %{domain} kaudu
title: E-posti keelunimekiri
@@ -473,6 +476,7 @@ et:
content_policies:
comment: Sisemine märge
description_html: On võimalik kirjeldada sisureeglid kõigile kontodele sellelt domeenilt ja alamdomeenidelt.
+ limited_federation_mode_description_html: Saad valida, kas selle domeeniga on födereerumine lubatud.
policies:
reject_media: Meedia hülgamine
reject_reports: Lükka raportid tagasi
@@ -585,11 +589,13 @@ et:
assign_to_self: Määra mulle
assigned: Määratud moderaator
by_target_domain: Teavitatud konto domeen
+ cancel: Tühista
category: Kategooria
category_description_html: Põhjus, miks sellest kontost ja/või sisust teatati, kaasatakse raporteeritud kontoga suhtlemisel
comment:
none: Pole
comment_description_html: 'Täiendava infona kirjutas %{name}:'
+ confirm: Kinnita
confirm_action: Kinnita @%{acct} modereering
created_at: Teavitatud
delete_and_resolve: Kustuta postitused
@@ -792,6 +798,7 @@ et:
suspend: "%{name} kustutas %{target} konto"
appeal_approved: Vaidlustatud
appeal_pending: Vaidlustus on ootel
+ appeal_rejected: Vaidlustus tagasi lükatud
system_checks:
database_schema_check:
message_html: On ootel andmebaasi migreerimisi. Rakenduse ootuspäraseks toimimiseks palun käivita need
@@ -827,6 +834,7 @@ et:
other: Jagatud %{count} kasutaja poolt viimase nädala jooksul
title: Trendikad viited
usage_comparison: Jagatud %{today} korda täna, eile %{yesterday} korda
+ not_allowed_to_trend: Trend ei ole lubatud
only_allowed: Ainult lubatud
pending_review: Ootab ülevaatust
preview_card_providers:
@@ -958,6 +966,7 @@ et:
applications:
created: Rakenduse loomine õnnestus
destroyed: Rakenduse kustutamine õnnestus
+ logout: Logi välja
regenerate_token: Loo uus access token
token_regenerated: Access tokeni loomine õnnestus
warning: Ole nende andmetega ettevaatlikud. Ära jaga neid kellegagi!
@@ -994,6 +1003,8 @@ et:
resend_confirmation: Saada kinnitusjuhendid uuesti
reset_password: Salasõna lähtestamine
rules:
+ accept: Nõus
+ back: Tagasi
preamble: Neist kinnipidamist jälgivad %{domain} moderaatorid.
title: Mõned põhireeglid.
security: Turvalisus
@@ -1573,7 +1584,9 @@ et:
'7889238': 3 kuud
min_age_label: Ajalimiit
min_favs: Säilita postitused, meeldimistega vähemalt
- min_favs_hint: Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust, jäta tühjaks
+ min_favs_hint: |-
+ Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust,
+ jäta tühjaks
min_reblogs: Säilita postitused jagatud vähemalt
min_reblogs_hint: Ei kustuta postitusi, kui need on jagatud vähemalt nii mitu korda. Tühjaks jättes kustuvad postitused olenemata jagamistest
stream_entries:
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 917a70e40..7a6d1c46c 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -91,6 +91,7 @@ eu:
moderation:
active: Aktiboa
all: Denak
+ disabled: Desgaituta
pending: Zain
silenced: Mugatua
suspended: Kanporatua
@@ -133,6 +134,7 @@ eu:
search: Bilatu
search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean
search_same_ip: IP bera duten beste erabiltzaileak
+ security: Segurtasuna
security_measures:
only_password: Soilik pasahitza
password_and_2fa: Pasahitza eta 2FA
@@ -429,6 +431,7 @@ eu:
resolve: Ebatzi domeinua
title: Sarrera berria e-mail zerrenda beltzean
no_email_domain_block_selected: Ez da eposta domeinu blokeorik aldatu ez delako bat ere hautatu
+ not_permitted: Baimendu gabea
resolved_dns_records_hint_html: Domeinu-izena ondorengo MX domeinuetara ebazten da, zeinek eposta onartzeko ardura duten. MX domeinu bat blokeatzeak MX domeinu hori erabiltzen duen edozein helbide elektronikotatik izena-ematea blokeatzen du, baita ikusgai dagoen domeinu-izena beste bat bada ere. Kontuz ibili eposta hornitzaile nagusiak blokeatu gabe.
resolved_through_html: "%{domain} domeinuaren bidez ebatzia"
title: E-mail zerrenda beltza
@@ -475,6 +478,7 @@ eu:
content_policies:
comment: Barne-oharra
description_html: Domeinu honetako eta bere azpi-domeinuetako kontu guztiei aplikatuko zaizkien eduki-politikak definitu ditzakezu.
+ limited_federation_mode_description_html: Domeinu honekin federatu ahal izatea baimendu dezakezu.
policies:
reject_media: Errefusatu multimediak
reject_reports: Errefusatu salaketak
@@ -587,11 +591,13 @@ eu:
assign_to_self: Esleitu niri
assigned: Esleitutako moderatzailea
by_target_domain: Jakinarazitako kontuaren domeinua
+ cancel: Utzi
category: Kategoria
category_description_html: Kontu edo/eta eduki hau salatu izanaren arrazoia salatutako kontuarekiko komunikazioan aipatuko da
comment:
none: Bat ere ez
comment_description_html: 'Informazio gehiago emateko, %{name} idatzi:'
+ confirm: Berretsi
confirm_action: "@%{acct} kontuaren aurkako moderazio-ekintza baieztatu"
created_at: Salatua
delete_and_resolve: Ezabatu bidalketak
@@ -794,6 +800,7 @@ eu:
suspend: "%{name} erabiltzaileak %{target} kontua kanporatu du"
appeal_approved: Apelatua
appeal_pending: Apelazioa zain
+ appeal_rejected: Apelazioa baztertuta
system_checks:
database_schema_check:
message_html: Aplikatu gabeko datu-basearen migrazioak daude. Exekutatu aplikazioak esperotako portaera izan dezan
@@ -829,6 +836,7 @@ eu:
other: "%{count} pertsonak partekatua azken astean"
title: Esteken joerak
usage_comparison: "%{today} aldiz partekatua gaur, atzo %{yesterday} aldiz"
+ not_allowed_to_trend: Joeretan agertzeko baimenik gabe
only_allowed: Soilik onartutakoak
pending_review: Berrikusketaren zain
preview_card_providers:
@@ -960,6 +968,7 @@ eu:
applications:
created: Aplikazioa ongi sortu da
destroyed: Aplikazioa ongi ezabatu da
+ logout: Amaitu saioa
regenerate_token: Birsortu sarbide token-a
token_regenerated: Sarbide token-a ongi birsortu da
warning: Kontuz datu hauekin, ez partekatu inoiz inorekin!
@@ -996,6 +1005,8 @@ eu:
resend_confirmation: Birbidali berresteko argibideak
reset_password: Berrezarri pasahitza
rules:
+ accept: Onartu
+ back: Atzera
preamble: Hauek %{domain} instantziako moderatzaileek ezarriak eta betearaziak dira.
title: Oinarrizko arau batzuk.
security: Segurtasuna
@@ -1143,7 +1154,7 @@ eu:
featured_tags:
add_new: Gehitu berria
errors:
- limit: Gehienezko traola kopurua nabarmendu duzu jada
+ limit: Gehienezko traola kopurua erakutsi duzu jada
hint_html: "Zer dira nabarmendutako traolak? Zure profilean toki nabarmendu batean agertzen dira eta jendeari traola hau daukaten bidalketa publikoak arakatzea ahalbidetzen diote. Sormen lana edo epe luzerako proiektuak jarraitzeko primerakoak dira."
filters:
contexts:
@@ -1255,7 +1266,7 @@ eu:
title: Gonbidatu jendea
lists:
errors:
- limit: Gehieneko zerrenda kopurura heldu zara
+ limit: Gehienezko zerrenda kopurura iritsi zara
login_activities:
authentication_methods:
otp: bi faktoreko autentifikazio aplikazioa
@@ -1575,7 +1586,7 @@ eu:
'7889238': 3 hilabete
min_age_label: Denbora muga
min_favs: Mantendu gogoko kopuru hau duten bidalketak
- min_favs_hint: Gutxienez gogoko kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero gogoko kopurua ez da kontuan hartuko bidalketak ezabatzean
+ min_favs_hint: Gogoko dutenen kopuru hau gutxienez duten bidalketak ez dira ezabatuko. Hutsik utzi, gogoko dutenen kopurua aintzat hartu gabe bidalketak ezabatzeko
min_reblogs: Mantendu bultzada kopuru hau duten bidalketak
min_reblogs_hint: Gutxienez bultzada kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero bultzada kopurua ez da kontuan hartuko bidalketak ezabatzean
stream_entries:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index e4ba9441c..8bdf0709c 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -872,8 +872,6 @@ fa:
storage: تصویرهای ذخیرهشده
featured_tags:
add_new: افزودن تازه
- errors:
- limit: شما بیشترین تعداد مجاز برچسبها را دارید
hint_html: "برچسبهای برگزیده چیستند؟ این برچسبها به طور واضحی روی نمایهٔ عمومیتان نمایش یافته میگذارد افراد فرستههای عمومیتان زیرشان را مرور کنند. ابزاری عالی برای دنبال کردن آثار خلاقانه یا پروژههای بلندمدت است."
filters:
contexts:
@@ -947,9 +945,6 @@ fa:
expires_at: تاریخ انقضا
uses: استفادهها
title: دعوت دیگران
- lists:
- errors:
- limit: به بیشینهٔ مقدار سیاههها رسیدید
login_activities:
authentication_methods:
otp: کارهٔ تأیید هویت دوعاملی
@@ -1243,7 +1238,6 @@ fa:
'7889238': ۳ ماه
min_age_label: کرانهٔ سن
min_favs: نگه داشتن فرستههایی با برگزینش بیش از
- min_favs_hint: هیچ یک از فرستههایتان را که بیش از این تعداد برگزیده شده باشند، حذف نمیکند. برای حذف فرستهها فارغ از تعداد برگزینشهایشان، خالی بگذارید
min_reblogs: نگه داشتن فرستههایی با تقویت بیش از
min_reblogs_hint: هیچ یک از فرستههایتان را که بیش از این تعداد تقویت شده باشند، حذف نمیکند. برای حذف فرستهها فارغ از تعداد تقویتهایشان، خالی بگذارید
stream_entries:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 99011f819..655f0113f 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -91,6 +91,7 @@ fi:
moderation:
active: Aktiivinen
all: Kaikki
+ disabled: Ei käytössä
pending: Odottavat
silenced: Rajoitettu
suspended: Jäähyllä
@@ -133,6 +134,7 @@ fi:
search: Hae
search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus
search_same_ip: Muut käyttäjät, joilla on sama IP-osoite
+ security: Suojaus
security_measures:
only_password: Vain salasana
password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen
@@ -427,6 +429,7 @@ fi:
resolve: Ratkaise verkkotunnus
title: Uusi sähköpostiestolistan merkintä
no_email_domain_block_selected: Sähköpostin verkkotunnuksia ei muutettu, koska yhtään ei valittu
+ not_permitted: Ei sallittu
resolved_dns_records_hint_html: Verkkotunnuksen nimi määräytyy seuraaviin MX-verkkotunnuksiin, jotka ovat viime kädessä vastuussa sähköpostin vastaanottamisesta. MX-verkkotunnuksen estäminen estää kirjautumisen mistä tahansa sähköpostiosoitteesta, joka käyttää samaa MX-verkkotunnusta, vaikka näkyvä verkkotunnuksen nimi olisikin erilainen. Varo estämästä suuria sähköpostin palveluntarjoajia.
resolved_through_html: Ratkaistu %{domain} kautta
title: Sähköpostiestolista
@@ -473,6 +476,7 @@ fi:
content_policies:
comment: Sisäinen huomautus
description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin.
+ limited_federation_mode_description_html: Voit valita sallitaanko federointi tällä verkkotunnuksella.
policies:
reject_media: Hylkää media
reject_reports: Hylkää raportit
@@ -585,11 +589,13 @@ fi:
assign_to_self: Ota tehtäväksi
assigned: Määritetty valvoja
by_target_domain: Ilmoitetun tilin verkkotunnus
+ cancel: Peruuta
category: Kategoria
category_description_html: Syy, miksi tämä tili ja/tai sisältö ilmoitettiin, mainitaan yhteydenotossa ilmoitettuun tiliin
comment:
none: Ei mitään
comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:'
+ confirm: Vahvista
confirm_action: Vahvista moderointitoiminto käyttäjää @%{acct} kohtaan
created_at: Raportoitu
delete_and_resolve: Poista viestejä
@@ -792,6 +798,7 @@ fi:
suspend: "%{name} jäädytti käyttäjän %{target} tilin"
appeal_approved: Valitti
appeal_pending: Valitus vireillä
+ appeal_rejected: Muutoksenhaku hylättiin
system_checks:
database_schema_check:
message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla
@@ -827,6 +834,7 @@ fi:
other: Jakanut %{count} henkilöä viimeisen viikon aikana
title: Suositut linkit
usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday}
+ not_allowed_to_trend: Ei saa trendata
only_allowed: Vain sallittu
pending_review: Odottaa tarkistusta
preview_card_providers:
@@ -958,6 +966,7 @@ fi:
applications:
created: Sovelluksen luonti onnistui
destroyed: Sovelluksen poisto onnistui
+ logout: Uloskirjautuminen
regenerate_token: Luo pääsytunnus uudelleen
token_regenerated: Pääsytunnuksen uudelleenluonti onnistui
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
@@ -994,13 +1003,15 @@ fi:
resend_confirmation: Lähetä vahvistusohjeet uudestaan
reset_password: Palauta salasana
rules:
+ accept: Hyväksy
+ back: Takaisin
preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä."
title: Joitakin perussääntöjä.
security: Tunnukset
set_new_password: Aseta uusi salasana
setup:
email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin.
- email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa.
+ email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit vaihtaa sen tilin asetuksista.
title: Asetukset
sign_in:
preamble_html: Kirjaudu sisään %{domain}-tunnuksillasi. Jos tilisi sijaitsee eri palvelimella, et voi sisäänkirjautua täällä.
@@ -1253,7 +1264,7 @@ fi:
title: Kutsu ihmisiä
lists:
errors:
- limit: Sinulla on jo suurin sallittu määrä listoja
+ limit: Olet saavuttanut listojen enimmäismäärän
login_activities:
authentication_methods:
otp: kaksivaiheinen todennussovellus
@@ -1573,7 +1584,7 @@ fi:
'7889238': 3 kuukautta
min_age_label: Ikäraja
min_favs: Pidä viestit suosikeissa vähintään
- min_favs_hint: Ei poista yhtään julkaisuasi, jotka ovat saaneet vähintään tämän määrän tykkäyksiä. Jätä tyhjäksi, jos haluat poistaa julkaisuja tykkäyksien määrästä riippumatta
+ min_favs_hint: Ei poista julkaisujasi, joita on tykätty vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi julkaisut tykkäyskertojen määrästä riippumatta
min_reblogs: Pidä viestit tehostettuna vähintään
min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä
stream_entries:
@@ -1662,13 +1673,13 @@ fi:
silence: Rajoitettu tili
suspend: Tilin käyttäminen jäädytetty
welcome:
- edit_profile_action: Aseta profiili
- edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat, ennen kuin he saavat seurata sinua.
+ edit_profile_action: Määritä profiili
+ edit_profile_step: Voit mukauttaa profiiliasi mm. profiilikuvalla ja uudella näyttönimellä. Voit myös valita haluatko tarkastaa ja hyväksyä uudet seuraajat itse.
explanation: Näillä vinkeillä pääset alkuun
final_action: Ala julkaista
- final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä! Käytä aihetunnistetta #esittely.'
+ final_step: 'Aloita julkaiseminen! Vaikkei sinulla ole seuraajia, voivat muut nähdä julkiset julkaisusi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä käyttämällä aihetunnistetta #introductions.'
full_handle: Koko käyttäjätunnuksesi
- full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta.
+ full_handle_hint: Kerro tämä kavereillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut muiden palvelimien kautta.
subject: Tervetuloa Mastodoniin
title: Tervetuloa mukaan, %{name}!
users:
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 874bdc17f..5f5648b4d 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -91,6 +91,7 @@ fo:
moderation:
active: Virkin
all: Allar
+ disabled: Óvirkið
pending: Í bíðistøðu
silenced: Avmarkað
suspended: Avbrotin
@@ -133,6 +134,7 @@ fo:
search: Leita
search_same_email_domain: Aðrir brúkarir eru við sama teldupost domaini
search_same_ip: Aðrir brúkarar við somu IP
+ security: Trygd
security_measures:
only_password: Bara loyniorð
password_and_2fa: Loyniorð og 2FA
@@ -427,6 +429,7 @@ fo:
resolve: Loys navnaøki
title: Blokera nýtt teldupostanavnaøki
no_email_domain_block_selected: Ongar teldupostanavnaøkisblokeringar vóru broyttar, tí ongar vóru valdar
+ not_permitted: Ikki loyvt
resolved_dns_records_hint_html: Navnaøkið verður loyst til hesi MX navnaøki, sum í síðsta enda hava ábyrgdina av at móttaka teldupost. At blokera eitt MX navnaøki fer at blokera tilmeldingar frá einum og hvørjum teldupoststaði, sum brúkar sama MX navnaøki, sjálvt um sjónliga navnaøkið er eitt annað. Ansa eftir ikki at blokera stórar veitarar av telduposti
resolved_through_html: Loyst gjøgnum %{domain}
title: Blokeraði teldupostanavnaøki
@@ -473,6 +476,7 @@ fo:
content_policies:
comment: Innanhýsis viðmerking
description_html: Tú kanst áseta innihaldspolitikkir, sum verða áløgd øllum kontum frá hesum navnaøkinum og øllum tess undirnavnaøkjum.
+ limited_federation_mode_description_html: Tú kanst velja, hvørt tú loyvir sameining við hetta navnaøkið.
policies:
reject_media: Vraka miðil
reject_reports: Vraka meldingar
@@ -585,11 +589,13 @@ fo:
assign_to_self: Tilluta mær
assigned: Tilnevnt umsjónarfólk
by_target_domain: Navnaøki hjá meldaðu kontuni
+ cancel: Angra
category: Bólkur
category_description_html: Orsøkin, at hendan kontan og/ella tilfarið var melda verður fráboðað í samskifti við meldaðu kontuni
comment:
none: Eingin
comment_description_html: 'Fyri at veita fleiri upplýsingar skrivaði %{name}:'
+ confirm: Vátta
confirm_action: Vátta umsjónaratgerð móti @%{acct}
created_at: Meldað
delete_and_resolve: Strika postar
@@ -792,6 +798,7 @@ fo:
suspend: "%{name} setti kontuna hjá %{target} úr gildi"
appeal_approved: Kært
appeal_pending: Kæra bíðar eftir avgerð
+ appeal_rejected: Kæra vrakað
system_checks:
database_schema_check:
message_html: Dátugrunnaflytingar bíða. Vinarliga koyr flytingarnar fyri at tryggja at skipanin skikkar sær sum hon skal
@@ -827,6 +834,7 @@ fo:
other: Deilt av %{count} persónum seinastu vikuna
title: Vælumtókt leinki
usage_comparison: Deilt %{today} ferð í dag, samanborið við %{yesterday} ferð í gjár
+ not_allowed_to_trend: Ikki loyvt at gerast rák
only_allowed: Einans loyvd
pending_review: Bíðar eftir eftirkannan
preview_card_providers:
@@ -958,6 +966,7 @@ fo:
applications:
created: Umsókn stovnað
destroyed: Umsókn strikað
+ logout: Rita út
regenerate_token: Ger atgongdstekn av nýggjum
token_regenerated: Atgongdsteknið gjørt av nýggjum
warning: Ver varin við hesum dátum. Deil tað aldrin við nakran!
@@ -994,6 +1003,8 @@ fo:
resend_confirmation: Send góðkenningarvegleiðing umaftur
reset_password: Endurstilla loyniorð
rules:
+ accept: Góðtak
+ back: Aftur
preamble: Hesi eru ásett og uppihildin av umsjónarfólkunum á %{domain}.
title: Nakrar grundreglur.
security: Trygd
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 504ab8486..23c822e10 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -91,6 +91,7 @@ fr-QC:
moderation:
active: Actifs
all: Tous
+ disabled: Désactivé
pending: En cours de traitement
silenced: Limité
suspended: Suspendus
@@ -133,6 +134,7 @@ fr-QC:
search: Rechercher
search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
+ security: Sécurité
security_measures:
only_password: Mot de passe uniquement
password_and_2fa: Mot de passe et 2FA
@@ -427,17 +429,18 @@ fr-QC:
resolve: Résoudre le domaine
title: Nouveau blocage de domaine de courriel
no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné
+ not_permitted: Non autorisé
resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure.
resolved_through_html: Résolu par %{domain}
title: Blocage de domaines de courriel
export_domain_allows:
new:
- title: Autoriser l'importation de domaine
+ title: Importer les autorisations de domaine
no_file: Aucun fichier sélectionné
export_domain_blocks:
import:
- description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste.
- existing_relationships_warning: Relations de suivi existantes
+ description_html: Vous êtes sur le point d'importer une liste de bloqueurs de domaine. Veuillez examiner cette liste très attentivement, surtout si vous ne l'avez pas créée vous-même.
+ existing_relationships_warning: Relations d'abonnement existantes
private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}'
private_comment_template: Importé depuis %{source} le %{date}
title: Importer des blocages de domaine
@@ -473,6 +476,7 @@ fr-QC:
content_policies:
comment: Note interne
description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines.
+ limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine.
policies:
reject_media: Rejeter les médias
reject_reports: Rejeter les signalements
@@ -585,11 +589,13 @@ fr-QC:
assign_to_self: Me l’assigner
assigned: Modérateur assigné
by_target_domain: Domaine du compte signalé
+ cancel: Annuler
category: Catégorie
category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé
comment:
none: Aucun
comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :'
+ confirm: Confirmer
confirm_action: Confirmer l'action de modération contre @%{acct}
created_at: Signalé
delete_and_resolve: Supprimer les messages
@@ -729,8 +735,8 @@ fr-QC:
preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon.
title: Rétention du contenu
default_noindex:
- desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes
- title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche
+ desc_html: Affecte tous les comptes qui n'ont pas modifié ce paramètre
+ title: Par défaut, ne pas indexer les comptes dans les moteurs de recherche
discovery:
follow_recommendations: Suivre les recommandations
preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur.
@@ -792,6 +798,7 @@ fr-QC:
suspend: "%{name} a suspendu le compte de %{target}"
appeal_approved: Appel soumis
appeal_pending: Appel en attente
+ appeal_rejected: Appel rejeté
system_checks:
database_schema_check:
message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu
@@ -958,6 +965,7 @@ fr-QC:
applications:
created: Application créée avec succès
destroyed: Application supprimée avec succès
+ logout: Se déconnecter
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
warning: Soyez prudent·e avec ces données. Ne les partagez pas !
@@ -966,7 +974,7 @@ fr-QC:
apply_for_account: Demander un compte
change_password: Mot de passe
confirmations:
- wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte.
+ wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte.
delete_account: Supprimer le compte
delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action.
description:
@@ -994,6 +1002,7 @@ fr-QC:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
+ back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
security: Sécurité
@@ -1003,7 +1012,7 @@ fr-QC:
email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte.
title: Configuration
sign_in:
- preamble_html: Connectez-vous avec vos identifiants %{domain} . Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici.
+ preamble_html: Connectez-vous avec vos identifiants sur %{domain}. Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici.
title: Se connecter à %{domain}
sign_up:
preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé.
@@ -1140,8 +1149,6 @@ fr-QC:
storage: Médias stockés
featured_tags:
add_new: Ajouter un nouveau hashtag
- errors:
- limit: Vous avez déjà mis en avant le nombre maximum de hashtags
hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme."
filters:
contexts:
@@ -1251,9 +1258,6 @@ fr-QC:
expires_at: Expire
uses: Utilisations
title: Inviter des gens
- lists:
- errors:
- limit: Vous avez atteint le nombre maximum de listes
login_activities:
authentication_methods:
otp: application d'authentification à deux facteurs
@@ -1396,7 +1400,7 @@ fr-QC:
activity: Activité du compte
confirm_follow_selected_followers: Voulez-vous vraiment suivre les abonné⋅e⋅s sélectionné⋅e⋅s ?
confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ?
- confirm_remove_selected_follows: Voulez-vous vraiment suivre les abonnements sélectionnés ?
+ confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ?
dormant: Dormant
follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s
followers: Abonné·e
@@ -1573,7 +1577,6 @@ fr-QC:
'7889238': 3 mois
min_age_label: Seuil d'ancienneté
min_favs: Conserver les messages mis en favoris au moins
- min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris
min_reblogs: Conserver les messages partagés au moins
min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages
stream_entries:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 278fc9e77..640a5dc32 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -91,6 +91,7 @@ fr:
moderation:
active: Actifs
all: Tous
+ disabled: Désactivé
pending: En cours de traitement
silenced: Limité
suspended: Suspendus
@@ -133,6 +134,7 @@ fr:
search: Rechercher
search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
+ security: Sécurité
security_measures:
only_password: Mot de passe uniquement
password_and_2fa: Mot de passe et A2F
@@ -427,6 +429,7 @@ fr:
resolve: Résoudre le domaine
title: Nouveau blocage de domaine de courriel
no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné
+ not_permitted: Non autorisé
resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure.
resolved_through_html: Résolu par %{domain}
title: Blocage de domaines de courriel
@@ -473,6 +476,7 @@ fr:
content_policies:
comment: Note interne
description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines.
+ limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine.
policies:
reject_media: Rejeter les médias
reject_reports: Rejeter les signalements
@@ -585,11 +589,13 @@ fr:
assign_to_self: Me l’assigner
assigned: Modérateur assigné
by_target_domain: Domaine du compte signalé
+ cancel: Annuler
category: Catégorie
category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé
comment:
none: Aucun
comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :'
+ confirm: Confirmer
confirm_action: Confirmer l'action de modération contre @%{acct}
created_at: Signalé
delete_and_resolve: Supprimer les messages
@@ -792,6 +798,7 @@ fr:
suspend: "%{name} a suspendu le compte de %{target}"
appeal_approved: Appel soumis
appeal_pending: Appel en attente
+ appeal_rejected: Appel rejeté
system_checks:
database_schema_check:
message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu
@@ -827,6 +834,7 @@ fr:
other: Partagé par %{count} personnes au cours de la dernière semaine
title: Liens tendances
usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
+ not_allowed_to_trend: Non autorisé à apparaître dans les tendances
only_allowed: Autorisées seulement
pending_review: En attente de révision
preview_card_providers:
@@ -841,7 +849,7 @@ fr:
description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement.
disallow: Proscrire le message
disallow_account: Proscrire l'auteur·rice
- no_status_selected: Aucune publication en tendance n'a été changée car aucune n'a été sélectionnée
+ no_status_selected: Aucun message tendance n'a été modifié car aucun n'était sélectionné
not_discoverable: L'auteur⋅rice n'a pas choisi de pouvoir être découvert⋅e
shared_by:
one: Partagé ou ajouté aux favoris une fois
@@ -958,6 +966,7 @@ fr:
applications:
created: Application créée avec succès
destroyed: Application supprimée avec succès
+ logout: Se déconnecter
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
warning: Soyez prudent·e avec ces données. Ne les partagez pas !
@@ -994,6 +1003,8 @@ fr:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
+ accept: Accepter
+ back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
security: Sécurité
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 74d211e36..cdb7a80c4 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -91,6 +91,7 @@ fy:
moderation:
active: Aktyf
all: Alle
+ disabled: Utskeakele
pending: Yn ôfwachting
silenced: Beheind
suspended: Utsteld
@@ -133,6 +134,7 @@ fy:
search: Sykje
search_same_email_domain: Oare brûkers mei itselde e-maildomein
search_same_ip: Oare brûkers mei itselde IP-adres
+ security: Befeiliging
security_measures:
only_password: Allinnich wachtwurd
password_and_2fa: Wachtwurd en 2FA
@@ -427,6 +429,7 @@ fy:
resolve: Domein opsykje
title: Nije e-maildomein blokkearje
no_email_domain_block_selected: Der binne gjin e-maildomeinblokkaden wizige, omdat der gjin ien selektearre waard
+ not_permitted: Net tastien
resolved_dns_records_hint_html: De domeinnamme slacht op de folgjende MX-domeinen dy’t úteinlik ferantwurdlik binne foar it akseptearjen fan e-mail. It blokkearjen fan in MX-domein blokkearret oanmeldingen fan elk e-mailadres dat itselde MX-domein brûkt, sels as de sichtbere domeinnamme oars is. Pas op dat jo gjin grutte e-mailproviders blokkearje.
resolved_through_html: Blokkearre fia %{domain}
title: Blokkearre e-maildomeinen
@@ -473,6 +476,7 @@ fy:
content_policies:
comment: Ynterne reden
description_html: Jo kinne it belied bepale dat op de accounts fan dit domein en alle subdomeinen fan tapassing is.
+ limited_federation_mode_description_html: Jo kinne kieze oft jo federaasje mei dit domein tastean wolle.
policies:
reject_media: Mediabestannen wegerje
reject_reports: Rapportaazjes wegerje
@@ -585,11 +589,13 @@ fy:
assign_to_self: Oan my tawize
assigned: Tawizen moderator
by_target_domain: Domein fan rapportearre account
+ cancel: Annulearje
category: Kategory
category_description_html: De reden wêrom dizze account en/of ynhâld rapportearre waard, wurdt oan it rapportearre account meidield
comment:
none: Gjin
comment_description_html: 'Om mear ynformaasje te jaan, skreau %{name}:'
+ confirm: Befêstigje
confirm_action: Moderaasjemaatregelen tsjin %{acct} befêstigje
created_at: Rapportearre op
delete_and_resolve: Berjocht fuortsmite
@@ -792,6 +798,7 @@ fy:
suspend: Account %{target} is troch %{name} útsteld
appeal_approved: Beswier yntsjinne
appeal_pending: Beswier yn behanneling
+ appeal_rejected: Beswier ôfwêzen
system_checks:
database_schema_check:
message_html: Der binne database migraasjes yn ôfwachting. Jo moatte dizze útfiere om der foar te soargjen dat de applikaasje wurkjen bliuwt sa as it heard
@@ -827,6 +834,7 @@ fy:
other: Dizze wike troch %{count} persoanen dield
title: Trending keppelingen
usage_comparison: Hjoed %{today} kear dield, fergelike mei %{yesterday} kear juster
+ not_allowed_to_trend: Trending wurdt net tastien
only_allowed: Allinnich goedkarre
pending_review: Moat noch beoardiele wurde
preview_card_providers:
@@ -958,6 +966,7 @@ fy:
applications:
created: Oanmeitsjen tapassing slagge
destroyed: Fuortsmiten tapassing slagge
+ logout: Ofmelde
regenerate_token: Tagongskoade opnij oanmeitsje
token_regenerated: Opnij oanmeitsjen tagongskoade slagge
warning: Wês foarsichtich mei dizze gegevens. Diel it nea mei in oar!
@@ -994,6 +1003,8 @@ fy:
resend_confirmation: Ferstjoer de befêstigingsynstruksjes nochris
reset_password: Wachtwurd opnij ynstelle
rules:
+ accept: Akseptearje
+ back: Tebek
preamble: Dizze binne fêststeld en wurde yn stân hâlden troch de moderatoaren fan %{domain}.
title: Inkelde basisrigels.
security: Befeiliging
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 073f2bad0..4aa2ae98b 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -433,10 +433,6 @@ ga:
next: An céad eile
older: Níos sine
prev: Ceann roimhe seo
- preferences:
- other: Eile
- posting_defaults: Posting defaults
- public_timelines: Public timelines
relationships:
follow_selected_followers: Lean leantóirí roghnaithe
followers: Leantóirí
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 1091c52e1..5db509b6f 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1176,8 +1176,6 @@ gd:
storage: Stòras mheadhanan
featured_tags:
add_new: Cuir fear ùr ris
- errors:
- limit: Bhrosnaich thu an uiread as motha de thagaichean hais mu thràth
hint_html: "Dè th’ anns na tagaichean hais brosnaichte? Thèid an sealltainn gu follaiseach air a’ phròifil phoblach agad agus ’s urrainnear na postaichean poblach agad sa bheil na tagaichean hais sònraichte sin a bhrabhsadh leotha. ’S e deagh-acainn a th’ annta airson sùil a chumail air obair chruthachail no pròiseactan fada."
filters:
contexts:
@@ -1303,9 +1301,6 @@ gd:
expires_at: Falbhaidh an ùine air
uses: Cleachdadh
title: Thoir cuireadh do dhaoine
- lists:
- errors:
- limit: Ràinig thu na tha ceadaichte dhut de liostaichean
login_activities:
authentication_methods:
otp: aplacaid dearbhaidh dhà-cheumnaich
@@ -1637,7 +1632,6 @@ gd:
'7889238': 3 mìosan
min_age_label: Stairsneach aoise
min_favs: Cùm na tha ’na annsachd aig co-dhiù
- min_favs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’nan annsachd an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’nan annsachd
min_reblogs: Cùm na tha ’ga bhrosnachadh le co-dhiù
min_reblogs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’gam brosnachadh an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’gam brosnachadh
stream_entries:
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 6885000ac..b51d0f707 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -91,6 +91,7 @@ gl:
moderation:
active: Activa
all: Todo
+ disabled: Desactivada
pending: Pendente
silenced: Limitada
suspended: Suspendidos
@@ -133,6 +134,7 @@ gl:
search: Procurar
search_same_email_domain: Outras usuarias co mesmo dominio de email
search_same_ip: Outras usuarias co mesmo IP
+ security: Seguridade
security_measures:
only_password: Só contrasinal
password_and_2fa: Contrasinal e 2FA
@@ -427,6 +429,7 @@ gl:
resolve: Resolver dominio
title: Nova entrada na listaxe negra de email
no_email_domain_block_selected: Non se cambiou ningún bloqueo de dominio de email porque non se seleccionou ningún
+ not_permitted: Non permitido
resolved_dns_records_hint_html: O nome de dominio resolve os seguintes rexistros MX, que son os últimos responsables da aceptación de emails. Bloqueando un dominio MX rexeitarás calquera enderezo de email que use este dominio MX, incluso se o nome de dominio visible é outro. Ten coidado de non bloquear os principais provedores.
resolved_through_html: Resolto a través de %{domain}
title: Listaxe negra de email
@@ -473,6 +476,7 @@ gl:
content_policies:
comment: Nota interna
description_html: Podes definir políticas acerca do contido que serán aplicadas a tódalas contas deste dominio e tódolos seus subdominios.
+ limited_federation_mode_description_html: Podes elexir se permites a federación con este dominio.
policies:
reject_media: Rexeitar multimedia
reject_reports: Rexeitar denuncias
@@ -585,11 +589,13 @@ gl:
assign_to_self: Asignarme
assigned: Moderador asignado
by_target_domain: Dominio da conta denunciada
+ cancel: Cancelar
category: Categoría
category_description_html: A razón para denunciar esta conta ou contido será citada na comunicación coa conta denunciada
comment:
none: Ningún
comment_description_html: 'Como información engadida, %{name} escribiu:'
+ confirm: Confirmar
confirm_action: Confirma a acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicacións
@@ -792,6 +798,7 @@ gl:
suspend: "%{name} suspendeu a conta de %{target}"
appeal_approved: Recurrida
appeal_pending: Apelación pendente
+ appeal_rejected: Apelación rexeitada
system_checks:
database_schema_check:
message_html: Existen migracións pendentes na base de datos. Bota man desta tarefa para facer que a aplicación funcione como se agarda dela
@@ -827,6 +834,7 @@ gl:
other: Compartido por %{count} persoas na última semana
title: Ligazóns en voga
usage_comparison: Compartido %{today} veces hoxe, comparado con %{yesterday} onte
+ not_allowed_to_trend: Non permitido como tendencia
only_allowed: Só as permitidas
pending_review: Revisión pendente
preview_card_providers:
@@ -958,6 +966,7 @@ gl:
applications:
created: Creouse con éxito este aplicativo
destroyed: Eliminouse con éxito o aplicativo
+ logout: Pechar sesión
regenerate_token: Votar a xenerar o testemuño de acceso
token_regenerated: Rexenerouse con éxito o testemuño de acceso
warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén!
@@ -994,6 +1003,8 @@ gl:
resend_confirmation: Reenviar as intruccións de confirmación
reset_password: Restablecer contrasinal
rules:
+ accept: Aceptar
+ back: Volver
preamble: Son establecidas e aplicadas pola moderación de %{domain}.
title: Algunhas regras básicas.
security: Seguranza
@@ -1141,7 +1152,7 @@ gl:
featured_tags:
add_new: Engadir novo
errors:
- limit: Xa acadaches o número máximo de cancelos
+ limit: Xa sinalaches o número máximo de cancelos permitido
hint_html: "¿Qué son os cancelos destacados? Móstranse destacados no teu perfil público e permítenlle a outras persoas ver os teus toots públicos nos que os utilizaches. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
filters:
contexts:
@@ -1253,7 +1264,7 @@ gl:
title: Convidar xente
lists:
errors:
- limit: Acadou o número máximo de listas
+ limit: Xa acadaches o número máximo de listas
login_activities:
authentication_methods:
otp: app para autenticación con dous factores
@@ -1573,7 +1584,7 @@ gl:
'7889238': 3 meses
min_age_label: Límite temporal
min_favs: Manter as publicacións favoritas máis de
- min_favs_hint: Non elimina ningunha das túas publicacións que recibiron máis desta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos
+ min_favs_hint: Non elimina ningunha das túas publicacións que recibiron alomenos esta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos
min_reblogs: Manter publicacións promovidas máis de
min_reblogs_hint: Non elimina ningunha das túas publicacións se foron promovidas máis deste número de veces. Deixa en branco para eliminar publicacións independentemente do seu número de promocións
stream_entries:
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 6c213c530..30a879644 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -95,6 +95,7 @@ he:
moderation:
active: פעילים
all: הכל
+ disabled: מושבת
pending: בהמתנה
silenced: מוגבלים
suspended: מושהים
@@ -139,6 +140,7 @@ he:
search: חיפוש
search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל
search_same_ip: משתמשים אחרים מאותה כתובת IP
+ security: אבטחה
security_measures:
only_password: סיסמה בלבד
password_and_2fa: סיסמה ואימות דו-שלבי
@@ -443,6 +445,7 @@ he:
resolve: פתור דומיין
title: חסימת דומיין דוא"ל
no_email_domain_block_selected: לא בוצעו שינויים לחסימת דומייני דוא"ל שכן לא נבחרו דומיינים
+ not_permitted: נאסר
resolved_dns_records_hint_html: שם הדומיין מוביל לדומייניי ה-MX הבאים, שהם בסופו של דבר אחראיים לקבלת דוא"ל. חסימת דומיין MX תוביל לחסימת הרשמות מכל כתובת דוא"ל שעושה שימוש בדומיין MX זה, אפילו אם הדומיין הגלוי שונה. יש להמנע מלחסום ספקי דוא"ל מובילים.
resolved_through_html: נמצא דרך %{domain}
title: דומייניי דוא"ל חסומים
@@ -493,6 +496,7 @@ he:
content_policies:
comment: הערה פנימית
description_html: ביכולתך להגדיר מדיניות תוכן שתופעל על כל החשבונות מדומיין זה ומתת-דומייניו.
+ limited_federation_mode_description_html: ניתן לבחור אם להרשות תקשורת הדדית עם שרת זה.
policies:
reject_media: דחיית מדיה
reject_reports: דחיית דו"חות
@@ -609,11 +613,13 @@ he:
assign_to_self: הקצה אלי
assigned: מנחה מוקצה
by_target_domain: דומיין החשבון המדווח
+ cancel: ביטול
category: קטגוריה
category_description_html: הסיבה בגללה חשבון זה ו/או תוכנו דווחו תצוטט בתקשורת עם החשבון המדווח
comment:
none: ללא
comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:'
+ confirm: אישור
confirm_action: נא לאשר פעולת משמעת לגבי חשבון %{acct}
created_at: מדווח
delete_and_resolve: מחיקת הודעות
@@ -820,6 +826,7 @@ he:
suspend: "%{name} השעה/תה את חשבונו/ה של %{target}"
appeal_approved: עורער
appeal_pending: בהמתנה לערעור
+ appeal_rejected: הערעור נדחה
system_checks:
database_schema_check:
message_html: נדרשות הגירות מבני נתונים. אנא הריצו אותן כדי להבטיח שהיישום מתנהג כצפוי
@@ -857,6 +864,7 @@ he:
two: הופץ על ידי %{count} אנשים בשבוע האחרון
title: קישוריות חמות
usage_comparison: הופץ %{today} פעמים היום, לעומת %{yesterday} אתמול
+ not_allowed_to_trend: לא מורשה להופיע כנושא חם
only_allowed: רק כאלה שהותרו
pending_review: בהמתנה לבדיקה
preview_card_providers:
@@ -994,6 +1002,7 @@ he:
applications:
created: ישום נוצר בהצלחה
destroyed: ישום נמחק בהצלחה
+ logout: יציאה
regenerate_token: יצירת אסימון גישה מחדש
token_regenerated: אסימון גישה יוצר מחדש בהצלחה
warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד!
@@ -1030,6 +1039,8 @@ he:
resend_confirmation: שלח הוראות אימות בשנית
reset_password: איפוס סיסמה
rules:
+ accept: הסכמה
+ back: בחזרה
preamble: אלו נקבעים ונאכפים ע"י המנחים של %{domain}.
title: כמה חוקים בסיסיים.
security: אבטחה
@@ -1177,7 +1188,7 @@ he:
featured_tags:
add_new: הוספת חדש
errors:
- limit: המספר המירבי של התגיות כבר מוצג
+ limit: הצגת כבר את המספר המירבי של תגיות נבחרות
hint_html: "מהן תגיות נבחרות? הן מוצגות במובלט בפרופיל הפומבי שלך ומאפשר לאנשים לעיין בהודעות הפומביות שלך המסומנות בתגיות אלה. הן כלי אדיר למעקב אחר עבודות יצירה ופרוייקטים לטווח ארוך."
filters:
contexts:
@@ -1305,7 +1316,7 @@ he:
title: הזמנת אנשים
lists:
errors:
- limit: הגעת למספר הרשימות המירבי.
+ limit: הגעת למספר הרשימות המירבי
login_activities:
authentication_methods:
otp: יישומון אימות דו-שלבי
@@ -1637,7 +1648,7 @@ he:
'7889238': 3 חודשים
min_age_label: סף גיל
min_favs: השאר הודעות מחובבות לפחות
- min_favs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של חיבובים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר החיבובים שקיבלו
+ min_favs_hint: לא תימחקנה הודעות שלך שקיבלו לפחות מספר זה של חיבובים. אם יישאר ריק, הודעות תימחקנה ללא תלות במספר החיבובים שלהן.
min_reblogs: שמור הודעות מהודהדות לפחות
min_reblogs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר ההדהודים שקיבלו
stream_entries:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index a9315b1f2..7b98cc77c 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -91,6 +91,7 @@ hu:
moderation:
active: Aktív
all: Összes
+ disabled: Letiltva
pending: Függőben
silenced: Korlátozott
suspended: Felfüggesztve
@@ -133,6 +134,7 @@ hu:
search: Keresés
search_same_email_domain: Felhasználók ugyanezzel az email domainnel
search_same_ip: Más felhasználók ugyanezzel az IP-vel
+ security: Biztonság
security_measures:
only_password: Csak jelszó
password_and_2fa: Jelszó és kétlépcsős hitelesítés
@@ -427,6 +429,7 @@ hu:
resolve: Domain feloldása
title: Új e-mail domain tiltása
no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva
+ not_permitted: Nem engedélyezett
resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat.
resolved_through_html: Feloldva %{domain}-n keresztül
title: Tiltott e-mail domainek
@@ -473,6 +476,7 @@ hu:
content_policies:
comment: Belső megjegyzés
description_html: Definiálhatsz tartalmi szabályokat, melyek ezen domain és minden aldomain fiókjára vonatkozni fognak.
+ limited_federation_mode_description_html: Eldöntheted, hogy engeded-e a föderációt ezzel a domainnel.
policies:
reject_media: Média elutasítása
reject_reports: Bejelentések elutasítása
@@ -585,11 +589,13 @@ hu:
assign_to_self: Magamhoz rendelés
assigned: Hozzárendelt moderátor
by_target_domain: A bejelentett fiók domainje
+ cancel: Mégse
category: Kategória
category_description_html: A fiók vagy tartalom bejelentésének oka a jelentett fiókkal kapcsolatos kommunikációban idézve lesz
comment:
none: Egyik sem
comment_description_html: 'Hogy további információkat adjon, %{name} ezt írta:'
+ confirm: Megerősítés
confirm_action: Moderációs művelet jóváhagyása @%{acct} fiókon
created_at: Jelentve
delete_and_resolve: Bejegyzések törlése
@@ -792,6 +798,7 @@ hu:
suspend: "%{name} felfüggesztette %{target} fiókját"
appeal_approved: Megfellebbezve
appeal_pending: Fellebbezés folyamatban
+ appeal_rejected: Fellebbezés visszautasítva
system_checks:
database_schema_check:
message_html: Vannak esedékes adatbázis migrációink. Kérlek, futtasd őket, hogy biztosítsd, hogy az alkalmazás megfelelően működjön
@@ -827,6 +834,7 @@ hu:
other: "%{count} ember osztotta meg a múlt héten"
title: Felkapott hivatkozások
usage_comparison: "%{today} alkalommal lett ma megosztva, a tegnapi %{yesterday} alkalomhoz képest"
+ not_allowed_to_trend: Nem engedélyezett a trendekben
only_allowed: Csak engedélyezett
pending_review: Áttekintésre vár
preview_card_providers:
@@ -958,6 +966,7 @@ hu:
applications:
created: Alkalmazás sikeresen létrehozva
destroyed: Alkalmazás sikeresen eltávolítva
+ logout: Kijelentkezés
regenerate_token: Hozzáférési kulcs újragenerálása
token_regenerated: Hozzáférési kulcs sikeresen újragenerálva
warning: Ez érzékeny adat. Soha ne oszd meg másokkal!
@@ -994,6 +1003,8 @@ hu:
resend_confirmation: Megerősítési lépések újraküldése
reset_password: Jelszó visszaállítása
rules:
+ accept: Elfogadás
+ back: Vissza
preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be.
title: Néhány alapszabály.
security: Biztonság
@@ -1141,7 +1152,7 @@ hu:
featured_tags:
add_new: Új hozzáadása
errors:
- limit: Már kiemelted a maximálisan engedélyezett számú hashtaget
+ limit: Elérted a maximálisan kitűzhető hashtagek számát
hint_html: "Mik a kiemelt hashtagek? Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó bejegyzéseidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére."
filters:
contexts:
@@ -1253,7 +1264,7 @@ hu:
title: Meghívások
lists:
errors:
- limit: Elérted a hozzáadható listák maximális számát
+ limit: Elérted a listák maximális számát
login_activities:
authentication_methods:
otp: kétlépcsős azonosító alkalmazás
@@ -1573,7 +1584,7 @@ hu:
'7889238': 3 hónap
min_age_label: Korhatár
min_favs: Bejegyzések megtartása, melyeket többször jelöltek kedvencnek, mint
- min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket ennél többször jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket
+ min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket legalább ennyiszer jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket
min_reblogs: Bejegyzések megtartása, melyeket többször toltak meg, mint
min_reblogs_hint: Egyetlen olyan bejegyzésedet sem törli, melyet ennél többször toltak meg. Hagyd üresen, hogy a megtolások számától függetlenül töröljük a bejegyzéseket
stream_entries:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 10f7e6629..da16e7836 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1093,8 +1093,6 @@ id:
storage: Penyimpanan media
featured_tags:
add_new: Tambah baru
- errors:
- limit: Anda sudah menampilkan tagar unggulan dengan jumlah maksimum
hint_html: "Apa itu tagar yang diunggulkan? Mereka ditampilkan secara mencolok di profil publik Anda dan mengizinkan orang-orang untuk menjelajahi kiriman publik khususnya yang ada di bawah tagar tersebut. Mereka adalah alat yang bagus untuk melacak pekerjaan kreatif atau proyek jangka panjang."
filters:
contexts:
@@ -1196,9 +1194,6 @@ id:
expires_at: Kedaluwarsa
uses: Penggunaan
title: Undang orang
- lists:
- errors:
- limit: Daftar Anda telah mencapai jumlah maksimum
login_activities:
authentication_methods:
otp: aplikasi otentikasi dua-faktor
@@ -1509,7 +1504,6 @@ id:
'7889238': 3 bulan
min_age_label: Batas usia
min_favs: Simpan kiriman favorit lebih dari
- min_favs_hint: Tidak menghapus kiriman Anda yang mendapatkan sekian favorit. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah favoritnya
min_reblogs: Simpan kiriman yang di-boost lebih dari
min_reblogs_hint: Tidak menghapus kiriman Anda yang di-boost lebih dari sekian kali. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah boost-nya
stream_entries:
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 808023e40..809ef4546 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1069,8 +1069,6 @@ io:
storage: Konservado di kontenajo
featured_tags:
add_new: Insertez novo
- errors:
- limit: Vu ja estelis maxima hashtagi
hint_html: "Quo esas estelita hashtagi? Ol montresas eminente che vua publika profilo e povigas personi vidar vua publika posti partikulare kun ta hashtagi. Oli esas bona utensilo por jeretar kreiva agaji e longa projetaji."
filters:
contexts:
@@ -1179,9 +1177,6 @@ io:
expires_at: Expiros
uses: Uzi
title: Invitez personi
- lists:
- errors:
- limit: Vu astingas maxima listi
login_activities:
authentication_methods:
otp: 2-faktoryurizessoftwaro
@@ -1498,7 +1493,6 @@ io:
'7889238': 3 monati
min_age_label: Oldeslimito
min_favs: Retenez favorizita posti mine
- min_favs_hint: Ne efacas irga vua posti quo ganis mine ca favorizquanto. Restez quale vakua por efacar posti sen suciar olia favorizquanto
min_reblogs: Retenez bustita posti mine
min_reblogs_hint: Ne efacas irga vua posti quo bustigesos mine ca foyoquanto. Restez quale vakua por efacar posti sen suciar olia foyoquanto
stream_entries:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index e68bbb2f3..56005196f 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -91,6 +91,7 @@ is:
moderation:
active: Virkur
all: Allt
+ disabled: Óvirkt
pending: Í bið
silenced: Takmarkað
suspended: Í frysti
@@ -133,6 +134,7 @@ is:
search: Leita
search_same_email_domain: Aðra notendur með sama tölvupóstlén
search_same_ip: Aðrir notendur með sama IP-vistfang
+ security: Öryggi
security_measures:
only_password: Aðeins lykilorð
password_and_2fa: Lykilorð og 2-þátta auðkenning
@@ -427,6 +429,7 @@ is:
resolve: Leysa lén
title: Útiloka nýtt tölvupóstlén
no_email_domain_block_selected: Engum útilokunum tölvupóstléna var breytt þar sem ekkert var valið
+ not_permitted: Ekki leyft
resolved_dns_records_hint_html: Heiti lénsins vísar til eftirfarandi MX-léna, sem bera endanlega ábyrgð á að tölvupóstur skili sér. Útilokun á MX-léni mun koma í veg fyrir nýskráningar með hverju því tölvupóstfangi sem notar sama MX-lén, jafnvel þótt sýnilega lénsheitið sé frábrugðið. Farðu varlega svo þú útilokir ekki algengar tölvupóstþjónustur.
resolved_through_html: Leyst í gegnum %{domain}
title: Útilokuð tölvupóstlén
@@ -473,6 +476,7 @@ is:
content_policies:
comment: Innri minnispunktur
description_html: Þú getur skilgreint stefnu varðandi efni sem verður beitt á alla aðganga frá þessu léni og öllum undirlénum þess.
+ limited_federation_mode_description_html: Þú getur valið hvort leyfa eigi skýjasamband við þetta lén.
policies:
reject_media: Hafna myndefni
reject_reports: Hafna kærum
@@ -585,11 +589,13 @@ is:
assign_to_self: Úthluta mér
assigned: Úthlutaður umsjónarmaður
by_target_domain: Lén kærða notandaaðgangsins
+ cancel: Hætta við
category: Flokkur
category_description_html: Ástæðan fyrir því að þessi notandaaðgangur og/eða efni hans var kært mun verða tiltekin í samskiptum við kærðan notandaaðgang
comment:
none: Ekkert
comment_description_html: 'Til að gefa nánari upplýsingar skrifaði %{name}:'
+ confirm: Staðfesta
confirm_action: Staðfesta umsjónaraðgerðir gagnvart @%{acct}
created_at: Tilkynnt
delete_and_resolve: Eyða færslum
@@ -792,6 +798,7 @@ is:
suspend: "%{name} setti notandaaðganginn %{target} í frysti"
appeal_approved: Áfrýjað
appeal_pending: Áfrýjun í bið
+ appeal_rejected: Áfrýjun hafnað
system_checks:
database_schema_check:
message_html: Það eru fyrirliggjandi yfirfærslur á gagnagrunnum. Keyrðu þær til að tryggja að forritið hegði sér eins og skyldi
@@ -827,6 +834,7 @@ is:
other: Deilt af %{count} aðilum síðustu vikuna
title: Vinsælir tenglar
usage_comparison: Deilt %{today} sinnum í dag, samanborið við %{yesterday} í gær
+ not_allowed_to_trend: Ekki leyft að verða vinsælt
only_allowed: Aðeins leyfð
pending_review: Bíður eftir yfirlestri
preview_card_providers:
@@ -958,6 +966,7 @@ is:
applications:
created: Það tókst að búa til forrit
destroyed: Það tókst að eyða forriti
+ logout: Skrá út
regenerate_token: Endurgera aðgangsteikn
token_regenerated: Það tókst að endurgera aðgangsteiknið
warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum!
@@ -994,6 +1003,8 @@ is:
resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur
reset_password: Endursetja lykilorð
rules:
+ accept: Samþykkja
+ back: Til baka
preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}.
title: Nokkrar grunnreglur.
security: Öryggi
@@ -1141,7 +1152,7 @@ is:
featured_tags:
add_new: Bæta við nýju
errors:
- limit: Þú ert þegar búin/n að gefa hámarksfjölda myllumerkja aukið vægi
+ limit: Þú hefur þegar gefið hámarksfjölda myllumerkja aukið vægi
hint_html: "Hvað eru myllumerki með aukið vægi? Þau eru birt áberandi á opinbera notandasniðinu þínu og gera fólki kleift að fletta í gegnum opinberu færslurnar þínar sérstaklega undir þessum myllumerkjum. Þau eru frábær aðferð við að halda utan um skapandi vinnu eða langtíma verkefni."
filters:
contexts:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index d0c7168af..3531cfc7d 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -91,6 +91,7 @@ it:
moderation:
active: Attivo
all: Tutto
+ disabled: Disattivato
pending: In sospeso
silenced: Limitato
suspended: Sospeso
@@ -133,6 +134,7 @@ it:
search: Cerca
search_same_email_domain: Altri utenti con lo stesso dominio email
search_same_ip: Altri utenti con lo stesso IP
+ security: Sicurezza
security_measures:
only_password: Solo password
password_and_2fa: Password e A2F
@@ -427,6 +429,7 @@ it:
resolve: Risolvi dominio
title: Nuova voce della lista nera delle email
no_email_domain_block_selected: Nessun blocco di dominio di posta elettronica è stato modificato in quanto nessuno è stato selezionato
+ not_permitted: Non consentito
resolved_dns_records_hint_html: Il nome di dominio si risolve ai seguenti domini MX, che sono in ultima analisi responsabili per l'accettazione di e-mail. Il blocco di un dominio MX bloccherà le iscrizioni da qualsiasi indirizzo e-mail che utilizza lo stesso dominio MX, anche se il nome di dominio visibile è diverso. Fai attenzione a non bloccare i principali provider di posta elettronica.
resolved_through_html: Risolto attraverso %{domain}
title: Lista nera email
@@ -473,6 +476,7 @@ it:
content_policies:
comment: Nota interna
description_html: Puoi definire le politiche del contenuto che saranno applicate a tutti i profili da questo dominio e ognuno dei suoi sottodomini.
+ limited_federation_mode_description_html: Puoi scegliere se consentire la federazione con questo dominio.
policies:
reject_media: Rifiuta multimedia
reject_reports: Rifiuta rapporti
@@ -585,11 +589,13 @@ it:
assign_to_self: Assegna a me
assigned: Moderatore assegnato
by_target_domain: Dominio dell'account segnalato
+ cancel: Annulla
category: Categoria
category_description_html: Il motivo per cui questo account e/o contenuto è stato segnalato sarà citato nella comunicazione con l'account segnalato
comment:
none: Nessuno
comment_description_html: 'Per fornire ulteriori informazioni, %{name} ha scritto:'
+ confirm: Conferma
confirm_action: Conferma l'azione di moderazione contro @%{acct}
created_at: Segnalato
delete_and_resolve: Cancella post
@@ -792,6 +798,7 @@ it:
suspend: "%{name} ha sospeso l'account di %{target}"
appeal_approved: Sottoposto ad appello
appeal_pending: Appello in attesa
+ appeal_rejected: Appello respinto
system_checks:
database_schema_check:
message_html: Ci sono migrazioni del database in attesa. Sei pregato di eseguirle per assicurarti che l'applicazione si comporti come previsto
@@ -827,6 +834,7 @@ it:
other: Condiviso da %{count} persone nell'ultima settimana
title: Link in tendenza
usage_comparison: Condiviso %{today} volte oggi, rispetto a %{yesterday} ieri
+ not_allowed_to_trend: Non è consentito il trend
only_allowed: Solo consentiti
pending_review: Revisione in sospeso
preview_card_providers:
@@ -960,6 +968,7 @@ it:
applications:
created: Applicazione creata con successo
destroyed: Applicazione eliminata con successo
+ logout: Disconnettiti
regenerate_token: Rigenera il token di accesso
token_regenerated: Token di accesso rigenerato
warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
@@ -996,6 +1005,8 @@ it:
resend_confirmation: Invia di nuovo le istruzioni di conferma
reset_password: Resetta la password
rules:
+ accept: Accetta
+ back: Indietro
preamble: Questi sono impostati e applicati dai moderatori di %{domain}.
title: Alcune regole di base.
security: Credenziali
@@ -1575,7 +1586,7 @@ it:
'7889238': 3 mesi
min_age_label: Soglia di età
min_favs: Conserva i post preferiti più di
- min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto più di questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti
+ min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto almeno questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti
min_reblogs: Conserva i post condivisi più di
min_reblogs_hint: Non cancella nessuno dei tuoi post che è stato condiviso più di questo numero di volte. Lascia vuoto per cancellare i post indipendentemente dal loro numero di condivisioni
stream_entries:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 288d56ca5..bea0085c9 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -89,6 +89,7 @@ ja:
moderation:
active: アクティブ
all: すべて
+ disabled: 無効
pending: 承認待ち
silenced: 制限
suspended: 停止済み
@@ -130,6 +131,7 @@ ja:
search: 検索
search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
search_same_ip: 同じIPのユーザーを検索
+ security: 認証方法
security_measures:
only_password: パスワードのみ
password_and_2fa: パスワードと二要素認証
@@ -419,6 +421,7 @@ ja:
resolve: ドメイン解決
title: 新規メールドメインブロック
no_email_domain_block_selected: 何も選択されていないためメールドメインブロックを変更しませんでした
+ not_permitted: 権限がありません
resolved_dns_records_hint_html: ドメイン名はDNSでMXドメインに名前解決され、最終的にメールを受け付ける役割を担います。目に見えるドメイン名が異なっていても、同じMXドメインを使用するメールアドレスからのアカウント登録がブロックされます。主要なメールプロバイダーをブロックしないように注意して下さい。
resolved_through_html: "%{domain}を通して解決しました"
title: メールドメインブロック
@@ -463,6 +466,7 @@ ja:
content_policies:
comment: 内部メモ
description_html: このドメインとそのサブドメインのすべてのアカウントに適用されるコンテンツポリシーを定義できます。
+ limited_federation_mode_description_html: このドメインとの連合を許可するかどうかを選択できます。
policies:
reject_media: メディアを拒否する
reject_reports: 通報を拒否
@@ -573,11 +577,13 @@ ja:
assign_to_self: 担当になる
assigned: 担当者
by_target_domain: ドメイン
+ cancel: キャンセル
category: カテゴリー
category_description_html: 選択した理由は通報されたアカウントへの連絡時に引用されます
comment:
none: なし
comment_description_html: "%{name}からの詳細情報:"
+ confirm: 確認
confirm_action: "@%{acct} さんに対するアクション"
created_at: 通報日時
delete_and_resolve: 投稿を削除
@@ -778,6 +784,7 @@ ja:
suspend: "%{name}さんが%{target}さんのアカウントを停止しました"
appeal_approved: 抗議済み
appeal_pending: 保留中の抗議
+ appeal_rejected: 却下済みの抗議
system_checks:
database_schema_check:
message_html: 未実行のデータベースマイグレーションがあります。実行して正常に動作するようにしてください。
@@ -812,6 +819,7 @@ ja:
other: 週間%{count}人に共有されました
title: トレンドリンク
usage_comparison: 今日は%{today}回、昨日は%{yesterday}回共有されました
+ not_allowed_to_trend: 未許可のトレンド
only_allowed: 許可済み
pending_review: 保留中
preview_card_providers:
@@ -940,6 +948,7 @@ ja:
applications:
created: アプリが作成されました
destroyed: アプリが削除されました
+ logout: ログアウト
regenerate_token: アクセストークンの再生成
token_regenerated: アクセストークンが再生成されました
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
@@ -976,6 +985,8 @@ ja:
resend_confirmation: 確認メールを再送する
reset_password: パスワードを再発行
rules:
+ accept: 同意する
+ back: 戻る
preamble: これらは %{domain} モデレータによって設定され、実施されます。
title: いくつかのルールがあります。
security: セキュリティ
@@ -1123,7 +1134,7 @@ ja:
featured_tags:
add_new: 追加
errors:
- limit: 注目のハッシュタグの上限に達しました
+ limit: すでに注目のハッシュタグの上限数に達しています
hint_html: "注目のハッシュタグとは? プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
filters:
contexts:
@@ -1227,7 +1238,7 @@ ja:
title: 新規ユーザーの招待
lists:
errors:
- limit: リストの上限に達しました
+ limit: リストの上限数に達しています
login_activities:
authentication_methods:
otp: 二要素認証アプリ
@@ -1541,7 +1552,7 @@ ja:
'7889238': 3ヶ月
min_age_label: 投稿を保持する期間
min_favs: お気に入りの基準値
- min_favs_hint: この数以上、お気に入りされた投稿を削除せずに残します。空白にしておくと、お気に入りに登録された数に関わらず投稿を削除します。
+ min_favs_hint: この数以上、お気に入り登録された投稿を削除せずに残します。空白にしておくと、お気に入りの数に関わらず投稿を削除します。
min_reblogs: ブーストの基準値
min_reblogs_hint: この数以上、ブーストされた投稿を削除せずに残します。空白にしておくと、ブーストされた数に関わらず投稿を削除します。
stream_entries:
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index ff08987d9..dcc7e6580 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -344,9 +344,6 @@ ka:
expires_at: ვადა გასდის
uses: მოხმარება
title: მოიწვიეთ ხალხი
- lists:
- errors:
- limit: მიაღწიეთ სიების მაქსიმალურ ოდენობას
media_attachments:
validations:
images_and_video: ვიდეოს დართვა სტატუსზე, რომელიც უკვე მოიცავს სურათებს, ვერ მოხერხდება
@@ -392,10 +389,6 @@ ka:
next: შემდეგი
older: ძველი
prev: წინა
- preferences:
- other: სხვა
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა
sessions:
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 7f77b2be7..ead31b695 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -627,10 +627,6 @@ kab:
next: Γer zdat
older: Aqbuṛ
prev: Win iɛeddan
- preferences:
- other: Wiyaḍ
- posting_defaults: Posting defaults
- public_timelines: Public timelines
privacy_policy:
title: Tasertit tabaḍnit
relationships:
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 4c7189588..1adddf3c8 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -453,8 +453,6 @@ kk:
storage: Медиа жинақ
featured_tags:
add_new: Жаңасын қосу
- errors:
- limit: Хэштег лимитинен асып кеттіңіз
hint_html: " Ерекшеліктері бар хэштегтер дегеніміз не? Олар жалпыға қол жетімді профильде көрсетіледі және адамдарға сіздің жалпы хабарламаларыңызды сол хэштегтердің астына қарауға мүмкіндік береді. Олар шығармашылық жұмыстарды немесе ұзақ мерзімді жобаларды бақылаудың тамаша құралы."
filters:
contexts:
@@ -521,9 +519,6 @@ kk:
expires_at: Аяқталу мерзімі
uses: Қолданыс
title: Адам шақыру
- lists:
- errors:
- limit: Сіз тізімдердің максимум мөлшеріне жеттіңіз
media_attachments:
validations:
images_and_video: Жазбаға видео қоса алмайсыз, тек сурет қосуға болады
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index a216953e3..8e8f7ec6b 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -89,6 +89,7 @@ ko:
moderation:
active: 활동
all: 전체
+ disabled: 비활성화됨
pending: 대기 중
silenced: 제한됨
suspended: 정지 중
@@ -130,6 +131,7 @@ ko:
search: 검색
search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들
search_same_ip: 같은 IP의 다른 사용자들
+ security: 보안
security_measures:
only_password: 암호만
password_and_2fa: 암호와 2단계 인증
@@ -158,7 +160,7 @@ ko:
unsilenced_msg: 성공적으로 %{username} 계정을 제한 해제했습니다
unsubscribe: 구독 해제
unsuspended_msg: 성공적으로 %{username} 계정을 정지 해제했습니다
- username: 아이디
+ username: 사용자명
view_domain: 도메인의 요약 보기
warn: 경고
web: 웹
@@ -421,6 +423,7 @@ ko:
resolve: 도메인 검사
title: 새 이메일 도메인 차단
no_email_domain_block_selected: 아무 것도 선택 되지 않아 어떤 이메일 도메인 차단도 변경되지 않았습니다
+ not_permitted: 권한 없음
resolved_dns_records_hint_html: 도메인 네임은 다음의 MX 도메인으로 연결되어 있으며, 이메일을 받는데 필수적입니다. MX 도메인을 차단하면 같은 MX 도메인을 사용하는 어떤 이메일이라도 가입할 수 없게 되며, 보여지는 도메인이 다르더라도 적용됩니다. 주요 이메일 제공자를 차단하지 않도록 조심하세요.
resolved_through_html: "%{domain}을 통해 리졸빙됨"
title: Email 도메인 차단
@@ -465,6 +468,7 @@ ko:
content_policies:
comment: 내부 참고사항
description_html: 이 도메인과 하위 도메인의 모든 계정에 적용될 콘텐츠 정책을 정의할 수 있습니다.
+ limited_federation_mode_description_html: 이 도메인의 연합을 허용할지 선택할 수 있습니다.
policies:
reject_media: 미디어 거부
reject_reports: 신고 거부
@@ -575,11 +579,13 @@ ko:
assign_to_self: 나에게 할당하기
assigned: 할당된 중재자
by_target_domain: 신고된 계정의 도메인
+ cancel: 취소
category: 카테고리
category_description_html: 이 계정 또는 게시물이 신고된 이유는 신고된 계정과의 의사소통 과정에 인용됩니다
comment:
none: 없음
comment_description_html: '더 많은 정보를 위해, %{name} 님이 작성했습니다:'
+ confirm: 확정
confirm_action: "@%{acct}에 취할 중재 결정에 대한 확인"
created_at: 신고 시각
delete_and_resolve: 게시물 삭제
@@ -780,6 +786,7 @@ ko:
suspend: "%{name} 님이 %{target}의 계정을 정지시켰습니다"
appeal_approved: 이의제기됨
appeal_pending: 이의제기 대기중
+ appeal_rejected: 이의 제기 거절됨
system_checks:
database_schema_check:
message_html: 대기 중인 데이터베이스 마이그레이션이 있습니다. 애플리케이션이 예상대로 동작할 수 있도록 마이그레이션을 실행해 주세요
@@ -814,6 +821,7 @@ ko:
other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다
title: 유행하는 링크
usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다
+ not_allowed_to_trend: 트렌드에 오를 수 없음
only_allowed: 허용된 것만
pending_review: 심사 대기
preview_card_providers:
@@ -942,6 +950,7 @@ ko:
applications:
created: 애플리케이션이 성공적으로 생성되었습니다
destroyed: 애플리케이션이 성공적으로 삭제되었습니다
+ logout: 로그아웃
regenerate_token: 토큰 재생성
token_regenerated: 액세스 토큰이 성공적으로 재생성되었습니다
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
@@ -978,6 +987,8 @@ ko:
resend_confirmation: 확인 메일을 다시 보내기
reset_password: 암호 재설정
rules:
+ accept: 수락
+ back: 뒤로가기
preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다.
title: 몇 개의 규칙이 있습니다.
security: 보안
@@ -1055,8 +1066,8 @@ ko:
email_reconfirmation_html: 아직 확인 메일이 도착하지 않은 경우, 다시 요청할 수 있습니다
irreversible: 계정을 복구하거나 다시 사용할 수 없게 됩니다
more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요.
- username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다
- username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다
+ username_available: 이 사용자명을 다시 쓸 수 있게 됩니다.
+ username_unavailable: 이 사용자명은 앞으로도 쓸 수 없는 채로 남게 됩니다.
disputes:
strikes:
action_taken: 내려진 징계
@@ -1094,7 +1105,7 @@ ko:
'403': 이 페이지를 표시할 권한이 없습니다.
'404': 찾으려는 페이지가 존재하지 않습니다.
'406': 이 페이지는 요청한 자료형으로 제공되지 않습니다.
- '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다.
+ '410': 보려는 페이지는 더 이상 여기에 존재하지 않습니다.
'422':
content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까?
title: 보안 인증 실패
@@ -1112,7 +1123,7 @@ ko:
date: 날짜
download: 아카이브 다운로드
hint_html: 당신의 게시물과 업로드 된 미디어의 아카이브를 요청할 수 있습니다. 내보내지는 데이터는 ActivityPub 포맷입니다. 호환 되는 모든 소프트웨어에서 읽을 수 있습니다. 7일마다 새로운 아카이브를 요청할 수 있습니다.
- in_progress: 당신의 아카이브를 컴파일 중입니다…
+ in_progress: 아카이브를 컴파일 중...
request: 아카이브 요청하기
size: 크기
blocks: 차단
@@ -1125,12 +1136,12 @@ ko:
featured_tags:
add_new: 추가
errors:
- limit: 이미 추천 해시태그의 개수가 최대입니다
+ limit: 추천 해시태그 최대 개수를 초과합니다
hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다."
filters:
contexts:
account: 프로필
- home: 홈 타임라인
+ home: 홈 & 리스트
notifications: 알림
public: 퍼블릭 타임라인
thread: 대화
@@ -1229,7 +1240,7 @@ ko:
title: 초대
lists:
errors:
- limit: 리스트 최대치에 도달했습니다
+ limit: 리스트 최대 개수를 초과합니다
login_activities:
authentication_methods:
otp: 2단계 인증 앱
@@ -1243,7 +1254,7 @@ ko:
title: 인증 이력
media_attachments:
validations:
- images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부 할 수 없습니다
+ images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다.
not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요!
too_many: 최대 4개까지 첨부할 수 있습니다
migrations:
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 0990d9768..255026db1 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1113,8 +1113,6 @@ ku:
storage: Bîrdanaka medyayê
featured_tags:
add_new: Yeka nû tevlî bike
- errors:
- limit: Te jixwe berê pirtirîn hashtag destnîşan kiriye
hint_html: " Hashtagên destnîşankirî çi ne? Ew bi eşkere li ser profîla te ya gelemperî têne xuyakirin û dihêlin ku mirov bi taybetî di binê wan hashtagan de li şandiyên te yên gelemperî bigere. Ew ji bo şopandina karên afirîner an projeyên demdirêj amûrek girîng in."
filters:
contexts:
@@ -1224,9 +1222,6 @@ ku:
expires_at: Diqede
uses: Bikaranîn
title: Mirovan vexwîne
- lists:
- errors:
- limit: Tu gihîştî hejmara rêzika a herî zêde
login_activities:
authentication_methods:
otp: sepandina rastandina du-gavî
@@ -1543,7 +1538,6 @@ ku:
'7889238': 3 meh
min_age_label: Şêmûga demê
min_favs: Peyamên ku ji wê zêdetir hatine ecibandin veşêre
- min_favs_hint: Şandî ku ji evqas hezkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe
min_reblogs: Şandiyên ku bêtir hatine bilindkirin veşêre
min_reblogs_hint: Şandî ku ji ji vê hejmarê bêtir bilindkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe
stream_entries:
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 28c941959..b6dd360db 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -331,8 +331,6 @@ lt:
storage: Medijos sandėlis
featured_tags:
add_new: Pridėti naują
- errors:
- limit: Jūs jau naudojate maksimalų galimą saitažodžių(#) kiekį
filters:
contexts:
home: Namų laiko juosta
@@ -385,9 +383,6 @@ lt:
expires_at: Pasibaigia
uses: Naudojimai
title: Pakviesti žmones
- lists:
- errors:
- limit: Jūs pasieketė maksimalų sąrašų skaičių
media_attachments:
validations:
images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką
@@ -424,10 +419,6 @@ lt:
next: Kitas
older: Senesnis
prev: Ankstesnis
- preferences:
- other: Kita
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: Jūsų paskyros nukreipimo URL nerasta
scheduled_statuses:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 31e1ba77f..64963199c 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -93,6 +93,7 @@ lv:
moderation:
active: Aktīvie
all: Visi
+ disabled: Atspējots
pending: Gaida
silenced: Ierobežotie
suspended: Apturētie
@@ -136,6 +137,7 @@ lv:
search: Meklēt
search_same_email_domain: Citi lietotāji ar tādu pašu e-pasta domēnu
search_same_ip: Citi lietotāji ar tādu pašu IP
+ security: Drošība
security_measures:
only_password: Tikai parole
password_and_2fa: Parole un 2FA
@@ -435,6 +437,7 @@ lv:
resolve: Atrisināt domēnu
title: Bloķēt jaunu e-pasta domēnu
no_email_domain_block_selected: Neviens e-pasta domēna bloks netika mainīts, jo neviens netika atlasīts
+ not_permitted: Nav atļauta
resolved_dns_records_hint_html: Domēna nosaukums tiek izmantots tālāk norādītajos MX domēnos, kas galu galā ir atbildīgi par e-pasta pieņemšanu. Bloķējot MX domēnu, tiks bloķēta reģistrēšanās no jebkuras e-pasta adreses, kas izmanto vienu un to pašu MX domēnu, pat ja redzamais domēna nosaukums atšķiras. Esi uzmanīgs, lai nebloķētu lielākos e-pasta pakalpojumu sniedzējus.
resolved_through_html: Atrisināts, izmantojot %{domain}
title: Bloķētie e-pasta domēni
@@ -483,6 +486,7 @@ lv:
content_policies:
comment: Iekšējā piezīme
description_html: Tu vari definēt satura politikas, kas tiks piemērotas visiem kontiem no šī domēna un jebkura tā apakšdomēna.
+ limited_federation_mode_description_html: Tu vari izvēlēties, vai atļaut federāciju ar šo domēnu.
policies:
reject_media: Noraidīt multividi
reject_reports: Noraidīt ziņojumus
@@ -597,11 +601,13 @@ lv:
assign_to_self: Piešķirt man
assigned: Piešķirtais moderators
by_target_domain: Ziņotā konta domēns
+ cancel: Atcelt
category: Kategorija
category_description_html: Iemesls kāpēc šis konts un / vai saturs tika ziņots, tiks minēts saziņā ar paziņoto kontu
comment:
none: Neviens
comment_description_html: 'Lai sniegtu vairāk informācijas, %{name} rakstīja:'
+ confirm: Apstiprināt
confirm_action: Apstipriniet regulēšanas darbību pret @%{acct}
created_at: Ziņoti
delete_and_resolve: Izdzēst rakstus
@@ -706,7 +712,7 @@ lv:
manage_settings: Pārvaldīt Iestatījumus
manage_settings_description: Ļauj lietotājiem mainīt vietnes iestatījumus
manage_taxonomies: Pārvaldīt Taksonomijas
- manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālo saturu un atjaunināt atsauces iestatījumus
+ manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālāko saturu un atjaunināt atsauces iestatījumus
manage_user_access: Pārvaldīt Lietotāju Piekļuves
manage_user_access_description: Ļauj lietotājiem atspējot citu lietotāju divu faktoru autentifikāciju, mainīt savu e-pasta adresi un atiestatīt paroli
manage_users: Pārvaldīt Lietotājus
@@ -792,7 +798,7 @@ lv:
reblogs: Reblogi
status_changed: Ziņa mainīta
title: Konta ziņas
- trending: Tendences
+ trending: Populārākie
visibility: Redzamība
with_media: Ar multividi
strikes:
@@ -806,6 +812,7 @@ lv:
suspend: "%{name} apturēja %{target} kontu"
appeal_approved: Pārsūdzēts
appeal_pending: Apelācija tiek izskatīta
+ appeal_rejected: Apelācija noraidīta
system_checks:
database_schema_check:
message_html: Notiek datubāzu migrācijas. Lūdzu, palaid tās, lai nodrošinātu, ka lietojumprogramma darbojas, kā paredzēts
@@ -842,6 +849,7 @@ lv:
zero: Pēdējās nedēļas laikā kopīgoja %{count} personas
title: Populārākās saites
usage_comparison: Šodien kopīgots %{today} reizes, salīdzinot ar %{yesterday} vakar
+ not_allowed_to_trend: Popularizešana nav atļauta
only_allowed: Tikai atļautās
pending_review: Gaida pārskatīšanu
preview_card_providers:
@@ -888,7 +896,7 @@ lv:
other: Pēdējās nedēļas laikā izmantoja %{count} personas
zero: Pēdējās nedēļas laikā izmantoja %{count} personas
title: Tendences
- trending: Tendences
+ trending: Populārākie
warning_presets:
add_new: Pievienot jaunu
delete: Dzēst
@@ -976,6 +984,7 @@ lv:
applications:
created: Lietojumprogramma ir veiksmīgi izveidota
destroyed: Lietojumprogramma ir veiksmīgi dzēsta
+ logout: Iziet
regenerate_token: Atjaunot piekļuves marķieri
token_regenerated: Piekļuves marķieris veiksmīgi atjaunots
warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem!
@@ -1012,6 +1021,8 @@ lv:
resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus
reset_password: Atiestatīt paroli
rules:
+ accept: Pieņemt
+ back: Atpakaļ
preamble: Tos iestata un ievieš %{domain} moderatori.
title: Daži pamatnoteikumi.
security: Drošība
@@ -1046,7 +1057,7 @@ lv:
close: Vai vienkārši aizver šo logu.
return: Parādīt lietotāja profilu
web: Doties uz tīmekli
- title: Seko %{acct}
+ title: Sekot %{acct}
challenge:
confirm: Turpināt
hint_html: "Padoms: Nākamās stundas laikā mēs tev vairs neprasīsim paroli."
@@ -1207,7 +1218,7 @@ lv:
hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni.
title: Filtrētās ziņas
footer:
- trending_now: Šobrīd tendences
+ trending_now: Šobrīd populārākie
generic:
all: Visi
all_items_on_page_selected_html:
@@ -1251,7 +1262,7 @@ lv:
blocking: Bloķēšanas saraksts
bookmarks: Grāmatzīmes
domain_blocking: Bloķēto domēnu saraksts
- following: Sekojamo lietotāju saraksts
+ following: Turpmākais saraksts
muting: Apklusināto lietotāju saraksts
upload: Augšupielādēt
invites:
@@ -1279,7 +1290,7 @@ lv:
title: Uzaicināt cilvēkus
lists:
errors:
- limit: Esi sasniedzis maksimālo sarakstu skaitu
+ limit: Jūs esat sasniedzis maksimālo sarakstu skaitu
login_activities:
authentication_methods:
otp: divfaktoru autentifikācijas lietotne
@@ -1605,7 +1616,7 @@ lv:
'7889238': 3 mēneši
min_age_label: Vecuma slieksnis
min_favs: Saglabāt ziņas izlsasē vismaz
- min_favs_hint: Nedzēš nevienu tavu ziņu, kas ir saņēmusi vismaz tik daudz izlases. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izlases skaita
+ min_favs_hint: Nedzēš nevienu jūsu ziņu, kas ir saņēmusi vismaz tik daudz izcēlumu. Atstājiet tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu skaita
min_reblogs: Saglabāt ziņas izceltas vismaz
min_reblogs_hint: Neizdzēš nevienu no tavām ziņām, kas ir izceltas vismaz tik reižu. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu skaita
stream_entries:
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 1fc856c64..2bee9fee1 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -971,7 +971,6 @@ ms:
'63113904': 2 tahun
'7889238': 3 bulan
min_favs: Simpan hantaran digemarkan sekurang-kurangnya
- min_favs_hint: Tidak memadamkan mana-mana hantaran anda yang telah menerima sekurang-kurangnya jumlah gemaran ini. Biarkan kosong untuk memadamkan hantaran tanpa mengira nombor gemaran
stream_entries:
pinned: Hantaran disemat
sensitive_content: Kandungan sensitif
diff --git a/config/locales/my.yml b/config/locales/my.yml
index 3a86851c9..a2aaeece0 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -1,6 +1,8 @@
---
my:
about:
+ about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။
+ hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon"
title: အကြောင်း
accounts:
follow: စောင့်ကြည့်မယ်
@@ -20,6 +22,7 @@ my:
accounts:
add_email_domain_block: ဒိုမိန်းကိုပိတ်မည်
approve: အတည်ပြုပါ
+ approved_msg: "%{username} ၏ စာရင်းသွင်းခြင်းကို အတည်ပြုပြီးပါပြီ"
are_you_sure: သေချာပါသလား။
avatar: ကိုယ်စားပြုရုပ်ပုံ
by_domain: ဒိုမိန်း
@@ -31,6 +34,7 @@ my:
submit: အီးမေးလ်ပြောင်းပါ။
title: "%{username} အတွက် အီးမေးလ်ပြောင်းပါ"
change_role:
+ changed_msg: အခန်းကဏ္ဍကို ပြောင်းလဲပြီးပါပြီ။
label: အခန်းကဏ္ဍ ပြောင်းလဲရန်
no_role: အခန်းကဏ္ဍမရှိ
title: "%{username} အတွက် အခန်းကဏ္ဍပြောင်းပါ"
@@ -65,6 +69,7 @@ my:
moderation:
active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း
all: အားလုံး
+ disabled: ပိတ်ထားသည်
pending: ဆိုင်းငံ့ထားခြင်း
silenced: ကန့်သတ်ထားသော
suspended: ရပ်ဆိုင်းထားခြင်း
@@ -73,6 +78,7 @@ my:
most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန်
most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ
no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ
perform_full_suspension: ရပ်ဆိုင်းရန်
promote: အထောက်အကူ
protocol: လုပ်ထုံးလုပ်နည်း
@@ -89,9 +95,11 @@ my:
send: အတည်ပြုထားသောအီးမေးလ် ပြန်ပို့ပေးရန်
success: အတည်ပြုထားသောအီးမေးလ် ပို့ပြီးပါပြီ။
reset: ပြန်သတ်မှတ်မည်
+ resubscribe: ပြန်လည်စာရင်းသွင်းပါ
role: အခန်းကဏ္ဍ
search: ရှာရန်
search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ
+ security: လုံခြုံရေး
security_measures:
only_password: စကားဝှက်ဖြင့်သာ
password_and_2fa: စကားဝှက်နှင့် 2FA
@@ -110,43 +118,121 @@ my:
unsubscribe: စာရင်းမှထွက်ရန်
unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ"
username: အသုံးပြုသူအမည်
+ view_domain: ဒိုမိန်းအတွက် အကျဉ်းချုပ်ကို ကြည့်ပါ
web: ဝဘ်
+ whitelisted: ဖက်ဒီကို ခွင့်ပြုခဲ့သည်
action_logs:
action_types:
+ approve_appeal: အယူခံကို အတည်ပြုပါ
approve_user: အသုံးပြုသူကို အတည်ပြုရန်
change_email_user: အသုံးပြုသူအတွက် အီးမေးလ်ပြောင်းရန်
change_role_user: အသုံးပြုသူ၏ အခန်းကဏ္ဍကို ပြောင်းလဲရန်
confirm_user: အသုံးပြုသူကို လက်ခံရန်
+ create_account_warning: သတိပေးချက်ဖန်တီးပါ
create_announcement: ကြေညာချက်ဖန်တီးပါ
+ create_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖန်တီးရန်
create_custom_emoji: စိတ်ကြိုက်အီမိုဂျီ ဖန်တီးပါ
+ create_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖန်တီးရန်
+ create_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖန်တီးရန်
+ create_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖန်တီးရန်
create_ip_block: IP စည်းမျဉ်း ဖန်တီးရန်
+ create_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖန်တီးပါ
create_user_role: အခန်းကဏ္ဍဖန်တီးပါ
destroy_announcement: ကြေညာချက်ကို ဖျက်ပါ
+ destroy_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖျက်ရန်
destroy_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖျက်ရန်
+ destroy_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖျက်ရန်
+ destroy_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
+ destroy_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ
destroy_status: Post ကို ဖျက်ပါ
destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ
disable_2fa_user: 2FA ကို ပိတ်ပါ
disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ
+ disable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်
disable_user: အသုံးပြုသူကို ပိတ်ပါ
enable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖွင့်ပါ
+ enable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ဖွင့်ထားသည်
enable_user: အသုံးပြုသူကို ဖွင့်ပါ
memorialize_account: အမှတ်တရအကောင့်
promote_user: အသုံးပြုသူ မြှင့်တင်ရန်
+ reject_appeal: အယူခံဝင်မှုကို ငြင်းပယ်ပါ
reject_user: အသုံးပြုသူ ဖယ်ရှားရန်
remove_avatar_user: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ
+ reopen_report: အစီရင်ခံစာပြန်ဖွင့်ရန်
+ resend_user: အတည်ပြုရန် မေးလ်ကို ပြန်ပို့ပေးရန်
+ reset_password_user: စကားဝှက်ကို ပြန်လည်ရယူမည်
+ resolve_report: အစီရင်ခံစာကို ဖြေရှင်းရန်
silence_account: အကောင့် ကန့်သတ်ပါ
suspend_account: အကောင့် ရပ်ဆိုင်းပါ
+ unassigned_report: အစီရင်ခံစာ ဖြုတ်ရန်
+ unblock_email_account: အီးမေးလ်လိပ်စာ ပြန်ဖွင့်ရန်
update_announcement: ကြေညာချက်ပြင်ဆင်ရန်
update_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပြင်ဆင်ရန်
+ update_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ပြင်ဆင်ရန်
update_ip_block: IP စည်းမျဉ်း ပြင်ဆင်ရန်
update_status: ပို့စ်ပြင်ဆင်ရန်
update_user_role: အခန်းကဏ္ဍပြင်ဆင်ရန်
actions:
+ approve_user_html: " %{name} က %{target} မှ အကောင့်ဖွင့်ခြင်းကို အတည်ပြုထားသည်"
+ assigned_to_self_report_html: "%{name} က အစီရင်ခံစာ %{target} များကို ၎င်းတို့ထံ ပေးအပ်ခဲ့သည်"
+ change_email_user_html: "%{name} က အသုံးပြုသူ %{target} ၏ အီးမေးလ်လိပ်စာကို ပြောင်းခဲ့သည်"
+ change_role_user_html: "%{name} က %{target} ၏ အခန်းကဏ္ဍကို ပြောင်းခဲ့သည်"
+ confirm_user_html: "%{name} က အသုံးပြုသူ %{target} ၏ အီးမေးလ်လိပ်စာကို အတည်ပြုခဲ့သည်"
+ create_account_warning_html: "%{name} က %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်"
+ create_announcement_html: "%{name} က ကြေညာချက်အသစ် %{target} ကို ဖန်တီးခဲ့သည်"
+ create_canonical_email_block_html: "%{name} က ဟက်ရှ် %{target} ဖြင့် အီးမေးလ်ကို ပိတ်ပင်ထားသည်"
+ create_custom_emoji_html: "%{name} က အီမိုဂျီ %{target} အသစ်ကို ပြင်ဆင်ခဲ့သည်"
+ create_domain_allow_html: "%{name} က ဒိုမိန်း %{target} ဖြင့် ဖက်ဒီကို ခွင့်ပြုခဲ့သည်"
+ create_domain_block_html: "%{name} က ဒိုမိန်း %{target} ကို ပိတ်ပင်ထားသည်"
+ create_email_domain_block_html: "%{name} က အီးမေးလ်ဒိုမိန်း %{target} ကို ပိတ်ပင်ထားသည်"
+ create_ip_block_html: "%{name} က IP %{target} အတွက် စည်းမျဉ်းကို ဖန်တီးထားသည်"
+ create_user_role_html: "%{name} က %{target} အခန်းကဏ္ဍကို ဖန်တီးပြီးပါပြီ"
+ demote_user_html: "%{name} က အသုံးပြုသူ %{target} ကို ဖြုတ်ပြီးပါပြီ"
+ destroy_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ဖျက်လိုက်သည်"
+ destroy_canonical_email_block_html: ဟက်ရှ် %{target} ဖြင့် %{name} အီးမေးလ်ပိတ်သိမ်းထားခြင်းကို ဖယ်ရှားပြီးပါပြီ
destroy_custom_emoji_html: "%{name} ဖျက်လိုက်သော အီမိုဂျီ %{target}"
+ destroy_domain_allow_html: "%{name} က ဒိုမိန်း %{target} ဖြင့် ဖက်ဒီကို ခွင့်မပြုခဲ့ပါ"
+ destroy_domain_block_html: "%{name} မှ ပြန်ဖွင့်လိုက်သော ဒိုမိန်း %{target}"
+ destroy_email_domain_block_html: "%{name} က အီးမေးလ်ဒိုမိန်း %{target} ကို ပြန်ဖွင့်ထားသည်"
+ destroy_instance_html: "%{name} က ဒိုမိန်း %{target} ကို ဖယ်ရှားခဲ့သည်"
+ destroy_ip_block_html: "%{name} က IP %{target} အတွက် စည်းမျဉ်းကို ဖျက်ထားသည်"
+ destroy_status_html: "%{name} က %{target} မှ တင်ထားသောပို့စ်ကို ဖယ်ရှားခဲ့သည်"
+ destroy_user_role_html: "%{name} ဖျက်ထားသော အခန်းကဏ္ဍ %{target} "
+ disable_2fa_user_html: "%{name} က အသုံးပြုသူ %{target} အတွက် နှစ်ဆင့်ခံလုံခြုံရေးလိုအပ်ချက်ကို ပိတ်ထားသည်"
disable_custom_emoji_html: "%{name} ပိတ်ထားသောအီမိုဂျီ %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} က %{target} အတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်"
+ disable_user_html: "%{name} က အသုံးပြုသူ %{target} အတွက် အကောင့်ဝင်ခြင်းကို ပိတ်ထားသည်"
+ enable_custom_emoji_html: "%{name} ဖွင့်ထားသည့် အီမိုဂျီ %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} က %{target} အတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ဖွင့်ထားသည်"
+ enable_user_html: "%{name} က အသုံးပြုသူ %{target} အတွက် အကောင့်ဝင်ခြင်းကို ဖွင့်ထားသည်"
+ memorialize_account_html: "%{name} က %{target} ၏ အကောင့်ကို အမှတ်တရ စာမျက်နှာအဖြစ် ပြောင်းလဲခဲ့သည်"
+ promote_user_html: "%{name} က အသုံးပြုသူ %{target} ကို ထောက်ခံခဲ့သည်"
+ reject_appeal_html: "%{name} က %{target} မှ အယူခံဝင်မှု ဆုံးဖြတ်ချက် စိစစ်ခြင်းကို ပယ်ချခဲ့သည်"
+ reject_user_html: "%{name} က %{target} မှတစ်ဆင့် အကောင့်ဖွင့်ခြင်းကို ပယ်ချခဲ့သည်"
+ remove_avatar_user_html: "%{name} က %{target} ၏ ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားခဲ့သည်"
+ reopen_report_html: "%{name} က အစီရင်ခံစာ %{target} ကို ပြန်ဖွင့်ခဲ့သည်"
+ resend_user_html: "%{name} က %{target} အတွက် အတည်ပြုချက်အီးမေးလ်ကို ပြန်ပို့ခဲ့သည်"
+ reset_password_user_html: "%{name} က အသုံးပြုသူ %{target} ၏ စကားဝှက်ကို ပြန်လည်သတ်မှတ်ခဲ့သည်"
+ resolve_report_html: "%{name} က အစီရင်ခံစာ %{target} ကို ဖြေရှင်းထားသည်"
+ sensitive_account_html: "%{name} က %{target} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားသည်"
+ silence_account_html: "%{name} က %{target} ၏ အကောင့်ကို ကန့်သတ်ထားသည်"
+ suspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်"
+ unassigned_report_html: "%{name} က အစီရင်ခံစာ %{target} ကို ဖြုတ်ထားသည်"
+ unblock_email_account_html: "%{name} က %{target} ၏ အီးမေးလ်လိပ်စာကို ပြန်ဖွင့်ခဲ့သည်"
+ unsensitive_account_html: "%{name} က %{target} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားခြင်းမရှိပါ"
+ unsuspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်"
+ update_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ပြင်ဆင်ခဲ့သည်"
+ update_custom_emoji_html: "%{name} က အီမိုဂျီ %{target} ကို ပြင်ဆင်ခဲ့သည်"
+ update_domain_block_html: "%{name} က %{target} အတွက် ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ခဲ့သည်"
+ update_ip_block_html: "%{name} မှ IP %{target} အတွက် စည်းမျဉ်း ပြောင်းထားသည်"
+ update_status_html: "%{name} က %{target} တင်ထားသောပို့စ်ကို ပြင်ဆင်ခဲ့သည်"
+ update_user_role_html: "%{name} က %{target} အခန်းကဏ္ဍကို ပြောင်းလဲခဲ့ပါသည်"
deleted_account: အကောင့်ဖျက်ပြီးပါပြီ
empty: မှတ်တမ်းများ မတွေ့ပါ။
+ filter_by_action: လုပ်ဆောင်ချက်အလိုက် စစ်ထုတ်ရန်
+ filter_by_user: အသုံးပြုသူအလိုက် စစ်ထုတ်ရန်
+ title: မှတ်တမ်းများစစ်ဆေးခြင်း
announcements:
destroyed_msg: ကြေညာချက် ဖျက်ပြီးပါပြီ
edit:
@@ -161,6 +247,7 @@ my:
unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ
updated_msg: ကြေညာချက်ကို ပြင်ဆင်ပြီးပါပြီ။
custom_emojis:
+ assign_category: အမျိုးအစားသတ်မှတ်ရန်
by_domain: ဒိုမိန်း
copy: ကူးယူပါ
create_new_category: အမျိုးအစားအသစ်ဖန်တီးရန်
@@ -169,15 +256,20 @@ my:
destroyed_msg: အီမိုဂျီ ဖျက်ပစ်လိုက်ပါပြီ။
disable: ပိတ်ပါ
disabled: ပိတ်ပြီးပါပြီ
+ disabled_msg: ထိုအီမိုဂျီကို ပိတ်ပြီးပါပြီ
emoji: အီမိုဂျီ
enable: ဖွင့်ပါ
enabled: ဖွင့်ထားသည်
+ enabled_msg: ထိုအီမိုဂျီကို ဖွင့်ပြီးပါပြီ
image_hint: PNG သို့မဟုတ် GIF %{size} အထိ
list: စာရင်း
listed: စာရင်းသွင်းထားသည်
new:
title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ
+ no_emoji_selected: မည်သည့်အီမိုဂျီကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။
title: စိတ်ကြိုက်အီမိုဂျီများ
+ uncategorized: အမျိုးအစားခွဲခြားထားခြင်းမရှိပါ
unlist: စာရင်းမသွင်းထားပါ
unlisted: စာရင်းမသွင်းထားပါ
update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ
@@ -185,21 +277,54 @@ my:
upload: တင္ရန်
dashboard:
active_users: လက်ရှိအသုံးပြုသူများ
+ interactions: အပြန်အလှန်ဆက်သွယ်မှုများ
media_storage: မီဒီယာသိုလှောင်မှု
new_users: အသုံးပြုသူအသစ်များ
+ pending_appeals_html:
+ other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း"
+ pending_users_html:
+ other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ"
+ software: ဆော့ဖ်ဝဲလ်
+ sources: အကောင့်ဖွင့်ခြင်းဆိုင်ရာ သတင်းရင်းမြစ်များ
+ space: နေရာလွတ်အသုံးပြုမှု
+ title: ဒက်ရှ်ဘုတ်မြင်ကွင်း
top_languages: လက်ရှိအသုံးများလျက်ရှိသည့် ဘာသာစကား
top_servers: လက်ရှိအသုံးများလျက်ရှိသည့် ဆာဗာများ
website: ဝဘ်ဆိုဒ်
+ disputes:
+ appeals:
+ empty: အယူခံဝင်ထားခြင်းမရှိပါ။
+ title: အယူခံဝင်ထားခြင်းများ
+ domain_allows:
+ add_new: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုရန်
+ created_msg: ဒိုမိန်းကို ဖက်ဒီအတွက် ခွင့်ပြုပြီးပါပြီ
+ export: ထုတ်ယူခြင်း
+ import: ထည့်သွင်းခြင်း
+ undo: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်မပြုပါ
domain_blocks:
+ add_new: ဒိုမိန်းပိတ်ပင်ခြင်းအသစ် ထည့်ပါ
+ created_msg: ဒိုမိန်းပိတ်ပင်ခြင်းကို ယခုလုပ်ဆောင်နေပါသည်
domain: ဒိုမိန်း
+ edit: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ရန်
+ export: ထုတ်ယူခြင်း
+ import: ထည့်သွင်းခြင်း
new:
+ create: ပိတ်ပင်ခြင်း ဖန်တီးရန်
severity:
silence: ကန့်သတ်
suspend: ရပ်ဆိုင်းပါ
+ title: ဒိုမိန်းပိတ်ပင်ထားခြင်းအသစ်
+ no_domain_block_selected: မည်သည့်ဒိုမိန်းပိတ်ပင်ထားခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။
private_comment: သီးသန့်မှတ်ချက်
+ private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။
public_comment: အများမြင်မှတ်ချက်
+ reject_media: မီဒီယာဖိုင်များကို ဖယ်ရှားပါ
+ undo: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြန်ဖျက်ရန်
+ view: ဒိုမိန်းပိတ်ပင်ခြင်းကို ကြည့်ရန်
email_domain_blocks:
add_new: အသစ် ထည့်ပါ
+ created_msg: အီးမေးလ်ဒိုမိန်းကို ပိတ်ပင်နိုင်ခဲ့ပါသည်
delete: ဖျက်ပါ
dns:
types:
@@ -207,9 +332,21 @@ my:
domain: ဒိုမိန်း
new:
create: ဒိုမိန်းထည့်ပါ
+ resolve: ဒိုမိန်းကို ဖြေရှင်းရန်
+ title: အီးမေးလ်ဒိုမိန်းအသစ်ကို ပိတ်ရန်
+ no_email_domain_block_selected: မည်သည့်အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ခွင့်ပြုထားခြင်းမရှိပါ
+ resolved_through_html: "%{domain} မှတစ်ဆင့် ဖြေရှင်းခဲ့သည်"
+ title: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းများ
export_domain_allows:
no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ။
export_domain_blocks:
+ import:
+ private_comment_template: "%{date} တွင် %{source} မှ ထည့်သွင်းခဲ့သည်"
+ title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန်
+ invalid_domain_block: အောက်ပါအမှား(များ)ကြောင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒိုမိန်းပိတ်ပင်ထားမှုများကို ကျော်သွားခဲ့သည် - %{error}
+ new:
+ title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန်
no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ
follow_recommendations:
language: ဘာသာစကားအတွက်
@@ -217,8 +354,11 @@ my:
instances:
back_to_all: အားလုံး
back_to_limited: ကန့်သတ်ထားသည်
+ back_to_warning: သတိပေးချက်
+ by_domain: ဒိုမိန်း
confirm_purge: ဤဒိုမိန်းမှ အချက်အလက်များကို အပြီးတိုင်ဖျက်လိုသည်မှာ သေချာပါသလား။
content_policies:
+ limited_federation_mode_description_html: ဤဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုမလား။
policies:
reject_media: မီဒီယာဖယ်ရှားရန်
reject_reports: အစီရင်ခံစာများ ဖယ်ရှားရန်
@@ -226,9 +366,13 @@ my:
suspend: ရပ်ဆိုင်းပါ
policy: မူဝါဒ
dashboard:
+ instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ
+ instance_accounts_measure: သိမ်းဆည်းထားသော အကောင့်များ
instance_followers_measure: ကျွန်ုပ်တို့၏စောင့်ကြည့်သူများ အဲ့ဒီနေရာမှာပါ
instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ
instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
+ instance_media_attachments_measure: သိမ်းဆည်းထားသော မီဒီယာပူးတွဲဖိုင်များ
+ instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ
delivery:
all: အားလုံး
unavailable: မရရှိနိုင်ပါ
@@ -238,6 +382,11 @@ my:
title: စိစစ်ခြင်း
private_comment: သီးသန့်မှတ်ချက်
public_comment: အများမြင်မှတ်ချက်
+ title: ဖက်ဒီ
+ total_blocked_by_us: ကျွန်ုပ်တို့မှ ပိတ်ပင်ထားခြင်း
+ total_followed_by_them: "၎င်းတို့မှ စောင့်ကြည့်ခဲ့သည်"
+ total_followed_by_us: ကျွန်ုပ်တို့မှ စောင့်ကြည့်ခဲ့သည်
+ total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ"
total_storage: မီဒီယာ ပူးတွဲချက်များ
invites:
filter:
@@ -257,6 +406,7 @@ my:
'94670856': ၃ နှစ်
new:
title: IP စည်းမျဉ်းအသစ်ဖန်တီးပါ
+ no_ip_block_selected: မည်သည့် IP စည်းမျဉ်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
title: IP စည်းမျဉ်းများ
relationships:
title: "%{acct} နှင့် ပတ်သက်မှု"
@@ -266,37 +416,66 @@ my:
disabled: ပိတ်ထားသည်
enable: ဖွင့်ပါ
enabled: ဖွင့်ထားသည်
+ save_and_enable: သိမ်းပြီး ဖွင့်ရန်
status: အခြေအနေ
reports:
account:
notes:
other: "%{count} မှတ်စု"
+ action_log: မှတ်တမ်းများစစ်ဆေးခြင်း
are_you_sure: သေချာပါသလား။
assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန်
assigned: စိစစ်သူကို တာဝန်ပေးရန်
+ cancel: ပယ်ဖျက်မည်
category: အမျိုးအစား
+ comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -"
+ confirm: အတည်ပြုမည်
+ confirm_action: "@%{acct} ကို စိစစ်အကဲဖြတ်ခြင်းအား အတည်ပြုပါ"
delete_and_resolve: ပို့စ်များကို ဖျက်ပါ
+ forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ
+ forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်"
+ mark_as_resolved: ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ
+ mark_as_unresolved: မဖြေရှင်းရသေးကြောင်း အမှတ်အသားပြုပါ
+ no_one_assigned: တစ်ယောက်မျှမရှိပါ
notes:
create: မှတ်စုထည့်ရန်
+ create_and_resolve: မှတ်စုဖြင့် ဖြေရှင်းပါ
create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန်
delete: ဖျက်ပါ
title: မှတ်စုများ
+ remote_user_placeholder: "%{instance} မှ အဝေးကနေအသုံးပြုသူ"
reopen: အစီရင်ခံစာပြန်ဖွင့်ရန်
report: "#%{id} အစီရင်ခံရန်"
resolved: ဖြေရှင်းပြီးပါပြီ
+ skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန်
status: အခြေအနေ
summary:
+ action_preambles:
+ delete_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို ဖယ်ရှား တော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ -
+ mark_as_sensitive_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို သတိထားရသောပို့စ်များ အဖြစ် အမှတ်အသားပြုတော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ -
+ silence_html: သင်သည် @%{acct} ၏ အကောင့်ကို ကန့်သတ် တော့မည်ဖြစ်သည်။ ၎င်းမှာ -
+ suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ -
actions:
suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း"
delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်"
+ unassign: တာဝန်မှဖြုတ်ရန်
+ unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action}
+ unresolved: မဖြေရှင်းရသေးပါ
updated_at: ပြင်ဆင်ပြီးပါပြီ
view_profile: ပရိုဖိုင်ကြည့်ရန်
roles:
add_new: အခန်းကဏ္ဍထည့်ပါ
+ assigned_users:
+ other: "%{count} အသုံးပြုသူ"
categories:
+ administration: စီမံခန့်ခွဲခြင်း
devops: DevOps
+ invites: ဖိတ်ခေါ်ခြင်း
moderation: စိစစ်ခြင်း
+ special: အထူး
delete: ဖျက်ပါ
+ edit: "'%{name} ၏ အခန်းကဏ္ဍကို ပြင်ဆင်ရန်"
+ everyone: မူလသတ်မှတ်ထားသည့် ခွင့်ပြုချက်များ
permissions_count:
other: "%{count} ခွင့်ပြုချက်"
privileges:
@@ -306,17 +485,31 @@ my:
invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန်
manage_announcements: ကြေညာချက်များကို စီမံပါ
manage_announcements_description: ဆာဗာပေါ်တွင် ကြေညာချက်များစီမံရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန်
+ manage_appeals: အယူခံဝင်ထားခြင်းများကို စီမံပါ
+ manage_appeals_description: စိစစ်အရေးယူမှုများအပေါ် အယူခံဝင်မှုများ ပြန်လည်သုံးသပ်ရန်အတွက် အသုံးပြုသူများအား ခွင့်ပြုရန်
+ manage_blocks: ပိတ်ပင်ထားမှုများကို စီမံပါ
+ manage_custom_emojis: စိတ်ကြိုက်အီမိုဂျီများကို ပြင်ဆင်ရန်
+ manage_custom_emojis_description: အသုံးပြုသူများအား ဆာဗာပေါ်တွင် စိတ်ကြိုက်အီမိုဂျီများကို စီမံခန့်ခွဲရန် ခွင့်ပြုသည်။
+ manage_federation: ဖက်ဒီကို စီမံပါ
+ manage_federation_description: အသုံးပြုသူများအား အခြားဒိုမိန်းများနှင့် ပိတ်ပင်ခြင်း၊ ဖက်ဒီခွင့်ပြုခြင်းနှင့် ပေးပို့နိုင်မှုကို ထိန်းချုပ်ခြင်းတို့ကို ခွင့်ပြုသည်။
+ manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန်
manage_reports: အစီရင်ခံစာများကို စီမံပါ
manage_roles: အခန်းကဏ္ဍများကို စီမံပါ
manage_rules: စည်းမျဉ်းများကို စီမံပါ
manage_settings: သတ်မှတ်ချက်များကို စီမံပါ
+ manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန်
+ manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ
manage_users: အသုံးပြုသူများကို စီမံပါ
+ view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန်
+ view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည်
view_devops: DevOps
+ title: အခန်းကဏ္ဍများ
rules:
delete: ဖျက်ပါ
title: ဆာဗာစည်းမျဉ်းများ
settings:
about:
+ manage_rules: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
title: အကြောင်း
appearance:
title: ပုံပန်းသဏ္ဌာန်
@@ -324,20 +517,31 @@ my:
profile_directory: ပရိုဖိုင်လမ်းညွှန်
domain_blocks:
all: လူတိုင်း
+ disabled: မည်သူ့ကိုမျှ
+ users: အကောင့်ဝင်ထားသော ပြည်တွင်းအသုံးပြုသူများအတွက်
+ registrations_mode:
+ modes:
+ open: မည်သူမဆို အကောင့်ဖွင့်နိုင်ပါသည်
title: ဆာဗာသတ်မှတ်ချက်များ
site_uploads:
delete: တင်ထားသောဖိုင်ဖျက်ရန်
statuses:
account: ရေးသားသူ
+ application: အက်ပလီကေးရှင်း
back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန်
deleted: ဖျက်ပြီးပါပြီ
favourites: အကြိုက်ဆုံးများ
language: ဘာသာစကား
media:
title: မီဒီယာ
+ open: ပို့စ်ဖွင့်ရန်
original_status: မူရင်းပို့စ်
title: အကောင့်ပို့စ်များ
with_media: မီဒီယာနှင့်အတူ
+ strikes:
+ actions:
+ delete_statuses: "%{name} မှ %{target} ၏ ပို့စ်များကို ဖျက်ခဲ့သည်"
+ none: "%{name} မှ %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်"
system_checks:
rules_check:
action: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
@@ -345,10 +549,14 @@ my:
allow: ခွင့်ပြု
approved: အတည်ပြုပြီးပါပြီ
disallow: ခွင့်မပြု
+ links:
+ allow: လင့်ခ်ကို ခွင့်ပြုရန်
+ disallow: လင့်ခ်ကို ခွင့်မပြုရန်
rejected: ဖယ်ရှားပြီးပါပြီ
statuses:
allow: ပို့စ်တင်ခွင့်ပြုရန်
disallow: ပို့စ်ကို တင်ခွင့်မပြုရန်
+ title: လက်ရှိခေတ်စားနေသော ပို့စ်များ
tags:
dashboard:
tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
@@ -358,6 +566,8 @@ my:
listable: အကြံပြုနိုင်ပါသည်
not_usable: အသုံးမပြုနိုင်ပါ
usable: အသုံးပြုနိုင်သည်
+ title: လက်ရှိခေတ်စားမှုများ
+ trending: လက်ရှိခေတ်စားနေခြင်း
warning_presets:
add_new: အသစ်ထည့်ပါ
delete: ဖျက်ပါ
@@ -369,6 +579,10 @@ my:
enabled: လက်ရှိ
events: ပွဲအစီအစဉ်များ
status: အခြေအနေ
+ admin_mailer:
+ new_appeal:
+ actions:
+ none: သတိပေးချက်
appearance:
localization:
guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။
@@ -396,6 +610,8 @@ my:
registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ"
security: လုံခြုံရေး
set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။
+ sign_in:
+ title: "%{domain} သို့ အကောင့်ဝင်ရန်"
status:
account_status: အကောင့်အခြေအနေ
authorize_follow:
@@ -409,6 +625,7 @@ my:
challenge:
confirm: ဆက်လုပ်မည်
invalid_password: စကားဝှက် မမှန်ပါ
+ prompt: ဆက်လက်လုပ်ဆောင်ရန်အတွက် စကားဝှက်အတည်ပြုပါ
date:
formats:
default: "%b %d, %Y"
@@ -432,6 +649,8 @@ my:
success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ
disputes:
strikes:
+ appeals:
+ submit: အယူခံဝင်ခွင့်ပြုရန်
status: "#%{id} ပို့စ်"
title: "%{date} မှ %{action}"
title_actions:
@@ -442,14 +661,20 @@ my:
'404': The page you are looking for isn't here.
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
- '429': Too many requests
+ '422':
+ content: လုံခြုံရေး အတည်ပြုခြင်း မအောင်မြင်ပါ။ သင်သည် ကွတ်ကီးများကို ပိတ်ပင်ထားပါသလား။
+ '429': တောင်းဆိုမှု များနေပါသည်
+ '500':
+ title: ဤစာမျက်နှာမှာ မမှန်ကန်ပါ
'503': The page could not be served due to a temporary server failure.
exports:
archive_takeout:
date: ရက်စွဲ
+ download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ
size: အရွယ်အစား
blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း
csv: CSV
+ domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ
lists: စာရင်းများ
storage: မီဒီယာသိုလှောင်မှု
featured_tags:
@@ -470,11 +695,23 @@ my:
statuses:
other: "%{count} ပို့စ်"
title: စစ်ထုတ်ခြင်းများ
+ new:
+ save: စစ်ထုတ်မှုအသစ် သိမ်းပါ
+ title: စစ်ထုတ်မှုအသစ် ထည့်ပါ
+ statuses:
+ index:
+ title: စစ်ထုတ်ထားသော ပို့စ်များ
generic:
all: အားလုံး
copy: ကူးယူပါ
delete: ဖျက်ပါ
today: ယနေ့
+ imports:
+ preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။
+ types:
+ blocking: ပိတ်ပင်ထားသည့်စာရင်း
+ domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း
+ upload: တင္ရန်
invites:
expires_in:
'1800': ၃၀ မိနစ်
@@ -501,9 +738,15 @@ my:
redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည်
notification_mailer:
follow:
+ body: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
+ subject: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
title: စောင့်ကြည့်သူအသစ်
+ follow_request:
+ action: စောင့်ကြည့်ရန်တောင်းဆိုမှုများကို ပြင်ဆင်ရန်
+ title: စောင့်ကြည့်ခွင့်ပြုရန် တောင်းဆိုမှုအသစ်
mention:
action: စာပြန်ရန်
+ body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်-
subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်
status:
subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ"
@@ -607,6 +850,7 @@ my:
two_factor_authentication:
add: ထည့်ရန်
disable: 2FA ကို ပိတ်ပါ
+ disabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ပြီးပါပြီ
edit: ပြင်ဆင်ရန်
enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည်
enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ
@@ -614,18 +858,33 @@ my:
user_mailer:
appeal_approved:
action: သင့်အကောင့်သို့ သွားပါ
+ appeal_rejected:
+ title: အယူခံကို ပယ်ချခဲ့သည်
suspicious_sign_in:
change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ
warning:
+ appeal: အယူခံတင်သွင်းပါ
explanation:
disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။
suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။
reason: အကြောင်းပြချက် -
subject:
+ delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ"
none: "%{acct} အတွက် သတိပေးချက်"
+ silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည်
+ title:
+ delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည်
+ none: သတိပေးချက်
+ suspend: အကောင့်ရပ်ဆိုင်းထားသည်
welcome:
edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန်
edit_profile_step: ပရိုဖိုင်ဓာတ်ပုံတစ်ပုံ တင်ခြင်း၊ ဖော်ပြမည့်အမည် ပြောင်းလဲခြင်းနှင့် အခြားအရာများပြုလုပ်ခြင်းတို့ဖြင့် သင့်ပရိုဖိုင်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။ စောင့်ကြည့်သူအသစ်များ သင့်ကိုစောင့်ကြည့်ခွင့်မပြုမီ ပြန်လည်သုံးသပ်ရန်အတွက် ဆုံးဖြတ်နိုင်ပါသည်။
+ explanation: ဤသည်မှာ သင် စတင်အသုံးပြုနိုင်ရန်အတွက် အကြံပြုချက်အချို့ဖြစ်ပါသည်
+ final_action: ပို့စ် တင်ရန်
+ subject: Mastodon မှ လှိုက်လှဲစွာကြိုဆိုပါသည်။
+ users:
+ follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ
+ invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
webauthn_credentials:
delete: ဖျက်ရန်
registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်"
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index d49a9b684..b7a69b830 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -91,6 +91,7 @@ nl:
moderation:
active: Actief
all: Alles
+ disabled: Uitgeschakeld
pending: In afwachting
silenced: Beperkt
suspended: Opgeschort
@@ -133,6 +134,7 @@ nl:
search: Zoeken
search_same_email_domain: Andere gebruikers met hetzelfde e-maildomein
search_same_ip: Andere gebruikers met hetzelfde IP-adres
+ security: Beveiliging
security_measures:
only_password: Alleen wachtwoord
password_and_2fa: Wachtwoord en tweestapsverificatie
@@ -427,6 +429,7 @@ nl:
resolve: Domein opzoeken
title: Nieuw e-maildomein blokkeren
no_email_domain_block_selected: Er werden geen e-maildomeinblokkades gewijzigd, omdat er geen enkele werd geselecteerd
+ not_permitted: Niet toegestaan
resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert.
resolved_through_html: Geblokkeerd via %{domain}
title: Geblokkeerde e-maildomeinen
@@ -473,6 +476,7 @@ nl:
content_policies:
comment: Interne reden
description_html: Je kunt het beleid bepalen dat op de accounts van dit domein en alle subdomeinen van toepassing is.
+ limited_federation_mode_description_html: Je kunt kiezen of je federatie met dit domein wilt toestaan.
policies:
reject_media: Mediabestanden weigeren
reject_reports: Rapportages weigeren
@@ -585,11 +589,13 @@ nl:
assign_to_self: Aan mij toewijzen
assigned: Toegewezen moderator
by_target_domain: Domein van gerapporteerde account
+ cancel: Annuleren
category: Category
category_description_html: De reden waarom dit account en/of inhoud werd gerapporteerd wordt aan het gerapporteerde account medegedeeld
comment:
none: Geen
comment_description_html: 'Om meer informatie te verstrekken, schreef %{name}:'
+ confirm: Bevestigen
confirm_action: Bevestig moderatiemaatregel tegen @%{acct}
created_at: Gerapporteerd op
delete_and_resolve: Bericht verwijderen
@@ -792,6 +798,7 @@ nl:
suspend: "%{name} schortte het account %{target} op"
appeal_approved: Bezwaar ingediend
appeal_pending: Bezwaar in behandeling
+ appeal_rejected: Bezwaar afgewezen
system_checks:
database_schema_check:
message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort
@@ -827,6 +834,7 @@ nl:
other: Deze week door %{count} mensen gedeeld
title: Trending links
usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren
+ not_allowed_to_trend: Trending worden niet toegestaan
only_allowed: Alleen goedgekeurde
pending_review: In afwachting van beoordeling
preview_card_providers:
@@ -958,6 +966,7 @@ nl:
applications:
created: Aanmaken toepassing geslaagd
destroyed: Verwijderen toepassing geslaagd
+ logout: Uitloggen
regenerate_token: Toegangscode opnieuw aanmaken
token_regenerated: Opnieuw aanmaken toegangscode geslaagd
warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders!
@@ -994,6 +1003,8 @@ nl:
resend_confirmation: Verstuur de bevestigingsinstructies nogmaals
reset_password: Wachtwoord opnieuw instellen
rules:
+ accept: Accepteren
+ back: Terug
preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}.
title: Enkele basisregels.
security: Beveiliging
@@ -1141,7 +1152,7 @@ nl:
featured_tags:
add_new: Nieuwe toevoegen
errors:
- limit: Je hebt al het maximaal aantal hashtags uitgelicht
+ limit: Je hebt al het maximale aantal hashtags uitgelicht
hint_html: "Wat zijn uitgelichte hashtags? Deze worden prominent op jouw openbare profiel getoond en stelt mensen in staat om jouw openbare berichten per hashtag te bekijken. Het zijn een goed hulpmiddel om creatieve werkzaamheden of langetermijnprojecten bij te houden."
filters:
contexts:
@@ -1253,7 +1264,7 @@ nl:
title: Mensen uitnodigen
lists:
errors:
- limit: Je hebt het maximaal aantal lijsten bereikt
+ limit: Je hebt het maximum aantal lijsten bereikt
login_activities:
authentication_methods:
otp: tweestapsverificatie-app
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index c7797627f..5ecc6d35f 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1098,8 +1098,6 @@ nn:
storage: Medielagring
featured_tags:
add_new: Legg til ny
- errors:
- limit: Du har allereie så mange emneknaggar som det går an å ha
hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter."
filters:
contexts:
@@ -1207,9 +1205,6 @@ nn:
expires_at: Vert ugyldig
uses: Bruk
title: By folk inn
- lists:
- errors:
- limit: Du har nådd grensa for kor mange lister du kan ha
login_activities:
authentication_methods:
otp: to-faktor autentiseringsapp
@@ -1523,7 +1518,6 @@ nn:
'7889238': 3 månader
min_age_label: Aldersterskel
min_favs: Behold innlegg som er favorittmarkert av minst
- min_favs_hint: Sletter ingen av dine innlegg som har mottatt minst dette antalet favorittmerkingar. Lat vere blank for å slette innlegg uavhengig av antal favorittmerkingar
min_reblogs: Behold innlegg fremhevet av minst
min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger
stream_entries:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 7b6560547..b8abdc6ca 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -91,6 +91,7 @@
moderation:
active: Aktive
all: Alle
+ disabled: Deaktivert
pending: Avventer
silenced: Begrenset
suspended: Utvist
@@ -133,6 +134,7 @@
search: Søk
search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukere med den samme IP-en
+ security: Sikkerhet
security_measures:
only_password: Bare passord
password_and_2fa: Passord og 2FA
@@ -427,6 +429,7 @@
resolve: Løs domene
title: Ny blokkeringsoppføring av e-postdomene
no_email_domain_block_selected: Ingen e-postdomeneblokker ble endret da ingen ble valgt
+ not_permitted: Ikke tillatt
resolved_dns_records_hint_html: Domenenavnet løser seg til følgende MX-domener som er til slutt ansvarlige for å motta e-post. Blokkering av et MX-domene vil blokkere signaler fra en hvilken som helst e-postadresse som bruker samme MX-domene, selv om det synlige domenenavnet er annerledes. Vær forsiktig så du ikke blokkerer store e-posttilbydere.
resolved_through_html: Løst gjennom %{domain}
title: Blokkering av e-postdomene
@@ -441,6 +444,7 @@
private_comment_description_html: 'For å hjelpe deg med å holde oversikt over hvor importerte blokkeringer kommer fra, vil de bli opprettet med følgende private kommentar: %{comment}'
private_comment_template: Importert fra %{source} den %{date}
title: Importer domeneblokkeringer
+ invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}'
new:
title: Importer domeneblokkeringer
no_file: Ingen fil valgt
@@ -575,17 +579,23 @@
mark_as_sensitive_description_html: Mediene i de rapporterte innleggene vil bli merket som følsomme, og en advarsel vil bli notert for å hjelpe deg eskalere ved fremtidige overtredelser fra samme konto.
other_description_html: Se flere alternativer for å kontrollere kontoens atferd og tilpasse kommunikasjonen til den oppgitte kontoen.
resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes.
+ silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. Lukker alle rapporter mot denne kontoen.
+ suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen.
actions_description_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dersom du tar noen entydige tiltak mot den oppgitte kontoen, blir det sendt en e-post til dem, unntatt når Søppelpost -kategorien er valgt.
+ actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet.
add_to_report: Legg til mer i rapporten
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilegnet moderator
by_target_domain: Domenet av rapportert bruker
+ cancel: Avbryt
category: Kategori
category_description_html: Årsaken til at denne kontoen og/eller innholdet er blitt rapportert vil bli henvist i forbindelse med den rapporterte kontoen
comment:
none: Ingen
comment_description_html: 'For å gi mer informasjon, %{name} skrev:'
+ confirm: Bekreft
+ confirm_action: Bekreft moderasjonshandling mot @%{acct}
created_at: Rapportert
delete_and_resolve: Slettede innlegg
forwarded: Videresendt
@@ -602,6 +612,7 @@
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
title: Notater
notes_description_html: Se og skriv notater til andre moderatorer og deg selv i fremtiden
+ processed_msg: 'Rapport #%{id} er behandlet'
quick_actions_description_html: 'Ta en rask handling eller bla ned for å se rapportert innhold:'
remote_user_placeholder: ekstern bruker fra %{instance}
reopen: Gjenåpne rapporten
@@ -614,6 +625,12 @@
status: Status
statuses: Rapportert innhold
statuses_description_html: Innholdet som tilbys, vil bli nevnt i forbindelse med den rapporterte kontoen
+ summary:
+ action_preambles:
+ delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:'
+ mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:'
+ silence_html: 'Du er i ferd med å avgrense@%{acct} sin konto. Dette vil:'
+ suspend_html: 'Du er i ferd med å stoppe@%{acct} sin konto. Dette vil:'
target_origin: Opprinnelse for innrapportert konto
title: Rapporter
unassign: Fjern tilegning
@@ -1075,8 +1092,6 @@
storage: Medialagring
featured_tags:
add_new: Legg til ny
- errors:
- limit: Du har allerede fremhevet det maksimale antal hashtags
hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter."
filters:
contexts:
@@ -1182,9 +1197,6 @@
expires_at: Utløper
uses: Bruk
title: Inviter personer
- lists:
- errors:
- limit: Du har nådd det maksimale antall lister
login_activities:
authentication_methods:
otp: to-faktor autentiseringsapp
@@ -1501,7 +1513,6 @@
'7889238': 3 måneder
min_age_label: Terskel for alder
min_favs: Behold innlegg som er favorittmarkert av minst
- min_favs_hint: Sletter ikke noen av dine innlegg som har mottatt minst dette antall favorittmarkeringer. La stå tom for å slette innlegg uavhengig av antall favorittmarkeringer
min_reblogs: Behold innlegg fremhevet av minst
min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger
stream_entries:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 7af4a339d..fb185f7c0 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -600,8 +600,6 @@ oc:
storage: Mèdias gardats
featured_tags:
add_new: Ajustar una etiqueta nòva
- errors:
- limit: Avètz ja utilizat lo maximum d’etiquetas
filters:
contexts:
account: Perfils
@@ -681,9 +679,6 @@ oc:
expires_at: Expirats
uses: Usatges
title: Convidar de monde
- lists:
- errors:
- limit: Avètz atengut lo maximum de listas
login_activities:
authentication_methods:
password: senhal
@@ -947,7 +942,6 @@ oc:
'7889238': 3 meses
min_age_label: Sulhet d’ancianetat
min_favs: Gardar al mens las publicacion en favorit
- min_favs_hint: Suprimís pas las publicacions qu’an recebut al mens aquesta quantitat de favorits. Daissar blanc per suprimir las publicacion quina quantitat de favorits qu’ajan
min_reblogs: Gardar las publicacions partejadas al mens
min_reblogs_hint: Suprimís pas vòstras publicacions qu’an agut aqueste nombre de partiment. Daissar blanc per suprimir las publicacions sens far cas als partiments
stream_entries:
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index f2c1ccdae..8a30f8e96 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -95,6 +95,7 @@ pl:
moderation:
active: Aktywne
all: Wszystkie
+ disabled: Wyłączone
pending: Oczekujące
silenced: Ograniczone
suspended: Zawieszone
@@ -139,6 +140,7 @@ pl:
search: Szukaj
search_same_email_domain: Inni użytkownicy z tym samym e-mail w tej domenie
search_same_ip: Inni użytkownicy z tym samym IP
+ security: Bezpieczeństwo
security_measures:
only_password: Tylko hasło
password_and_2fa: Hasło i 2FA
@@ -443,6 +445,7 @@ pl:
resolve: Rozwiąż domenę
title: Nowa blokada domeny e-mail
no_email_domain_block_selected: Żadne blokady domeny e-mail nie zostały zmienione, ponieważ żadne z nich nie zostały wybrane
+ not_permitted: Brak uprawnień
resolved_dns_records_hint_html: Nazwa domeny rozwiązuje się do następujących domen MX, które są ostatecznie odpowiedzialne za przyjmowanie wiadomości e-mail. Blokowanie domeny MX spowoduje zablokowanie rejestracji z dowolnego adresu e-mail, który używa tej samej domeny MX, nawet jeśli widoczna nazwa domeny jest inna. Uważaj, aby nie blokować głównych dostawców poczty elektronicznej.
resolved_through_html: Rozwiązano przez %{domain}
title: Blokowanie domen e-mail
@@ -493,6 +496,7 @@ pl:
content_policies:
comment: Wewnętrzna notatka
description_html: Możesz zdefiniować zasady treści, które zostaną zastosowane do wszystkich kont z tej domeny i jej subdomen.
+ limited_federation_mode_description_html: Możesz wybrać, czy zezwolić na federację z tą domeną.
policies:
reject_media: Odrzucaj media
reject_reports: Odrzucaj zgłoszenia
@@ -609,11 +613,13 @@ pl:
assign_to_self: Przypisz do siebie
assigned: Przypisany moderator
by_target_domain: Domena zgłaszanego konta
+ cancel: Anuluj
category: Kategoria
category_description_html: Powód, dla którego to konto i/lub zawartość zostały zgłoszone, będzie cytowany w komunikacji ze zgłoszonym kontem
comment:
none: Brak
comment_description_html: 'Aby dostarczyć więcej informacji, %{name} napisał:'
+ confirm: Potwierdź
confirm_action: Potwierdzenie działań moderacyjnych wobec @%{acct}
created_at: Zgłoszono
delete_and_resolve: Usuń posty
@@ -820,6 +826,7 @@ pl:
suspend: "%{name} zawiesił(-a) konto %{target}"
appeal_approved: Odwołanie
appeal_pending: Odwołanie w toku
+ appeal_rejected: Odwołanie odrzucone
system_checks:
database_schema_check:
message_html: Istnieją oczekujące migracje bazy danych. Uruchom je, aby upewnić się, że aplikacja działa tak, jak powinna
@@ -857,6 +864,7 @@ pl:
other: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia
title: Popularne linki
usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+ not_allowed_to_trend: Wyłączona widoczność w popularnych
only_allowed: Tylko dozwolone
pending_review: Oczekuje na przegląd
preview_card_providers:
@@ -994,6 +1002,7 @@ pl:
applications:
created: Pomyślnie utworzono aplikację
destroyed: Pomyślnie usunięto aplikację
+ logout: Wyloguj się
regenerate_token: Wygeneruj nowy token dostępu
token_regenerated: Pomyślnie wygenerowano nowy token dostępu
warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu!
@@ -1030,6 +1039,8 @@ pl:
resend_confirmation: Ponownie prześlij instrukcje weryfikacji
reset_password: Zresetuj hasło
rules:
+ accept: Zaakceptuj
+ back: Wróć
preamble: Są one ustawione i wymuszone przez moderatorów %{domain}.
title: Kilka podstawowych zasad.
security: Bezpieczeństwo
@@ -1177,7 +1188,7 @@ pl:
featured_tags:
add_new: Dodaj nowy
errors:
- limit: Już przekroczyłeś(-aś) maksymalną liczbę wyróżnionych hashtagów
+ limit: Przekroczono maksymalną liczbę hasztagów
hint_html: "Czym są wyróżnione hashtagi? Są one na stałe wyświetlane na Twoim profilu i pozwalają innym na przeglądanie Twoich wpisów używających tych hashtagów. Są doskonałym narzędziem do śledzenia kreatywnej twórczości czy długoterminowych projektów."
filters:
contexts:
@@ -1305,7 +1316,7 @@ pl:
title: Zaproś użytkowników
lists:
errors:
- limit: Przekroczyłeś maksymalną liczbę utworzonych list
+ limit: Przekroczono maksymalną liczbę utworzonych list
login_activities:
authentication_methods:
otp: aplikacja weryfikacji dwuetapowej
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index cbd35cd29..dcbaa027d 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1128,8 +1128,6 @@ pt-BR:
storage: Armazenamento de mídia
featured_tags:
add_new: Adicionar hashtag
- errors:
- limit: Você atingiu o limite de hashtags em destaque
hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo."
filters:
contexts:
@@ -1239,9 +1237,6 @@ pt-BR:
expires_at: Expira em
uses: Usos
title: Convidar pessoas
- lists:
- errors:
- limit: Você atingiu o máximo de listas
login_activities:
authentication_methods:
otp: autenticação de dois fatores
@@ -1561,7 +1556,6 @@ pt-BR:
'7889238': 3 meses
min_age_label: Validade
min_favs: Manter publicações favoritadas por ao menos
- min_favs_hint: Não exclui publicações que receberam pelo menos esta quantidade de favoritos. Deixe em branco para excluir publicações independentemente da quantidade de favoritos
min_reblogs: Manter publicações impulsionadas por ao menos
min_reblogs_hint: Não exclui publicações que receberam pelo menos esta quantidade de impulsos. Deixe em branco para excluir publicações independentemente da quantidade de impulsos
stream_entries:
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index fb296988f..de920c355 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -91,6 +91,7 @@ pt-PT:
moderation:
active: Activo
all: Todos
+ disabled: Desativado
pending: Pendente
silenced: Limitadas
suspended: Supensos
@@ -133,6 +134,7 @@ pt-PT:
search: Pesquisar
search_same_email_domain: Outros utilizadores com o mesmo domínio de correio electrónico
search_same_ip: Outros utilizadores com o mesmo IP
+ security: Segurança
security_measures:
only_password: Apenas palavra-passe
password_and_2fa: Palavra-passe e 2FA
@@ -427,6 +429,7 @@ pt-PT:
resolve: Domínio de resolução
title: Novo bloqueio de domínio de e-mail
no_email_domain_block_selected: Nenhum bloqueio de domínio de e-mail foi alterado pois nenhum foi selecionado
+ not_permitted: Não permitido
resolved_dns_records_hint_html: O nome de domínio resolve para os seguintes domínios MX, que são, em última análise, responsáveis por aceitar o e-mail. Bloquear um domínio MX irá bloquear as inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo quando o nome de domínio visível é diferente. Cuidado para não bloquear os principais provedores de e-mail.
resolved_through_html: Resolvido através de %{domain}
title: Domínios de e-mail bloqueados
@@ -473,6 +476,7 @@ pt-PT:
content_policies:
comment: Nota interna
description_html: Pode definir políticas de conteúdo que serão aplicadas a todas as contas deste domínio e a qualquer um dos seus subdomínios.
+ limited_federation_mode_description_html: Pode escolher se deseja permitir a federação com este domínio.
policies:
reject_media: Rejeitar media
reject_reports: Rejeitar denúncias
@@ -585,11 +589,13 @@ pt-PT:
assign_to_self: Atribuída a mim
assigned: Atribuída ao moderador
by_target_domain: Domínio da conta denunciada
+ cancel: Cancelar
category: Categorização
category_description_html: A razão pela qual esta conta e/ou conteúdo foi denunciado será citada na comunicação com a conta denunciada
comment:
none: Nenhum
comment_description_html: 'Para fornecer mais informações, %{name} escreveu:'
+ confirm: Confirmar
confirm_action: Confirmar a ação de moderação contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicações
@@ -792,6 +798,7 @@ pt-PT:
suspend: "%{name} suspendeu a conta de %{target}"
appeal_approved: Recorrido
appeal_pending: Recurso pendente
+ appeal_rejected: Recurso rejeitado
system_checks:
database_schema_check:
message_html: Há migrações de base de dados pendentes. Queira executá-las, para garantir que a aplicação se comporta como o esperado
@@ -827,6 +834,7 @@ pt-PT:
other: Partilhado por %{count} pessoas na última semana
title: Ligações em alta
usage_comparison: Partilhado %{today} vezes hoje, em comparação com %{yesterday} ontem
+ not_allowed_to_trend: Não permitido para tendência
only_allowed: Apenas permitidos
pending_review: Pendente de revisão
preview_card_providers:
@@ -958,6 +966,7 @@ pt-PT:
applications:
created: Aplicação correctamente criada
destroyed: Aplicação correctamente eliminada
+ logout: Sair
regenerate_token: Regenerar token de acesso
token_regenerated: Token de acesso regenerado com sucesso
warning: Cuidado com estes dados. Não partilhar com ninguém!
@@ -994,6 +1003,8 @@ pt-PT:
resend_confirmation: Reenviar instruções de confirmação
reset_password: Criar nova palavra-passe
rules:
+ accept: Aceitar
+ back: Retroceder
preamble: Estas são definidas e aplicadas pelos moderadores de %{domain}.
title: Algumas regras básicas.
security: Alterar palavra-passe
@@ -1140,8 +1151,6 @@ pt-PT:
storage: Armazenamento de media
featured_tags:
add_new: Adicionar nova
- errors:
- limit: Já atingiste o limite máximo de etiquetas
hint_html: "O que são etiquetas em destaque? Exibidas de forma bem visível no seu perfil público, permitem que as pessoas consultem as suas publicações públicas especificamente sob essas etiquetas. São uma óptima ferramenta para dar seguimento a trabalhos criativos ou projectos de longo prazo."
filters:
contexts:
@@ -1251,9 +1260,6 @@ pt-PT:
expires_at: Expira
uses: Usos
title: Convidar pessoas
- lists:
- errors:
- limit: Número máximo de listas alcançado
login_activities:
authentication_methods:
otp: aplicação de autenticação em duas etapas
@@ -1573,7 +1579,6 @@ pt-PT:
'7889238': 3 meses
min_age_label: Limite de idade
min_favs: Manter pelo menos as publicações dos marcadores
- min_favs_hint: Não apaga nenhuma das suas publicações que tenha recebido mais do que esta quantidade de favoritos. Deixe em branco para apagar as publicações, independentemente do número de favoritos
min_reblogs: Manter as publicações reforçadas mais de
min_reblogs_hint: Não apaga nenhuma das suas publicações que tenha sido partilhada mais do que este número de vezes. Deixe em branco para apagar as publicações, independentemente do número de partilhas
stream_entries:
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 48cf790b7..f842988a2 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -576,9 +576,6 @@ ro:
expires_at: Expiră
uses: Utilizări
title: Invită persoane
- lists:
- errors:
- limit: Ați atins valoarea maximă a listelor
media_attachments:
validations:
images_and_video: Nu se poate atașa un videoclip la o stare care conține deja imagini
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index b5fec6cfa..983dfb424 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -354,10 +354,10 @@ ru:
new_users: новые пользователи
opened_reports: жалоб открыто
pending_appeals_html:
- few: "%{count} аппеляции в ожидании"
- many: "%{count} апелляций в ожидании"
+ few: "%{count} ожидают аппеляции"
+ many: "%{count} ожидают апелляции"
one: "%{count} ожидает апелляции"
- other: "%{count} апелляций в ожидании"
+ other: 'Ожидают апелляции: %{count}'
pending_reports_html:
few: "%{count} ожидающих отчета"
many: "%{count} ожидающих отчетов"
@@ -457,6 +457,7 @@ ru:
private_comment_description_html: 'Чтобы помочь вам отслеживать откуда импортируются блокировка, импортированные блокировки будут созданы со следующим приватным комментарием: %{comment}'
private_comment_template: Импортировано из %{source} %{date}
title: Импорт доменных блокировок
+ invalid_domain_block: 'Один или несколько доменных блокировок были пропущены из-за следующих ошибок: %{error}'
new:
title: Импорт доменных блокировок
no_file: Файл не выбран
@@ -599,7 +600,10 @@ ru:
mark_as_sensitive_description_html: Весь медиаконтент в обжалованных сообщениях будет отмечен как чувствительный, а претензия - записана, чтобы помочь вам в решении конфликтов при повторных нарушениях со стороны того же аккаунта.
other_description_html: Посмотрите больше настроек для контроля поведения учётной записи и наладьте связь с аккаунтом с жалобой.
resolve_description_html: Никаких действий не будет выполнено относительно доложенного содержимого. Жалоба будет закрыта.
+ silence_description_html: Учетная запись будет видна только тем пользователям, которые уже подписаны на неё, либо открыли его вручную. Это действие можно отменить в любой момент, и отменяет все жалобы против аккаунта.
+ suspend_description_html: Аккаунт и все его содержимое будут недоступны и в конечном итоге удалены, и взаимодействие с ним будет невозможно. Это действие можно отменить в течение 30 дней. Отменяет все жалобы против этого аккаунта.
actions_description_html: Выберите действие, чтобы решить данную жалобу. Если вы выберите наказание против аккаунта, вы получите уведомление по E-Mail, проверяйте папку Спам.
+ actions_description_remote_html: Решите вопрос о том, какие меры необходимо принять для урегулирования этой жалобы. Это повлияет только на то, как ваш сервер взаимодействует с этим удаленным аккаунтом и обрабатывает его содержимое.
add_to_report: Прикрепить ещё
are_you_sure: Вы уверены?
assign_to_self: Назначить себе
@@ -639,13 +643,19 @@ ru:
statuses: Содержимое относящееся к жалобе
statuses_description_html: Нарушающее правила содержимое будет процитировано при коммуникации с фигурирующим в жалобе аккаунтом
summary:
+ action_preambles:
+ suspend_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:'
+ actions:
+ delete_html: Удалить оскорбительные сообщения
close_report: 'Отметить жалобу #%{id} как решённую'
close_reports_html: Отметить все жалобы на @%{acct} как разрешённые
delete_data_html: Удалить профиль и контент @%{acct} через 30 дней, если за это время они не будут разблокированы
preview_preamble_html: "@%{acct} получит предупреждение со следующим содержанием:"
+ send_email_html: Отправить @%{acct} предупреждение на почту
target_origin: Происхождение объекта жалобы
title: Жалобы
unassign: Снять назначение
+ unknown_action_msg: 'Неизвестное действие: %{action}'
unresolved: Нерешённые
updated_at: Обновлена
view_profile: Открыть профиль
@@ -745,6 +755,7 @@ ru:
profile_directory: Каталог профилей
public_timelines: Публичные ленты
publish_discovered_servers: Публикация списка обнаруженных узлов
+ publish_statistics: Опубликовать стаитстику
title: Обзор
trends: Популярное
domain_blocks:
@@ -941,6 +952,7 @@ ru:
title: Популярные посты
new_trending_tags:
no_approved_tags: На данный момент популярные подтвержденные хэштеги отсутствуют.
+ requirements: 'Каждый из этих кандидатов может превысить #%{rank} одобренных популярных хештегов. Сейчас это #%{lowest_tag_name} с числом %{lowest_tag_score}.'
title: Популярные хэштеги
subject: Новые тренды для проверки на %{instance}
aliases:
@@ -979,6 +991,8 @@ ru:
auth:
apply_for_account: Запросить аккаунт
change_password: Пароль
+ confirmations:
+ wrong_email_hint: Если этот адрес электронной почты неверен, вы можете изменить его в настройках аккаунта.
delete_account: Удалить учётную запись
delete_account_html: Удалить свою учётную запись можно в два счёта здесь, но прежде у вас будет спрошено подтверждение.
description:
@@ -1152,8 +1166,6 @@ ru:
storage: Ваши файлы
featured_tags:
add_new: Добавить
- errors:
- limit: Вы уже добавили максимальное число хэштегов
hint_html: "Избранные хэштеги отображаются в вашем профиле и позволяют людям быстро найти посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ."
filters:
contexts:
@@ -1279,9 +1291,6 @@ ru:
expires_at: Истекает
uses: Исп.
title: Пригласить людей
- lists:
- errors:
- limit: Вы достигли максимального числа списков
login_activities:
authentication_methods:
otp: приложение двухфакторной аутентификации
@@ -1613,7 +1622,6 @@ ru:
'7889238': 3 месяца
min_age_label: Возрастной порог
min_favs: Порог отметок «избранного»
- min_favs_hint: Не удаляет ваши посты, у которых количество отметок «избранного» достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества отметок.
min_reblogs: Порог продвижений
min_reblogs_hint: Не удаляет ваши посты, количество продвижений которых достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества продвижений.
stream_entries:
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 3c6149be1..b23b1a02b 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -640,8 +640,6 @@ sc:
storage: Immagasinamentu
featured_tags:
add_new: Agiunghe noa
- errors:
- limit: As giai evidentziadu sa cantidade màssima de etichetas
hint_html: "Ite sunt is etichetas in evidèntzia? Sunt ammustradas in evidèntzia in su profilu pùblicu tuo e permitint a sa gente de navigare is messàgios pùblicos tuos in cussas etichetas ispetzìficas. Sunt unu traste perfetu pro tènnere unu registru de òperas creativas o progetos longos."
filters:
contexts:
@@ -713,9 +711,6 @@ sc:
expires_at: Iscadit
uses: Impreos
title: Invita gente
- lists:
- errors:
- limit: Cantidade màssima de listas cròmpida
media_attachments:
validations:
images_and_video: Non si podet allegare unu vìdeu in una publicatzione chi cuntenet giai immàgines
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index accb1c906..e2d317884 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1103,8 +1103,6 @@ sco:
storage: Media storage
featured_tags:
add_new: Add new
- errors:
- limit: Ye'v awriddy featurt the maximum amoont o hashtags
hint_html: "Whit's featurt hashtags? They get pit prominently on yer public profile an alloo fowk fir tae broose yer public posts specifically unner thae hashtags. They'r a braw tuil fir keepin track o creative warks or lang-term projects."
filters:
contexts:
@@ -1214,9 +1212,6 @@ sco:
expires_at: Expires
uses: Uises
title: Invite fowk
- lists:
- errors:
- limit: Ye'v hit the maximum amoont o lists
login_activities:
authentication_methods:
otp: twa-factor authentication app
@@ -1533,7 +1528,6 @@ sco:
'7889238': 3 month
min_age_label: Age threshaud
min_favs: Keep posts favouritit at least
- min_favs_hint: Disnae delete onie o yer posts thit's got at least this amoont o favourites. Lea blank fir tae delete posts regairdless o their nummer o favourites
min_reblogs: Keep posts heezed at least
min_reblogs_hint: Disnae delete onie o yer posts thit's been heezed at least this nummer o times. Lea blank fir tae delete posts regairdless o their number o heezes
stream_entries:
diff --git a/config/locales/si.yml b/config/locales/si.yml
index 18260cba9..f621037c9 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -931,8 +931,6 @@ si:
storage: මාධ්ය ගබඩාව
featured_tags:
add_new: අලුතින් එකතු කරන්න
- errors:
- limit: ඔබ දැනටමත් උපරිම හෑෂ් ටැග් ප්රමාණය විශේෂාංග කර ඇත
hint_html: "විශේෂාංගගත හැෂ් ටැග් මොනවාද? ඒවා ඔබේ පොදු පැතිකඩෙහි ප්රමුඛව ප්රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ."
filters:
contexts:
@@ -1016,9 +1014,6 @@ si:
expires_at: කල් ඉකුත් වේ
uses: භාවිතා කරයි
title: මිනිසුන්ට ආරාධනා කරන්න
- lists:
- errors:
- limit: ඔබ උපරිම ලැයිස්තු ප්රමාණයට ළඟා වී ඇත
login_activities:
authentication_methods:
otp: ද්වි-සාධක සත්යාපන යෙදුම
@@ -1326,7 +1321,6 @@ si:
'7889238': මාස 3 යි
min_age_label: වයස් සීමාව
min_favs: අඩුම තරමින් පෝස්ට් ප්රිය කරන ලෙස තබා ගන්න
- min_favs_hint: අවම වශයෙන් මෙම ප්රියතම ප්රමාණය ලබා ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත. ඔවුන්ගේ ප්රියතමයන් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න
min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
stream_entries:
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index c17b3b898..32364cf7e 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -3,7 +3,10 @@ ast:
simple_form:
hints:
admin_account_action:
- text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar amestar preconfiguraes p'aforrar tiempu
+ text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar alvertencies preconfiguraes p'aforrar tiempu
+ type_html: Escueyi qué facer con %{acct}
+ types:
+ none: Usa esta opción pa unviar una alvertencia al perfil, ensin aicionar nenguna otra aición.
announcement:
all_day: Al marcar la opción, namás apaecen les dates del intervalu de tiempu
ends_at: Opcional. L'anunciu dexa de tar espublizáu na data qu'indiques
@@ -68,8 +71,10 @@ ast:
admin_account_action:
include_statuses: Incluyir nel mensaxe los artículos de los que s'informó
send_email_notification: Avisar al perfil per corréu electrónicu
+ text: Alvertencia personalizada
type: Aición
types:
+ sensitive: Marcar como cuenta sensible
suspend: Suspender
announcement:
all_day: Eventu de tol día
diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml
index e5696a56f..4a2c532ce 100644
--- a/config/locales/simple_form.be.yml
+++ b/config/locales/simple_form.be.yml
@@ -18,6 +18,8 @@ be:
disable: Перадухіліць выкарыстанне акаунтаў, але не выдаляць і не хаваць іх змесціва.
none: Выкарыстоўвай гэта для папярэджвання карыстальнікаў але без іншых наступстваў.
sensitive: Прымусова адмячаць усе медыя карыстальніка як дэлікатныя.
+ silence: Забараніць карыстальніку пасты з публічнай бачнасцю, схаваць ягоныя допісы і апавяшчэнні ад людзей, якія на яго не падпісаныя. Закрывае ўсе скаргі на гэты ўліковы запіс.
+ suspend: Забараніць любыя ўзаемадзеянні ад ці з гэтым уліковым запісам і выдаліць ягонае змесціва. Можна адрабіць цягам 30 дзён. Закрывае ўсе скаргі на гэты ўліковы запіс.
warning_preset_id: Неабавязкова. Вы можаце дадаць уласны тэкст напрыканцы шаблону
announcement:
all_day: Калі пазначана, будуць паказаны толькі даты з пазначанага прамежку часу
@@ -72,6 +74,7 @@ be:
hide: Поўнасцю схаваць адфільтраванае змесціва, дзейнічаць, нібы яго не існуе
warn: Схаваць адфільтраваны кантэнт за папярэджаннем з назвай фільтру
form_admin_settings:
+ activity_api_enabled: Падлік лакальна апублікаваных пастоў, актыўных карыстальнікаў і новых рэгістрацый у тыдзень
backups_retention_period: Захоўваць створаныя архівы карыстальніка адзначаную колькасць дзён.
bootstrap_timeline_accounts: Гэтыя ўліковыя запісы будуць замацаваны ў топе рэкамендацый для новых карыстальнікаў.
closed_registrations_message: Паказваецца, калі рэгістрацыя закрытая
@@ -79,6 +82,7 @@ be:
custom_css: Вы можаце прымяняць карыстальніцкія стылі ў вэб-версіі Mastodon.
mascot: Замяняе ілюстрацыю ў пашыраным вэб-інтэрфейсе.
media_cache_retention_period: Спампаваныя медыя будуць выдаляцца пасля выстаўленай колькасці дзён, калі выстаўлены станоўчы лік, і спампоўвацца нанова па запыце.
+ peers_api_enabled: Спіс даменных імён, з якімі сутыкнуўся гэты сервер у федэсвеце. Дадзеныя аб тым, ці знаходзіцеся вы з пэўным серверам у федэрацыі, не ўключаныя, ёсць толькі тое, што ваш сервер ведае пра гэта. Гэта выкарыстоўваецца сэрвісамі, якія збіраюць статыстыку па федэрацыі ў агульным сэнсе.
profile_directory: Дырэкторыя профіляў змяшчае спіс усіх карыстальнікаў, якія вырашылі быць бачнымі.
require_invite_text: Калі рэгістрацыя патрабуе ручнога пацвержання, зрабіце поле "Чаму вы хочаце далучыцца?" абавязковым
site_contact_email: Як людзі могуць звязацца з вамі па юрыдычных запытах або пытаннях падтрымкі.
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 3ec5e19e1..213e519ce 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -13,26 +13,26 @@ bg:
include_statuses: Потребителят ще може да види кои публикации са довели до действието от страна на модератора или до предупреждението
send_email_notification: Потребителят ще получи обяснение какво се е случило с неговия акаунт
text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време
- type_html: Изберете какво да сторите с %{acct}
+ type_html: Изберете какво ще правите с %{acct}
types:
disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт.
none: Служи за изпращане на предупреждение до потребител, без да се активира друго действие.
sensitive: Принудително отбелязване на прикачената от потребителя мултимедия като чувствителна.
- silence: Забраняване на потребителя да публикува публично, скриване на неговите публикации и известия от други потребители, които не го следват. Затваря всички доклади срещу този акаунт.
- suspend: Забрана на всякаква интеракция с този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт.
+ silence: Предотвратяване на потребителя да може да публикува с обществена видимост, скриване на публикациите му и известията от хората, които не го следват. Затваря всички доклади срещу този акаунт.
+ suspend: Предотвратяване на всякакво взаимодействие от или към този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт.
warning_preset_id: По избор. Можете да добавите допълнително текст накрая на предварително настроения текст
announcement:
all_day: Когато е избрана настройката, само датите от времевия диапазон ще бъдат показани
ends_at: По избор. В зададеното време обявлението ще бъде автоматично премахнато
- scheduled_at: Ако се остави празно, обявлението ще се публикува незабавно
+ scheduled_at: Оставете празно, за да публикувате оповестяването веднага
starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон
- text: Можете да използвате синтаксиса на обикновени публикации. Не забравяйте, че обявлението ще заеме известно място от екрана на потребителя
+ text: Може да употребявате синтаксиса на публикации. Имайте предвид, че оповестяването ще заема известно място от екрана на потребителя
appeal:
text: Можете да възразите срещу провинение само веднъж
defaults:
autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват
- avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела
- bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят
+ avatar: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела
+ bot: Сигнализиране до другите, че акаунтът изпълнява предимно автоматизирани деяния и може да не се наблюдава
context: Един или повече контексти, към които да се приложи филтърът
current_password: От съображения за сигурност, въведете паролата на текущия акаунт
current_username: Въведете потребителското име на текущия профил, за да потвърдите
@@ -44,12 +44,12 @@ bg:
inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате
irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно
locale: Езикът на потребителския интерфейс, известиятата по имейл и насочените известия
- locked: Изисква ръчно одобрение на последователите. По подразбиране, публикациите са достъпни само до последователи.
+ locked: Ръчно управляване кой може да ви последва, одобрявайки заявките за последване
password: Използвайте поне 8 символа
phrase: Ще съвпадне без значение дали са главни или малки букви, или ако е предупреждение към публикация
scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални.
setting_aggregate_reblogs: Без показване на нови подсилвания за публикации, които са неотдавна подсилени (засяга само новополучени подсилвания)
- setting_always_send_emails: Обикновено известия по имейл няма да бъдат изпратени при активно използване на Mastodon
+ setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon
setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване
setting_display_media_default: Скриване на мултимедия отбелязана като деликатна
setting_display_media_hide_all: Винаги да се скрива мултимедията
@@ -57,10 +57,10 @@ bg:
setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва
setting_noindex: Засяга вашите публикации и публичен профил
setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви
- setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити
+ setting_use_blurhash: Преливането е въз основа на цветовете на скритите визуализации, но се замъгляват подробностите
setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала
username: Вашето потребителско име ще е неповторим в %{domain}
- whole_word: Ако ключовата дума/фраза е стриктно буквеноцифрена, ще бъде приложена само, ако съвпадне с цялата дума
+ whole_word: Ако ключовата дума или фраза е само буквеноцифрена, то ще се приложи само, ако съвпадне с цялата дума
domain_allow:
domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени
email_domain_block:
@@ -72,15 +72,15 @@ bg:
action: Изберете кое действие да се извърши, прецеждайки съвпаденията на публикацията
actions:
hide: Напълно скриване на филтрираното съдържание, сякаш не съществува
- warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра
+ warn: Скриване на филтрираното съдържание зад предупреждение, споменавайки заглавието на филтъра
form_admin_settings:
activity_api_enabled: Брой публикувани постове, активни потребители и нови регистрации за седмицата
- backups_retention_period: Запазване на генерираните потребителски архиви за посочения брой дни.
+ backups_retention_period: Задържане на породените потребителски архиви за определения брой дни.
bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители.
closed_registrations_message: Показва се, когато е затворено за регистрации
content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо.
custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon.
- mascot: Можете да заместите илюстрацията в разширения уеб интерфейс.
+ mascot: Замества илюстрацията в разширения уеб интерфейс.
media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване.
peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл.
profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми.
@@ -89,12 +89,12 @@ bg:
site_contact_username: Как хората могат да ви достигнат в Mastodon.
site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown.
site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е?
- site_terms: Използвайте собствени правила за поверителност или оставете празно, за да използвате тези по подразбиране. Може да се структурира с Markdown синтаксис.
- site_title: Как могат хората да наричат вашия сървър, освен името на домейна.
+ site_terms: Употребявайте свои правила за поверителност или оставете празно, за да използвате стандартните правила. Може да се структурира със синтаксиса на Markdown.
+ site_title: Как могат хората да се обръщат към сървъра ви, освен по името на домейна.
status_page_url: Адресът на страницата, където хората могат да видят състоянието на този сървър по време на прекъсване
- theme: Темата, която нови и невлезли потребители ще виждат.
- thumbnail: Изображение в резолюция около 2:1, показвана до информацията за вашия сървър.
- timeline_preview: Невлезлите потребители ще могат да преглеждат най-новите публични публикации, налични на сървъра.
+ theme: Темата, която излизащи от системата посетители и нови потребители виждат.
+ thumbnail: Образ в съотношение около 2:1, показвано до информацията за сървъра ви.
+ timeline_preview: Излизащите от системата посетители ще може да разглеждат най-новите публични публикации, налични на сървъра.
trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие.
trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви.
trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено.
@@ -121,12 +121,12 @@ bg:
tag:
name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо
user:
- chosen_languages: Само публикации на езиците с отметка ще бъдат показвани в публичните инфопотоци
+ chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси
role: Ролите управляват какви права има потребителят
user_role:
color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат
highlighted: Това прави ролята публично видима
- name: Публично име за ролята, ако ролята е настроена да се показва като значка
+ name: Публично име на ролята, ако ролята е зададена да се показва като значка
permissions_as_keys: Потребители с тази роля ще имат достъп до...
position: По-висшата роля може да разреши конфликти в някои ситуации. Някои действия могат да бъдат извършени само за роли с по-нисък приоритет
webhook:
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index c51fda661..d965f6b71 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -208,7 +208,7 @@ cy:
setting_display_media_show_all: Dangos popeth
setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro
setting_hide_network: Cuddio eich graff cymdeithasol
- setting_noindex: Peidio mynegeio peiriannau chwilio
+ setting_noindex: Eithrio rhag gael eich mynegeio gan beiriannau chwilio
setting_reduce_motion: Lleihau mudiant mewn animeiddiadau
setting_show_application: Datgelu rhaglen a ddefnyddir i anfon postiadau
setting_system_font_ui: Defnyddio ffont rhagosodedig y system
@@ -255,7 +255,7 @@ cy:
site_title: Enw'r gweinydd
status_page_url: URL tudalen statws
theme: Thema ragosodedig
- thumbnail: Lluniau bach gweinydd
+ thumbnail: Bawdlun y gweinydd
timeline_preview: Caniatáu mynediad heb ei ddilysu i linellau amser cyhoeddus
trendable_by_default: Caniatáu pynciau llosg heb adolygiad
trends: Galluogi pynciau llosg
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index b7baf6aff..0090c2f96 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -8,7 +8,7 @@ de:
acct: Gib profilname@domain des Kontos an, zu dem du umziehen möchtest
account_warning_preset:
text: Du kannst Beitragssyntax verwenden, wie z. B. URLs, Hashtags und Erwähnungen
- title: Optional. Für den Empfänger nicht sichtbar
+ title: Optional. Für Empfänger*in nicht sichtbar
admin_account_action:
include_statuses: Die Person sieht, welche Beiträge die Moderationsmaßnahme oder Warnung verursacht haben
send_email_notification: Benutzer*in wird eine Erklärung erhalten, was mit dem Konto geschehen ist
@@ -16,7 +16,7 @@ de:
type_html: Wähle aus, wie mit %{acct} vorgegangen werden soll
types:
disable: Benutzer*in daran hindern, das Konto verwenden zu können, aber die Inhalte nicht löschen oder ausblenden.
- none: Verwende dies, um dem Account eine Warnung zu schicken, ohne dabei eine andere Aktion vorzunehmen.
+ none: Dem Account eine Verwarnung zuschicken, ohne dabei eine andere Aktion vorzunehmen.
sensitive: Erzwingen, dass alle Medienanhänge dieses Profils mit einer Inhaltswarnung versehen werden.
silence: Verhindert, dass dieses Profil öffentlich sichtbare Beiträge verfassen kann, und verbirgt alle Beiträge und Benachrichtigungen vor Personen, die diesem Profil nicht folgen. Alle Meldungen zu diesem Konto werden geschlossen.
suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen.
@@ -28,7 +28,7 @@ de:
starts_at: Optional. Nur für den Fall, dass deine Ankündigung an einen bestimmten Zeitraum gebunden ist
text: Du kannst die reguläre Syntax wie für Beiträge verwenden, also auch Profile erwähnen und Hashtags nutzen. Bitte beachte den Platz, den die Ankündigung auf dem Bildschirm der Benutzer*innen einnehmen wird
appeal:
- text: Du kannst nur einmal Einspruch gegen einen Verstoß einlegen
+ text: Du kannst nur einmal Einspruch gegen eine Maßnahme einlegen
defaults:
autofollow: Personen, die sich über deine Einladung registrieren, folgen automatisch deinem Profil
avatar: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert
@@ -99,9 +99,9 @@ de:
trends: Trends zeigen, welche Beiträge, Hashtags und Nachrichten auf deinem Server immer beliebter werden.
trends_as_landing_page: Zeigt Trendinhalte abgemeldeter Benutzer und Besucher anstelle einer Beschreibung dieses Servers an. Erfordert, dass Trends aktiviert sind.
form_challenge:
- current_password: Du betrittst einen gesicherten Bereich
+ current_password: Du betrittst einen sicheren Bereich
imports:
- data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde
+ data: CSV-Datei, die von einem Mastodon-Server exportiert worden ist
invite_request:
text: Dies wird uns bei der Überprüfung deiner Anmeldung behilflich sein
ip_block:
@@ -109,7 +109,7 @@ de:
expires_in: IP-Adressen sind eine begrenzte Ressource. Sie können außerdem auf viele Computer aufgeteilt sein und auch die Zuordnungen ändern sich. Deshalb werden unbestimmte IP-Blöcke nicht empfohlen.
ip: Gib eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht selbst aussperrst!
severities:
- no_access: Blockiere Zugriff auf alle Ressourcen
+ no_access: Zugriff auf alle Ressourcen blockieren
sign_up_block: Neue Registrierungen werden nicht möglich sein
sign_up_requires_approval: Neue Registrierungen müssen genehmigt werden
severity: Wähle aus, was mit Anfragen von dieser IP-Adresse geschehen soll
@@ -117,7 +117,7 @@ de:
text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp
sessions:
otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
- webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und ihn, wenn notwendig, antippst.
+ webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst.
tag:
name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen
user:
@@ -130,12 +130,12 @@ de:
permissions_as_keys: Benutzer*innen mit dieser Rolle haben Zugriff auf...
position: Höhere Rollen entscheiden über Konfliktlösungen zu gewissen Situationen. Bestimmte Aktionen können nur mit geringfügigeren Rollen durchgeführt werden
webhook:
- events: Wähle die zu sendenden Termine
+ events: Zu sendende Ereignisse auswählen
url: Wo Ereignisse hingesendet werden
labels:
account:
fields:
- name: Bezeichnung
+ name: Beschriftung
value: Inhalt
account_alias:
acct: Adresse des alten Kontos
@@ -146,15 +146,15 @@ de:
title: Titel
admin_account_action:
include_statuses: Beitragsmeldungen in die E-Mail mit anfügen
- send_email_notification: Nutzer*in per E-Mail benachrichtigen
- text: Benutzerdefinierte Warnung
+ send_email_notification: Benachrichtigung per E-Mail
+ text: Benutzerdefinierte Verwarnung
type: Aktion
types:
disable: Einfrieren
- none: Warnung senden
+ none: Nur Verwarnung
sensitive: Inhaltswarnung
- silence: Einschränkung
- suspend: Sperren
+ silence: Stummschalten
+ suspend: Sperre
warning_preset_id: Warnungsvorlage verwenden
announcement:
all_day: Ganztägiges Ereignis
@@ -163,18 +163,18 @@ de:
starts_at: Beginn der Ankündigung
text: Ankündigung
appeal:
- text: Erkläre, warum diese Entscheidung rückgängig gemacht werden soll
+ text: Begründe, weshalb diese Entscheidung zurückgenommen werden sollte
defaults:
autofollow: Meinem Profil automatisch folgen
avatar: Profilbild
- bot: Dies ist ein Bot-Konto
+ bot: Dieses Profil ist ein Bot
chosen_languages: Sprachen einschränken
confirm_new_password: Neues Passwort bestätigen
confirm_password: Passwort bestätigen
context: Filter nach Bereichen
current_password: Derzeitiges Passwort
data: Daten
- discoverable: Konto für andere empfehlen
+ discoverable: Dieses Konto anderen empfehlen
display_name: Anzeigename
email: E-Mail-Adresse
expires_in: Läuft ab
@@ -187,7 +187,7 @@ de:
locked: Geschütztes Profil
max_uses: Maximale Verwendungen
new_password: Neues Passwort
- note: Über mich
+ note: Biografie
otp_attempt: Zwei-Faktor-Authentisierung
password: Passwort
phrase: Wort oder Formulierung
@@ -217,10 +217,10 @@ de:
setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemandem entfolgt wird
setting_use_blurhash: Farbverlauf für verborgene Medien anzeigen
setting_use_pending_items: Langsamer Modus
- severity: Schweregrad
- sign_in_token_attempt: Sicherheitscode
+ severity: Einschränkung
+ sign_in_token_attempt: Sicherheitsschlüssel
title: Titel
- type: Art des Imports
+ type: Typ
username: Profilname
username_or_email: Profilname oder E-Mail
whole_word: Phrasensuche mit exakter Zeichenfolge erzwingen
@@ -231,7 +231,7 @@ de:
filters:
actions:
hide: Vollständig ausblenden
- warn: Mit einer Warnung ausblenden
+ warn: Mit einer Inhaltswarnung ausblenden
form_admin_settings:
activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API
backups_retention_period: Aufbewahrungsfrist für Archive
@@ -244,12 +244,12 @@ de:
peers_api_enabled: Veröffentliche Liste bekannter Server in der API
profile_directory: Profilverzeichnis aktivieren
registrations_mode: Wer darf ein neues Konto registrieren?
- require_invite_text: Grund für den Beitritt verlangen
+ require_invite_text: Begründung für Beitritt verlangen
show_domain_blocks: Anzeigen, welche Domains gesperrt wurden
show_domain_blocks_rationale: Anzeigen, weshalb Domains gesperrt wurden
site_contact_email: E-Mail-Adresse
site_contact_username: Profilname
- site_extended_description: Detaillierte Beschreibung
+ site_extended_description: Erweiterte Beschreibung
site_short_description: Serverbeschreibung
site_terms: Datenschutzerklärung
site_title: Servername
@@ -267,7 +267,7 @@ de:
invite:
comment: Kommentar
invite_request:
- text: Warum möchtest du beitreten?
+ text: Weshalb möchtest du beitreten?
ip_block:
comment: Kommentar
ip: IP-Adresse
@@ -290,10 +290,10 @@ de:
rule:
text: Regel
tag:
- listable: Erlaube diesem Hashtag, im Profilverzeichnis zu erscheinen
+ listable: Erlaube, dass dieser Hashtag in Suchen und Empfehlungen erscheint
name: Hashtag
- trendable: Erlaube es, diesen Hashtag in den Trends erscheinen zu lassen
- usable: Beiträgen erlauben, diesen Hashtag zu verwenden
+ trendable: Erlaube, dass dieser Hashtag in den Trends erscheint
+ usable: Erlaube, dass dieser Hashtag in Beiträgen erscheint
user:
role: Rolle
user_role:
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index d28435c7d..6b4d50d8e 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -18,6 +18,8 @@ el:
disable: Αποτρέψτε το χρήστη από τη χρήση του λογαριασμού του, αλλά όχι διαγραφή ή απόκρυψη των περιεχομένων του.
none: Χρησιμοποιήστε αυτό για να στείλετε μια προειδοποίηση στον χρήστη, χωρίς να ενεργοποιήσετε οποιαδήποτε άλλη ενέργεια.
sensitive: Εξαναγκάστε όλα τα συνημμένα πολυμέσα αυτού του χρήστη να επισημαίνονται ως ευαίσθητα.
+ silence: Αποτρέψτε τον χρήστη από το να μπορεί να δημοσιεύει με δημόσια ορατότητα, να αποκρύπτει τις δημοσιεύσεις του και τις ειδοποιήσεις του από άτομα που δεν τις ακολουθούν. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
+ suspend: Αποτροπή οποιασδήποτε αλληλεπίδρασης από ή προς αυτόν τον λογαριασμό και διαγραφή των περιεχομένων του. Αναστρέψιμο εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο
announcement:
all_day: Όταν είναι επιλεγμένο, θα εμφανίζονται μόνο οι ημερομηνίες εντός της χρονικής διάρκειας
@@ -25,6 +27,8 @@ el:
scheduled_at: Αν μείνει κενό, η ενημέρωση θα δημοσιευτεί αμέσως
starts_at: Προαιρετικό, για την περίπτωση που η ανακοίνωση αφορά συγκεκριμένη χρονική διάρκεια
text: Δεκτό το συντακτικό των τουτ. Παρακαλούμε έχε υπόψιν σου το χώρο που θα καταλάβει η ανακοίνωση στην οθόνη του χρήστη
+ appeal:
+ text: Μπορείτε να κάνετε έφεση σε μια ποινή μόνο μία φορά
defaults:
autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα
avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@@ -33,6 +37,7 @@ el:
current_password: Για λόγους ασφαλείας παρακαλώ γράψε τον κωδικό του τρέχοντος λογαριασμού
current_username: Για επιβεβαίωση, παρακαλώ γράψε το όνομα χρήστη του τρέχοντος λογαριασμού
digest: Αποστέλλεται μόνο μετά από μακρά περίοδο αδράνειας και μόνο αν έχεις λάβει προσωπικά μηνύματα κατά την απουσία σου
+ discoverable: Επιτρέψτε στον λογαριασμό σας να ανακαλυφθεί από αγνώστους μέσω συστάσεων, τάσεων και άλλων χαρακτηριστικών
email: Θα σου σταλεί email επιβεβαίωσης
fields: Μπορείς να έχεις έως 4 σημειώσεις σε μορφή πίνακα στο προφίλ σου
header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@@ -59,9 +64,20 @@ el:
domain_allow:
domain: Ο τομέας αυτός θα επιτρέπεται να ανακτά δεδομένα από αυτό τον διακομιστή και τα εισερχόμενα δεδομένα θα επεξεργάζονται και θα αποθηκεύονται
email_domain_block:
+ domain: Αυτό μπορεί να είναι το όνομα τομέα που εμφανίζεται στη διεύθυνση email ή η εγγραφή MX που χρησιμοποιεί. Θα ελέγχονται κατά την εγγραφή.
with_dns_records: Θα γίνει απόπειρα ανάλυσης των εγγραφών DNS του τομέα και τα αποτελέσματα θα μπουν και αυτά σε μαύρη λίστα
featured_tag:
name: 'Εδώ είναι μερικά από τα hashtags που χρησιμοποιήσατε περισσότερο πρόσφατα:'
+ filters:
+ action: Επιλέξτε ποια ενέργεια θα εκτελεστεί όταν μια δημοσίευση ταιριάζει με το φίλτρο
+ actions:
+ hide: Πλήρης αποκρυψη του φιλτραρισμένου περιεχομένου, συμπεριφέρεται σαν να μην υπήρχε
+ warn: Απόκρυψη φιλτραρισμένου περιεχομένου πίσω από μια προειδοποίηση που αναφέρει τον τίτλο του φίλτρου
+ form_admin_settings:
+ activity_api_enabled: Καταμέτρηση τοπικά δημοσιευμένων δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαία πακέτα
+ backups_retention_period: Διατήρηση αρχείων χρηστών που δημιουργήθηκαν για τον καθορισμένο αριθμό ημερών.
+ bootstrap_timeline_accounts: Αυτοί οι λογαριασμοί θα καρφιτσωθούν στην κορυφή των νέων χρηστών που ακολουθούν τις συστάσεις.
+ closed_registrations_message: Εμφανίζεται όταν κλείνουν οι εγγραφές
form_challenge:
current_password: Μπαίνεις σε ασφαλή περιοχή
imports:
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 9cb8dae47..b8edaf636 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -39,7 +39,7 @@ ko:
digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기
discoverable: 추천, 트렌드 및 기타 기능을 통해 낯선 사람이 내 계정을 발견할 수 있도록 허용합니다
email: 당신은 확인 메일을 받게 됩니다
- fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다
+ fields: 프로필에 최대 4개의 항목을 표로 표시할 수 있습니다.
header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨
inbox_url: 사용 할 릴레이 서버의 프론트페이지에서 URL을 복사합니다
irreversible: 필터링 된 게시물은 나중에 필터가 사라지더라도 돌아오지 않게 됩니다
@@ -175,7 +175,7 @@ ko:
current_password: 현재 암호 입력
data: 데이터
discoverable: 계정을 다른 사람들에게 추천하기
- display_name: 표시되는 이름
+ display_name: 표시 이름
email: 이메일 주소
expires_in: 만료시각
fields: 프로필 메타데이터
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index 67c6daf4b..47137d801 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -40,13 +40,13 @@ sr:
fields: Можете имати до 4 ставке приказане као табела на вашем налогу
header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
inbox_url: Копирајте URL са насловне стране релеја који желите користити
- irreversible: Филтриранe трубе ће нестати неповратно, чак и ако је филтер касније уклоњен
- locale: Језик корисничког интерфејса, е-поште и мобилних обавештења
+ irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен
+ locale: Језик корисничког окружења, е-поште и мобилних обавештења
locked: Захтева да појединачно одобрите пратиоце
password: Користите најмање 8 знакова
- phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају трубе
+ phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају објаве
scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
- setting_aggregate_reblogs: Не показуј нова дељења за трубе које су недавно подељене (утиче само на недавно примљена дељења)
+ setting_aggregate_reblogs: Не приказуј нова подржавања за објаве које су недавно подржане (утиче само на недавно примљена подржавања)
setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон
setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом
setting_display_media_default: Сакриј медије означене као осетљиве
@@ -54,7 +54,7 @@ sr:
setting_display_media_show_all: Увек прикажи медије означене као осетљиве
setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу
setting_noindex: Утиче на Ваш јавни налог и статусне стране
- setting_show_application: Апликација коју користиш за објављивање биће приказана у детаљном приказу твојих објава
+ setting_show_application: Апликација коју користите за објављивање ће бити приказана у детаљном приказу ваших објава
setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље
setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава
username: Ваш надимак ће бити јединствен на %{domain}
@@ -77,7 +77,7 @@ sr:
closed_registrations_message: Приказује се када су пријаве затворене
content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно.
custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона.
- mascot: Замењује илустрацију у напредном веб интерфејсу.
+ mascot: Замењује илустрацију у напредном веб окружењу.
media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев.
profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви.
require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони
@@ -115,10 +115,10 @@ sr:
tag:
name: Могу се само променити мала слова у велика, на пример, да би било читљивије
user:
- chosen_languages: Када означите, трубе у изабраним језицима ће се приказати на јавној временској линији
+ chosen_languages: Када је означено, објаве у изабраним језицима ће бити приказане на јавној временској линији
role: Улога контролише које дозволе корисник има
user_role:
- color: Боја која ће се користити за улогу у целом корисничком интерфејсу, као RGB, у хексадецималном формату
+ color: Боја која ће се користити за улогу у целом корисничком окружењу, као RGB у хексадецималном формату
highlighted: Ово чини улогу јавно видљивом
name: Јавни назив улоге, ако је улога подешена да се приказује као значка
permissions_as_keys: Корисници са овом улогом ће имати приступ...
@@ -185,24 +185,24 @@ sr:
otp_attempt: Двофакторски код
password: Лозинка
phrase: Кључна реч или фраза
- setting_advanced_layout: Омогући напредни веб интерфејс
+ setting_advanced_layout: Омогући напредно веб окружење
setting_aggregate_reblogs: Групиши дељења у временским линијама
setting_always_send_emails: Увек шаљи обавештења е-поштом
- setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
+ setting_auto_play_gif: Аутоматски репродукуј анимиране GIF-ове
setting_boost_modal: Прикажи дијалог за потврду пре давања подршке
setting_crop_images: Изрежи слике у непроширеним објавама на 16x9
setting_default_language: Језик објављивања
setting_default_privacy: Приватност објава
setting_default_sensitive: Увек означи мултимедију као осетљиву
- setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
+ setting_delete_modal: Прикажи дијалог за потврду пре брисања објаве
setting_disable_swiping: Онемогући покрете превлачења
setting_display_media: Приказ медија
setting_display_media_default: Подразумевано
setting_display_media_hide_all: Сакриј све
setting_display_media_show_all: Прикажи све
- setting_expand_spoilers: Увек прошити трубе које су означене упозорењем садржаја
+ setting_expand_spoilers: Увек прошири објаве које су означене упозорењем садржаја
setting_hide_network: Сакриј своју мрежу
- setting_noindex: Одјави се од индексирања search engine-а
+ setting_noindex: Онемогући индексирање претраживача
setting_reduce_motion: Смањи покрете у анимацијама
setting_show_application: Откриј апликацију која се користи за слање постова
setting_system_font_ui: Користи системски фонт
diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml
index 16ece9d2c..02ef592c9 100644
--- a/config/locales/simple_form.zh-HK.yml
+++ b/config/locales/simple_form.zh-HK.yml
@@ -18,6 +18,8 @@ zh-HK:
disable: 禁止該使用者使用他們的帳號,但是不刪除或隱藏他們的內容。
none: 用這個來警告該使用者,而不進行其他操作。
sensitive: 強制標記此用戶的所有媒體附件為敏感內容。
+ silence: 禁止該使用者發佈公開帖文,沒有追蹤他們的人不會看到其帖文和通知。關閉所有對該帳號的檢舉報告。
+ suspend: 禁止與該帳號的所有互動,並移除其內容。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。
warning_preset_id: 選用。你仍可在預設訊息的結尾加入自訂文字
announcement:
all_day: 勾選後,只會顯示出時間範圍中的日期部分
@@ -72,6 +74,7 @@ zh-HK:
hide: 完全隱藏被篩選的內容,猶如它不存在般。
warn: 將已篩選的內容隱藏在篩選器標題的警告後面。
form_admin_settings:
+ activity_api_enabled: 每週本站發佈的帖文、活躍使用者及新註冊的數量
backups_retention_period: 繼續封存生成的使用者到指定的天數。
bootstrap_timeline_accounts: 這些帳號會被置頂在新使用者的追蹤建議上。
closed_registrations_message: 關閉註冊時顯示
@@ -79,6 +82,7 @@ zh-HK:
custom_css: 你可以在 Mastodon 網頁版套用自訂樣式。
mascot: 覆蓋進階網頁介面中的插圖。
media_cache_retention_period: 當設定為正數時,已下載的媒體檔案將在指定天數後被刪除,並視乎需要重新下載。
+ peers_api_enabled: 本伺服器於聯邦宇宙相遇的網域名單。這裏不包括你與某伺服器有否聯網的數據,僅表示你的伺服器已知的網域。這是供收集一般跨站數據的服務使用。
profile_directory: 個人檔案目錄羅列了所有選擇被發現的使用者。
require_invite_text: 如果需要手動審核註冊,請將「為何你想加入?」文字欄設定為必填,而非選填。
site_contact_email: 大家如何聯絡你有關法律或支援的查詢。
@@ -87,11 +91,13 @@ zh-HK:
site_short_description: 用作辨別你的伺服器的一段簡短描述。誰營運它,它為誰服務的?
site_terms: 使用你的私隱政策,或者留空使用預設的,可以用 Markdown 語法編寫。
site_title: 除了域名以外,其他人會如何指稱你的伺服器。
+ status_page_url: 可在服務中斷期間,查看此伺服器狀態的網頁網址
theme: 未登入訪客和新使用者看到的主題。
thumbnail: 一幅約 2:1 的圖片顯示在你的伺服器資訊的旁邊。
timeline_preview: 未登入的訪客能夠瀏覽伺服器上最新的公開帖文。
trendable_by_default: 跳過對趨勢內容的手動審查,事後仍可從趨勢中刪除個別項目。
trends: 趨勢顯示哪些帖文、標籤和新聞故事在你的伺服器上較有吸引力。
+ trends_as_landing_page: 向未登入的使用者及訪客展示趨勢內容,而非只有此伺服器的描述。需要啟用趨勢。
form_challenge:
current_password: 你正要進入安全區域
imports:
@@ -227,6 +233,7 @@ zh-HK:
hide: 完全隱藏
warn: 警告並隱藏
form_admin_settings:
+ activity_api_enabled: 在 API 中發佈使用者活動的匯總統計數據
backups_retention_period: 封存使用者保留期
bootstrap_timeline_accounts: 總是向新使用者推薦這些帳號
closed_registrations_message: 無法註冊時的自訂訊息
@@ -234,6 +241,7 @@ zh-HK:
custom_css: 自訂 CSS
mascot: 自訂吉祥物 (舊版)
media_cache_retention_period: 媒體快取保留期
+ peers_api_enabled: 在 API 中發佈已知的伺服器名單
profile_directory: 啟用個人檔案目錄
registrations_mode: 誰能註冊
require_invite_text: 提供一個加入的理由
@@ -245,11 +253,13 @@ zh-HK:
site_short_description: 伺服器描述
site_terms: 私隱政策
site_title: 伺服器名稱
+ status_page_url: 狀態頁網址
theme: 預設主題
thumbnail: 伺服器縮圖
timeline_preview: 允許未經認證的人存取公共時間軸
trendable_by_default: 允許未經審核的趨勢
trends: 啟用趨勢
+ trends_as_landing_page: 使用趨勢作為登陸頁面
interactions:
must_be_follower: 隱藏你關注者以外的人的通知
must_be_following: 隱藏你不關注的人的通知
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 8c50b8e94..5f974c6fd 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -154,7 +154,7 @@ zh-TW:
none: 什麼也不做
sensitive: 敏感内容
silence: 安靜
- suspend: 停權並不可逆的刪除帳號資料
+ suspend: 停權並永久刪除帳號資料
warning_preset_id: 使用警告預設
announcement:
all_day: 全天活動
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 6ec3c0c7d..d50da0041 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -95,6 +95,7 @@ sk:
moderation:
active: Aktívny/a
all: Všetko
+ disabled: Blokovaný
pending: Čakajúci
silenced: Obmedzený
suspended: Vylúčený/á
@@ -133,6 +134,7 @@ sk:
search: Hľadaj
search_same_email_domain: Iní užívatelia s tou istou emailovou doménou
search_same_ip: Ostatní užívatelia s rovnakou IP adresou
+ security: Zabezpečenie
security_measures:
only_password: Iba heslo
password_and_2fa: Heslo a dvoj-faktorové overovanie
@@ -345,6 +347,7 @@ sk:
create: Pridaj doménu
resolve: Preveď doménu
title: Nový email na zablokovanie
+ not_permitted: Nepovolená
resolved_through_html: Prevedená cez %{domain}
title: Blokované emailové adresy
export_domain_allows:
@@ -459,9 +462,11 @@ sk:
assign_to_self: Priraď sebe
assigned: Priradený moderátor
by_target_domain: Doména nahláseného účtu
+ cancel: Zruš
category: Kategória
comment:
none: Žiadne
+ confirm: Potvrď
created_at: Nahlásené
delete_and_resolve: Vymaž príspevky
forwarded: Preposlané
@@ -658,6 +663,7 @@ sk:
applications:
created: Aplikácia bola vytvorená úspešne
destroyed: Aplikáciu sa podarilo odstrániť
+ logout: Odhlás sa
regenerate_token: Znovu vygeneruj prístupový token
token_regenerated: Prístupový token bol úspešne vygenerovaný znova
warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj!
@@ -683,6 +689,8 @@ sk:
registration_closed: "%{instance} neprijíma nových členov"
resend_confirmation: Zašli potvrdzujúce pokyny znovu
reset_password: Obnov heslo
+ rules:
+ back: Späť
security: Zabezpečenie
set_new_password: Nastav nové heslo
setup:
@@ -788,7 +796,7 @@ sk:
featured_tags:
add_new: Pridaj nový
errors:
- limit: Už si si predvolil/a najvyšší možný počet obľúbených haštagov
+ limit: Už si si predvolil/a najvyšší možný počet haštagov
filters:
contexts:
account: Profily
@@ -865,7 +873,7 @@ sk:
title: Pozvi ľudí
lists:
errors:
- limit: Dosiahli ste maximálny možný počet zoznamov
+ limit: Dosiahli ste maximálny počet zoznamov
login_activities:
authentication_methods:
password: heslom
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index e2f712d7f..18009d372 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -95,6 +95,7 @@ sl:
moderation:
active: Dejaven
all: Vse
+ disabled: Onemogočeno
pending: Na čakanju
silenced: Omejeno
suspended: Suspendiran
@@ -139,6 +140,7 @@ sl:
search: Iskanje
search_same_email_domain: Drugi uporabniki z isto e-poštno domeno
search_same_ip: Drugi uporabniki z istim IP
+ security: Varnost
security_measures:
only_password: Samo geslo
password_and_2fa: Geslo in 2FA
@@ -443,6 +445,7 @@ sl:
resolve: Razreši domeno
title: Nov vnos e-pošte na črni seznam
no_email_domain_block_selected: Nobena domena e-računa ni bila spremenjena, ker nobena ni bila izbrana
+ not_permitted: Ni dovoljeno
resolved_dns_records_hint_html: Ime domene se razreši na naslednje domene MX, ki so končno odgovorne za sprejemanje e-pošte. Blokiranje domene MX bo blokiralo prijave s poljubnega e-poštnega naslova, ki uporablja isto domeno MX, tudi če je vidno ime domene drugačno. Pazite, da ne blokirate večjih ponudnikov e-pošte.
resolved_through_html: Razrešeno prek %{domain}
title: Črni seznam e-pošt
@@ -493,6 +496,7 @@ sl:
content_policies:
comment: Interna opomba
description_html: Določite lahko pravila (t.i. politike), ki bodo veljale za vse račune te domene ter vseh njenih poddomen.
+ limited_federation_mode_description_html: Izberete lahko, ali dovolite federacijo s to domeno.
policies:
reject_media: Zavrni večpredstavnost
reject_reports: Zavrni prijave
@@ -609,11 +613,13 @@ sl:
assign_to_self: Dodeli meni
assigned: Dodeljen moderator
by_target_domain: Domena prijavljenega računa
+ cancel: Prekliči
category: Kategorija
category_description_html: Razlog, zakaj je ta račun in/ali vsebina prijavljena, bo naveden v komunikaciji z računom iz prijave
comment:
none: Brez
comment_description_html: 'V pojasnilo je %{name} zapisal/a:'
+ confirm: Potrdi
confirm_action: Potrdite dejanje moderiranja proti @%{acct}
created_at: Prijavljeno
delete_and_resolve: Izbriši objave
@@ -820,6 +826,7 @@ sl:
suspend: "%{name} je suspendiral/a račun uporabnika %{target}"
appeal_approved: Pritoženo
appeal_pending: Čakajoč na ugovor
+ appeal_rejected: Pritožba zavrnjena
system_checks:
database_schema_check:
message_html: Na čakanju so migracije zbirke podatkov. Prosimo, izvedite jih, da zagotovite, da se program vede pričakovano
@@ -857,6 +864,7 @@ sl:
two: Delili %{count} osebi v zadnjem tednu
title: Povezave v trendu
usage_comparison: Danes deljeno %{today}-krat, včeraj pa %{yesterday}-krat
+ not_allowed_to_trend: Ni dovoljeno, da bi bilo v trendu
only_allowed: Samo dovoljeni
pending_review: Čakajoče na pregled
preview_card_providers:
@@ -994,6 +1002,7 @@ sl:
applications:
created: Aplikacija je bila uspešno ustvarjena
destroyed: Aplikacija je bila uspešno izbrisana
+ logout: Odjava
regenerate_token: Obnovite dostopni žeton
token_regenerated: Dostopni žeton je bil uspešno regeneriran
warning: Bodite zelo previdni s temi podatki. Nikoli jih ne delite z nikomer!
@@ -1030,6 +1039,8 @@ sl:
resend_confirmation: Ponovno pošlji navodila za potrditev
reset_password: Ponastavi geslo
rules:
+ accept: Sprejmi
+ back: Nazaj
preamble: Slednje določajo in njihovo spoštovanje zagotavljajo moderatorji %{domain}.
title: Nekaj osnovnih pravil.
security: Varnost
@@ -1637,7 +1648,7 @@ sl:
'7889238': 3 mesece
min_age_label: Starostna meja
min_favs: Obrži objave priljubljene vsaj
- min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno količino priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov
+ min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno število priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov
min_reblogs: Obdrži objave izpostavljene vsaj
min_reblogs_hint: Ne izbriše nobene od vaših objav, ki je bila vsaj tolikokrat podprta. Pustite prazno, če želite izbrisati objave ne glede na število izpostavitev
stream_entries:
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 961a14d47..a36b667d8 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -91,6 +91,7 @@ sq:
moderation:
active: Aktiv
all: Krejt
+ disabled: I çaktivizuar
pending: Pezull
silenced: I kufizuar
suspended: Të pezulluara
@@ -133,6 +134,7 @@ sq:
search: Kërkoni
search_same_email_domain: Të tjerë përdorues me të njëjtën përkatësi email-i
search_same_ip: Të tjerë përdorues me të njëjtën IP
+ security: Siguri
security_measures:
only_password: Vetëm fjalëkalim
password_and_2fa: Fjalëkalim dhe 2FA
@@ -427,6 +429,7 @@ sq:
resolve: Ftilloje përkatësinë
title: Zë i ri email në listë bllokimesh
no_email_domain_block_selected: S’u ndryshuan blloqe përkatësish email, ngaqë s’qe përzgjedhur ndonjë
+ not_permitted: Jo i lejuar
resolved_dns_records_hint_html: Emri i përkatësisë jep u përket përkatësive vijuese MX, që janë përgjegjëset për pranim email-esh. Bllokimi i një përkatësie MX do të bllokojë regjistrime nga çfarëdo adrese email që përdor të njëjtën përkatësi MX, edhe nëse emri i dukshëm i përkatësisë është i ndryshëm. Jini i kujdesshëm të mos bllokoni shërbime të njohur email-esh.
resolved_through_html: Zgjidhur përmes %{domain}
title: Listë bllokimesh email-esh
@@ -472,6 +475,7 @@ sq:
content_policies:
comment: Shënim i brendshëm
description_html: Mund të përkufizoni rregulla lënde që do të zbatohen mbi krejt llogaritë prej kësaj përkatësie dhe cilësdo nënpërkatësi të saj.
+ limited_federation_mode_description_html: Mund të zgjidhni të lejohet ose jo federimi me këtë përkatësi.
policies:
reject_media: Mos prano media
reject_reports: Hidh tej raportimet
@@ -584,11 +588,13 @@ sq:
assign_to_self: Caktojani vetes
assigned: Iu caktua moderator
by_target_domain: Përkatësi e llogarisë së raportuar
+ cancel: Anuloje
category: Kategori
category_description_html: Arsyeja pse kjo llogari dhe/ose lëndë raportohet do të citohet te komunikimi me llogarinë e raportuar
comment:
none: Asnjë
comment_description_html: 'Për të dhënë më tepër informacion, %{name} shkroi:'
+ confirm: Ripohojeni
confirm_action: Ripohoni veprim moderimi kundër @%{acct}
created_at: Raportuar më
delete_and_resolve: Fshiji postimet
@@ -789,6 +795,7 @@ sq:
suspend: "%{name} e pezulloi llogarinë e %{target}"
appeal_approved: Apeluar
appeal_pending: Apelim pezull
+ appeal_rejected: Apelimi u hodh poshtë
system_checks:
database_schema_check:
message_html: Ka migrime bazash të dhënash pezull. Ju lutemi, kryejini, për të qenë të sigurt se aplikacioni sillet siç priteet
@@ -953,6 +960,7 @@ sq:
applications:
created: Aplikimi u krijua me sukses
destroyed: Aplikimi u fshi me sukses
+ logout: Dalje
regenerate_token: Riprodho token hyrjesh
token_regenerated: Token-i i hyrjeve u riprodhua me sukses
warning: Bëni shumë kujdes me ato të dhëna. Mos ia jepni kurrë njeriu!
@@ -989,6 +997,8 @@ sq:
resend_confirmation: Ridërgo udhëzime ripohimi
reset_password: Ricaktoni fjalëkalimin
rules:
+ accept: Pranoje
+ back: Mbrapsht
preamble: Këto vendosen dhe zbatimi i tyre është nën kujdesin e moderatorëve të %{domain}.
title: Disa rregulla bazë.
security: Siguri
@@ -1136,7 +1146,7 @@ sq:
featured_tags:
add_new: Shtoni të re
errors:
- limit: Keni përdorur tashmë si të zgjedhur sasinë maksimum të hashtag-ëve
+ limit: Keni përdorur tashmë numrin maksimum të hashtag-ëve
hint_html: "Çfarë janë hashtag-ët e zgjedhur? Këta shfaqen dukshëm te profili juaj publik dhe u lejojnë të tjerëve të shfletojnë postime tuajt publikë posaçërisht nën këta hashtag-ë. Janë një mjet i goditur për të ndjekur punë krijuese ose projekte afatgjata."
filters:
contexts:
@@ -1248,7 +1258,7 @@ sq:
title: Ftoni njerëz
lists:
errors:
- limit: Keni mbërritur në numrin maksimum të sasisë së listave
+ limit: Keni mbërritur në numrin maksimum të listave
login_activities:
authentication_methods:
otp: aplikacion mirëfilltësimi dyfaktorësh
@@ -1568,7 +1578,7 @@ sq:
'7889238': 3 muaj
min_age_label: Prag moshe
min_favs: Mbaji postimet e parapëlqyera më shumë se
- min_favs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër parapëlqimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të parapëlqimeve për to
+ min_favs_hint: Mos fshini ndonjë nga postimet tuaja që kanë marrë të paktën këtë numër si të parapëlqyer. Lëreni të zbrazët, që të fshihen postime pavarësisht nga numri se sa herë janë të parapëlqyer
min_reblogs: Mbaji postimet e përforcuara më shumë se
min_reblogs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër përforcimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të përforcimeve për to
stream_entries:
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 1a4a2b7b1..fdb5d2185 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -256,9 +256,6 @@ sr-Latn:
expires_at: Ističe
uses: Korišćenja
title: Pozovi ljude
- lists:
- errors:
- limit: Dostigli ste limit broja listi
media_attachments:
validations:
images_and_video: Ne može da se prikači video na status koji već ima slike
@@ -286,10 +283,6 @@ sr-Latn:
pagination:
next: Sledeći
prev: Prethodni
- preferences:
- other: Ostali
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog
sessions:
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 656b6f763..8cb4bcb39 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -290,7 +290,7 @@ sr:
disable: Искључи
disabled: Искључен
enable: Укључи
- enable_hint: Када се омогући, Ваш сервер ће бити претплаћен на све јавне трубе са овог релеја, и почеће да шаље своје јавне трубу на њега.
+ enable_hint: Када се омогући, ваш сервер ће бити претплаћен на све јавне објаве са овог релеја, и почеће да шаље јавне објаве овог сервера на њега.
enabled: Укључен
inbox_url: URL Релеја
pending: Чека се одобрење релеја
@@ -359,6 +359,7 @@ sr:
title: Подразумевано искључи кориснике из индексирања претраживача
discovery:
public_timelines: Јавне временске линије
+ title: Откривање
statuses:
back_to_account: Назад на страну налога
media:
@@ -377,6 +378,17 @@ sr:
body: "%{reporter} је пријавио %{target}"
body_remote: Нека са домена %{domain} је пријавио %{target}
subject: Нова пријава за %{instance} (#%{id})
+ appearance:
+ advanced_web_interface: Напредно веб окружење
+ advanced_web_interface_hint: 'Ако желите да искористите целу ширину екрана, напредно веб окружење вам омогућује да конфигуришете много различитих колона да бисте видели онолико информација у исто време колико желите: почетну страницу, обавештења, здружену временску линију, било који број листа и хеш ознака.'
+ animations_and_accessibility: Анимације и приступачност
+ confirmation_dialogs: Дијалози потврде
+ discovery: Откривање
+ localization:
+ body: Mastodon преводе добровољци.
+ guide_link_text: Свако може допринети.
+ sensitive_content: Осетљив садржај
+ toot_layout: Распоред објава
application_mailer:
notification_preferences: Промени преференце Е-поште
settings: 'Промени подешавања е-поште: %{link}'
@@ -481,7 +493,7 @@ sr:
generic:
changes_saved_msg: Измене успешно сачуване!
copy: Копирај
- save_changes: Сними измене
+ save_changes: Сачувај промене
validation_errors:
few: Нешто није баш како треба! Прегледајте %{count} грешке испод
one: Нешто није баш како треба! Прегледајте грешке испод
@@ -517,9 +529,6 @@ sr:
expires_at: Истиче
uses: Коришћења
title: Позовите људе
- lists:
- errors:
- limit: Достигли сте лимит броја листи
media_attachments:
validations:
images_and_video: Не може да се прикачи видео на статус који већ има слике
@@ -552,7 +561,9 @@ sr:
subject: "%{name} је подржао/ла Ваш статус"
title: Нова подршка
notifications:
+ email_events: Догађаји за обавештења е-поштом
email_events_hint: 'Изаберите дешавања за која желите да примате обавештења:'
+ other_settings: Остала подешавања обавештења
pagination:
newer: Новије
next: Следеће
@@ -560,6 +571,7 @@ sr:
prev: Претходни
preferences:
other: Остало
+ posting_defaults: Подразумевана подешавања објављивања
public_timelines: Јавне временске линије
remote_follow:
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
@@ -609,7 +621,7 @@ sr:
back: Назад на Мастодон
delete: Брисање налога
development: Развој
- edit_profile: Измена налога
+ edit_profile: Уређивање профила
export: Извоз података
import: Увоз
import_and_export: Увоз и извоз
@@ -632,6 +644,7 @@ sr:
other: "%{count} видео записа"
boosted_from_html: Подржано од %{acct_link}
content_warning: 'Упозорење на садржај: %{warning}'
+ default_language: Исто као језик окружења
disallowed_hashtags:
few: 'садржи забрањене хештегове: %{tags}'
one: 'садржи забрањени хештег: %{tags}'
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 8558843d1..86f9805e4 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1127,8 +1127,6 @@ sv:
storage: Medialagring
featured_tags:
add_new: Lägg till ny
- errors:
- limit: Du har redan det maximala antalet utvalda hashtaggar
hint_html: "Vad är utvalda hashtaggar? De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt."
filters:
contexts:
@@ -1238,9 +1236,6 @@ sv:
expires_at: Utgår
uses: Användningar
title: Bjud in andra
- lists:
- errors:
- limit: Du har nått det maximala antalet listor
login_activities:
authentication_methods:
otp: tvåfaktorsautentiseringsapp
@@ -1557,7 +1552,6 @@ sv:
'7889238': 3 månader
min_age_label: Åldersgräns
min_favs: Behåll favoritmarkerade inlägg i minst
- min_favs_hint: Raderar inte något av dina inlägg som har blivit favoritmarkerat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal favoritmarkeringar
min_reblogs: Behåll boostade inlägg i minst
min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar
stream_entries:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index a18385f59..a4be17222 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -89,6 +89,7 @@ th:
moderation:
active: ใช้งานอยู่
all: ทั้งหมด
+ disabled: ปิดใช้งานอยู่
pending: รอดำเนินการ
silenced: จำกัดอยู่
suspended: ระงับอยู่
@@ -130,6 +131,7 @@ th:
search: ค้นหา
search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
+ security: ความปลอดภัย
security_measures:
only_password: รหัสผ่านเท่านั้น
password_and_2fa: รหัสผ่านและ 2FA
@@ -419,6 +421,7 @@ th:
resolve: แปลงที่อยู่โดเมน
title: ปิดกั้นโดเมนอีเมลใหม่
no_email_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนอีเมลเนื่องจากไม่มีการเลือก
+ not_permitted: ไม่ได้รับอนุญาต
resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกันก็ตาม ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่
resolved_through_html: แปลงที่อยู่ผ่าน %{domain}
title: โดเมนอีเมลที่ปิดกั้นอยู่
@@ -463,6 +466,7 @@ th:
content_policies:
comment: หมายเหตุภายใน
description_html: คุณสามารถกำหนดนโยบายเนื้อหาที่จะนำไปใช้กับบัญชีทั้งหมดจากโดเมนนี้และโดเมนย่อยใดก็ตามของโดเมน
+ limited_federation_mode_description_html: คุณสามารถเลือกได้ว่าจะอนุญาตการติดต่อกับภายนอกกับโดเมนนี้หรือไม่
policies:
reject_media: ปฏิเสธสื่อ
reject_reports: ปฏิเสธรายงาน
@@ -573,11 +577,13 @@ th:
assign_to_self: มอบหมายให้ฉัน
assigned: ผู้ควบคุมที่ได้รับมอบหมาย
by_target_domain: โดเมนของบัญชีที่ได้รับการรายงาน
+ cancel: ยกเลิก
category: หมวดหมู่
category_description_html: จะอ้างถึงเหตุผลที่บัญชีและ/หรือเนื้อหานี้ได้รับการรายงานในการสื่อสารกับบัญชีที่ได้รับการรายงาน
comment:
none: ไม่มี
comment_description_html: 'เพื่อให้ข้อมูลเพิ่มเติม %{name} ได้เขียน:'
+ confirm: ยืนยัน
confirm_action: ยืนยันการกระทำการควบคุมต่อ @%{acct}
created_at: รายงานเมื่อ
delete_and_resolve: ลบโพสต์
@@ -778,6 +784,7 @@ th:
suspend: "%{name} ได้ระงับบัญชีของ %{target}"
appeal_approved: อุทธรณ์แล้ว
appeal_pending: รอดำเนินการการอุทธรณ์
+ appeal_rejected: ปฏิเสธการอุทธรณ์แล้ว
system_checks:
database_schema_check:
message_html: มีการโยกย้ายฐานข้อมูลที่รอดำเนินการ โปรดเรียกใช้การโยกย้ายเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานตามที่คาดไว้
@@ -812,6 +819,7 @@ th:
other: แบ่งปันโดย %{count} คนในช่วงสัปดาห์ที่ผ่านมา
title: ลิงก์ที่กำลังนิยม
usage_comparison: แบ่งปัน %{today} ครั้งวันนี้ เทียบกับ %{yesterday} เมื่อวานนี้
+ not_allowed_to_trend: ไม่ได้รับอนุญาตให้ขึ้นแนวโน้ม
only_allowed: อนุญาตเท่านั้น
pending_review: การตรวจทานที่รอดำเนินการ
preview_card_providers:
@@ -940,6 +948,7 @@ th:
applications:
created: สร้างแอปพลิเคชันสำเร็จ
destroyed: ลบแอปพลิเคชันสำเร็จ
+ logout: ออกจากระบบ
regenerate_token: สร้างโทเคนการเข้าถึงใหม่
token_regenerated: สร้างโทเคนการเข้าถึงใหม่สำเร็จ
warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม!
@@ -976,6 +985,8 @@ th:
resend_confirmation: ส่งคำแนะนำการยืนยันใหม่
reset_password: ตั้งรหัสผ่านใหม่
rules:
+ accept: ยอมรับ
+ back: ย้อนกลับ
preamble: มีการตั้งและบังคับใช้กฎโดยผู้ควบคุมของ %{domain}
title: กฎพื้นฐานบางประการ
security: ความปลอดภัย
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index fb254e11b..0e0edb421 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -59,25 +59,25 @@ tr:
destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı"
disable: Dondur
disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak
- disable_two_factor_authentication: 2 adımlı doğrulamayı kapat
+ disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat
disabled: Kapalı
display_name: Görünen isim
domain: Alan adı
edit: Düzenle
email: E-posta
email_status: E-posta durumu
- enable: Dondurmayı Kaldır
+ enable: Etkinleştir
enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir
enabled: Etkin
enabled_msg: "%{username} hesabı başarıyla çözüldü"
- followers: Takipçiler
+ followers: Takipçi
follows: Takip edilen
header: Üstbilgi
inbox_url: Gelen kutusu bağlantısı
invite_request_text: Katılma gerekçeleri
invited_by: Tarafından davet edildi
ip: IP
- joined: Katıldı
+ joined: Katılma tarihi
location:
all: Hepsi
local: Yerel
@@ -91,9 +91,10 @@ tr:
moderation:
active: Etkin
all: Hepsi
- pending: Bekliyor
+ disabled: Devre dışı bırakıldı
+ pending: Bekleyen
silenced: Sınırlı
- suspended: Uzaklaştırılanlar
+ suspended: Askıya Alınan
title: Denetim
moderation_notes: Denetleme notları
most_recent_activity: Son aktivite
@@ -111,7 +112,7 @@ tr:
promote: Yükselt
protocol: Protokol
public: Herkese açık
- push_subscription_expires: PuSH aboneliği dolumu
+ push_subscription_expires: PuSH aboneliği sona erdi
redownload: Profili yenile
redownloaded_msg: "%{username} kullanıcısının profili kökenden başarıyla yenilendi"
reject: Reddet
@@ -133,6 +134,7 @@ tr:
search: Ara
search_same_email_domain: Aynı e-posta alan adına sahip diğer kullanıcılar
search_same_ip: Aynı IP adresine sahip diğer kullanıcılar
+ security: Güvenlik
security_measures:
only_password: Sadece parola
password_and_2fa: Parola ve İki aşamalı doğrulama
@@ -144,7 +146,7 @@ tr:
targeted_reports: Başkaları tarafından şikayet edildi
silence: Sustur
silenced: Susturulmuş
- statuses: Durumlar
+ statuses: Gönderiler
strikes: Önceki eylemler
subscribe: Abone ol
suspend: Askıya al
@@ -168,7 +170,7 @@ tr:
whitelisted: Beyaz listede
action_logs:
action_types:
- approve_appeal: İtirazı Kabul Et
+ approve_appeal: İtirazı Onayla
approve_user: Kullanıcıyı Onayla
assigned_to_self_report: Raporu Ata
change_email_user: Kullanıcı E-postasını Değiştir
@@ -427,6 +429,7 @@ tr:
resolve: Alan adı çözümleme
title: Yeni e-posta kara liste girişi
no_email_domain_block_selected: Seçim yapılmadığından hiç bir e-posta alan adı engeli değiştirilmedi
+ not_permitted: İzin verilmedi
resolved_dns_records_hint_html: Alan adı aşağıdaki MX alan adlarına çözümleniyor, ancak hiç biri nihayetinde e-posta kabulünden sorum değil. Bir MX alan adını engellemek, görünen alan adı farklı osa bile aynı MX alan adını kullanan e-posta adreslerinden gelen kayıtları engelleyecektir. Başlıca e-posta sağlayıcıları engellememek için dikkatli olun.
resolved_through_html: "%{domain} aracılığıyla çözümlendi"
title: E-posta kara listesi
@@ -473,6 +476,7 @@ tr:
content_policies:
comment: İç not
description_html: Bu alan adındaki ve alt alan adlarındaki tüm hesaplara uygulanacak içerik ilkeleri belirleyebilirsiniz.
+ limited_federation_mode_description_html: Bu alan adıyla birleştirmeye izin verip vermediğinizi seçebilirsiniz.
policies:
reject_media: Medyayı reddet
reject_reports: Şikayetleri reddet
@@ -585,11 +589,13 @@ tr:
assign_to_self: Bana ata
assigned: Denetleyici atandı
by_target_domain: Şikayet edilen hesabın alan adı
+ cancel: İptal et
category: Kategori
category_description_html: Bu hesap ve/veya içeriğin bildirilme gerekçesi, bildirilen hesapla iletişimde alıntılanacaktır
comment:
none: Yok
comment_description_html: 'Daha fazla bilgi vermek için %{name} şunu yazdı:'
+ confirm: Onayla
confirm_action: "%{acct} üzerindeki denetleme eylemini onayla"
created_at: Şikayet edildi
delete_and_resolve: Gönderileri sil
@@ -629,11 +635,13 @@ tr:
actions:
delete_html: Kuralı ihlal eden gönderileri kaldır
mark_as_sensitive_html: Kuralı ihlal eden gönderilerin medyasını hassas olarak işaretle
+ silence_html: "@%{acct} hesabının erişimini oldukça kısıtla: profili ve içeriği sadece onları halihazırda takip edenler veya manuel olarak hesabına erişenlerce mümkün olacak"
suspend_html: "@%{acct} hesabını askıya al, profilini ve içeriğini erişilmez ve etkileşimi imkansız yap"
close_report: "#%{id} bildirimini çözüldü olarak işaretle"
close_reports_html: "@%{acct} hesabına yönelik tüm bildirimleri çözüldü olarak işaretle"
delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa @%{acct} hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil
preview_preamble_html: "@%{acct} aşağıdaki içerikle bir uyarı alacaktır:"
+ record_strike_html: "@%{acct} hesabına karşı bir eylem kaydet, böylece bu hesabın gelecekteki ihlallerini üst makama taşımanıza yardımcı olacaktır"
send_email_html: "@%{acct} adlı kullanıcıya uyarı e-maili gönder"
warning_placeholder: İsteğe bağlı ek nedenden denetim eylemi.
target_origin: Şikayet edilen hesabın kökeni
@@ -790,6 +798,7 @@ tr:
suspend: "%{name}, %{target} kullanıcısının hesabını askıya aldı"
appeal_approved: İtiraz Edildi
appeal_pending: İtiraz bekliyor
+ appeal_rejected: İtiraz reddedildi
system_checks:
database_schema_check:
message_html: Beklemede olan veritabanı güncellemeleri mevcut. Uygulamanın beklenildiği gibi çalışması için lütfen onları çalıştırın
@@ -825,6 +834,7 @@ tr:
other: Geçen hafta %{count} kişi paylaştı
title: Öne çıkan bağlantılar
usage_comparison: Bugün %{today} kere paylaşıldı, dün %{yesterday} kere paylaşılmıştı
+ not_allowed_to_trend: Öne çıkma izni yok
only_allowed: Sadece izin verilenler
pending_review: İnceleme bekliyor
preview_card_providers:
@@ -956,6 +966,7 @@ tr:
applications:
created: Uygulama başarıyla oluşturuldu
destroyed: Uygulama başarıyla silindi
+ logout: Oturumu kapat
regenerate_token: Erişim belirtecini yeniden oluştur
token_regenerated: Erişim belirteci başarıyla oluşturuldu
warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın!
@@ -992,6 +1003,8 @@ tr:
resend_confirmation: Onaylama talimatlarını tekrar gönder
reset_password: Parolayı sıfırla
rules:
+ accept: Onayla
+ back: Geri
preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır.
title: Bazı temel kurallar.
security: Güvenlik
@@ -1139,7 +1152,7 @@ tr:
featured_tags:
add_new: Yeni ekle
errors:
- limit: Zaten azami hashtag miktarı belirlediniz
+ limit: Zaten azami etiket sayısını öne çıkardınız
hint_html: "Öne çıkan etiketler nelerdir? Genel profilinizde belirgin bir şekilde görüntülenirler ve kişilerin genel yayınlarınıza özellikle bu etiketler altında göz atmalarına izin verir. Yaratıcı çalışmaları veya uzun vadeli projeleri takip etmek için harika bir araçtır."
filters:
contexts:
@@ -1251,7 +1264,7 @@ tr:
title: İnsanları davet et
lists:
errors:
- limit: En yüksek liste sayısına ulaştınız
+ limit: Azami liste sayısına ulaştınız
login_activities:
authentication_methods:
otp: iki aşamalı kimlik doğrulama uygulaması
@@ -1571,7 +1584,7 @@ tr:
'7889238': 3 ay
min_age_label: Zaman eşiği
min_favs: Şundan daha fazla beğenilen gönderileri sakla
- min_favs_hint: Bu belirtilenden daha fazla beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
+ min_favs_hint: En az bu belirtilen kadar beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
min_reblogs: Şundan daha fazla teşvik edilen gönderileri sakla
min_reblogs_hint: Bu belirtilenden daha fazla teşvik edilen gönderilerinizin herhangi birini silmez. Teşvik sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
stream_entries:
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index 01b491b11..9e0382248 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -179,10 +179,6 @@ tt:
next: Киләсе
prev: Алдыгы
truncate: "…"
- preferences:
- other: Башка
- posting_defaults: Posting defaults
- public_timelines: Public timelines
relationships:
following: Язылгансыз
sessions:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index dd6d42daa..b90f01400 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -95,6 +95,7 @@ uk:
moderation:
active: Активний
all: Усі
+ disabled: Вимкнено
pending: Очікують
silenced: Обмежені
suspended: Призупинені
@@ -139,6 +140,7 @@ uk:
search: Пошук
search_same_email_domain: Інші користувачі з тим самим поштовим доменом
search_same_ip: Інші користувачі з тим самим IP
+ security: Безпека
security_measures:
only_password: Лише пароль
password_and_2fa: Пароль та 2FA
@@ -443,6 +445,7 @@ uk:
resolve: Розв'язати домен
title: Нове блокування поштового домену
no_email_domain_block_selected: Жодні налаштування блокування доменів електронної пошти не було змінено, оскільки жоден з них не було обрано
+ not_permitted: Не дозволено
resolved_dns_records_hint_html: Ім'я домену резолвиться в наступні домени MX, які в кінцевому рахунку відповідають за прийняття електронної пошти. Блокування домену MX заблокує реєстрацію з будь-якої e-mail адреси, яка використовує однаковий домен MX, навіть якщо доменне ім'я буде інакше. Будьте обережні, щоб не блокувати великих поштових провайдерів.
resolved_through_html: Розв'язано через %{domain}
title: Чорний список поштових доменів
@@ -493,6 +496,7 @@ uk:
content_policies:
comment: Внутрішня примітка
description_html: Ви можете визначити правила вмісту що буде застосовано до всіх облікових записів із цього домену та будь-якого з його піддоменів.
+ limited_federation_mode_description_html: Ви можете вибрати, чи дозволити федерацію з цим доменом.
policies:
reject_media: Відхилити медіа
reject_reports: Відхилити скарги
@@ -609,11 +613,13 @@ uk:
assign_to_self: Призначити мені
assigned: Призначений модератор
by_target_domain: Домен облікового запису, на який скаржаться
+ cancel: Скасувати
category: Категорія
category_description_html: Причина скарги на цей обліковий запис та/або вміст, яку буде вказано у звіті
comment:
none: Немає
comment_description_html: 'Щоб надати більше відомостей, %{name} пише:'
+ confirm: Підтвердити
confirm_action: Підтвердьте модераційну дію щодо @%{acct}
created_at: Створено
delete_and_resolve: Видалити дописи
@@ -820,6 +826,7 @@ uk:
suspend: "%{name} заморожує обліковий запис %{target}"
appeal_approved: Оскаржено
appeal_pending: Оскарження в очікуванні
+ appeal_rejected: Апеляцію відхилено
system_checks:
database_schema_check:
message_html: Існують відкладені перенесення бази даних. Запустіть їх, щоб забезпечити очікувану роботу програми
@@ -857,6 +864,7 @@ uk:
other: Поширили %{count} людей за останній тиждень
title: Популярні посилання
usage_comparison: Сьогодні поширено %{today} разів, у порівнянні з %{yesterday} вчора
+ not_allowed_to_trend: Не допускається тенденція
only_allowed: Тільки дозволене
pending_review: Очікує перевірки
preview_card_providers:
@@ -994,6 +1002,7 @@ uk:
applications:
created: Застосунок успішно створений
destroyed: Застосунок успішно видалений
+ logout: Вийти
regenerate_token: Перегенерувати токен доступу
token_regenerated: Токен доступу успішне перегенеровано
warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким!
@@ -1030,6 +1039,8 @@ uk:
resend_confirmation: Повторно відправити інструкції з підтвердження
reset_password: Скинути пароль
rules:
+ accept: Прийняти
+ back: Назад
preamble: Вони налаштовані та закріплені модераторами %{domain}.
title: Деякі основні правила.
security: Зміна паролю
@@ -1637,7 +1648,7 @@ uk:
'7889238': 3 місяці
min_age_label: Поріг давності
min_favs: Залишати дописи в обраному більше ніж
- min_favs_hint: Не видаляти ваших дописів, що отримали більше вказаної кількості додавання до закладок. Залиште порожнім, щоб видаляти дописи незалежно від кількості їхнього додавання до обраних
+ min_favs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень
min_reblogs: Залишати дописи, поширені більше ніж
min_reblogs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень
stream_entries:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 341776109..c4ffaa1de 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -89,6 +89,7 @@ vi:
moderation:
active: Hoạt động
all: Tất cả
+ disabled: Đã tắt
pending: Chờ
silenced: Hạn chế
suspended: Vô hiệu hóa
@@ -130,6 +131,7 @@ vi:
search: Tìm kiếm
search_same_email_domain: Tra cứu email
search_same_ip: Tra cứu IP
+ security: Bảo mật
security_measures:
only_password: Chỉ mật khẩu
password_and_2fa: Mật khẩu và 2FA
@@ -419,6 +421,7 @@ vi:
resolve: Xử lý tên miền
title: Chặn tên miền email mới
no_email_domain_block_selected: Không có chặn e-mail nào thay đổi vì không có mục nào được chọn
+ not_permitted: Không cho phép
resolved_dns_records_hint_html: Tên miền phân giải thành các tên miền MX sau, các tên miền này chịu trách nhiệm cuối cùng trong việc chấp nhận email. Chặn tên miền MX sẽ chặn đăng ký từ bất kỳ địa chỉ email nào sử dụng cùng một tên miền MX, ngay cả khi tên miền hiển thị là khác. Cẩn thận đừng chặn những dịch vụ email lớn.
resolved_through_html: Đã xử lý thông qua %{domain}
title: Tên miền email đã chặn
@@ -463,6 +466,7 @@ vi:
content_policies:
comment: Lưu ý nội bộ
description_html: Bạn có thể xác định các chính sách nội dung sẽ được áp dụng cho tất cả các tài khoản trên máy chủ này và bất kỳ tên miền phụ nào của nó.
+ limited_federation_mode_description_html: Bạn có thể chọn nếu muốn cho phép liên hợp với máy chủ này.
policies:
reject_media: Từ chối media
reject_reports: Từ chối báo cáo
@@ -573,11 +577,13 @@ vi:
assign_to_self: Giao cho tôi
assigned: Người xử lý
by_target_domain: Tên tài khoản bị báo cáo
+ cancel: Hủy bỏ
category: Phân loại
category_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ
comment:
none: Không có mô tả
comment_description_html: "%{name} cho biết thêm:"
+ confirm: Xác nhận
confirm_action: Xác nhận kiểm duyệt với %{acct}
created_at: Báo cáo lúc
delete_and_resolve: Xóa tút
@@ -778,6 +784,7 @@ vi:
suspend: "%{name} đã vô hiệu hóa %{target}"
appeal_approved: Đã khiếu nại
appeal_pending: Đang kháng cáo
+ appeal_rejected: Khiếu nại bị từ chối
system_checks:
database_schema_check:
message_html: Có cơ sở dữ liệu đang chờ xử lý. Xin khởi động nó để ứng dụng có thể hoạt động một cách ổn định nhất
@@ -812,6 +819,7 @@ vi:
other: "%{count} người chia sẻ tuần rồi"
title: Liên kết nổi bật
usage_comparison: Chia sẻ %{today} lần hôm nay, so với %{yesterday} lần hôm qua
+ not_allowed_to_trend: Không được phép thành xu hướng
only_allowed: Chỉ cho phép
pending_review: Đang chờ
preview_card_providers:
@@ -940,6 +948,7 @@ vi:
applications:
created: Đơn đăng ký được tạo thành công
destroyed: Đã xóa đơn đăng ký
+ logout: Đăng xuất
regenerate_token: Tạo lại mã truy cập
token_regenerated: Mã truy cập được tạo lại thành công
warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai!
@@ -976,6 +985,8 @@ vi:
resend_confirmation: Gửi lại email xác minh
reset_password: Đặt lại mật khẩu
rules:
+ accept: Chấp nhận
+ back: Quay lại
preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}.
title: Nội quy máy chủ.
security: Bảo mật
@@ -1541,7 +1552,6 @@ vi:
'7889238': 3 tháng
min_age_label: Thời điểm
min_favs: Giữ những tút yêu thích lâu hơn
- min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
min_reblogs: Giữ những tút đã đăng lại lâu hơn
min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
stream_entries:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 78b0f5d13..300a20ecd 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -89,6 +89,7 @@ zh-CN:
moderation:
active: 活跃
all: 全部
+ disabled: 已禁用
pending: 待审核
silenced: 受限
suspended: 已封禁
@@ -130,6 +131,7 @@ zh-CN:
search: 搜索
search_same_email_domain: 其他具有相同电子邮箱域名的用户
search_same_ip: 具有相同IP的其他用户
+ security: 安全性
security_measures:
only_password: 仅密码
password_and_2fa: 密码和双重认证
@@ -419,6 +421,7 @@ zh-CN:
resolve: 解析域名
title: 添加电子邮件域名屏蔽
no_email_domain_block_selected: 没有任何项目被选中,因此未能更改电子邮件域名屏蔽列表
+ not_permitted: 未允许
resolved_dns_records_hint_html: 该域名解析的 MX 记录所指向的域名如下,这些域名被用于接收电子邮件。 即使电子邮件地址域名与 MX 域名不同,屏蔽一个 MX 域名意味着阻止任何使用相同 MX 域名的电子邮件地址注册本站账户。 请小心不要误屏蔽主要的电子邮件提供商。
resolved_through_html: 通过 %{domain} 解析
title: 电子邮件域名屏蔽
@@ -463,6 +466,7 @@ zh-CN:
content_policies:
comment: 内部备注
description_html: 你可以设置应用于此域名所有账号和其所有子域名的内容策略。
+ limited_federation_mode_description_html: 您可以选择是否允许与该联邦联合。
policies:
reject_media: 拒收媒体
reject_reports: 拒收举报
@@ -573,11 +577,13 @@ zh-CN:
assign_to_self: 接管
assigned: 已接管的监察员
by_target_domain: 被举报账户的域名
+ cancel: 取消
category: 类别
category_description_html: 在与被举报账户的通信时,将引用该账号和/或内容被举报的原因
comment:
none: 没有
comment_description_html: "%{name} 补充道:"
+ confirm: 确认
confirm_action: 确认对 @%{acct} 的管理操作
created_at: 举报时间
delete_and_resolve: 删除嘟文
@@ -778,6 +784,7 @@ zh-CN:
suspend: "%{name} 封禁了用户 %{target}"
appeal_approved: 已申诉
appeal_pending: 申诉待处理
+ appeal_rejected: 申诉已驳回
system_checks:
database_schema_check:
message_html: 有待处理的数据库迁移。请运行它们以确保应用程序正常运行。
@@ -812,6 +819,7 @@ zh-CN:
other: 过去一周内被 %{count} 个人分享过
title: 热门链接
usage_comparison: 今日被分享 %{today} 次,前一日为 %{yesterday} 次
+ not_allowed_to_trend: 不允许的趋势
only_allowed: 仅显示已允许的内容
pending_review: 待审核
preview_card_providers:
@@ -940,6 +948,7 @@ zh-CN:
applications:
created: 应用创建成功
destroyed: 应用删除成功
+ logout: 登出
regenerate_token: 重置访问令牌
token_regenerated: 访问令牌重置成功
warning: 一定小心,千万不要把它分享给任何人!
@@ -976,6 +985,8 @@ zh-CN:
resend_confirmation: 重新发送确认邮件
reset_password: 重置密码
rules:
+ accept: 接受
+ back: 返回
preamble: 这些由 %{domain} 监察员设置和执行。
title: 一些基本规则。
security: 账户安全
@@ -1123,7 +1134,7 @@ zh-CN:
featured_tags:
add_new: 添加新条目
errors:
- limit: 你所推荐的话题标签数已达上限
+ limit: 您所推荐的话题标签数已达上限
hint_html: "什么是精选话题标签? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。"
filters:
contexts:
@@ -1227,7 +1238,7 @@ zh-CN:
title: 邀请用户
lists:
errors:
- limit: 你所建立的列表数量已经达到上限
+ limit: 您已达到列表数量的上限
login_activities:
authentication_methods:
otp: 双因素认证应用
@@ -1541,7 +1552,7 @@ zh-CN:
'7889238': 3个月
min_age_label: 过期阈值
min_favs: 保留如下嘟文:喜欢数超过
- min_favs_hint: 喜欢数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。
+ min_favs_hint: 喜欢数超过该阈值的的嘟文都不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。
min_reblogs: 保留如下嘟文:转嘟数超过
min_reblogs_hint: 转嘟数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少转嘟,都将被删除。
stream_entries:
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 3400405d4..1a3238b74 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -89,6 +89,7 @@ zh-HK:
moderation:
active: 活躍
all: 全部
+ disabled: 已停用
pending: 處理中
silenced: 受限
suspended: 已停權
@@ -130,6 +131,7 @@ zh-HK:
search: 搜尋
search_same_email_domain: 其他有相同電郵網域的使用者
search_same_ip: 其他有相同 IP 位址的使用者
+ security: 安全性
security_measures:
only_password: 僅密碼
password_and_2fa: 密碼和兩步認證
@@ -419,6 +421,7 @@ zh-HK:
resolve: 解析網域
title: 新增電郵網域阻隔
no_email_domain_block_selected: 未選取任何電郵網域限制,因此並未變更
+ not_permitted: 無權限
resolved_dns_records_hint_html: 域名解析為以下 MX 網域,這些網域主要用來接收電子郵件。封鎖一個 MX 網域,即使域名看起來不同,也會阻止任何用相同 MX 網域的電郵地址進行註冊。注意不要封鎖主要的電子郵件供應商。
resolved_through_html: 透過 %{domain} 解析
title: 電郵網域阻隔
@@ -433,6 +436,7 @@ zh-HK:
private_comment_description_html: 為了幫助你追蹤匯入封鎖的源頭,匯入的封鎖會在建立時將會有以下的私密備註:%{comment}
private_comment_template: 於 %{date} 從 %{source} 匯入
title: 匯入封鎖的網域
+ invalid_domain_block: 由於以下錯誤,已略過一個或多個域名封鎖:%{error}
new:
title: 匯入封鎖的網域
no_file: 未選擇檔案
@@ -462,6 +466,7 @@ zh-HK:
content_policies:
comment: 內部備註
description_html: 你可以自行制訂內容政策,政策將用於此網域和其子網域的所有帳號。
+ limited_federation_mode_description_html: 你可選擇是否允許此網域加入跨站。
policies:
reject_media: 拒絕接收媒體
reject_reports: 拒絕檢舉
@@ -563,17 +568,23 @@ zh-HK:
mark_as_sensitive_description_html: 被檢舉的帖文中的媒體會被標記為敏感內容,並記錄一次警告,以便日後加快處理同一帳號的違規行為。
other_description_html: 查看更多控制帳號行為,以及自訂與被檢舉帳號溝通的選項。
resolve_description_html: 不會對被檢舉的帳號採取任何動作,也不會記錄警告,檢舉報告將會結案。
+ silence_description_html: 此帳號將會只有追蹤者或手動搜尋它的人才可以看見,大幅限制了它的曝光。你可隨時恢復它。關閉所有對此帳號的檢舉報告。
+ suspend_description_html: 此帳號及其所有內容將不可再被存取,並且最終會被刪除,無法再進行互動。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。
actions_description_html: 決定對此檢舉採取哪種措施。如果對被檢舉帳號採取懲罰措施,除非選取了垃圾訊息分類,否則將向他們發送一封電郵通知。
+ actions_description_remote_html: 決定對此檢舉採取哪種動作。這只會影響你的伺服器與此遠端帳號的通訊和處理其內容的方式。
add_to_report: 加入更多到檢舉
are_you_sure: 你確認嗎?
assign_to_self: 指派給自己
assigned: 指派版主
by_target_domain: 被舉報帳號的域名
+ cancel: 取消
category: 分類
category_description_html: 此帳號及/或內容被檢舉的原因,將會被引用在與被檢舉帳號的通訊中。
comment:
none: 沒有
comment_description_html: 為了提供更多資訊,%{name} 寫道:
+ confirm: 確定
+ confirm_action: 確認對 @%{acct} 執行管理操作
created_at: 日期
delete_and_resolve: 刪除帖文
forwarded: 已轉寄
@@ -590,6 +601,7 @@ zh-HK:
placeholder: 記錄已執行的動作,或其他相關的更新……
title: 筆記
notes_description_html: 查看並給其他管理員和日後的自己留下筆記
+ processed_msg: '已成功處理檢舉報告 #%{id}'
quick_actions_description_html: 採取快捷操作或向下捲動以查看檢舉內容:
remote_user_placeholder: 來自 %{instance} 的遠端使用者
reopen: 重開舉報個案
@@ -602,9 +614,28 @@ zh-HK:
status: 狀態
statuses: 被檢舉的內容
statuses_description_html: 違規內容將被引用在被檢舉帳號的通訊中
+ summary:
+ action_preambles:
+ delete_html: 你即將移除@%{acct} 的部份帖文。這會:
+ mark_as_sensitive_html: 你即將把 @%{acct} 的部份帖文標記為敏感內容。這會:
+ silence_html: 你即將限制@%{acct} 的帳號。這會:
+ suspend_html: 你即將把 @%{acct} 的帳號停權。這會:
+ actions:
+ delete_html: 移除違規帖文
+ mark_as_sensitive_html: 將違規帖文的媒體標記為敏感內容
+ silence_html: 僅讓 @%{acct} 的追蹤者和手動搜尋其個人檔案的人看到他的個人檔案和內容,從而大幅限制其曝光。
+ suspend_html: 把 @%{acct} 停權,使其個人檔案和內容無法被存取和互動。
+ close_report: '將檢舉報告 #%{id} 標記為已解決'
+ close_reports_html: 將針對 @%{acct} 的所有檢舉報告標記為已解決
+ delete_data_html: 從現在起 30 天後移除 @%{acct} 的個人檔案和內容,除非在此期間撤銷對他們的停權。
+ preview_preamble_html: "@%{acct} 將收到警告,內容如下:"
+ record_strike_html: 記錄對 @%{acct} 的警告,有助你加快處理此帳號日後的違規行為
+ send_email_html: 向 @%{acct} 發送警告郵件
+ warning_placeholder: 選填審核動作的補充理由。
target_origin: 被檢舉帳號來源
title: 舉報
unassign: 取消指派
+ unknown_action_msg: 未知的動作:%{action}
unresolved: 未處理
updated_at: 更新
view_profile: 查看個人檔案
@@ -697,6 +728,8 @@ zh-HK:
preamble: 呈現有趣的內容有助於吸引不認識 Mastodon 的使用者新手上路。控制各種探索功能在你的伺服器上的運作方式。
profile_directory: 個人檔案目錄
public_timelines: 公共時間軸
+ publish_discovered_servers: 公開已知的伺服器
+ publish_statistics: 公佈統計數據
title: 探索
trends: 熱門
domain_blocks:
@@ -751,6 +784,7 @@ zh-HK:
suspend: "%{name} 將 %{target} 的帳號停權"
appeal_approved: 已申訴
appeal_pending: 申訴待審中
+ appeal_rejected: 申訴被駁回
system_checks:
database_schema_check:
message_html: 有待處理的資料庫轉移 (database migration) 。請執行以確保應用程式行為合乎預期
@@ -785,6 +819,7 @@ zh-HK:
other: 上週有 %{count} 人分享
title: 熱門連結
usage_comparison: 今天被分享了 %{today} 次,相較於昨天 %{yesterday} 次
+ not_allowed_to_trend: 不允許登上趨勢
only_allowed: 僅允許
pending_review: 等待審核中
preview_card_providers:
@@ -913,6 +948,7 @@ zh-HK:
applications:
created: 已建立應用程式
destroyed: 已刪除應用程式
+ logout: 登出
regenerate_token: 重設 token
token_regenerated: 已重設 token
warning: 警告,不要把它分享給任何人!
@@ -920,6 +956,8 @@ zh-HK:
auth:
apply_for_account: 申請帳號
change_password: 密碼
+ confirmations:
+ wrong_email_hint: 如果該電郵地址不正確,你可以在帳號設定中修改。
delete_account: 刪除帳號
delete_account_html: 如果你想刪除你的帳號,請點擊這裡繼續。你需要確認你的操作。
description:
@@ -947,6 +985,8 @@ zh-HK:
resend_confirmation: 重發確認指示電郵
reset_password: 重設密碼
rules:
+ accept: 接受
+ back: 返回
preamble: 這些是由 %{domain} 管理員制訂和執行的。
title: 一些基本規則。
security: 登入資訊
@@ -1093,8 +1133,6 @@ zh-HK:
storage: 媒體容量大小
featured_tags:
add_new: 新增
- errors:
- limit: 你所推薦的標籤數量已經達到上限
hint_html: "甚麼是推薦主題標籤? 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!"
filters:
contexts:
@@ -1196,9 +1234,6 @@ zh-HK:
expires_at: 失效時間
uses: 已使用次數
title: 邀請用戶
- lists:
- errors:
- limit: 你所建立的列表數量已經達到上限
login_activities:
authentication_methods:
otp: 兩步認證軟體
@@ -1339,6 +1374,9 @@ zh-HK:
unrecognized_emoji: 不能識別這個emoji
relationships:
activity: 帳戶活動
+ confirm_follow_selected_followers: 你確定要追蹤選取的追蹤者嗎?
+ confirm_remove_selected_followers: 你確定要移除選取的追蹤者嗎?
+ confirm_remove_selected_follows: 你確定要移除選取的追蹤者嗎?
dormant: 潛在
follow_selected_followers: 關注所選的追隨者
followers: 追隨者
@@ -1509,7 +1547,6 @@ zh-HK:
'7889238': 3 個月
min_age_label: 按時間篩選
min_favs: 保留超過嘟文最愛門檻
- min_favs_hint: 如果您嘟文已收到超過最愛門檻則不會刪除。留白表示不論最愛數量皆刪除嘟文。
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。
stream_entries:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index c83dc2706..750f15f0b 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -11,7 +11,7 @@ zh-TW:
followers:
other: 跟隨者
following: 正在跟隨
- instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。
+ instance_actor_flash: 此帳號是用來代表此伺服器的虛擬執行者,而非個別使用者。它的用途為維繫聯邦宇宙,且不應被停權。
last_active: 上次活躍時間
link_verified_on: 此連結的所有權已在 %{date} 檢查過
nothing_here: 暫時沒有內容可供顯示!
@@ -32,7 +32,7 @@ zh-TW:
add_email_domain_block: 將電子郵件網域加入黑名單
approve: 批准
approved_msg: 成功審核了 %{username} 的新帳號申請
- are_you_sure: 您確定嗎?
+ are_you_sure: 您確定嗎?
avatar: 大頭貼
by_domain: 站點
change_email:
@@ -54,7 +54,7 @@ zh-TW:
delete: 刪除資料
deleted: 已刪除
demote: 降級
- destroyed_msg: 即將刪除 %{username} 的數據
+ destroyed_msg: 即將刪除 %{username} 的資料
disable: 停用
disable_sign_in_token_auth: 停用電子郵件 token 驗證
disable_two_factor_authentication: 停用兩階段認證
@@ -89,6 +89,7 @@ zh-TW:
moderation:
active: 活躍
all: 全部
+ disabled: 已停用
pending: 等待中
silenced: 受限的
suspended: 已停權
@@ -130,6 +131,7 @@ zh-TW:
search: 搜尋
search_same_email_domain: 其他有同個電子郵件網域的使用者
search_same_ip: 其他有同個 IP 的使用者
+ security: 安全性
security_measures:
only_password: 僅使用密碼
password_and_2fa: 密碼及兩階段驗證 (2FA)
@@ -146,8 +148,8 @@ zh-TW:
subscribe: 訂閱
suspend: 停權
suspended: 已停權
- suspension_irreversible: 已永久刪除這個帳號的數據。雖然這個帳號的數據已被永久刪除,但是您仍然可以取消暫停這個帳號。
- suspension_reversible_hint_html: 這個帳號已被暫停,所有數據將會在 %{date} 被刪除。在此之前,您可以完全回復您的帳號。如果您想即時刪除這個帳號的數據,您可以在下面進行操作。
+ suspension_irreversible: 已永久刪除此帳號的資料。您可以取消這個帳號的停權狀態,但無法還原已刪除的資料。
+ suspension_reversible_hint_html: 這個帳號已被停權,所有資料將會於 %{date} 被刪除。在此之前,此帳號可以被完全復原。如果您想即時刪除這個帳號的資料,可以在下面進行操作。
title: 帳號
unblock_email: 解除封鎖電子郵件地址
unblocked_email_msg: 成功解除封鎖 %{username} 的電子郵件地址
@@ -157,7 +159,7 @@ zh-TW:
undo_suspension: 取消停權
unsilenced_msg: 成功解除 %{username} 的帳號限制
unsubscribe: 取消訂閱
- unsuspended_msg: 成功取消暫停 %{username} 的帳號
+ unsuspended_msg: 已成功取消停權 %{username} 的帳號
username: 使用者名稱
view_domain: 查看站台概要
warn: 警告
@@ -242,11 +244,11 @@ zh-TW:
create_user_role_html: "%{name} 建立了 %{target} 角色"
demote_user_html: "%{name} 將使用者 %{target} 降級"
destroy_announcement_html: "%{name} 刪除了公告 %{target}"
- destroy_canonical_email_block_html: "%{name} 取消了 hash 為 %{target} 之 e-mail 的封鎖"
+ destroy_canonical_email_block_html: "%{name} 已解除封鎖 hash 為 %{target} 的電子郵件"
destroy_custom_emoji_html: "%{name} 刪除了表情符號 %{target}"
destroy_domain_allow_html: "%{name} 不允許與網域 %{target} 加入聯邦宇宙"
- destroy_domain_block_html: "%{name} 取消了對網域 %{target} 的封鎖"
- destroy_email_domain_block_html: "%{name} 取消了對電子郵件網域 %{target} 的封鎖"
+ destroy_domain_block_html: "%{name} 已解除封鎖網域 %{target}"
+ destroy_email_domain_block_html: "%{name} 已解除封鎖電子郵件網域 %{target}"
destroy_instance_html: "%{name} 清除了網域 %{target}"
destroy_ip_block_html: "%{name} 刪除了 IP %{target} 的規則"
destroy_status_html: "%{name} 刪除了 %{target} 的嘟文"
@@ -270,12 +272,12 @@ zh-TW:
resolve_report_html: "%{name} 處理了 %{target} 的檢舉"
sensitive_account_html: "%{name} 將 %{target} 的媒體檔案標記為敏感內容"
silence_account_html: "%{name} 靜音了使用者 %{target}"
- suspend_account_html: "%{name} 停權了使用者 %{target}"
+ suspend_account_html: "%{name} 已停權 %{target} 的帳號"
unassigned_report_html: "%{name} 取消指派 %{target} 的檢舉"
- unblock_email_account_html: "%{name} 解除封鎖了 %{target} 的電子郵件地址"
+ unblock_email_account_html: "%{name} 已解除封鎖 %{target} 的電子郵件地址"
unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案的敏感狀態取消"
unsilence_account_html: "%{name} 取消了使用者 %{target} 的靜音狀態"
- unsuspend_account_html: "%{name} 取消了使用者 %{target} 的停權狀態"
+ unsuspend_account_html: "%{name} 已取消停權 %{target} 的帳號"
update_announcement_html: "%{name} 更新了公告 %{target}"
update_custom_emoji_html: "%{name} 更新了自訂表情符號 %{target}"
update_domain_block_html: "%{name} 更新了 %{target} 之網域封鎖"
@@ -378,7 +380,7 @@ zh-TW:
domain: 站點
edit: 更改封鎖的站台
existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。
- existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先把他取消封鎖。
+ existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先 解除封鎖。
export: 匯出
import: 匯入
new:
@@ -402,7 +404,7 @@ zh-TW:
reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關
reject_reports: 拒絕檢舉
reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關
- undo: 復原欲封鎖域名
+ undo: 撤銷網域封鎖
view: 顯示阻擋的網域
email_domain_blocks:
add_new: 加入新項目
@@ -419,6 +421,7 @@ zh-TW:
resolve: 解析網域
title: 新增電子郵件黑名單項目
no_email_domain_block_selected: 因未選取電子郵件網域黑名單,所以什麼事都沒發生
+ not_permitted: 無權限
resolved_dns_records_hint_html: 網域名稱解析為以下 MX 網域,這些網域最終負責接收電子郵件。封鎖 MX 網域將會封鎖任何來自使用相同 MX 網域的電子郵件註冊,即便可見的域名是不同的也一樣。請注意,不要封鎖主要的電子郵件服務提供商。
resolved_through_html: 透過 %{domain} 解析
title: 電子郵件黑名單
@@ -465,6 +468,7 @@ zh-TW:
content_policies:
comment: 內部備註
description_html: 您可以定義對所有此網域帳號及其子網域所實施之內容政策。
+ limited_federation_mode_description_html: 您可以選擇是否允許此網域加入聯邦宇宙。
policies:
reject_media: 拒絕多媒體
reject_reports: 拒絕檢舉
@@ -553,8 +557,8 @@ zh-TW:
status: 狀態
title: 中繼
report_notes:
- created_msg: 檢舉備註建立成功!
- destroyed_msg: 檢舉備註刪除成功!
+ created_msg: 已成功新增檢舉備註!
+ destroyed_msg: 已成功刪除檢舉備註!
reports:
account:
notes:
@@ -571,15 +575,17 @@ zh-TW:
actions_description_html: 決定應對此報告採取何種行動。若您對檢舉之帳號採取懲罰措施,則將對他們發送 e-mail 通知,如非選擇了 垃圾郵件 類別。
actions_description_remote_html: 決定將對此檢舉報告採取何種動作。這將僅作用於您的伺服器與此遠端帳號及其內容之通訊行為。
add_to_report: 加入更多至報告
- are_you_sure: 您確定嗎?
+ are_you_sure: 您確定嗎?
assign_to_self: 指派給自己
assigned: 指派站務
by_target_domain: 檢舉帳號之網域
+ cancel: 取消
category: 分類
category_description_html: 此帳號及/或被檢舉內容之原因會被引用在檢舉帳號通知中
comment:
none: 無
comment_description_html: 提供更多資訊,%{name} 寫道:
+ confirm: 確認
confirm_action: 確認對 @%{acct} 執行站務動作
created_at: 日期
delete_and_resolve: 刪除嘟文
@@ -615,12 +621,12 @@ zh-TW:
delete_html: 您將要 移除 某些 @%{acct} 之嘟文。此將會:
mark_as_sensitive_html: 您將要 標記 某些 @%{acct} 之嘟文為 敏感內容 。此將會:
silence_html: 您將要 限制@%{acct} 之帳號。此將會:
- suspend_html: 您將要 暫停@%{acct} 之帳號。此將會:
+ suspend_html: 您將要 停權@%{acct} 之帳號。此將會:
actions:
delete_html: 移除違反規則之嘟文
mark_as_sensitive_html: 將違反規則之嘟文多媒體標記為敏感內容
silence_html: 藉由標記他們的個人檔案與內容為僅可見於已跟隨帳號或手動查詢此個人檔案,此將嚴格地限制 @%{acct} 之觸及率
- suspend_html: 暫停 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動
+ suspend_html: 停權 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動
close_report: '將檢舉報告 #%{id} 標記為已處理'
close_reports_html: 將 所有 對於 @%{acct} 之檢舉報告標記為已處理
delete_data_html: 於即日起 30 天後刪除 @%{acct}之個人檔案與內容,除非他們於期限前被解除暫停
@@ -780,6 +786,7 @@ zh-TW:
suspend: "%{name} 將 %{target} 的帳號停權"
appeal_approved: 已申訴
appeal_pending: 申訴待審中
+ appeal_rejected: 申訴被駁回
system_checks:
database_schema_check:
message_html: 發現尚待處理的資料庫遷移 (database migration)。請執行它們以確保應用程式如期運行。
@@ -790,7 +797,7 @@ zh-TW:
version_comparison: Elasticsearch %{running_version} 版正在執行,需要 %{required_version} 版。
rules_check:
action: 管理服务器规则
- message_html: 您没有定義任何伺服器規則。
+ message_html: 您尚未定義任何伺服器規則。
sidekiq_process_check:
message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態
tags:
@@ -814,6 +821,7 @@ zh-TW:
other: 上週被 %{count} 名使用者分享
title: 熱門連結
usage_comparison: 於今日被 %{today} 人分享,相較於昨日 %{yesterday} 人
+ not_allowed_to_trend: 不允許登上熱門
only_allowed: 僅允許
pending_review: 等待審核中
preview_card_providers:
@@ -861,7 +869,7 @@ zh-TW:
add_new: 新增
delete: 刪除
edit_preset: 編輯預設警告
- empty: 您未曾定義任何預設警告
+ empty: 您尚未定義任何預設警告。
title: 管理預設警告
webhooks:
add_new: 新增端點
@@ -942,6 +950,7 @@ zh-TW:
applications:
created: 已建立應用程式
destroyed: 已刪除應用程式
+ logout: 登出
regenerate_token: 重新產生存取 token
token_regenerated: 已重新產生存取 token
warning: 警告,不要把它分享給任何人!
@@ -978,6 +987,8 @@ zh-TW:
resend_confirmation: 重新寄送確認指引
reset_password: 重設密碼
rules:
+ accept: 接受
+ back: 上一頁
preamble: 這些被 %{domain} 的管管們制定以及實施。
title: 一些基本守則。
security: 登入資訊
@@ -987,10 +998,10 @@ zh-TW:
email_settings_hint_html: 請確認 e-mail 是否傳送至 %{email} 。如果電子郵件地址不正確的話,可以從帳號設定修改。
title: 設定
sign_in:
- preamble_html: 請登入您於 %{domain} 之帳號密碼。若您的帳號託管於其他伺服器,您將無法於此登入。
+ preamble_html: 請使用您在 %{domain} 的帳號密碼登入。若您的帳號託管於其他伺服器,您將無法在此登入。
title: 登入 %{domain}
sign_up:
- preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。
+ preamble: 在這個 Mastodon 伺服器上有個帳號的話,您將能跟隨聯邦宇宙網路中的任何人,無論他們的帳號託管於哪個伺服器。
title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
@@ -1092,7 +1103,7 @@ zh-TW:
errors:
'400': 您所送出的請求無效或格式不正確。
'403': 您沒有檢視這個頁面的權限。
- '404': 您所尋找的網頁不存在。
+ '404': 您要找的頁面不存在。
'406': 此頁面無法以請求的格式顯示。
'410': 您所尋找的網頁此處已不存在。
'422':
@@ -1125,7 +1136,7 @@ zh-TW:
featured_tags:
add_new: 新增
errors:
- limit: 您所推薦的標籤數量已經達到上限
+ limit: 您所推薦的主題標籤數量已達上限
hint_html: "推薦主題標籤是什麼? 這些主題標籤將顯示於您的公開個人檔案頁,訪客可以藉此閱覽您標示了這些標籤的嘟文,拿來展示創意作品或者長期更新的專案很好用唷!"
filters:
contexts:
@@ -1229,7 +1240,7 @@ zh-TW:
title: 邀請使用者
lists:
errors:
- limit: 您所建立的列表數量已經達到上限
+ limit: 您所建立的列表數量已達上限
login_activities:
authentication_methods:
otp: 兩階段驗證應用程式
@@ -1372,7 +1383,7 @@ zh-TW:
activity: 帳號動態
confirm_follow_selected_followers: 您確定要跟隨這些選取的跟隨者嗎?
confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎?
- confirm_remove_selected_follows: 您確定要移除這些選取的正在跟隨您的帳號嗎?
+ confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎?
dormant: 潛水中
follow_selected_followers: 跟隨所選取的跟隨者
followers: 跟隨者
@@ -1487,8 +1498,8 @@ zh-TW:
open_in_web: 以網頁開啟
over_character_limit: 超過了 %{max} 字的限制
pin_errors:
- direct: 無法釘選只有僅提及使用者可見之嘟文
- limit: 您所置頂的嘟文數量已經達到上限
+ direct: 不能釘選只對被提及的使用者顯示的嘟文
+ limit: 釘選嘟文的數量已達上限
ownership: 不能釘選他人的嘟文
reblog: 不能釘選轉嘟
poll:
@@ -1506,7 +1517,7 @@ zh-TW:
visibilities:
direct: 私訊
private: 僅限跟隨者
- private_long: 只有跟隨您的人能看到
+ private_long: 只有跟隨者能看到
public: 公開
public_long: 所有人都能看到
unlisted: 不在公開時間軸顯示
@@ -1524,8 +1535,8 @@ zh-TW:
keep_direct_hint: 不會刪除任何您的私訊
keep_media: 保留包含媒體內容的嘟文
keep_media_hint: 不會刪除您包含媒體內容之嘟文
- keep_pinned: 保留釘選嘟文
- keep_pinned_hint: 不會刪除您的釘選嘟文
+ keep_pinned: 保留釘選的嘟文
+ keep_pinned_hint: 不會刪除您釘選的嘟文
keep_polls: 保留投票
keep_polls_hint: 不會刪除您的投票
keep_self_bookmark: 保留您已標記為書籤之嘟文
@@ -1547,7 +1558,7 @@ zh-TW:
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除該嘟文。
stream_entries:
- pinned: 釘選嘟文
+ pinned: 釘選的嘟文
reblogged: 轉嘟
sensitive_content: 敏感內容
strikes:
@@ -1610,7 +1621,7 @@ zh-TW:
delete_statuses: 您的某些嘟文被發現違反了一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。
disable: 您無法繼續使用您的帳號,但您的個人頁面及其他資料內容保持不變。您可以要求一份您的資料備份,帳號異動設定,或是刪除帳號。
mark_statuses_as_sensitive: 您的部份嘟文已被 %{instance} 的管理員標記為敏感內容。這代表了人們必須在顯示預覽前點擊嘟文中的媒體。您可以在將來嘟文時自己將媒體標記為敏感內容。
- sensitive: 由此刻起,您所有上傳的媒體檔案將被標記為敏感內容,並且隱藏於點擊警告之後。
+ sensitive: 您之後上傳的所有媒體檔案會被標為敏感內容,並且被隱藏起來,須點擊警告按鈕才會顯示。
silence: 您仍然可以使用您的帳號,但僅有已跟隨您的人才能看到您在此伺服器的嘟文,您也可能會從各式探索功能中被排除。但其他人仍可手動跟隨您。
suspend: 您將不能使用您的帳號,您的個人檔案頁面及其他資料將不再能被存取。您仍可於約 30 日內資料被完全刪除前要求下載您的資料,但我們仍會保留一部份基本資料,以防止有人規避停權處罰。
reason: 原因:
@@ -1630,7 +1641,7 @@ zh-TW:
none: 警告
sensitive: 帳號已標記為敏感內容
silence: 帳號已被限制
- suspend: 帳號己被停用
+ suspend: 帳號己被停權
welcome:
edit_profile_action: 設定個人檔案
edit_profile_step: 您可以設定您的個人檔案,包括上傳大頭貼、變更顯示名稱等等。您也可以選擇在新的跟隨者跟隨前,先對他們進行審核。
@@ -1638,7 +1649,7 @@ zh-TW:
final_action: 開始嘟嘟
final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。'
full_handle: 您的完整帳號名稱
- full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或著跟隨您。
+ full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。
subject: 歡迎來到 Mastodon
title: "%{name} 誠摯歡迎您的加入!"
users:
From 6bd700379925746ea8408bb4d5b0c99dba1506e6 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 23 Feb 2023 05:28:56 -0500
Subject: [PATCH 50/55] Fix mispelled spec filenames (#23834)
---
.rubocop_todo.yml | 16 ++++++++--------
..._spec.rb => change_emails_controller_spec.rb} | 0
...es_controller.rb => roles_controller_spec.rb} | 0
...helper_spec.rb => action_logs_helper_spec.rb} | 0
....rb => remove_from_followers_service_spec.rb} | 0
5 files changed, 8 insertions(+), 8 deletions(-)
rename spec/controllers/admin/{change_email_controller_spec.rb => change_emails_controller_spec.rb} (100%)
rename spec/controllers/admin/users/{roles_controller.rb => roles_controller_spec.rb} (100%)
rename spec/helpers/admin/{action_log_helper_spec.rb => action_logs_helper_spec.rb} (100%)
rename spec/services/{remove_from_follwers_service_spec.rb => remove_from_followers_service_spec.rb} (100%)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0bdf72084..8d546ff42 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -73,7 +73,7 @@ Lint/EmptyBlock:
- 'spec/fabricators/setting_fabricator.rb'
- 'spec/fabricators/system_key_fabricator.rb'
- 'spec/fabricators/web_setting_fabricator.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/models/account_alias_spec.rb'
- 'spec/models/account_deletion_request_spec.rb'
@@ -579,7 +579,7 @@ RSpec/DescribedClass:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/reblog_service_spec.rb'
- 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
+ - 'spec/services/remove_from_followers_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
- 'spec/services/unblock_service_spec.rb'
@@ -592,7 +592,7 @@ RSpec/DescribedClass:
# This cop supports unsafe autocorrection (--autocorrect-all).
RSpec/EmptyExampleGroup:
Exclude:
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/models/account_alias_spec.rb'
- 'spec/models/account_deletion_request_spec.rb'
- 'spec/models/account_moderation_note_spec.rb'
@@ -864,7 +864,7 @@ RSpec/MissingExampleGroupArgument:
- 'spec/controllers/accounts_controller_spec.rb'
- 'spec/controllers/activitypub/collections_controller_spec.rb'
- 'spec/controllers/admin/statuses_controller_spec.rb'
- - 'spec/controllers/admin/users/roles_controller.rb'
+ - 'spec/controllers/admin/users/roles_controller_spec.rb'
- 'spec/controllers/api/v1/accounts_controller_spec.rb'
- 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
@@ -1060,7 +1060,7 @@ RSpec/NamedSubject:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/reblog_service_spec.rb'
- 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
+ - 'spec/services/remove_from_followers_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/report_service_spec.rb'
- 'spec/services/resolve_account_service_spec.rb'
@@ -1149,7 +1149,7 @@ RSpec/Rails/InferredSpecType:
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/controllers/admin/action_logs_controller_spec.rb'
- 'spec/controllers/admin/base_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
+ - 'spec/controllers/admin/change_emails_controller_spec.rb'
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/dashboard_controller_spec.rb'
- 'spec/controllers/admin/disputes/appeals_controller_spec.rb'
@@ -1235,7 +1235,7 @@ RSpec/Rails/InferredSpecType:
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
- 'spec/helpers/accounts_helper_spec.rb'
- 'spec/helpers/admin/account_moderation_notes_helper_spec.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/helpers/flashes_helper_spec.rb'
- 'spec/helpers/formatting_helper_spec.rb'
- 'spec/helpers/home_helper_spec.rb'
@@ -1398,7 +1398,7 @@ RSpec/SubjectStub:
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
RSpec/VerifiedDoubles:
Exclude:
- - 'spec/controllers/admin/change_email_controller_spec.rb'
+ - 'spec/controllers/admin/change_emails_controller_spec.rb'
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/disputes/appeals_controller_spec.rb'
- 'spec/controllers/admin/domain_allows_controller_spec.rb'
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_emails_controller_spec.rb
similarity index 100%
rename from spec/controllers/admin/change_email_controller_spec.rb
rename to spec/controllers/admin/change_emails_controller_spec.rb
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller_spec.rb
similarity index 100%
rename from spec/controllers/admin/users/roles_controller.rb
rename to spec/controllers/admin/users/roles_controller_spec.rb
diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_logs_helper_spec.rb
similarity index 100%
rename from spec/helpers/admin/action_log_helper_spec.rb
rename to spec/helpers/admin/action_logs_helper_spec.rb
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_followers_service_spec.rb
similarity index 100%
rename from spec/services/remove_from_follwers_service_spec.rb
rename to spec/services/remove_from_followers_service_spec.rb
From f4f91bc295fd423bdc81ca17f0f9491ed6cd897e Mon Sep 17 00:00:00 2001
From: Tim Lucas
Date: Thu, 23 Feb 2023 22:58:42 +1100
Subject: [PATCH 51/55] Increase contrast of upload progress background
(#23836)
---
app/javascript/styles/mastodon-light/diff.scss | 4 ++++
app/javascript/styles/mastodon/components.scss | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 01725cf96..58f161f81 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -258,6 +258,10 @@ html {
border-color: $ui-base-color;
}
+.upload-progress__backdrop {
+ background: $ui-base-color;
+}
+
// Change the background colors of statuses
.focusable:focus {
background: $ui-base-color;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 49a5bda34..583acfac0 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4543,7 +4543,7 @@ a.status-card.compact:hover {
width: 100%;
height: 6px;
border-radius: 6px;
- background: $ui-base-lighter-color;
+ background: darken($simple-background-color, 8%);
position: relative;
margin-top: 5px;
}
From 20b80c62ff9b8e31a9a35a3d827fcd4c9b68248b Mon Sep 17 00:00:00 2001
From: Claire
Date: Thu, 23 Feb 2023 16:52:40 +0100
Subject: [PATCH 52/55] Change auto-deletion throttling constants to better
scale with server size (#23320)
---
.../accounts_statuses_cleanup_scheduler.rb | 24 +++++++------------
...ccounts_statuses_cleanup_scheduler_spec.rb | 10 --------
2 files changed, 8 insertions(+), 26 deletions(-)
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index 09e0b37f0..f237f1dc9 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -7,7 +7,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
# This limit is mostly to be nice to the fediverse at large and not
# generate too much traffic.
# This also helps limiting the running time of the scheduler itself.
- MAX_BUDGET = 50
+ MAX_BUDGET = 150
# This is an attempt to spread the load across instances, as various
# accounts are likely to have various followers.
@@ -15,28 +15,22 @@ class Scheduler::AccountsStatusesCleanupScheduler
# This is an attempt to limit the workload generated by status removal
# jobs to something the particular instance can handle.
- PER_THREAD_BUDGET = 5
+ PER_THREAD_BUDGET = 6
# Those avoid loading an instance that is already under load
- MAX_DEFAULT_SIZE = 2
+ MAX_DEFAULT_SIZE = 200
MAX_DEFAULT_LATENCY = 5
- MAX_PUSH_SIZE = 5
+ MAX_PUSH_SIZE = 500
MAX_PUSH_LATENCY = 10
+
# 'pull' queue has lower priority jobs, and it's unlikely that pushing
# deletes would cause much issues with this queue if it didn't cause issues
# with default and push. Yet, do not enqueue deletes if the instance is
# lagging behind too much.
- MAX_PULL_SIZE = 500
- MAX_PULL_LATENCY = 300
+ MAX_PULL_SIZE = 10_000
+ MAX_PULL_LATENCY = 5.minutes.to_i
- # This is less of an issue in general, but deleting old statuses is likely
- # to cause delivery errors, and thus increase the number of jobs to be retried.
- # This doesn't directly translate to load, but connection errors and a high
- # number of dead instances may lead to this spiraling out of control if
- # unchecked.
- MAX_RETRY_SIZE = 50_000
-
- sidekiq_options retry: 0, lock: :until_executed
+ sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i
def perform
return if under_load?
@@ -73,8 +67,6 @@ class Scheduler::AccountsStatusesCleanupScheduler
end
def under_load?
- return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE
-
queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY)
end
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index b977bc1fb..9ed8da1ba 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -25,7 +25,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
},
]
end
- let(:retry_size) { 0 }
before do
queue_stub = double
@@ -35,7 +34,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
allow(Sidekiq::ProcessSet).to receive(:new).and_return(process_set_stub)
sidekiq_stats_stub = double
- allow(sidekiq_stats_stub).to receive(:retry_size).and_return(retry_size)
allow(Sidekiq::Stats).to receive(:new).and_return(sidekiq_stats_stub)
# Create a bunch of old statuses
@@ -72,14 +70,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
expect(subject.under_load?).to be true
end
end
-
- context 'when there is a huge amount of jobs to retry' do
- let(:retry_size) { 1_000_000 }
-
- it 'returns true' do
- expect(subject.under_load?).to be true
- end
- end
end
describe '#get_budget' do
From 19614ba2477f3d12468f5ec251ce1cc5f8c6210c Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 23 Feb 2023 17:17:48 -0500
Subject: [PATCH 53/55] Rename ActivityPub Serializer Specs (#23844)
---
.rubocop_todo.yml | 20 +++++++++----------
.../{note_spec.rb => note_serializer_spec.rb} | 0
...spec.rb => update_poll_serializer_spec.rb} | 0
3 files changed, 10 insertions(+), 10 deletions(-)
rename spec/serializers/activitypub/{note_spec.rb => note_serializer_spec.rb} (100%)
rename spec/serializers/activitypub/{update_poll_spec.rb => update_poll_serializer_spec.rb} (100%)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 8d546ff42..6b2369fd4 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -557,8 +557,8 @@ RSpec/DescribedClass:
- 'spec/presenters/account_relationships_presenter_spec.rb'
- 'spec/presenters/instance_presenter_spec.rb'
- 'spec/presenters/status_relationships_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/serializers/rest/account_serializer_spec.rb'
- 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_actor_service_spec.rb'
@@ -698,8 +698,8 @@ RSpec/FilePath:
- 'spec/lib/activitypub/tag_manager_spec.rb'
- 'spec/lib/ostatus/tag_manager_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
@@ -733,8 +733,8 @@ RSpec/HookArgument:
- 'spec/helpers/instance_helper_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/rails_helper.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/import_service_spec.rb'
- 'spec/spec_helper.rb'
@@ -755,8 +755,8 @@ RSpec/InstanceVariable:
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
- 'spec/models/public_feed_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
@@ -1022,8 +1022,8 @@ RSpec/NamedSubject:
- 'spec/policies/tag_policy_spec.rb'
- 'spec/policies/user_policy_spec.rb'
- 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/serializers/rest/account_serializer_spec.rb'
- 'spec/services/account_search_service_spec.rb'
- 'spec/services/account_statuses_cleanup_service_spec.rb'
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_serializer_spec.rb
similarity index 100%
rename from spec/serializers/activitypub/note_spec.rb
rename to spec/serializers/activitypub/note_serializer_spec.rb
diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_serializer_spec.rb
similarity index 100%
rename from spec/serializers/activitypub/update_poll_spec.rb
rename to spec/serializers/activitypub/update_poll_serializer_spec.rb
From 8000a8f2309d428c2ce72fe5ffba940754d55339 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Fri, 24 Feb 2023 20:04:38 +0100
Subject: [PATCH 54/55] Add `lang` attribute to preview card (#23869)
---
app/javascript/mastodon/features/status/components/card.jsx | 3 ++-
app/serializers/rest/preview_card_serializer.rb | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx
index 34fac1010..b588c83e4 100644
--- a/app/javascript/mastodon/features/status/components/card.jsx
+++ b/app/javascript/mastodon/features/status/components/card.jsx
@@ -196,11 +196,12 @@ export default class Card extends React.PureComponent {
const interactive = card.get('type') !== 'link';
const className = classnames('status-card', { horizontal, compact, interactive });
const title = interactive ? {card.get('title')} : {card.get('title')};
+ const language = card.get('language') || '';
const ratio = card.get('width') / card.get('height');
const height = (compact && !embedded) ? (width / (16 / 9)) : (width / ratio);
const description = (
-