diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index c6dcc4d46a37d6..3aa0bbf7da4ec3 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -11,5 +11,8 @@ RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
+# Disable download prompt for Corepack
+ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
+
# Move welcome message to where VS Code expects it
COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
diff --git a/.devcontainer/codespaces/devcontainer.json b/.devcontainer/codespaces/devcontainer.json
index 8acffec8259867..d2358657f6d664 100644
--- a/.devcontainer/codespaces/devcontainer.json
+++ b/.devcontainer/codespaces/devcontainer.json
@@ -39,7 +39,7 @@
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
- "postCreateCommand": "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 bin/setup",
+ "postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand",
"customizations": {
diff --git a/.ruby-version b/.ruby-version
index a0891f563f38b0..fa7adc7ac72a28 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-3.3.4
+3.3.5
diff --git a/Gemfile.lock b/Gemfile.lock
index 461a2d43a23550..a533b662411414 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -100,17 +100,17 @@ GEM
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
- aws-partitions (1.969.0)
- aws-sdk-core (3.202.1)
+ aws-partitions (1.970.0)
+ aws-sdk-core (3.203.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.88.0)
- aws-sdk-core (~> 3, >= 3.201.0)
+ aws-sdk-kms (1.89.0)
+ aws-sdk-core (~> 3, >= 3.203.0)
aws-sigv4 (~> 1.5)
- aws-sdk-s3 (1.159.0)
- aws-sdk-core (~> 3, >= 3.201.0)
+ aws-sdk-s3 (1.160.0)
+ aws-sdk-core (~> 3, >= 3.203.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.1)
@@ -790,7 +790,7 @@ GEM
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic_range (3.0.0)
- shoulda-matchers (6.3.1)
+ shoulda-matchers (6.4.0)
activesupport (>= 5.2.0)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
@@ -837,7 +837,7 @@ GEM
unicode-display_width (>= 1.1.1, < 3)
terrapin (1.0.1)
climate_control
- test-prof (1.4.1)
+ test-prof (1.4.2)
thor (1.3.2)
tilt (2.4.0)
timeout (0.4.1)
diff --git a/app/controllers/api/v2_alpha/notifications_controller.rb b/app/controllers/api/v2_alpha/notifications_controller.rb
index bd6979955aa38c..e8aa0b9e498777 100644
--- a/app/controllers/api/v2_alpha/notifications_controller.rb
+++ b/app/controllers/api/v2_alpha/notifications_controller.rb
@@ -77,6 +77,8 @@ def load_notifications
end
def load_grouped_notifications
+ return [] if @notifications.empty?
+
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_grouped_notifications') do
NotificationGroup.from_notifications(@notifications, pagination_range: (@notifications.last.id)..(@notifications.first.id), grouped_types: params[:grouped_types])
end
diff --git a/app/javascript/flavours/glitch/actions/notification_groups.ts b/app/javascript/flavours/glitch/actions/notification_groups.ts
index ba93ab776b65b5..b0a54ad5b45a69 100644
--- a/app/javascript/flavours/glitch/actions/notification_groups.ts
+++ b/app/javascript/flavours/glitch/actions/notification_groups.ts
@@ -18,7 +18,7 @@ import {
selectSettingsNotificationsQuickFilterActive,
selectSettingsNotificationsShows,
} from 'flavours/glitch/selectors/settings';
-import type { AppDispatch } from 'flavours/glitch/store';
+import type { AppDispatch, RootState } from 'flavours/glitch/store';
import {
createAppAsyncThunk,
createDataLoadingThunk,
@@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
return allNotificationTypes.filter((item) => item !== filter);
}
+function getExcludedTypes(state: RootState) {
+ const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
+
+ return activeFilter === 'all'
+ ? selectSettingsNotificationsExcludedTypes(state)
+ : excludeAllTypesExcept(activeFilter);
+}
+
function dispatchAssociatedRecords(
dispatch: AppDispatch,
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
@@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
export const fetchNotifications = createDataLoadingThunk(
'notificationGroups/fetch',
- async (_params, { getState }) => {
- const activeFilter =
- selectSettingsNotificationsQuickFilterActive(getState());
-
- return apiFetchNotifications({
- exclude_types:
- activeFilter === 'all'
- ? selectSettingsNotificationsExcludedTypes(getState())
- : excludeAllTypesExcept(activeFilter),
- });
- },
+ async (_params, { getState }) =>
+ apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
export const fetchNotificationsGap = createDataLoadingThunk(
'notificationGroups/fetchGap',
- async (params: { gap: NotificationGap }) =>
- apiFetchNotifications({ max_id: params.gap.maxId }),
-
+ async (params: { gap: NotificationGap }, { getState }) =>
+ apiFetchNotifications({
+ max_id: params.gap.maxId,
+ exclude_types: getExcludedTypes(getState()),
+ }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
async (_params, { getState }) => {
return apiFetchNotifications({
max_id: undefined,
+ exclude_types: getExcludedTypes(getState()),
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
since_id: usePendingItems
? getState().notificationGroups.groups.find(
@@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
- // dispatch(expandNotifications({ forceLoad: true }));
void dispatch(fetchNotifications());
dispatch(saveSettings());
},
diff --git a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_admin_report.tsx b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_admin_report.tsx
index fc2d3149b3006f..3ab87291637286 100644
--- a/app/javascript/flavours/glitch/features/notifications_v2/components/notification_admin_report.tsx
+++ b/app/javascript/flavours/glitch/features/notifications_v2/components/notification_admin_report.tsx
@@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
if (!account || !targetAccount) return null;
+ const domain = account.acct.split('@')[1];
+
const values = {
- name: (
-
- ),
- target: (
-
- ),
+ name: {domain ?? `@${account.acct}`},
+ target: @{targetAccount.acct},
category: intl.formatMessage(messages[report.category]),
count: report.status_ids.length,
};
diff --git a/app/javascript/mastodon/actions/notification_groups.ts b/app/javascript/mastodon/actions/notification_groups.ts
index 51f83f1d241a4a..2ee46500ab8035 100644
--- a/app/javascript/mastodon/actions/notification_groups.ts
+++ b/app/javascript/mastodon/actions/notification_groups.ts
@@ -18,7 +18,7 @@ import {
selectSettingsNotificationsQuickFilterActive,
selectSettingsNotificationsShows,
} from 'mastodon/selectors/settings';
-import type { AppDispatch } from 'mastodon/store';
+import type { AppDispatch, RootState } from 'mastodon/store';
import {
createAppAsyncThunk,
createDataLoadingThunk,
@@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
return allNotificationTypes.filter((item) => item !== filter);
}
+function getExcludedTypes(state: RootState) {
+ const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
+
+ return activeFilter === 'all'
+ ? selectSettingsNotificationsExcludedTypes(state)
+ : excludeAllTypesExcept(activeFilter);
+}
+
function dispatchAssociatedRecords(
dispatch: AppDispatch,
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
@@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
export const fetchNotifications = createDataLoadingThunk(
'notificationGroups/fetch',
- async (_params, { getState }) => {
- const activeFilter =
- selectSettingsNotificationsQuickFilterActive(getState());
-
- return apiFetchNotifications({
- exclude_types:
- activeFilter === 'all'
- ? selectSettingsNotificationsExcludedTypes(getState())
- : excludeAllTypesExcept(activeFilter),
- });
- },
+ async (_params, { getState }) =>
+ apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
export const fetchNotificationsGap = createDataLoadingThunk(
'notificationGroups/fetchGap',
- async (params: { gap: NotificationGap }) =>
- apiFetchNotifications({ max_id: params.gap.maxId }),
-
+ async (params: { gap: NotificationGap }, { getState }) =>
+ apiFetchNotifications({
+ max_id: params.gap.maxId,
+ exclude_types: getExcludedTypes(getState()),
+ }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
async (_params, { getState }) => {
return apiFetchNotifications({
max_id: undefined,
+ exclude_types: getExcludedTypes(getState()),
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
since_id: usePendingItems
? getState().notificationGroups.groups.find(
@@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
- // dispatch(expandNotifications({ forceLoad: true }));
void dispatch(fetchNotifications());
dispatch(saveSettings());
},
diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx
index fda5798ae98b49..e41a6b2736c3c4 100644
--- a/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx
+++ b/app/javascript/mastodon/features/notifications_v2/components/notification_admin_report.tsx
@@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
if (!account || !targetAccount) return null;
+ const domain = account.acct.split('@')[1];
+
const values = {
- name: (
-
- ),
- target: (
-
- ),
+ name: {domain ?? `@${account.acct}`},
+ target: @{targetAccount.acct},
category: intl.formatMessage(messages[report.category]),
count: report.status_ids.length,
};
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index e925246bf75954..aeff65485e0494 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -524,7 +524,9 @@
"notification.moderation_warning.action_silence": "Sua conta foi limitada.",
"notification.moderation_warning.action_suspend": "Sua conta foi suspensa.",
"notification.own_poll": "Sua enquete terminou",
+ "notification.poll": "Uma enquete que você votou terminou",
"notification.reblog": "{name} deu boost no teu toot",
+ "notification.reblog.name_and_others_with_link": "{name} e {count, plural, one {# outra} other {# outras}} impulsionaram a publicação",
"notification.relationships_severance_event": "Conexões perdidas com {name}",
"notification.relationships_severance_event.account_suspension": "Um administrador de {from} suspendeu {target}, o que significa que você não pode mais receber atualizações deles ou interagir com eles.",
"notification.relationships_severance_event.domain_block": "An admin from {from} has blocked {target}, including {followersCount} of your followers and {followingCount, plural, one {# account} other {# accounts}} you follow.",
@@ -533,16 +535,32 @@
"notification.status": "{name} acabou de tootar",
"notification.update": "{name} editou uma publicação",
"notification_requests.accept": "Aceitar",
+ "notification_requests.accept_multiple": "{count, plural, one {Aceite # pedido…} other {Aceite # pedidos…}}",
+ "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceite # pedido} other {Aceite # pedidos}}",
+ "notification_requests.confirm_accept_multiple.message": "Você está prestes a aceitar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Tem certeza de que deseja continuar?",
+ "notification_requests.confirm_accept_multiple.title": "Aceitar solicitações de notificação?",
+ "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dispensar pedido} other {Dispensar pedidos}}",
+ "notification_requests.confirm_dismiss_multiple.message": "Você está prestes a descartar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Você não será capaz de acessar facilmente{count, plural, one {} other {}} novamente. Tem certeza de que deseja continuar?",
+ "notification_requests.confirm_dismiss_multiple.title": "Descartar solicitações de notificação?",
"notification_requests.dismiss": "Rejeitar",
+ "notification_requests.dismiss_multiple": "{count, plural, one {Dispensar # pedido…} other {Dispensar # pedidos…}}",
+ "notification_requests.edit_selection": "Editar",
+ "notification_requests.exit_selection": "Concluído",
+ "notification_requests.explainer_for_limited_account": "As notificações desta conta foram filtradas porque a conta foi limitada por um moderador.",
+ "notification_requests.explainer_for_limited_remote_account": "As notificações desta conta foram filtradas porque a conta ou o seu servidor foi limitado por um moderador.",
"notification_requests.maximize": "Maximizar",
+ "notification_requests.minimize_banner": "Minimizar banner de notificações filtradas",
"notification_requests.notifications_from": "Notificações de {name}",
"notification_requests.title": "Notificações filtradas",
+ "notification_requests.view": "Ver notificações",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?",
"notifications.clear_title": "Limpar notificações?",
"notifications.column_settings.admin.report": "Novas denúncias:",
"notifications.column_settings.admin.sign_up": "Novas inscrições:",
"notifications.column_settings.alert": "Notificações no computador",
+ "notifications.column_settings.beta.category": "Recursos experimentais",
+ "notifications.column_settings.beta.grouping": "Agrupar notificações",
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.filter_bar.advanced": "Exibir todas as categorias",
"notifications.column_settings.filter_bar.category": "Barra de filtro rápido",
@@ -574,6 +592,11 @@
"notifications.policy.accept": "Aceitar",
"notifications.policy.accept_hint": "Mostrar nas notificações",
"notifications.policy.drop": "Ignorar",
+ "notifications.policy.drop_hint": "Envie para o void, para nunca mais ser visto novamente",
+ "notifications.policy.filter": "Filtrar",
+ "notifications.policy.filter_hint": "Enviar para caixa de notificações filtradas",
+ "notifications.policy.filter_limited_accounts_hint": "Limitado pelos moderadores do servidor",
+ "notifications.policy.filter_limited_accounts_title": "Contas moderadas",
"notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}",
"notifications.policy.filter_new_accounts_title": "Novas contas",
"notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}",
@@ -582,6 +605,7 @@
"notifications.policy.filter_not_following_title": "Pessoas que você não segue",
"notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que respondido em sua própria menção ou se você segue o remetente",
"notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas",
+ "notifications.policy.title": "Gerenciar notificações de…",
"notifications_permission_banner.enable": "Ativar notificações no computador",
"notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no computador. Você pode controlar precisamente quais tipos de interações geram notificações no computador através do botão {icon}.",
"notifications_permission_banner.title": "Nunca perca nada",
@@ -708,9 +732,13 @@
"report.unfollow_explanation": "Você está seguindo esta conta. Para não ver as publicações dela em sua página inicial, deixe de segui-la.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicação anexada} other {{count} publicações anexadas}}",
"report_notification.categories.legal": "Legal",
+ "report_notification.categories.legal_sentence": "conteúdo ilegal",
"report_notification.categories.other": "Outro",
+ "report_notification.categories.other_sentence": "outro",
"report_notification.categories.spam": "Spam",
+ "report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Violação de regra",
+ "report_notification.categories.violation_sentence": "violação de regra",
"report_notification.open": "Abrir denúncia",
"search.no_recent_searches": "Nenhuma busca recente",
"search.placeholder": "Pesquisar",
diff --git a/app/lib/annual_report/source.rb b/app/lib/annual_report/source.rb
index 1ccb622676faf4..d56a1fcccf697f 100644
--- a/app/lib/annual_report/source.rb
+++ b/app/lib/annual_report/source.rb
@@ -11,6 +11,16 @@ def initialize(account, year)
protected
def year_as_snowflake_range
- (Mastodon::Snowflake.id_at(DateTime.new(year, 1, 1))..Mastodon::Snowflake.id_at(DateTime.new(year, 12, 31)))
+ (beginning_snowflake_id..ending_snowflake_id)
+ end
+
+ private
+
+ def beginning_snowflake_id
+ Mastodon::Snowflake.id_at DateTime.new(year).beginning_of_year
+ end
+
+ def ending_snowflake_id
+ Mastodon::Snowflake.id_at DateTime.new(year).end_of_year
end
end
diff --git a/app/models/account_statuses_cleanup_policy.rb b/app/models/account_statuses_cleanup_policy.rb
index a102795446d465..e2c035284be24f 100644
--- a/app/models/account_statuses_cleanup_policy.rb
+++ b/app/models/account_statuses_cleanup_policy.rb
@@ -145,15 +145,15 @@ def old_enough_scope(max_id = nil)
end
def without_self_fav_scope
- Status.where('NOT EXISTS (SELECT 1 FROM favourites fav WHERE fav.account_id = statuses.account_id AND fav.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(Favourite))
end
def without_self_bookmark_scope
- Status.where('NOT EXISTS (SELECT 1 FROM bookmarks bookmark WHERE bookmark.account_id = statuses.account_id AND bookmark.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(Bookmark))
end
def without_pinned_scope
- Status.where('NOT EXISTS (SELECT 1 FROM status_pins pin WHERE pin.account_id = statuses.account_id AND pin.status_id = statuses.id)')
+ Status.where.not(self_status_reference_exists(StatusPin))
end
def without_media_scope
@@ -174,4 +174,13 @@ def without_popular_scope
def account_statuses
Status.where(account_id: account_id)
end
+
+ def self_status_reference_exists(model)
+ model
+ .where(model.arel_table[:account_id].eq Status.arel_table[:account_id])
+ .where(model.arel_table[:status_id].eq Status.arel_table[:id])
+ .select(1)
+ .arel
+ .exists
+ end
end
diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb
index 37a818bf467bf9..c530693a3f3a41 100644
--- a/config/initializers/cors.rb
+++ b/config/initializers/cors.rb
@@ -22,6 +22,7 @@
expose: %w(Link X-RateLimit-Reset X-RateLimit-Limit X-RateLimit-Remaining X-Request-Id),
methods: %i(post put delete get patch options)
resource '/oauth/token', methods: [:post]
+ resource '/oauth/revoke', methods: [:post]
end
end
end
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index ae78026629025a..3199eb8e2d2e7d 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -32,7 +32,7 @@ pt-BR:
import:
attributes:
data:
- malformed: está incorreto
+ malformed: está malformado
status:
attributes:
reblog:
@@ -43,16 +43,16 @@ pt-BR:
blocked: usa provedor de e-mail não permitido
unreachable: parece não existir
role_id:
- elevated: não pode ser maior que seu cargo atual
+ elevated: não pode maior que sua função atual
user_role:
attributes:
permissions_as_keys:
- dangerous: incluir permissões que não são seguras para o cargo base
- elevated: não pode incluir permissões que o seu cargo atual não possui
- own_role: não pode ser alterado com seu cargo atual
+ dangerous: incluir permissões que não são seguras para a função base
+ elevated: não pode incluir permissões que a sua função atual não possui
+ own_role: não pode ser alterado com sua função atual
position:
- elevated: não pode ser maior do que seu cargo atual
- own_role: não pode ser alterado com seu cargo atual
+ elevated: não pode ser maior do que sua função atual
+ own_role: não pode ser alterado com sua função atual
webhook:
attributes:
events:
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index 4a7f346fabcf85..8f504362defe3e 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -14,7 +14,7 @@ pt-BR:
not_found_in_database: "%{authentication_keys} ou senha inválida."
omniauth_user_creation_failure: Erro ao criar uma conta para esta identidade.
pending: Sua conta está sendo revisada.
- timeout: Sua sessão expirou. Por favor, entre novamente para continuar.
+ timeout: Sua sessão expirou. Faça ‘login’ novamente para continuar.
unauthenticated: Você precisa entrar ou criar uma conta antes de continuar.
unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
mailer:
@@ -48,12 +48,12 @@ pt-BR:
subject: 'Mastodon: Instruções para alterar senha'
title: Redefinir senha
two_factor_disabled:
- explanation: O ‘login’ agora é possível usando apenas o endereço de e-mail e senha.
+ explanation: O ‘login’ agora é possível usando apenas o endereço eletrônico e senha.
subject: 'Mastodon: Autenticação de dois fatores desativada'
subtitle: A autenticação de dois fatores foi desativada.
title: 2FA desativada
two_factor_enabled:
- explanation: Será necessário um código gerado pelo aplicativo de autenticação para fazer login.
+ explanation: Será necessário um código gerado pelo aplicativo de autenticação TOTP para fazer login.
subject: 'Mastodon: Autenticação de dois fatores ativada'
subtitle: A autenticação de dois fatores foi ativada para sua conta.
title: 2FA ativada
@@ -75,11 +75,11 @@ pt-BR:
title: Uma das suas chaves de segurança foi excluída
webauthn_disabled:
explanation: A autenticação por chaves de segurança foi desativada para sua conta.
- extra: O login agora é possível usando o código gerado por um aplicativo de autenticação de dois fatores.
+ extra: Agora você pode fazer login usando apenas o código gerado pelo aplicativo de autenticação TOTP.
subject: 'Mastodon: Autenticação por chaves de segurança desativada'
title: Chaves de segurança desativadas
webauthn_enabled:
- explanation: Autenticação por chave de segurança foi ativada para sua conta.
+ explanation: A autenticação por chave de segurança foi ativada para sua conta.
extra: Sua chave de segurança agora pode ser usada para ‘login’.
subject: 'Mastodon: Autenticação por chaves de segurança ativada'
title: Chaves de segurança ativadas
diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml
index 6b076e9081c7a6..c991850c68cc7a 100644
--- a/config/locales/doorkeeper.pt-BR.yml
+++ b/config/locales/doorkeeper.pt-BR.yml
@@ -60,8 +60,8 @@ pt-BR:
error:
title: Ocorreu um erro
new:
- prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. É uma aplicação de terceiros. Se você não confia, então você não deve autorizá-lo.
- review_permissions: Revisar permissões
+ prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. Trata-se de uma aplicação de terceiros. Se você não confia nesta aplicação, então você não deve autorizá-la.
+ review_permissions: Rever permissões
title: Autorização necessária
show:
title: Copie este código de autorização e cole no aplicativo.
@@ -72,8 +72,8 @@ pt-BR:
revoke: Você tem certeza?
index:
authorized_at: Autorizado em %{date}
- description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicativos que você não reconhece ou com mau funcionamento, você pode revogar seu acesso.
- last_used_at: Última vez usado em %{date}
+ description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicações que você não reconhece ou que não funcionem corretamente, você pode revogar os acessos.
+ last_used_at: Usado pela última vez em %{date}
never_used: Nunca usado
scopes: Permissões
superapp: Interno
@@ -83,6 +83,7 @@ pt-BR:
access_denied: O proprietário do recurso ou servidor de autorização recusou a solicitação.
credential_flow_not_configured: Fluxo das Credenciais de Senha do Proprietário do Recurso falhou porque Doorkeeper.configure.resource_owner_from_credentials não foi configurado.
invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação foi incluído ou o método de autenticação não é suportado.
+ invalid_code_challenge_method: O método de desafio de código deve ser S256; o método 'plain' não é suportado.
invalid_grant: A garantia de autorização está inválida, expirou ou foi revogada, não é equivalente ao link de redirecionamento usado na solicitação de autorização ou foi emitido por outro cliente.
invalid_redirect_uri: O link de redirecionamento é inválido.
invalid_request:
@@ -114,23 +115,23 @@ pt-BR:
notice: Aplicativo revogado.
grouped_scopes:
access:
- read: Acesso somente para leitura
+ read: Acesso somente leitura
read/write: Acesso de leitura e escrita
- write: Acesso somente para escrita
+ write: Acesso somente escrita
title:
accounts: Contas
admin/accounts: Administração de contas
admin/all: Todas as funções administrativas
- admin/reports: Controle de denúncias
+ admin/reports: Administração de denúncias
all: Acesso total à sua conta Mastodon
blocks: Bloqueios
bookmarks: Salvos
conversations: Conversas
crypto: Criptografia de ponta a ponta
- favourites: Favoritas
+ favourites: Favoritos
filters: Filtros
- follow: Seguidores, Silenciados e Bloqueados
- follows: Seguidores
+ follow: Seguimentos, Silenciamentos e Bloqueios
+ follows: Seguidos
lists: Listas
media: Mídias anexadas
mutes: Silenciados
@@ -151,17 +152,17 @@ pt-BR:
admin:read: ler todos os dados no servidor
admin:read:accounts: ler informações sensíveis de todas as contas
admin:read:canonical_email_blocks: ler informações sensíveis de todos os blocos de e-mail canônicos
- admin:read:domain_allows: ler informações sensíveis de todos os domínios (URL) permitidos
- admin:read:domain_blocks: ler informações sensíveis de todos os domínios (URL) bloqueados
- admin:read:email_domain_blocks: ler informações sensíveis de todos os e-mails de domínios bloqueados
+ admin:read:domain_allows: ler informações sensíveis de todos os domínios permitidos
+ admin:read:domain_blocks: ler informações sensíveis de todos os domínios bloqueados
+ admin:read:email_domain_blocks: ler informações sensíveis de todos os domínios de e-mail bloqueados
admin:read:ip_blocks: ler informações sensíveis de todos os endereços de IP bloqueados
admin:read:reports: ler informações sensíveis de todas as denúncias e contas denunciadas
admin:write: alterar todos os dados no servidor
admin:write:accounts: executar ações de moderação em contas
admin:write:canonical_email_blocks: executar ações de moderação em blocos canônicos de e-mail
- admin:write:domain_allows: executar ações de moderação em domínios (URL) permitidos
- admin:write:domain_blocks: executar ações de moderação em domínios (URL) bloqueados
- admin:write:email_domain_blocks: executar ações de moderação em blocos de e-mail bloqueados
+ admin:write:domain_allows: executar ações de moderação em domínios permitidos
+ admin:write:domain_blocks: executar ações de moderação em domínios bloqueados
+ admin:write:email_domain_blocks: executar ações de moderação em domínios de e-mail bloqueados
admin:write:ip_blocks: executar ações de moderação em IPs bloqueados
admin:write:reports: executar ações de moderação em denúncias
crypto: usar criptografia de ponta-a-ponta
@@ -172,7 +173,7 @@ pt-BR:
read:accounts: ver informações das contas
read:blocks: ver seus bloqueados
read:bookmarks: ver seus salvos
- read:favourites: veja suas favoritas
+ read:favourites: veja seus favoritos
read:filters: ver seus filtros
read:follows: ver quem você segue
read:lists: ver suas listas
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 012d0d91ee6128..bcde9956c2b4aa 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -182,14 +182,17 @@ en-GB:
create_custom_emoji: Create Custom Emoji
create_domain_allow: Create Domain Allow
create_domain_block: Create Domain Block
+ create_email_domain_block: Create Email Domain Block
create_ip_block: Create IP rule
create_unavailable_domain: Create Unavailable Domain
create_user_role: Create Role
demote_user: Demote User
destroy_announcement: Delete Announcement
+ destroy_canonical_email_block: Delete Email Block
destroy_custom_emoji: Delete Custom Emoji
destroy_domain_allow: Delete Domain Allow
destroy_domain_block: Delete Domain Block
+ destroy_email_domain_block: Delete Email Domain Block
destroy_instance: Purge Domain
destroy_ip_block: Delete IP rule
destroy_status: Delete Post
@@ -197,8 +200,10 @@ en-GB:
destroy_user_role: Destroy Role
disable_2fa_user: Disable 2FA
disable_custom_emoji: Disable Custom Emoji
+ disable_sign_in_token_auth_user: Disable Email Token Authentication for User
disable_user: Disable User
enable_custom_emoji: Enable Custom Emoji
+ enable_sign_in_token_auth_user: Enable Email Token Authentication for User
enable_user: Enable User
memorialize_account: Memorialise Account
promote_user: Promote User
@@ -228,20 +233,26 @@ en-GB:
approve_appeal_html: "%{name} approved moderation decision appeal from %{target}"
approve_user_html: "%{name} approved sign-up from %{target}"
assigned_to_self_report_html: "%{name} assigned report %{target} to themselves"
+ change_email_user_html: "%{name} changed the email address of user %{target}"
change_role_user_html: "%{name} changed role of %{target}"
+ confirm_user_html: "%{name} confirmed email address of user %{target}"
create_account_warning_html: "%{name} sent a warning to %{target}"
create_announcement_html: "%{name} created new announcement %{target}"
+ create_canonical_email_block_html: "%{name} blocked email with the hash %{target}"
create_custom_emoji_html: "%{name} uploaded new emoji %{target}"
create_domain_allow_html: "%{name} allowed federation with domain %{target}"
create_domain_block_html: "%{name} blocked domain %{target}"
+ create_email_domain_block_html: "%{name} blocked email domain %{target}"
create_ip_block_html: "%{name} created rule for IP %{target}"
create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
create_user_role_html: "%{name} created %{target} role"
demote_user_html: "%{name} demoted user %{target}"
destroy_announcement_html: "%{name} deleted announcement %{target}"
+ destroy_canonical_email_block_html: "%{name} unblocked email 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 email 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}"
@@ -249,8 +260,10 @@ en-GB:
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 email 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 email 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}"
@@ -258,6 +271,7 @@ en-GB:
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 email 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"
@@ -418,6 +432,7 @@ en-GB:
attempts_over_week:
one: "%{count} attempt over the last week"
other: "%{count} sign-up attempts over the last week"
+ created_msg: Successfully blocked email domain
delete: Delete
dns:
types:
@@ -426,8 +441,12 @@ en-GB:
new:
create: Add domain
resolve: Resolve domain
+ title: Block new email domain
+ no_email_domain_block_selected: No email domain blocks were changed as none were selected
not_permitted: Not permitted
+ resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting email. Blocking an MX domain will block sign-ups from any email address which uses the same MX domain, even if the visible domain name is different. Be careful not to block major email providers.
resolved_through_html: Resolved through %{domain}
+ title: Blocked email domains
export_domain_allows:
new:
title: Import domain allows
@@ -581,6 +600,7 @@ en-GB:
resolve_description_html: No action will be taken against the reported account, no strike recorded, and the report will be closed.
silence_description_html: The account will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted. Closes all reports against this account.
suspend_description_html: The account and all its contents will be inaccessible and eventually deleted, and interacting with it will be impossible. Reversible within 30 days. Closes all reports against this account.
+ actions_description_html: Decide which action to take to resolve this report. If you take a punitive action against the reported account, an email notification will be sent to them, except when the Spam category is selected.
actions_description_remote_html: Decide which action to take to resolve this report. This will only affect how your server communicates with this remote account and handle its content.
add_to_report: Add more to report
already_suspended_badges:
@@ -645,6 +665,7 @@ en-GB:
delete_data_html: Delete @%{acct}'s profile and contents 30 days from now unless they get unsuspended in the meantime
preview_preamble_html: "@%{acct} will receive a warning with the following contents:"
record_strike_html: Record a strike against @%{acct} to help you escalate on future violations from this account
+ send_email_html: Send @%{acct} a warning email
warning_placeholder: Optional additional reasoning for the moderation action.
target_origin: Origin of reported account
title: Reports
@@ -684,6 +705,7 @@ en-GB:
manage_appeals: Manage Appeals
manage_appeals_description: Allows users to review appeals against moderation actions
manage_blocks: Manage Blocks
+ manage_blocks_description: Allows users to block email providers and IP addresses
manage_custom_emojis: Manage Custom Emojis
manage_custom_emojis_description: Allows users to manage custom emojis on the server
manage_federation: Manage Federation
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index c38435c7fb523b..45c6baece912ba 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -58,6 +58,7 @@ fr-CA:
demote: Rétrograder
destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment
disable: Geler
+ disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
disabled: Gelé
display_name: Nom affiché
@@ -66,6 +67,7 @@ fr-CA:
email: Courriel
email_status: État du courriel
enable: Dégeler
+ enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail
enabled: Activé
enabled_msg: Le compte de %{username} a été dégelé avec succès
followers: Abonné·e·s
@@ -195,8 +197,10 @@ fr-CA:
destroy_user_role: Détruire le rôle
disable_2fa_user: Désactiver l’A2F
disable_custom_emoji: Désactiver les émojis personnalisés
+ disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
disable_user: Désactiver le compte
enable_custom_emoji: Activer les émojis personnalisées
+ enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
enable_user: Activer l’utilisateur
memorialize_account: Ériger en mémorial
promote_user: Promouvoir l’utilisateur
@@ -219,18 +223,22 @@ fr-CA:
update_custom_emoji: Mettre à jour les émojis personnalisés
update_domain_block: Mettre à jour le blocage de domaine
update_ip_block: Mettre à jour la règle IP
+ update_report: Mettre à jour le rapport
update_status: Mettre à jour le message
update_user_role: Mettre à jour le rôle
actions:
approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}"
approve_user_html: "%{name} a approuvé l’inscription de %{target}"
assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}"
+ change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}"
change_role_user_html: "%{name} a changé le rôle de %{target}"
+ confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}"
create_account_warning_html: "%{name} a envoyé un avertissement à %{target}"
create_announcement_html: "%{name} a créé une nouvelle annonce %{target}"
create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}"
create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}"
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
+ create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
create_user_role_html: "%{name} a créé le rôle %{target}"
@@ -239,6 +247,7 @@ fr-CA:
destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}"
destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}"
destroy_domain_block_html: "%{name} a débloqué le domaine %{target}"
+ destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
destroy_instance_html: "%{name} a purgé le domaine %{target}"
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
destroy_status_html: "%{name} a supprimé le message de %{target}"
@@ -276,6 +285,7 @@ fr-CA:
filter_by_action: Filtrer par action
filter_by_user: Filtrer par utilisateur·ice
title: Journal d’audit
+ unavailable_instance: "(nom de domaine indisponible)"
announcements:
destroyed_msg: Annonce supprimée avec succès !
edit:
@@ -413,6 +423,7 @@ fr-CA:
attempts_over_week:
one: "%{count} tentative au cours de la dernière semaine"
other: "%{count} tentatives au cours de la dernière semaine"
+ created_msg: Domaine d'e-mail bloqué avec succès
delete: Supprimer
dns:
types:
@@ -914,6 +925,10 @@ fr-CA:
statuses:
allow: Autoriser le message
allow_account: Autoriser l'auteur·rice
+ confirm_allow: Êtes-vous sûr de vouloir autoriser les statuts sélectionnés ?
+ confirm_allow_account: Êtes-vous sûr de vouloir autoriser les comptes sélectionnés ?
+ confirm_disallow: Êtes-vous sûr de vouloir rejeter les statuts sélectionnés ?
+ confirm_disallow_account: Êtes-vous sûr de vouloir rejeter les comptes sélectionnés ?
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
@@ -1896,6 +1911,7 @@ fr-CA:
invalid_otp_token: Le code d’authentification à deux facteurs est invalide
otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email}
rate_limited: Trop de tentatives d'authentification, réessayez plus tard.
+ seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles.
signed_in_as: 'Connecté·e en tant que :'
verification:
extra_instructions_html: Astuce: Le lien sur votre site Web peut être invisible. La partie importante est rel="me"
qui évite d’autres liens provenant de contenu générés par des utilisateurs tiers d'être pris en compte. Vous pouvez même utiliser une balise link
dans l’en-tête de la page au lieu de a
, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript.
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index c3fa237759f1a1..4434a165317f18 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -58,6 +58,7 @@ fr:
demote: Rétrograder
destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment
disable: Geler
+ disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
disabled: Gelé
display_name: Nom affiché
@@ -66,6 +67,7 @@ fr:
email: Adresse de courriel
email_status: État du courriel
enable: Dégeler
+ enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail
enabled: Activé
enabled_msg: Le compte de %{username} a été dégelé avec succès
followers: Abonné·e·s
@@ -195,8 +197,10 @@ fr:
destroy_user_role: Détruire le rôle
disable_2fa_user: Désactiver l’A2F
disable_custom_emoji: Désactiver les émojis personnalisés
+ disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
disable_user: Désactiver le compte
enable_custom_emoji: Activer les émojis personnalisées
+ enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
enable_user: Activer le compte
memorialize_account: Ériger en mémorial
promote_user: Promouvoir le compte
@@ -219,18 +223,22 @@ fr:
update_custom_emoji: Mettre à jour les émojis personnalisés
update_domain_block: Mettre à jour le blocage de domaine
update_ip_block: Mettre à jour la règle IP
+ update_report: Mettre à jour le rapport
update_status: Mettre à jour le message
update_user_role: Mettre à jour le rôle
actions:
approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}"
approve_user_html: "%{name} a approuvé l’inscription de %{target}"
assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}"
+ change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}"
change_role_user_html: "%{name} a changé le rôle de %{target}"
+ confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}"
create_account_warning_html: "%{name} a envoyé un avertissement à %{target}"
create_announcement_html: "%{name} a créé une nouvelle annonce %{target}"
create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}"
create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}"
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
+ create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
create_user_role_html: "%{name} a créé le rôle %{target}"
@@ -239,6 +247,7 @@ fr:
destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}"
destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}"
destroy_domain_block_html: "%{name} a débloqué le domaine %{target}"
+ destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
destroy_instance_html: "%{name} a purgé le domaine %{target}"
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
destroy_status_html: "%{name} a supprimé le message de %{target}"
@@ -276,6 +285,7 @@ fr:
filter_by_action: Filtrer par action
filter_by_user: Filtrer par utilisateur·ice
title: Journal d’audit
+ unavailable_instance: "(nom de domaine indisponible)"
announcements:
destroyed_msg: Annonce supprimée avec succès !
edit:
@@ -413,6 +423,7 @@ fr:
attempts_over_week:
one: "%{count} tentative au cours de la dernière semaine"
other: "%{count} tentatives au cours de la dernière semaine"
+ created_msg: Domaine d'e-mail bloqué avec succès
delete: Supprimer
dns:
types:
@@ -914,6 +925,10 @@ fr:
statuses:
allow: Autoriser le message
allow_account: Autoriser l'auteur·rice
+ confirm_allow: Êtes-vous sûr de vouloir autoriser les statuts sélectionnés ?
+ confirm_allow_account: Êtes-vous sûr de vouloir autoriser les comptes sélectionnés ?
+ confirm_disallow: Êtes-vous sûr de vouloir rejeter les statuts sélectionnés ?
+ confirm_disallow_account: Êtes-vous sûr de vouloir rejeter les comptes sélectionnés ?
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
@@ -1896,6 +1911,7 @@ fr:
invalid_otp_token: Le code d’authentification à deux facteurs est invalide
otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email}
rate_limited: Trop de tentatives d'authentification, réessayez plus tard.
+ seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles.
signed_in_as: 'Connecté·e en tant que :'
verification:
extra_instructions_html: Astuce : Le lien sur votre site Web peut être invisible. La partie importante est rel="me"
qui évite que soient pris en compte d’autres liens provenant de contenu générés par des utilisateurs tiers. Vous pouvez même utiliser une balise link
dans l’en-tête de la page au lieu de a
, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript.
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 72b4156dbf0500..47ec5cafbe29dc 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1506,6 +1506,7 @@ he:
media_attachments:
validations:
images_and_video: לא ניתן להוסיף וידאו להודעה שכבר מכילה תמונות
+ not_found: קובץ %{ids} לא נמצא, או שהוצמד כבר להודעה אחרת
not_ready: לא ניתן להצמיד קבצים שהעלאתם לא הסתיימה. נסה/י שוב בעוד רגע!
too_many: לא ניתן להוסיף יותר מארבעה קבצים
migrations:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index cdddc79b0e9e5e..2bf138d9be10ad 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1454,6 +1454,7 @@ hu:
media_attachments:
validations:
images_and_video: Nem csatolhatsz videót olyan bejegyzéshez, amelyhez már csatoltál képet
+ not_found: A(z) %{ids} média nem található, vagy már egy másik bejegyzéshez lett csatolva
not_ready: Nem lehet olyan fájlt csatolni, melynek még nem fejeződött be a feldolgozása. Próbáld kicsit később!
too_many: Maximum négy fájlt csatolhatsz
migrations:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 41347d44bbf97c..2c73dbae744520 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1458,6 +1458,7 @@ is:
media_attachments:
validations:
images_and_video: Ekki er hægt að hengja myndskeið við færslu sem þegar inniheldur myndir
+ not_found: Myndefnið %{ids} fannst ekki eða er þegar hengt við aðra færslu
not_ready: Ekki er hægt að hengja við skrár sem ekki er búið að vinna til fulls. Prófaðu aftur eftir augnablik!
too_many: Ekki er hægt að hengja við fleiri en 4 skrár
migrations:
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 9632a3027bfbaa..ef3775d4df7197 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -830,7 +830,7 @@ ko:
sensitive: "%{name} 님이 %{target}의 계정을 민감함으로 표시했습니다"
silence: "%{name} 님이 %{target}의 계정을 제한시켰습니다"
suspend: "%{name} 님이 %{target}의 계정을 정지시켰습니다"
- appeal_approved: 이의제기됨
+ appeal_approved: 이의 받아들여짐
appeal_pending: 이의제기 대기중
appeal_rejected: 이의 제기 거절됨
system_checks:
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index 90b3d216c3bae6..f301b8ca98cc56 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1454,6 +1454,7 @@ nn:
media_attachments:
validations:
images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete
+ not_found: Media %{ids} vart ikkje funne eller er allereie kopla til eit anna innlegg
not_ready: Kan ikke legge til filer som ikke er ferdigbehandlet. Prøv igjen om et øyeblikk!
too_many: Kan ikkje leggja til meir enn 4 filer
migrations:
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 418d3d059e0e44..579dbd967fbacd 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -4,7 +4,7 @@ pt-BR:
about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!'
contact_missing: Não definido
contact_unavailable: Não disponível
- hosted_on: Servidor Mastodon em %{domain}
+ hosted_on: Mastodon hospedado em %{domain}
title: Sobre
accounts:
follow: Seguir
@@ -31,6 +31,7 @@ pt-BR:
created_msg: Nota de moderação criada!
destroyed_msg: Nota de moderação excluída!
accounts:
+ add_email_domain_block: Bloquear domínio de email
approve: Aprovar
approved_msg: O registro de %{username} foi aprovado
are_you_sure: Você tem certeza?
@@ -44,10 +45,10 @@ pt-BR:
submit: Alterar e-mail
title: Alterar e-mail para %{username}
change_role:
- changed_msg: Cargo alterado!
- label: Alterar cargo
- no_role: Sem cargo
- title: Alterar cargo para %{username}
+ changed_msg: Função alterada com sucesso!
+ label: Alterar função
+ no_role: Nenhuma função
+ title: Alterar função para %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
@@ -57,6 +58,7 @@ pt-BR:
demote: Rebaixar
destroyed_msg: Os dados de %{username} estão na fila para serem excluídos em breve
disable: Congelar
+ disable_sign_in_token_auth: Desativar autenticação via token por email
disable_two_factor_authentication: Desativar autenticação de dois fatores
disabled: Congelada
display_name: Nome de exibição
@@ -65,6 +67,7 @@ pt-BR:
email: E-mail
email_status: Estado do e-mail
enable: Descongelar
+ enable_sign_in_token_auth: Ativar autenticação via token por email
enabled: Ativada
enabled_msg: A conta de %{username} foi descongelada
followers: Seguidores
@@ -129,6 +132,7 @@ pt-BR:
resubscribe: Reinscrever-se
role: Cargo
search: Buscar
+ search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
search_same_ip: Outros usuários com o mesmo IP
security: Segurança
security_measures:
@@ -169,21 +173,26 @@ pt-BR:
approve_appeal: Aprovar revisão
approve_user: Aprovar usuário
assigned_to_self_report: Atribuir denúncia
+ change_email_user: Alterar o Email para o usuário
change_role_user: Alterar cargo do usuário
confirm_user: Confirmar usuário
create_account_warning: Criar aviso
create_announcement: Criar anúncio
+ create_canonical_email_block: Criar bloqueio de Email
create_custom_emoji: Criar emoji personalizado
create_domain_allow: Permitir domínio
create_domain_block: Bloquear domínio
+ create_email_domain_block: Criar Bloqueio de Domínio de Email
create_ip_block: Criar regra de IP
create_unavailable_domain: Criar domínio indisponível
create_user_role: Criar cargo
demote_user: Rebaixar usuário
destroy_announcement: Excluir anúncio
+ destroy_canonical_email_block: Deletar bloqueio de Email
destroy_custom_emoji: Excluir emoji personalizado
destroy_domain_allow: Excluir domínio permitido
destroy_domain_block: Desbloquear domínio
+ destroy_email_domain_block: Deletar bloqueio de domínio Email
destroy_instance: Limpar domínio
destroy_ip_block: Excluir regra de IP
destroy_status: Excluir publicação
@@ -191,8 +200,10 @@ pt-BR:
destroy_user_role: Destruir cargo
disable_2fa_user: Desativar autenticação de dois fatores
disable_custom_emoji: Desativar emoji personalizado
+ disable_sign_in_token_auth_user: Desativar autenticação via Token de Email para Usuário
disable_user: Desativar usuário
enable_custom_emoji: Ativar emoji personalizado
+ enable_sign_in_token_auth_user: Desativar autenticação via token por e-mail para o usuário
enable_user: Ativar usuário
memorialize_account: Converter conta em memorial
promote_user: Promover usuário
@@ -215,6 +226,7 @@ pt-BR:
update_custom_emoji: Editar Emoji Personalizado
update_domain_block: Atualizar bloqueio de domínio
update_ip_block: Atualizar regra de IP
+ update_report: Atualizar Relatório
update_status: Editar Status
update_user_role: Atualizar cargo
actions:
@@ -223,19 +235,24 @@ pt-BR:
assigned_to_self_report_html: "%{name} atribuiu a denúncia %{target} para si"
change_email_user_html: "%{name} alterou o endereço de e-mail do usuário %{target}"
change_role_user_html: "%{name} alterou o cargo de %{target}"
+ confirm_user_html: "%{name} confirmou o endereço de e-mail do usuário %{target}"
create_account_warning_html: "%{name} enviou um aviso para %{target}"
create_announcement_html: "%{name} criou o novo anúncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueou o endereço de e-mail com o hash %{target}"
create_custom_emoji_html: "%{name} enviou o novo emoji %{target}"
create_domain_allow_html: "%{name} permitiu federação com domínio %{target}"
create_domain_block_html: "%{name} bloqueou o domínio %{target}"
+ create_email_domain_block_html: "%{name} bloqueou o domínio de e-mail %{target}"
create_ip_block_html: "%{name} criou a regra para o IP %{target}"
create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}"
create_user_role_html: "%{name} criou o cargo %{target}"
demote_user_html: "%{name} rebaixou o usuário %{target}"
destroy_announcement_html: "%{name} excluiu o anúncio %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueou o endereço e-mail com o hash %{target}"
destroy_custom_emoji_html: "%{name} apagou o emoji %{target}"
destroy_domain_allow_html: "%{name} bloqueou federação com domínio %{target}"
destroy_domain_block_html: "%{name} desbloqueou o domínio %{target}"
+ destroy_email_domain_block_html: "%{name} desbloqueou o domínio de e-mail %{target}"
destroy_instance_html: "%{name} limpou o domínio %{target}"
destroy_ip_block_html: "%{name} excluiu a regra para o IP %{target}"
destroy_status_html: "%{name} removeu a publicação de %{target}"
@@ -243,8 +260,10 @@ pt-BR:
destroy_user_role_html: "%{name} excluiu o cargo %{target}"
disable_2fa_user_html: "%{name} desativou a exigência da autenticação de dois fatores para o usuário %{target}"
disable_custom_emoji_html: "%{name} desativou o emoji %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} desativou a autenticação via token por e-mail para %{target}"
disable_user_html: "%{name} desativou o login para %{target}"
enable_custom_emoji_html: "%{name} ativou o emoji %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} ativou a autenticação via token por e-mail para %{target}"
enable_user_html: "%{name} ativou o login para %{target}"
memorialize_account_html: "%{name} transformou a conta de %{target} em um memorial"
promote_user_html: "%{name} promoveu o usuário %{target}"
@@ -252,6 +271,7 @@ pt-BR:
reject_user_html: "%{name} rejeitou a inscrição de %{target}"
remove_avatar_user_html: "%{name} removeu a imagem de perfil de %{target}"
reopen_report_html: "%{name} reabriu a denúncia %{target}"
+ resend_user_html: "%{name} reenviou um e-mail de confirmação para %{target}"
reset_password_user_html: "%{name} redefiniu a senha de %{target}"
resolve_report_html: "%{name} resolveu a denúncia %{target}"
sensitive_account_html: "%{name} marcou a mídia de %{target} como sensível"
@@ -412,6 +432,7 @@ pt-BR:
attempts_over_week:
one: "%{count} tentativa na última semana"
other: "%{count} tentativas de inscrição na última semana"
+ created_msg: Domínio de e-mail bloqueado com sucesso
delete: Excluir
dns:
types:
@@ -420,8 +441,11 @@ pt-BR:
new:
create: Adicionar domínio
resolve: Resolver domínio
+ title: Bloquear novo domínio de e-mail
not_permitted: Não permitido
+ resolved_dns_records_hint_html: O nome de domínio é associado aos seguintes domínios MX, que são responsáveis por aceitar e-mails. Ao bloquear um domínio MX, você bloqueará as inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo que o nome de domínio visível seja diferente. Tenha 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
export_domain_allows:
new:
title: Importar domínios permitidos
@@ -446,6 +470,9 @@ pt-BR:
title: Recomendações de contas
unsuppress: Restaurar recomendação de contas
instances:
+ audit_log:
+ title: Logs de auditoria recentes
+ view_all: Ver todos os logs de auditoria
availability:
description_html:
one: Se a entrega ao domínio falhar em %{count} dia sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega do domínio seja recebida.
@@ -572,6 +599,7 @@ pt-BR:
resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma violação será guardada e a denúncia será encerrada.
silence_description_html: A conta ficará visível apenas para aqueles que já a seguem ou que a procuram manualmente, limitando severamente seu alcance. Pode ser revertido a qualquer momento. Fecha todas as denúncias desta conta.
suspend_description_html: A conta e todo o seu conteúdo ficará inacessível e, eventualmente, excluído e interagir com ela será impossível. Reversível dentro de 30 dias. Encerra todas as denúncias contra esta conta.
+ actions_description_html: Decida qual ação tomar para responder a essa denúncia. Se você tomar uma ação punitiva contra a conta denunciada, uma notificação por e-mail será enviada ao usuário, exceto quando a categoria Spam for selecionada.
actions_description_remote_html: Decida quais medidas tomará para resolver esta denúncia. Isso só afetará como seu servidor se comunica com esta conta remota e manipula seu conteúdo.
add_to_report: Adicionar mais à denúncia
already_suspended_badges:
@@ -613,6 +641,7 @@ pt-BR:
report: 'Denúncia #%{id}'
reported_account: Conta denunciada
reported_by: Denunciada por
+ reported_with_application: Denunciado pelo aplicativo
resolved: Resolvido
resolved_msg: Denúncia resolvida!
skip_to_actions: Pular para ações
@@ -635,6 +664,7 @@ pt-BR:
delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo
preview_preamble_html: "@%{acct} receberá um aviso com o seguinte conteúdo:"
record_strike_html: Registre uma ação contra @%{acct} para te ajudar em futuras violações desta conta
+ send_email_html: Enviar @%{acct} um e-mail de alerta
warning_placeholder: Argumentos adicionais para a ação de moderação.
target_origin: Origem da conta denunciada
title: Denúncias
@@ -674,6 +704,7 @@ pt-BR:
manage_appeals: Gerenciar revisões
manage_appeals_description: Permite aos usuários visualizar as revisões das decisões da moderação
manage_blocks: Gerenciar Bloqueios
+ manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP
manage_custom_emojis: Gerenciar Emojis Personalizados
manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor
manage_federation: Gerenciar Federação
@@ -691,6 +722,7 @@ pt-BR:
manage_taxonomies: Gerenciar taxonomias
manage_taxonomies_description: Permite aos usuários rever o conteúdo em alta e atualizar as configurações de hashtag
manage_user_access: Gerenciar Acesso de Usuário
+ manage_user_access_description: Permite aos usuários desativar a autenticação de dois fatores de outros usuários, alterar seu endereço de e-mail e redefinir sua senha
manage_users: Gerenciar usuários
manage_users_description: Permite aos usuários ver os detalhes de outros usuários e executar ações de moderação contra eles
manage_webhooks: Gerenciar Webhooks
@@ -765,6 +797,7 @@ pt-BR:
destroyed_msg: Upload do site excluído com sucesso!
software_updates:
critical_update: Crítico — por favor, atualize rapidamente
+ description: É recomendável que você mantenha a instalação do Mastodon atualizada para se beneficiar das correções e das novas funcionalidades. Além disso, às vezes é imprescindível atualizar o Mastodon rapidamente para evitar problemas de segurança. Por esses motivos, o Mastodon verifica se há atualizações a cada 30 minutos e notificará você de acordo com as suas preferências de notificação por e-mail.
documentation_link: Saiba mais
release_notes: Notas de lançamento
title: Atualizações disponíveis
@@ -851,16 +884,39 @@ pt-BR:
action: Confira aqui para mais informações
message_html: "Seu armazenamento de objetos está mal configurado. A privacidade de seus usuários está em risco."
tags:
+ moderation:
+ not_trendable: Fora de moda
+ not_usable: Não utilizável
+ pending_review: Revisão pendente
+ review_requested: Revisão solicitada
+ reviewed: Revisado
+ title: Status
+ trendable: Tendências
+ unreviewed: Não revisado
+ usable: Utilizável
+ name: Nome
+ newest: Mais recente
+ oldest: Mais antigos
+ open: Visualizar Publicamente
+ reset: Reinicializar
review: Status da revisão
+ search: Buscar
+ title: Hashtags
updated_msg: Configurações de hashtag atualizadas
title: Administração
trends:
allow: Permitir
approved: Aprovado
+ confirm_allow: Você tem certeza que deseja permitir as tags selecionadas?
+ confirm_disallow: Você tem certeza de que deseja vetar as tags selecionadas?
disallow: Impedir
links:
allow: Permitir link
allow_provider: Permitir editor
+ confirm_allow: Tem certeza que deseja permitir os links selecionados?
+ confirm_allow_provider: Tem certeza que deseja permitir os provedores selecionados?
+ confirm_disallow: Tem certeza que deseja vetar os links selecionados?
+ confirm_disallow_provider: Tem certeza que deseja vetar os provedores selecionados?
description_html: Estes são links que estão sendo compartilhados por contas que seu servidor vê. Você pode ajudar seus usuários a descobrir o que está acontecendo no mundo. Nenhum link é exibido publicamente até que você aprove o editor. Você também pode permitir ou rejeitar links individuais.
disallow: Proibir link
disallow_provider: Proibir autor
@@ -884,6 +940,10 @@ pt-BR:
statuses:
allow: Permitir publicação
allow_account: Permitir autor
+ confirm_allow: Tem certeza que deseja permitir os status selecionados?
+ confirm_allow_account: Tem certeza que deseja permitir as contas selecionadas?
+ confirm_disallow: Tem certeza que deseja vetar os status selecionados?
+ confirm_disallow_account: Tem certeza que deseja vetar as contas selecionadas?
description_html: Estes são as publicações que seu servidor sabe que estão sendo muito compartilhadas e favorecidas no momento. Isso pode ajudar seus usuários, novos e atuais, a encontrar mais pessoas para seguir. Nenhuma publicação é exibida publicamente até que você aprove o autor e o autor permitir que sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individuais.
disallow: Proibir publicação
disallow_account: Proibir autor
@@ -916,6 +976,7 @@ pt-BR:
used_by_over_week:
one: Usado por uma pessoa na última semana
other: Usado por %{count} pessoas na última semana
+ title: Recomendações e tendências
trending: Em alta
warning_presets:
add_new: Adicionar novo
@@ -1000,7 +1061,9 @@ pt-BR:
guide_link_text: Todos podem contribuir.
sensitive_content: Conteúdo sensível
application_mailer:
+ notification_preferences: Alterar preferências de e-mail
salutation: "%{name},"
+ settings: 'Alterar preferências de e-mail: %{link}'
unsubscribe: Desinscrever
view: 'Ver:'
view_profile: Ver perfil
@@ -1020,6 +1083,7 @@ pt-BR:
hint_html: Só mais uma coisa! Precisamos confirmar que você é um humano (isso é para que possamos evitar o spam!). Resolva o CAPTCHA abaixo e clique em "Continuar".
title: Verificação de segurança
confirmations:
+ awaiting_review: Seu endereço de e-mail está confirmado! A equipe %{domain} está agora revisando a sua inscrição. Você receberá um e-mail se a sua conta for aprovada!
awaiting_review_title: Seu cadastro está sendo analisado
clicking_this_link: clicar este link
login_link: entrar
@@ -1027,6 +1091,7 @@ pt-BR:
redirect_to_app_html: Você deveria ter sido redirecionado para o aplicativo %{app_name}. Se isso não aconteceu, tente %{clicking_this_link} ou volte manualmente para o aplicativo.
registration_complete: Seu cadastro no %{domain} foi concluído!
welcome_title: Boas vindas, %{name}!
+ wrong_email_hint: Se esse endereço de e-mail não estiver correto, você pode alterá-lo nas configurações da conta.
delete_account: Excluir conta
delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui. Uma confirmação será solicitada.
description:
@@ -1047,6 +1112,7 @@ pt-BR:
or_log_in_with: Ou entre com
privacy_policy_agreement_html: Eu li e concordo com a política de privacidade
progress:
+ confirm: Confirmar e-mail
details: Suas informações
review: Nossa avaliação
rules: Aceitar regras
@@ -1068,8 +1134,10 @@ pt-BR:
security: Segurança
set_new_password: Definir uma nova senha
setup:
+ email_below_hint_html: Verifique a sua pasta de spam, ou solicite outra. Você pode corrigir o seu endereço de e-mail se estiver errado.
email_settings_hint_html: Clique no link que te enviamos para verificar %{email}. Esperaremos aqui.
link_not_received: Não recebeu um link?
+ new_confirmation_instructions_sent: Você receberá um novo e-mail com o link de confirmação em alguns minutos!
title: Verifique sua caixa de entrada
sign_in:
preamble_html: Entre com suas credenciais de domínios ( %{domain} ) . Se sua conta estiver hospedada em um servidor diferente, você não deve conseguir acessar este conteúdo.
@@ -1080,7 +1148,9 @@ pt-BR:
title: Então vamos lá criar uma conta em %{domain}.
status:
account_status: Status da conta
+ confirming: Confirmação por e-mail pendente.
functional: Sua conta está totalmente operacional.
+ pending: Sua inscrição está aguardando revisão pela nossa equipe. Isto pode levar algum tempo. Você receberá um e-mail se sua inscrição for aprovada.
redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}.
self_destruct: Como %{domain} está se encerrando, você só terá acesso limitado à sua conta.
view_strikes: Veja os avisos anteriores em relação à sua conta
@@ -1123,6 +1193,9 @@ pt-BR:
before: 'Antes de prosseguir, leia com cuidado:'
caches: Conteúdo que foi armazenado em cache por outros servidores pode continuar a existir
data_removal: Suas publicações e outros dados serão removidos permanentemente
+ email_change_html: Você pode alterar seu endereço de e-mail sem excluir sua conta
+ email_contact_html: Se ainda não chegar, você pode enviar um e-mail para %{email} para obter ajuda
+ email_reconfirmation_html: Se você não recebeu o e-mail de confirmação, você pode solicitá-lo novamente
irreversible: Você não conseguirá restaurar ou reativar a sua conta
more_details_html: Para mais detalhes, consulte a Política de Privacidade.
username_available: Seu nome de usuário ficará disponível novamente
@@ -1355,6 +1428,7 @@ pt-BR:
authentication_methods:
otp: autenticação de dois fatores
password: senha
+ sign_in_token: código de segurança do e-mail
webauthn: chaves de segurança
description_html: Se você vir atividades suspeitas ou não reconhecidas, considere alterar sua senha e ativar a autenticação de dois fatores.
empty: Sem histórico de autenticação disponível
@@ -1365,10 +1439,14 @@ pt-BR:
unsubscribe:
action: Sim, cancelar subscrição
complete: Desinscrito
+ confirmation_html: Tem certeza que deseja cancelar a assinatura de %{type} para Mastodon no %{domain} para o seu endereço de e-mail %{email}? Você sempre pode se inscrever novamente nas configurações de notificação de email.
+ resubscribe_html: Se você cancelou sua inscrição por engano, você pode se inscrever novamente em suas configurações de notificações por e-mail.
+ success_html: Você não mais receberá %{type} no Mastodon em %{domain} ao seu endereço de e-mail %{email}.
title: Cancelar inscrição
media_attachments:
validations:
images_and_video: Não foi possível anexar um vídeo a uma publicação que já contém imagens
+ not_found: Mídia %{ids} não encontrada ou já anexada a outra publicação
not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco!
too_many: Não foi possível anexar mais de 4 imagens
migrations:
@@ -1445,6 +1523,8 @@ pt-BR:
update:
subject: "%{name} editou uma publicação"
notifications:
+ administration_emails: Notificações de e-mail do administrador
+ email_events: Eventos para notificações por e-mail
email_events_hint: 'Selecione os eventos que deseja receber notificações:'
number:
human:
@@ -1603,6 +1683,7 @@ pt-BR:
import: Importar
import_and_export: Importar e exportar
migrate: Migração de conta
+ notifications: Notificações por e-mail
preferences: Preferências
profile: Perfil
relationships: Seguindo e seguidores
@@ -1849,6 +1930,7 @@ pt-BR:
invalid_otp_token: Código de dois fatores inválido
otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email}
rate_limited: Muitas tentativas de autenticação; tente novamente mais tarde.
+ seamless_external_login: Você está logado através de um serviço externo, portanto as configurações de senha e e-mail não estão disponíveis.
signed_in_as: 'Entrou como:'
verification:
extra_instructions_html: Dica: O link do seu site não precisa ser visível. O importante é a parte rel="me"
, que impede a personificação em sites com conteúdo gerado pelo usuário. Você pode até usar uma tag link
no cabeçalho da página ao invés de uma tag a
, mas é importante que o HTML esteja acessível sem executar JavaScript.
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index fc3c09cf1d09d0..65d3883690112c 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -211,6 +211,7 @@ pt-BR:
setting_default_privacy: Privacidade dos toots
setting_default_sensitive: Sempre marcar mídia como sensível
setting_delete_modal: Solicitar confirmação antes de excluir toot
+ setting_disable_hover_cards: Desativar visualização de perfil ao passar o mouse por cima
setting_disable_swiping: Desabilitar movimentos deslizantes
setting_display_media: Exibição das mídias
setting_display_media_default: Padrão
@@ -242,11 +243,13 @@ pt-BR:
warn: Ocultar com um aviso
form_admin_settings:
activity_api_enabled: Publicar estatísticas agregadas sobre atividade de usuários na API
+ app_icon: Ícone do aplicativo
backups_retention_period: Período de retenção do arquivo de usuário
bootstrap_timeline_accounts: Sempre recomendar essas contas para novos usuários
closed_registrations_message: Mensagem personalizada quando inscrições não estão disponíveis
content_cache_retention_period: Período de retenção de conteúdo remoto
custom_css: CSS personalizável
+ favicon: Favicon
mascot: Mascote personalizado (legado)
media_cache_retention_period: Período de retenção do cachê de mídia
peers_api_enabled: Publicar lista de instâncias de servidor descobertas na API
@@ -311,6 +314,7 @@ pt-BR:
listable: Permitir que esta hashtag apareça em pesquisas e sugestões
name: Hashtag
trendable: Permitir que esta hashtag fique em alta
+ usable: Permitir que as publicações usem esta hashtag localmente
user:
role: Cargo
time_zone: Fuso horário
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index fc9fde36154daa..4318f4eac48c18 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1454,6 +1454,7 @@ tr:
media_attachments:
validations:
images_and_video: Zaten resim içeren bir duruma video eklenemez
+ not_found: "%{ids} medya dosyaları bulunamadı veya başka bir gönderiye zaten eklenmiş"
not_ready: İşlemi tamamlanmamış dosyalar eklenemez. Birazdan tekrar deneyin!
too_many: 4'ten fazla dosya eklenemiyor
migrations:
diff --git a/lib/mastodon/redis_configuration.rb b/lib/mastodon/redis_configuration.rb
index 3cd121e4ac2762..9139d87583e33f 100644
--- a/lib/mastodon/redis_configuration.rb
+++ b/lib/mastodon/redis_configuration.rb
@@ -1,34 +1,33 @@
# frozen_string_literal: true
class Mastodon::RedisConfiguration
+ DEFAULTS = {
+ host: 'localhost',
+ port: 6379,
+ db: 0,
+ }.freeze
+
def base
- @base ||= {
- url: setup_base_redis_url,
- driver: driver,
- namespace: base_namespace,
- }
+ @base ||= setup_config(prefix: nil, defaults: DEFAULTS)
+ .merge(namespace: base_namespace)
end
def sidekiq
- @sidekiq ||= {
- url: setup_prefixed_redis_url(:sidekiq),
- driver: driver,
- namespace: sidekiq_namespace,
- }
+ @sidekiq ||= setup_config(prefix: 'SIDEKIQ_')
+ .merge(namespace: sidekiq_namespace)
end
def cache
- @cache ||= {
- url: setup_prefixed_redis_url(:cache),
- driver: driver,
- namespace: cache_namespace,
- expires_in: 10.minutes,
- connect_timeout: 5,
- pool: {
- size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5),
- timeout: 5,
- },
- }
+ @cache ||= setup_config(prefix: 'CACHE_')
+ .merge({
+ namespace: cache_namespace,
+ expires_in: 10.minutes,
+ connect_timeout: 5,
+ pool: {
+ size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5),
+ timeout: 5,
+ },
+ })
end
private
@@ -55,42 +54,53 @@ def cache_namespace
namespace ? "#{namespace}_cache" : 'cache'
end
- def setup_base_redis_url
- url = ENV.fetch('REDIS_URL', nil)
- return url if url.present?
-
- user = ENV.fetch('REDIS_USER', '')
- password = ENV.fetch('REDIS_PASSWORD', '')
- host = ENV.fetch('REDIS_HOST', 'localhost')
- port = ENV.fetch('REDIS_PORT', 6379)
- db = ENV.fetch('REDIS_DB', 0)
+ def setup_config(prefix: nil, defaults: {})
+ prefix = "#{prefix}REDIS_"
- construct_uri(host, port, db, user, password)
- end
+ url = ENV.fetch("#{prefix}URL", nil)
+ user = ENV.fetch("#{prefix}USER", nil)
+ password = ENV.fetch("#{prefix}PASSWORD", nil)
+ host = ENV.fetch("#{prefix}HOST", defaults[:host])
+ port = ENV.fetch("#{prefix}PORT", defaults[:port])
+ db = ENV.fetch("#{prefix}DB", defaults[:db])
+ name = ENV.fetch("#{prefix}SENTINEL_MASTER", nil)
+ sentinels = parse_sentinels(ENV.fetch("#{prefix}SENTINELS", nil))
- def setup_prefixed_redis_url(prefix)
- prefix = "#{prefix.to_s.upcase}_"
- url = ENV.fetch("#{prefix}REDIS_URL", nil)
+ return { url:, driver: } if url
- return url if url.present?
+ if name.present? && sentinels.present?
+ host = name
+ port = nil
+ db ||= 0
+ else
+ sentinels = nil
+ end
- user = ENV.fetch("#{prefix}REDIS_USER", nil)
- password = ENV.fetch("#{prefix}REDIS_PASSWORD", nil)
- host = ENV.fetch("#{prefix}REDIS_HOST", nil)
- port = ENV.fetch("#{prefix}REDIS_PORT", nil)
- db = ENV.fetch("#{prefix}REDIS_DB", nil)
+ url = construct_uri(host, port, db, user, password)
- if host.nil?
- base[:url]
+ if url.present?
+ { url:, driver:, name:, sentinels: }
else
- construct_uri(host, port, db, user, password)
+ # Fall back to base config. This has defaults for the URL
+ # so this cannot lead to an endless loop.
+ base
end
end
def construct_uri(host, port, db, user, password)
+ return nil if host.blank?
+
Addressable::URI.parse("redis://#{host}:#{port}/#{db}").tap do |uri|
uri.user = user if user.present?
uri.password = password if password.present?
end.normalize.to_str
end
+
+ def parse_sentinels(sentinels_string)
+ (sentinels_string || '').split(',').map do |sentinel|
+ host, port = sentinel.split(':')
+ port = port.present? ? port.to_i : 26_379
+ { host: host, port: port }
+ end.presence
+ end
end
diff --git a/package.json b/package.json
index 02444a3def1a0f..4c7af5c16dbbc1 100644
--- a/package.json
+++ b/package.json
@@ -178,9 +178,9 @@
"eslint-define-config": "^2.0.0",
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-plugin-formatjs": "^4.10.1",
- "eslint-plugin-import": "~2.29.0",
+ "eslint-plugin-import": "~2.30.0",
"eslint-plugin-jsdoc": "^50.0.0",
- "eslint-plugin-jsx-a11y": "~6.9.0",
+ "eslint-plugin-jsx-a11y": "~6.10.0",
"eslint-plugin-promise": "~7.1.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
diff --git a/spec/chewy/accounts_index_spec.rb b/spec/chewy/accounts_index_spec.rb
index f9c5922c76efea..f7b5b2e249b6fa 100644
--- a/spec/chewy/accounts_index_spec.rb
+++ b/spec/chewy/accounts_index_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe AccountsIndex do
+RSpec.describe AccountsIndex do
describe 'Searching the index' do
before do
mock_elasticsearch_response(described_class, raw_response)
diff --git a/spec/chewy/public_statuses_index_spec.rb b/spec/chewy/public_statuses_index_spec.rb
index 2f93d0ff025a59..6bc08832f33992 100644
--- a/spec/chewy/public_statuses_index_spec.rb
+++ b/spec/chewy/public_statuses_index_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe PublicStatusesIndex do
+RSpec.describe PublicStatusesIndex do
describe 'Searching the index' do
before do
mock_elasticsearch_response(described_class, raw_response)
diff --git a/spec/chewy/statuses_index_spec.rb b/spec/chewy/statuses_index_spec.rb
index 768e9415fc1f69..e3899f3a1767a5 100644
--- a/spec/chewy/statuses_index_spec.rb
+++ b/spec/chewy/statuses_index_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe StatusesIndex do
+RSpec.describe StatusesIndex do
describe 'Searching the index' do
before do
mock_elasticsearch_response(described_class, raw_response)
diff --git a/spec/chewy/tags_index_spec.rb b/spec/chewy/tags_index_spec.rb
index 054589bdfb1929..6b57da65e4d737 100644
--- a/spec/chewy/tags_index_spec.rb
+++ b/spec/chewy/tags_index_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe TagsIndex do
+RSpec.describe TagsIndex do
describe 'Searching the index' do
before do
mock_elasticsearch_response(described_class, raw_response)
diff --git a/spec/config/initializers/rack/attack_spec.rb b/spec/config/initializers/rack/attack_spec.rb
index 19de4808983bc9..c7af11bea7c128 100644
--- a/spec/config/initializers/rack/attack_spec.rb
+++ b/spec/config/initializers/rack/attack_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Rack::Attack, type: :request do
+RSpec.describe Rack::Attack, type: :request do
def app
Rails.application
end
diff --git a/spec/controllers/activitypub/claims_controller_spec.rb b/spec/controllers/activitypub/claims_controller_spec.rb
index f00eeb732a7af2..e887be2cbe1ae2 100644
--- a/spec/controllers/activitypub/claims_controller_spec.rb
+++ b/spec/controllers/activitypub/claims_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ActivityPub::ClaimsController do
+RSpec.describe ActivityPub::ClaimsController do
let(:account) { Fabricate(:account) }
describe 'POST #create' do
diff --git a/spec/controllers/admin/account_actions_controller_spec.rb b/spec/controllers/admin/account_actions_controller_spec.rb
index b8dae7993935e1..d513b3d4a09261 100644
--- a/spec/controllers/admin/account_actions_controller_spec.rb
+++ b/spec/controllers/admin/account_actions_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::AccountActionsController do
+RSpec.describe Admin::AccountActionsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/action_logs_controller_spec.rb b/spec/controllers/admin/action_logs_controller_spec.rb
index be4222df080f87..3daf2606729fcb 100644
--- a/spec/controllers/admin/action_logs_controller_spec.rb
+++ b/spec/controllers/admin/action_logs_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::ActionLogsController do
+RSpec.describe Admin::ActionLogsController do
render_views
# Action logs typically cause issues when their targets are not in the database
diff --git a/spec/controllers/admin/base_controller_spec.rb b/spec/controllers/admin/base_controller_spec.rb
index 1f1fa8441af24a..8b8b7fe63d931d 100644
--- a/spec/controllers/admin/base_controller_spec.rb
+++ b/spec/controllers/admin/base_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::BaseController do
+RSpec.describe Admin::BaseController do
controller do
def success
authorize :dashboard, :index?
diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb
index 9e732200dd26a7..57c2a6d21b4b9f 100644
--- a/spec/controllers/admin/custom_emojis_controller_spec.rb
+++ b/spec/controllers/admin/custom_emojis_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::CustomEmojisController do
+RSpec.describe Admin::CustomEmojisController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb
index 3e29ce1278583b..9177be4b6dc2cb 100644
--- a/spec/controllers/admin/dashboard_controller_spec.rb
+++ b/spec/controllers/admin/dashboard_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::DashboardController do
+RSpec.describe Admin::DashboardController do
render_views
describe 'GET #index' do
diff --git a/spec/controllers/admin/follow_recommendations_controller_spec.rb b/spec/controllers/admin/follow_recommendations_controller_spec.rb
index f62aa6e4b2f030..d614f2ef43d4f0 100644
--- a/spec/controllers/admin/follow_recommendations_controller_spec.rb
+++ b/spec/controllers/admin/follow_recommendations_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::FollowRecommendationsController do
+RSpec.describe Admin::FollowRecommendationsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb
index 8638f8e2141fc1..b6471e80b2766b 100644
--- a/spec/controllers/admin/invites_controller_spec.rb
+++ b/spec/controllers/admin/invites_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::InvitesController do
+RSpec.describe Admin::InvitesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/ip_blocks_controller_spec.rb b/spec/controllers/admin/ip_blocks_controller_spec.rb
index 05190f13408eac..2e32db5a0118b9 100644
--- a/spec/controllers/admin/ip_blocks_controller_spec.rb
+++ b/spec/controllers/admin/ip_blocks_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::IpBlocksController do
+RSpec.describe Admin::IpBlocksController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/relationships_controller_spec.rb b/spec/controllers/admin/relationships_controller_spec.rb
index 1099a37a3b3b31..214be7c7cd212e 100644
--- a/spec/controllers/admin/relationships_controller_spec.rb
+++ b/spec/controllers/admin/relationships_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::RelationshipsController do
+RSpec.describe Admin::RelationshipsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/relays_controller_spec.rb b/spec/controllers/admin/relays_controller_spec.rb
index ca351c39b2c7e8..c6251a6d764025 100644
--- a/spec/controllers/admin/relays_controller_spec.rb
+++ b/spec/controllers/admin/relays_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::RelaysController do
+RSpec.describe Admin::RelaysController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index 8d5b5c7aecf871..423a64ebc455e1 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::ReportNotesController do
+RSpec.describe Admin::ReportNotesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index 06d4b31f54e469..6185702c303811 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Reports::ActionsController do
+RSpec.describe Admin::Reports::ActionsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index 67fb28e7a57fff..d07468a37b4fa4 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::ReportsController do
+RSpec.describe Admin::ReportsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index 223d0a472a5164..2c43a0ca870ae5 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::RolesController do
+RSpec.describe Admin::RolesController do
render_views
let(:permissions) { UserRole::Flags::NONE }
diff --git a/spec/controllers/admin/rules_controller_spec.rb b/spec/controllers/admin/rules_controller_spec.rb
index 92ffb415671c3c..1b2a2010d0de77 100644
--- a/spec/controllers/admin/rules_controller_spec.rb
+++ b/spec/controllers/admin/rules_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::RulesController do
+RSpec.describe Admin::RulesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/site_uploads_controller_spec.rb b/spec/controllers/admin/site_uploads_controller_spec.rb
index 4ea37f396a7773..9c65c63b78e11b 100644
--- a/spec/controllers/admin/site_uploads_controller_spec.rb
+++ b/spec/controllers/admin/site_uploads_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SiteUploadsController do
+RSpec.describe Admin::SiteUploadsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb
index 4ab6d109ef89b5..e6053a6e8a9cca 100644
--- a/spec/controllers/admin/statuses_controller_spec.rb
+++ b/spec/controllers/admin/statuses_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::StatusesController do
+RSpec.describe Admin::StatusesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb b/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb
index 95ed38d6b1da5e..ce62a13db6c7f2 100644
--- a/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb
+++ b/spec/controllers/admin/trends/links/preview_card_providers_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Trends::Links::PreviewCardProvidersController do
+RSpec.describe Admin::Trends::Links::PreviewCardProvidersController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/trends/links_controller_spec.rb b/spec/controllers/admin/trends/links_controller_spec.rb
index 7c67f5e5aa3e41..984f3007c2db8b 100644
--- a/spec/controllers/admin/trends/links_controller_spec.rb
+++ b/spec/controllers/admin/trends/links_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Trends::LinksController do
+RSpec.describe Admin::Trends::LinksController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/trends/statuses_controller_spec.rb b/spec/controllers/admin/trends/statuses_controller_spec.rb
index b752234d3cd4f5..eecf4ab4f2695f 100644
--- a/spec/controllers/admin/trends/statuses_controller_spec.rb
+++ b/spec/controllers/admin/trends/statuses_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Trends::StatusesController do
+RSpec.describe Admin::Trends::StatusesController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/trends/tags_controller_spec.rb b/spec/controllers/admin/trends/tags_controller_spec.rb
index 4f74a55455d613..51ad1860c8aebb 100644
--- a/spec/controllers/admin/trends/tags_controller_spec.rb
+++ b/spec/controllers/admin/trends/tags_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Trends::TagsController do
+RSpec.describe Admin::Trends::TagsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/users/roles_controller_spec.rb b/spec/controllers/admin/users/roles_controller_spec.rb
index 97f69a0b0a90da..bfc2bb151fa7c5 100644
--- a/spec/controllers/admin/users/roles_controller_spec.rb
+++ b/spec/controllers/admin/users/roles_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Users::RolesController do
+RSpec.describe Admin::Users::RolesController do
render_views
let(:current_role) { UserRole.create(name: 'Foo', permissions: UserRole::FLAGS[:manage_roles], position: 10) }
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 eb10d4796302c0..1f0a6ac34d3ecd 100644
--- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'webauthn/fake_client'
-describe Admin::Users::TwoFactorAuthenticationsController do
+RSpec.describe Admin::Users::TwoFactorAuthenticationsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/admin/warning_presets_controller_spec.rb b/spec/controllers/admin/warning_presets_controller_spec.rb
index b32a58e990f1af..4171bbad824c8e 100644
--- a/spec/controllers/admin/warning_presets_controller_spec.rb
+++ b/spec/controllers/admin/warning_presets_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::WarningPresetsController do
+RSpec.describe Admin::WarningPresetsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/webhooks/secrets_controller_spec.rb b/spec/controllers/admin/webhooks/secrets_controller_spec.rb
index 291a10fba5e0ca..61ae8cdaa50bf1 100644
--- a/spec/controllers/admin/webhooks/secrets_controller_spec.rb
+++ b/spec/controllers/admin/webhooks/secrets_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Webhooks::SecretsController do
+RSpec.describe Admin::Webhooks::SecretsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/admin/webhooks_controller_spec.rb b/spec/controllers/admin/webhooks_controller_spec.rb
index 17d85060256207..4fe787c26cd470 100644
--- a/spec/controllers/admin/webhooks_controller_spec.rb
+++ b/spec/controllers/admin/webhooks_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::WebhooksController do
+RSpec.describe Admin::WebhooksController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
diff --git a/spec/controllers/api/base_controller_spec.rb b/spec/controllers/api/base_controller_spec.rb
index 659d55f8012d0e..1e0e7c8f4dcffe 100644
--- a/spec/controllers/api/base_controller_spec.rb
+++ b/spec/controllers/api/base_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Api::BaseController do
+RSpec.describe Api::BaseController do
controller do
def success
head 200
diff --git a/spec/controllers/api/web/push_subscriptions_controller_spec.rb b/spec/controllers/api/web/push_subscriptions_controller_spec.rb
index 58677841ca7785..acc03121132332 100644
--- a/spec/controllers/api/web/push_subscriptions_controller_spec.rb
+++ b/spec/controllers/api/web/push_subscriptions_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Api::Web::PushSubscriptionsController do
+RSpec.describe Api::Web::PushSubscriptionsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 704cc1270e6ed7..52d92a2b6c5074 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ApplicationController do
+RSpec.describe ApplicationController do
controller do
def success
head 200
diff --git a/spec/controllers/auth/challenges_controller_spec.rb b/spec/controllers/auth/challenges_controller_spec.rb
index 32bbedde633a94..56fdfa61b58078 100644
--- a/spec/controllers/auth/challenges_controller_spec.rb
+++ b/spec/controllers/auth/challenges_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Auth::ChallengesController do
+RSpec.describe Auth::ChallengesController do
render_views
let(:password) { 'foobar12345' }
diff --git a/spec/controllers/auth/confirmations_controller_spec.rb b/spec/controllers/auth/confirmations_controller_spec.rb
index 15403e8ea13513..a5b212e660036d 100644
--- a/spec/controllers/auth/confirmations_controller_spec.rb
+++ b/spec/controllers/auth/confirmations_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Auth::ConfirmationsController do
+RSpec.describe Auth::ConfirmationsController do
render_views
describe 'GET #new' do
diff --git a/spec/controllers/auth/passwords_controller_spec.rb b/spec/controllers/auth/passwords_controller_spec.rb
index d70490abcf15ad..9ccbb9e4942921 100644
--- a/spec/controllers/auth/passwords_controller_spec.rb
+++ b/spec/controllers/auth/passwords_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Auth::PasswordsController do
+RSpec.describe Auth::PasswordsController do
include Devise::Test::ControllerHelpers
describe 'GET #new' do
diff --git a/spec/controllers/auth/setup_controller_spec.rb b/spec/controllers/auth/setup_controller_spec.rb
index 75e42aaf96d672..28b07cb4b289e9 100644
--- a/spec/controllers/auth/setup_controller_spec.rb
+++ b/spec/controllers/auth/setup_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Auth::SetupController do
+RSpec.describe Auth::SetupController do
render_views
describe 'GET #show' do
diff --git a/spec/controllers/authorize_interactions_controller_spec.rb b/spec/controllers/authorize_interactions_controller_spec.rb
index ed55df08d9a74b..2a0422efa927cf 100644
--- a/spec/controllers/authorize_interactions_controller_spec.rb
+++ b/spec/controllers/authorize_interactions_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe AuthorizeInteractionsController do
+RSpec.describe AuthorizeInteractionsController do
render_views
describe 'GET #show' do
diff --git a/spec/controllers/concerns/account_controller_concern_spec.rb b/spec/controllers/concerns/account_controller_concern_spec.rb
index 122ef21e93039f..3eee46d7b956fc 100644
--- a/spec/controllers/concerns/account_controller_concern_spec.rb
+++ b/spec/controllers/concerns/account_controller_concern_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe AccountControllerConcern do
+RSpec.describe AccountControllerConcern do
controller(ApplicationController) do
include AccountControllerConcern
diff --git a/spec/controllers/concerns/api/error_handling_spec.rb b/spec/controllers/concerns/api/error_handling_spec.rb
index 9b36fc20a32403..eff01605d2a89a 100644
--- a/spec/controllers/concerns/api/error_handling_spec.rb
+++ b/spec/controllers/concerns/api/error_handling_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Api::ErrorHandling do
+RSpec.describe Api::ErrorHandling do
before do
stub_const('FakeService', Class.new)
end
diff --git a/spec/controllers/concerns/api/rate_limit_headers_spec.rb b/spec/controllers/concerns/api/rate_limit_headers_spec.rb
index 2050de2aed4ed8..6372c94e6c2af4 100644
--- a/spec/controllers/concerns/api/rate_limit_headers_spec.rb
+++ b/spec/controllers/concerns/api/rate_limit_headers_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Api::RateLimitHeaders do
+RSpec.describe Api::RateLimitHeaders do
controller(ApplicationController) do
include Api::RateLimitHeaders
diff --git a/spec/controllers/concerns/localized_spec.rb b/spec/controllers/concerns/localized_spec.rb
index ce31e786f0a352..b1f805ae50c883 100644
--- a/spec/controllers/concerns/localized_spec.rb
+++ b/spec/controllers/concerns/localized_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Localized do
+RSpec.describe Localized do
controller(ApplicationController) do
include Localized
diff --git a/spec/controllers/concerns/settings/export_controller_concern_spec.rb b/spec/controllers/concerns/settings/export_controller_concern_spec.rb
index a19af8689ac877..2c67991e3a8251 100644
--- a/spec/controllers/concerns/settings/export_controller_concern_spec.rb
+++ b/spec/controllers/concerns/settings/export_controller_concern_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::ExportControllerConcern do
+RSpec.describe Settings::ExportControllerConcern do
controller(ApplicationController) do
include Settings::ExportControllerConcern
diff --git a/spec/controllers/concerns/user_tracking_concern_spec.rb b/spec/controllers/concerns/user_tracking_concern_spec.rb
index f23d482f5f9303..cc61e285cc2e2c 100644
--- a/spec/controllers/concerns/user_tracking_concern_spec.rb
+++ b/spec/controllers/concerns/user_tracking_concern_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe UserTrackingConcern do
+RSpec.describe UserTrackingConcern do
controller(ApplicationController) do
include UserTrackingConcern
diff --git a/spec/controllers/filters/statuses_controller_spec.rb b/spec/controllers/filters/statuses_controller_spec.rb
index 2c80613302cb9e..f1fed76fca6069 100644
--- a/spec/controllers/filters/statuses_controller_spec.rb
+++ b/spec/controllers/filters/statuses_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Filters::StatusesController do
+RSpec.describe Filters::StatusesController do
render_views
describe 'GET #index' do
diff --git a/spec/controllers/filters_controller_spec.rb b/spec/controllers/filters_controller_spec.rb
index 091f714bb37cb2..de043e8ae3f996 100644
--- a/spec/controllers/filters_controller_spec.rb
+++ b/spec/controllers/filters_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FiltersController do
+RSpec.describe FiltersController do
render_views
describe 'GET #index' do
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index dd78c96c053934..e84528d13e085e 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FollowerAccountsController do
+RSpec.describe FollowerAccountsController do
render_views
let(:alice) { Fabricate(:account, username: 'alice') }
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index 7bb78fb4204569..1e01b9f4945722 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FollowingAccountsController do
+RSpec.describe FollowingAccountsController do
render_views
let(:alice) { Fabricate(:account, username: 'alice') }
diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb
index 5221941267fa00..192c5b00ba86e7 100644
--- a/spec/controllers/invites_controller_spec.rb
+++ b/spec/controllers/invites_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe InvitesController do
+RSpec.describe InvitesController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/oauth/authorized_applications_controller_spec.rb b/spec/controllers/oauth/authorized_applications_controller_spec.rb
index 3fd9f9499f4387..52d3dbde83e034 100644
--- a/spec/controllers/oauth/authorized_applications_controller_spec.rb
+++ b/spec/controllers/oauth/authorized_applications_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Oauth::AuthorizedApplicationsController do
+RSpec.describe Oauth::AuthorizedApplicationsController do
render_views
describe 'GET #index' do
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index 9495fc214f04ac..323fcc995de83b 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe RelationshipsController do
+RSpec.describe RelationshipsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/aliases_controller_spec.rb b/spec/controllers/settings/aliases_controller_spec.rb
index 18e568be0be43b..4858c15298c7df 100644
--- a/spec/controllers/settings/aliases_controller_spec.rb
+++ b/spec/controllers/settings/aliases_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::AliasesController do
+RSpec.describe Settings::AliasesController do
render_views
let!(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index ce2e0749a763b8..721741bacb2272 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::ApplicationsController do
+RSpec.describe Settings::ApplicationsController do
render_views
let!(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
index 3342599bc1172e..98104b8454b782 100644
--- a/spec/controllers/settings/deletes_controller_spec.rb
+++ b/spec/controllers/settings/deletes_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::DeletesController do
+RSpec.describe Settings::DeletesController do
render_views
describe 'GET #show' do
diff --git a/spec/controllers/settings/exports_controller_spec.rb b/spec/controllers/settings/exports_controller_spec.rb
index 3399f78ac58f5b..1eafabc7e50129 100644
--- a/spec/controllers/settings/exports_controller_spec.rb
+++ b/spec/controllers/settings/exports_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::ExportsController do
+RSpec.describe Settings::ExportsController do
render_views
describe 'GET #show' do
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
index 4e1dd52945902b..a56ae1c498cf00 100644
--- a/spec/controllers/settings/featured_tags_controller_spec.rb
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::FeaturedTagsController do
+RSpec.describe Settings::FeaturedTagsController do
render_views
shared_examples 'authenticate user' do
diff --git a/spec/controllers/settings/login_activities_controller_spec.rb b/spec/controllers/settings/login_activities_controller_spec.rb
index 294bf85c97ad26..3447620abbf8ff 100644
--- a/spec/controllers/settings/login_activities_controller_spec.rb
+++ b/spec/controllers/settings/login_activities_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::LoginActivitiesController do
+RSpec.describe Settings::LoginActivitiesController do
render_views
let!(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/migration/redirects_controller_spec.rb b/spec/controllers/settings/migration/redirects_controller_spec.rb
index b909a02668b787..d853fe8ae64249 100644
--- a/spec/controllers/settings/migration/redirects_controller_spec.rb
+++ b/spec/controllers/settings/migration/redirects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::Migration::RedirectsController do
+RSpec.describe Settings::Migration::RedirectsController do
render_views
let!(:user) { Fabricate(:user, password: 'testtest') }
diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb
index f3340574d08be5..93c5de08990e96 100644
--- a/spec/controllers/settings/migrations_controller_spec.rb
+++ b/spec/controllers/settings/migrations_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::MigrationsController do
+RSpec.describe Settings::MigrationsController do
render_views
shared_examples 'authenticate user' do
diff --git a/spec/controllers/settings/pictures_controller_spec.rb b/spec/controllers/settings/pictures_controller_spec.rb
index 705878f03da7a0..683d231ed1e433 100644
--- a/spec/controllers/settings/pictures_controller_spec.rb
+++ b/spec/controllers/settings/pictures_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::PicturesController do
+RSpec.describe Settings::PicturesController do
render_views
let!(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/preferences/appearance_controller_spec.rb b/spec/controllers/settings/preferences/appearance_controller_spec.rb
index c59d3151041fc7..ede00699a200ec 100644
--- a/spec/controllers/settings/preferences/appearance_controller_spec.rb
+++ b/spec/controllers/settings/preferences/appearance_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::Preferences::AppearanceController do
+RSpec.describe Settings::Preferences::AppearanceController do
render_views
let!(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/preferences/base_controller_spec.rb b/spec/controllers/settings/preferences/base_controller_spec.rb
index 53b3a461ed589a..75fc999a4831f8 100644
--- a/spec/controllers/settings/preferences/base_controller_spec.rb
+++ b/spec/controllers/settings/preferences/base_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::Preferences::BaseController do
+RSpec.describe Settings::Preferences::BaseController do
describe 'after_update_redirect_path' do
it 'raises error when called' do
expect { described_class.new.send(:after_update_redirect_path) }.to raise_error(/Override/)
diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb
index e0f0bc55a7580d..edfdea50e066b8 100644
--- a/spec/controllers/settings/preferences/notifications_controller_spec.rb
+++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::Preferences::NotificationsController do
+RSpec.describe Settings::Preferences::NotificationsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb
index 61a94a41423775..117fdeea7c8bb4 100644
--- a/spec/controllers/settings/preferences/other_controller_spec.rb
+++ b/spec/controllers/settings/preferences/other_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::Preferences::OtherController do
+RSpec.describe Settings::Preferences::OtherController do
render_views
let(:user) { Fabricate(:user, chosen_languages: []) }
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index a4248e1bde6f11..c098af74855bef 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::SessionsController do
+RSpec.describe Settings::SessionsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb
index 1c8b483a0a22e7..34eaacdf498f96 100644
--- a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::TwoFactorAuthentication::ConfirmationsController do
+RSpec.describe Settings::TwoFactorAuthentication::ConfirmationsController do
render_views
shared_examples 'renders :new' do
diff --git a/spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb
index 007df87d954c75..a03c4a4adb2442 100644
--- a/spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::TwoFactorAuthentication::OtpAuthenticationController do
+RSpec.describe Settings::TwoFactorAuthentication::OtpAuthenticationController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb
index dbc2e3059ce2c9..0defc52cde92db 100644
--- a/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::TwoFactorAuthentication::RecoveryCodesController do
+RSpec.describe Settings::TwoFactorAuthentication::RecoveryCodesController do
render_views
describe 'POST #create' do
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 41a3ba5eb5bbf5..cccf3c51d321b1 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
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'webauthn/fake_client'
-describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
+RSpec.describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
render_views
let(:user) { Fabricate(:user) }
diff --git a/spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb b/spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb
index de0d28463bb2aa..c55f113d4d2d3e 100644
--- a/spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Settings::TwoFactorAuthenticationMethodsController do
+RSpec.describe Settings::TwoFactorAuthenticationMethodsController do
render_views
context 'when not signed in' do
diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb
index 084dcfaa751d69..289109a1fab450 100644
--- a/spec/controllers/statuses_controller_spec.rb
+++ b/spec/controllers/statuses_controller_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe StatusesController do
+RSpec.describe StatusesController do
render_views
describe 'GET #show' do
diff --git a/spec/fabrication/fabricators_spec.rb b/spec/fabrication/fabricators_spec.rb
index 2cf45041a4a80d..f7bb504543d239 100644
--- a/spec/fabrication/fabricators_spec.rb
+++ b/spec/fabrication/fabricators_spec.rb
@@ -5,7 +5,7 @@
Fabrication.manager.load_definitions if Fabrication.manager.empty?
Fabrication.manager.schematics.map(&:first).each do |factory_name|
- describe "The #{factory_name} factory" do
+ RSpec.describe "The #{factory_name} factory" do
it 'is able to create valid records' do
records = Fabricate.times(2, factory_name) # Create multiple of each to uncover uniqueness issues
expect(records).to all(be_valid)
diff --git a/spec/generators/post_deployment_migration_generator_spec.rb b/spec/generators/post_deployment_migration_generator_spec.rb
index 55e70a7917032c..1aa8e0915c3d7a 100644
--- a/spec/generators/post_deployment_migration_generator_spec.rb
+++ b/spec/generators/post_deployment_migration_generator_spec.rb
@@ -6,7 +6,7 @@
require 'generators/post_deployment_migration/post_deployment_migration_generator'
-describe PostDeploymentMigrationGenerator, type: :generator do
+RSpec.describe PostDeploymentMigrationGenerator, type: :generator do
include Rails::Generators::Testing::Behavior
include Rails::Generators::Testing::Assertions
include FileUtils
diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb
index 59062e48396b9d..9c674fb4b9664d 100644
--- a/spec/helpers/admin/dashboard_helper_spec.rb
+++ b/spec/helpers/admin/dashboard_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::DashboardHelper do
+RSpec.describe Admin::DashboardHelper do
describe 'relevant_account_timestamp' do
context 'with an account with older sign in' do
let(:account) { Fabricate(:account) }
diff --git a/spec/helpers/admin/disputes_helper_spec.rb b/spec/helpers/admin/disputes_helper_spec.rb
index 5f9a85df869140..a6ac021bd491bb 100644
--- a/spec/helpers/admin/disputes_helper_spec.rb
+++ b/spec/helpers/admin/disputes_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::DisputesHelper do
+RSpec.describe Admin::DisputesHelper do
describe 'strike_action_label' do
it 'returns html describing the appeal' do
adam = Account.new(username: 'Adam')
diff --git a/spec/helpers/admin/filter_helper_spec.rb b/spec/helpers/admin/filter_helper_spec.rb
index 40ed63239f03a7..d07a6e1bb756c4 100644
--- a/spec/helpers/admin/filter_helper_spec.rb
+++ b/spec/helpers/admin/filter_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::FilterHelper do
+RSpec.describe Admin::FilterHelper do
it 'Uses filter_link_to to create filter links' do
params = ActionController::Parameters.new(
{ test: 'test' }
diff --git a/spec/helpers/admin/trends/statuses_helper_spec.rb b/spec/helpers/admin/trends/statuses_helper_spec.rb
index 92caae6909960e..fa5c337e973643 100644
--- a/spec/helpers/admin/trends/statuses_helper_spec.rb
+++ b/spec/helpers/admin/trends/statuses_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Trends::StatusesHelper do
+RSpec.describe Admin::Trends::StatusesHelper do
describe '.one_line_preview' do
before do
allow(helper).to receive(:current_user).and_return(Fabricate.build(:user))
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index f37dc480c42fea..1ea5b573c9e803 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ApplicationHelper do
+RSpec.describe ApplicationHelper do
describe 'body_classes' do
context 'with a body class string from a controller' do
before { helper.extend controller_helpers }
diff --git a/spec/helpers/flashes_helper_spec.rb b/spec/helpers/flashes_helper_spec.rb
index a6a3b062d7ef28..aaef7ab1443e74 100644
--- a/spec/helpers/flashes_helper_spec.rb
+++ b/spec/helpers/flashes_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FlashesHelper do
+RSpec.describe FlashesHelper do
describe 'user_facing_flashes' do
before do
# rubocop:disable Rails/I18nLocaleTexts
diff --git a/spec/helpers/formatting_helper_spec.rb b/spec/helpers/formatting_helper_spec.rb
index d6e7631f66c1ee..136a609b1c9cf4 100644
--- a/spec/helpers/formatting_helper_spec.rb
+++ b/spec/helpers/formatting_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FormattingHelper do
+RSpec.describe FormattingHelper do
include Devise::Test::ControllerHelpers
describe '#rss_status_content_format' do
diff --git a/spec/helpers/instance_helper_spec.rb b/spec/helpers/instance_helper_spec.rb
index 9a2d8841586e31..e7b15e6513cc7c 100644
--- a/spec/helpers/instance_helper_spec.rb
+++ b/spec/helpers/instance_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe InstanceHelper do
+RSpec.describe InstanceHelper do
describe 'site_title' do
it 'Uses the Setting.site_title value when it exists' do
Setting.site_title = 'New site title'
diff --git a/spec/helpers/json_ld_helper_spec.rb b/spec/helpers/json_ld_helper_spec.rb
index f4b849d7a12b8c..d76c5167a7d9a3 100644
--- a/spec/helpers/json_ld_helper_spec.rb
+++ b/spec/helpers/json_ld_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe JsonLdHelper do
+RSpec.describe JsonLdHelper do
describe '#equals_or_includes?' do
it 'returns true when value equals' do
expect(helper.equals_or_includes?('foo', 'foo')).to be true
diff --git a/spec/helpers/languages_helper_spec.rb b/spec/helpers/languages_helper_spec.rb
index 99461b293ba6f9..dd9b6004d1cf5b 100644
--- a/spec/helpers/languages_helper_spec.rb
+++ b/spec/helpers/languages_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe LanguagesHelper do
+RSpec.describe LanguagesHelper do
describe 'the SUPPORTED_LOCALES constant' do
it 'includes all i18n locales' do
expect(Set.new(described_class::SUPPORTED_LOCALES.keys + described_class::REGIONAL_LOCALE_NAMES.keys)).to include(*I18n.available_locales)
diff --git a/spec/helpers/media_component_helper_spec.rb b/spec/helpers/media_component_helper_spec.rb
index af5d92769ca249..ec87a707cb6e8e 100644
--- a/spec/helpers/media_component_helper_spec.rb
+++ b/spec/helpers/media_component_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe MediaComponentHelper do
+RSpec.describe MediaComponentHelper do
before { helper.extend controller_helpers }
describe 'render_video_component' do
diff --git a/spec/helpers/react_component_helper_spec.rb b/spec/helpers/react_component_helper_spec.rb
index 28208b619bae0f..202694fbe4d8b0 100644
--- a/spec/helpers/react_component_helper_spec.rb
+++ b/spec/helpers/react_component_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ReactComponentHelper do
+RSpec.describe ReactComponentHelper do
describe 'react_component' do
context 'with no block passed in' do
let(:result) { helper.react_component('name', { one: :two }) }
diff --git a/spec/helpers/settings_helper_spec.rb b/spec/helpers/settings_helper_spec.rb
index ca447d8ce12633..ecff2edbfa159d 100644
--- a/spec/helpers/settings_helper_spec.rb
+++ b/spec/helpers/settings_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe SettingsHelper do
+RSpec.describe SettingsHelper do
describe 'session_device_icon' do
context 'with a mobile device' do
let(:session) { SessionActivation.new(user_agent: 'Mozilla/5.0 (iPhone)') }
diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb
index 66eb996f996704..8809d0afaeb303 100644
--- a/spec/helpers/statuses_helper_spec.rb
+++ b/spec/helpers/statuses_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe StatusesHelper do
+RSpec.describe StatusesHelper do
describe 'status_text_summary' do
context 'with blank text' do
let(:status) { Status.new(spoiler_text: '') }
diff --git a/spec/helpers/theme_helper_spec.rb b/spec/helpers/theme_helper_spec.rb
index aae1ae2a3b1afe..83a68f473982c4 100644
--- a/spec/helpers/theme_helper_spec.rb
+++ b/spec/helpers/theme_helper_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ThemeHelper do
+RSpec.describe ThemeHelper do
describe 'theme_style_tags' do
let(:result) { helper.theme_style_tags(theme) }
diff --git a/spec/lib/admin/metrics/dimension/instance_accounts_dimension_spec.rb b/spec/lib/admin/metrics/dimension/instance_accounts_dimension_spec.rb
index 2b14e6956c8d6c..c8683afda9e222 100644
--- a/spec/lib/admin/metrics/dimension/instance_accounts_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/instance_accounts_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::InstanceAccountsDimension do
+RSpec.describe Admin::Metrics::Dimension::InstanceAccountsDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/instance_languages_dimension_spec.rb b/spec/lib/admin/metrics/dimension/instance_languages_dimension_spec.rb
index e4e9fbe2b7b0a8..c633041f9d40d8 100644
--- a/spec/lib/admin/metrics/dimension/instance_languages_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/instance_languages_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::InstanceLanguagesDimension do
+RSpec.describe Admin::Metrics::Dimension::InstanceLanguagesDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/languages_dimension_spec.rb b/spec/lib/admin/metrics/dimension/languages_dimension_spec.rb
index 9d8097069390cc..801b3d84dfc8cc 100644
--- a/spec/lib/admin/metrics/dimension/languages_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/languages_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::LanguagesDimension do
+RSpec.describe Admin::Metrics::Dimension::LanguagesDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/servers_dimension_spec.rb b/spec/lib/admin/metrics/dimension/servers_dimension_spec.rb
index 5661441d5d0c0f..d86ccd099a1af9 100644
--- a/spec/lib/admin/metrics/dimension/servers_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/servers_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::ServersDimension do
+RSpec.describe Admin::Metrics::Dimension::ServersDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/software_versions_dimension_spec.rb b/spec/lib/admin/metrics/dimension/software_versions_dimension_spec.rb
index 5d31121ab3bd10..5b0fb902e015a9 100644
--- a/spec/lib/admin/metrics/dimension/software_versions_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/software_versions_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::SoftwareVersionsDimension do
+RSpec.describe Admin::Metrics::Dimension::SoftwareVersionsDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/sources_dimension_spec.rb b/spec/lib/admin/metrics/dimension/sources_dimension_spec.rb
index 5fa5aa8af51730..ca7f716afd3e92 100644
--- a/spec/lib/admin/metrics/dimension/sources_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/sources_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::SourcesDimension do
+RSpec.describe Admin::Metrics::Dimension::SourcesDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/space_usage_dimension_spec.rb b/spec/lib/admin/metrics/dimension/space_usage_dimension_spec.rb
index 96ff9c66dc7f55..4be5ed30ee1663 100644
--- a/spec/lib/admin/metrics/dimension/space_usage_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/space_usage_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::SpaceUsageDimension do
+RSpec.describe Admin::Metrics::Dimension::SpaceUsageDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/tag_languages_dimension_spec.rb b/spec/lib/admin/metrics/dimension/tag_languages_dimension_spec.rb
index c1dfd0eaf4eb2e..166edf92b0aac4 100644
--- a/spec/lib/admin/metrics/dimension/tag_languages_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/tag_languages_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::TagLanguagesDimension do
+RSpec.describe Admin::Metrics::Dimension::TagLanguagesDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension/tag_servers_dimension_spec.rb b/spec/lib/admin/metrics/dimension/tag_servers_dimension_spec.rb
index 025cf1b7ec7870..7391b5545624b5 100644
--- a/spec/lib/admin/metrics/dimension/tag_servers_dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension/tag_servers_dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension::TagServersDimension do
+RSpec.describe Admin::Metrics::Dimension::TagServersDimension do
subject { described_class.new(start_at, end_at, limit, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/dimension_spec.rb b/spec/lib/admin/metrics/dimension_spec.rb
index 109250b72b73ff..0a52d442be92f2 100644
--- a/spec/lib/admin/metrics/dimension_spec.rb
+++ b/spec/lib/admin/metrics/dimension_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Dimension do
+RSpec.describe Admin::Metrics::Dimension do
describe '.retrieve' do
subject { described_class.retrieve(reports, start_at, end_at, 5, params) }
diff --git a/spec/lib/admin/metrics/measure/active_users_measure_spec.rb b/spec/lib/admin/metrics/measure/active_users_measure_spec.rb
index 38ee14075b3e38..653e677354b8be 100644
--- a/spec/lib/admin/metrics/measure/active_users_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/active_users_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::ActiveUsersMeasure do
+RSpec.describe Admin::Metrics::Measure::ActiveUsersMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
index 0d2ad31c399a45..f974f2ca462d25 100644
--- a/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceAccountsMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceAccountsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
index 27bf30d17d5f49..643249fa4e23d2 100644
--- a/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceFollowersMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceFollowersMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
index 9961ea56c42b1d..70f5004fefc277 100644
--- a/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceFollowsMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceFollowsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
index 3634450930656b..11f13b85bc17fa 100644
--- a/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
index ca64049d9265bd..62c9dec464434c 100644
--- a/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceReportsMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceReportsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
index ac28658ea07b67..0fc903a2a81cde 100644
--- a/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InstanceStatusesMeasure do
+RSpec.describe Admin::Metrics::Measure::InstanceStatusesMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:domain) { 'example.com' }
diff --git a/spec/lib/admin/metrics/measure/interactions_measure_spec.rb b/spec/lib/admin/metrics/measure/interactions_measure_spec.rb
index ed333380cfbe9d..edbec2eabff630 100644
--- a/spec/lib/admin/metrics/measure/interactions_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/interactions_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::InteractionsMeasure do
+RSpec.describe Admin::Metrics::Measure::InteractionsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/measure/new_users_measure_spec.rb b/spec/lib/admin/metrics/measure/new_users_measure_spec.rb
index 085acbcede811b..5c03b67a18c5d4 100644
--- a/spec/lib/admin/metrics/measure/new_users_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/new_users_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::NewUsersMeasure do
+RSpec.describe Admin::Metrics::Measure::NewUsersMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/measure/opened_reports_measure_spec.rb b/spec/lib/admin/metrics/measure/opened_reports_measure_spec.rb
index d5ba78527ea2ac..f4d3a66454a297 100644
--- a/spec/lib/admin/metrics/measure/opened_reports_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/opened_reports_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::OpenedReportsMeasure do
+RSpec.describe Admin::Metrics::Measure::OpenedReportsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/measure/resolved_reports_measure_spec.rb b/spec/lib/admin/metrics/measure/resolved_reports_measure_spec.rb
index f7b497590d3df9..432dbbe79635de 100644
--- a/spec/lib/admin/metrics/measure/resolved_reports_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/resolved_reports_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::ResolvedReportsMeasure do
+RSpec.describe Admin::Metrics::Measure::ResolvedReportsMeasure do
subject { described_class.new(start_at, end_at, params) }
let(:start_at) { 2.days.ago }
diff --git a/spec/lib/admin/metrics/measure/tag_accounts_measure_spec.rb b/spec/lib/admin/metrics/measure/tag_accounts_measure_spec.rb
index b33ae7bb7106f3..577b1260ff044a 100644
--- a/spec/lib/admin/metrics/measure/tag_accounts_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/tag_accounts_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::TagAccountsMeasure do
+RSpec.describe Admin::Metrics::Measure::TagAccountsMeasure do
subject { described_class.new(start_at, end_at, params) }
let!(:tag) { Fabricate(:tag) }
diff --git a/spec/lib/admin/metrics/measure/tag_servers_measure_spec.rb b/spec/lib/admin/metrics/measure/tag_servers_measure_spec.rb
index e1e2ced43a5802..42715e5adc78e0 100644
--- a/spec/lib/admin/metrics/measure/tag_servers_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/tag_servers_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::TagServersMeasure do
+RSpec.describe Admin::Metrics::Measure::TagServersMeasure do
subject { described_class.new(start_at, end_at, params) }
let!(:tag) { Fabricate(:tag) }
diff --git a/spec/lib/admin/metrics/measure/tag_uses_measure_spec.rb b/spec/lib/admin/metrics/measure/tag_uses_measure_spec.rb
index dd66f00de05694..b258455dabbb21 100644
--- a/spec/lib/admin/metrics/measure/tag_uses_measure_spec.rb
+++ b/spec/lib/admin/metrics/measure/tag_uses_measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure::TagUsesMeasure do
+RSpec.describe Admin::Metrics::Measure::TagUsesMeasure do
subject { described_class.new(start_at, end_at, params) }
let!(:tag) { Fabricate(:tag) }
diff --git a/spec/lib/admin/metrics/measure_spec.rb b/spec/lib/admin/metrics/measure_spec.rb
index c9809b0f792d30..49a5aecc611cc4 100644
--- a/spec/lib/admin/metrics/measure_spec.rb
+++ b/spec/lib/admin/metrics/measure_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::Metrics::Measure do
+RSpec.describe Admin::Metrics::Measure do
describe '.retrieve' do
subject { described_class.retrieve(reports, start_at, end_at, params) }
diff --git a/spec/lib/admin/system_check/base_check_spec.rb b/spec/lib/admin/system_check/base_check_spec.rb
index fdd9f6b6c44d5c..769e0e1d180ebe 100644
--- a/spec/lib/admin/system_check/base_check_spec.rb
+++ b/spec/lib/admin/system_check/base_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::BaseCheck do
+RSpec.describe Admin::SystemCheck::BaseCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/database_schema_check_spec.rb b/spec/lib/admin/system_check/database_schema_check_spec.rb
index db1dcb52fa43e2..311d5249563ea2 100644
--- a/spec/lib/admin/system_check/database_schema_check_spec.rb
+++ b/spec/lib/admin/system_check/database_schema_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::DatabaseSchemaCheck do
+RSpec.describe Admin::SystemCheck::DatabaseSchemaCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/elasticsearch_check_spec.rb b/spec/lib/admin/system_check/elasticsearch_check_spec.rb
index 8f210579d000ac..05d204c4530698 100644
--- a/spec/lib/admin/system_check/elasticsearch_check_spec.rb
+++ b/spec/lib/admin/system_check/elasticsearch_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::ElasticsearchCheck do
+RSpec.describe Admin::SystemCheck::ElasticsearchCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/media_privacy_check_spec.rb b/spec/lib/admin/system_check/media_privacy_check_spec.rb
index 316bf121561f10..0d5bcdb3e87a6b 100644
--- a/spec/lib/admin/system_check/media_privacy_check_spec.rb
+++ b/spec/lib/admin/system_check/media_privacy_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::MediaPrivacyCheck do
+RSpec.describe Admin::SystemCheck::MediaPrivacyCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/message_spec.rb b/spec/lib/admin/system_check/message_spec.rb
index c0671f34525ff5..81ef4f2f09d40f 100644
--- a/spec/lib/admin/system_check/message_spec.rb
+++ b/spec/lib/admin/system_check/message_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::Message do
+RSpec.describe Admin::SystemCheck::Message do
subject(:check) { described_class.new(:key_value, :value_value, :action_value, :critical_value) }
it 'providers readers when initialized' do
diff --git a/spec/lib/admin/system_check/rules_check_spec.rb b/spec/lib/admin/system_check/rules_check_spec.rb
index fb3293fb2d0615..32650d9cd8a410 100644
--- a/spec/lib/admin/system_check/rules_check_spec.rb
+++ b/spec/lib/admin/system_check/rules_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::RulesCheck do
+RSpec.describe Admin::SystemCheck::RulesCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/sidekiq_process_check_spec.rb b/spec/lib/admin/system_check/sidekiq_process_check_spec.rb
index 9bd9daddf6722f..992fd7aee0f378 100644
--- a/spec/lib/admin/system_check/sidekiq_process_check_spec.rb
+++ b/spec/lib/admin/system_check/sidekiq_process_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::SidekiqProcessCheck do
+RSpec.describe Admin::SystemCheck::SidekiqProcessCheck do
subject(:check) { described_class.new(user) }
let(:user) { Fabricate(:user) }
diff --git a/spec/lib/admin/system_check/software_version_check_spec.rb b/spec/lib/admin/system_check/software_version_check_spec.rb
index de4335fc519fc2..1affaa3a969d82 100644
--- a/spec/lib/admin/system_check/software_version_check_spec.rb
+++ b/spec/lib/admin/system_check/software_version_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck::SoftwareVersionCheck do
+RSpec.describe Admin::SystemCheck::SoftwareVersionCheck do
include RoutingHelper
subject(:check) { described_class.new(user) }
diff --git a/spec/lib/admin/system_check_spec.rb b/spec/lib/admin/system_check_spec.rb
index 30048fd3ade0e0..92852ab025baa8 100644
--- a/spec/lib/admin/system_check_spec.rb
+++ b/spec/lib/admin/system_check_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Admin::SystemCheck do
+RSpec.describe Admin::SystemCheck do
let(:user) { Fabricate(:user) }
describe 'perform' do
diff --git a/spec/lib/annual_report_spec.rb b/spec/lib/annual_report_spec.rb
index ffb742697b3f09..bd4d0f33876a06 100644
--- a/spec/lib/annual_report_spec.rb
+++ b/spec/lib/annual_report_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe AnnualReport do
+RSpec.describe AnnualReport do
describe '#generate' do
subject { described_class.new(account, Time.zone.now.year) }
diff --git a/spec/lib/cache_buster_spec.rb b/spec/lib/cache_buster_spec.rb
index 84085608e8544e..f7cff9c1c36050 100644
--- a/spec/lib/cache_buster_spec.rb
+++ b/spec/lib/cache_buster_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe CacheBuster do
+RSpec.describe CacheBuster do
subject { described_class.new(secret_header: secret_header, secret: secret, http_method: http_method) }
let(:secret_header) { nil }
diff --git a/spec/lib/connection_pool/shared_connection_pool_spec.rb b/spec/lib/connection_pool/shared_connection_pool_spec.rb
index a2fe75f742a78b..2352703b5a376c 100644
--- a/spec/lib/connection_pool/shared_connection_pool_spec.rb
+++ b/spec/lib/connection_pool/shared_connection_pool_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ConnectionPool::SharedConnectionPool do
+RSpec.describe ConnectionPool::SharedConnectionPool do
subject { described_class.new(size: 5, timeout: 5) { |site| mini_connection_class.new(site) } }
let(:mini_connection_class) do
diff --git a/spec/lib/connection_pool/shared_timed_stack_spec.rb b/spec/lib/connection_pool/shared_timed_stack_spec.rb
index 04d550eec57156..7469664ea0acb1 100644
--- a/spec/lib/connection_pool/shared_timed_stack_spec.rb
+++ b/spec/lib/connection_pool/shared_timed_stack_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ConnectionPool::SharedTimedStack do
+RSpec.describe ConnectionPool::SharedTimedStack do
subject { described_class.new(5) { |site| mini_connection_class.new(site) } }
let(:mini_connection_class) do
diff --git a/spec/lib/content_security_policy_spec.rb b/spec/lib/content_security_policy_spec.rb
index 27a3e8025731a3..5ecea6054310da 100644
--- a/spec/lib/content_security_policy_spec.rb
+++ b/spec/lib/content_security_policy_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe ContentSecurityPolicy do
+RSpec.describe ContentSecurityPolicy do
subject { described_class.new }
around do |example|
diff --git a/spec/lib/delivery_failure_tracker_spec.rb b/spec/lib/delivery_failure_tracker_spec.rb
index c8179ebd91cdea..40c8adc4c80620 100644
--- a/spec/lib/delivery_failure_tracker_spec.rb
+++ b/spec/lib/delivery_failure_tracker_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe DeliveryFailureTracker do
+RSpec.describe DeliveryFailureTracker do
subject { described_class.new('http://example.com/inbox') }
describe '#track_success!' do
diff --git a/spec/lib/extractor_spec.rb b/spec/lib/extractor_spec.rb
index af5c62d4c8a3a9..bc3ee8ac496a2b 100644
--- a/spec/lib/extractor_spec.rb
+++ b/spec/lib/extractor_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Extractor do
+RSpec.describe Extractor do
describe 'extract_mentions_or_lists_with_indices' do
it 'returns an empty array if the given string does not have at signs' do
text = 'a string without at signs'
diff --git a/spec/lib/fast_ip_map_spec.rb b/spec/lib/fast_ip_map_spec.rb
index 78b3ddb054258e..a3a647e3e3a35b 100644
--- a/spec/lib/fast_ip_map_spec.rb
+++ b/spec/lib/fast_ip_map_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe FastIpMap do
+RSpec.describe FastIpMap do
describe '#include?' do
subject { described_class.new([IPAddr.new('20.4.0.0/16'), IPAddr.new('145.22.30.0/24'), IPAddr.new('189.45.86.3')]) }
diff --git a/spec/lib/hashtag_normalizer_spec.rb b/spec/lib/hashtag_normalizer_spec.rb
index fbb9f37c07076b..796445043a3b1f 100644
--- a/spec/lib/hashtag_normalizer_spec.rb
+++ b/spec/lib/hashtag_normalizer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe HashtagNormalizer do
+RSpec.describe HashtagNormalizer do
subject { described_class.new }
describe '#normalize' do
diff --git a/spec/lib/importer/accounts_index_importer_spec.rb b/spec/lib/importer/accounts_index_importer_spec.rb
index 73f9bce39914d9..a5d11c747ad256 100644
--- a/spec/lib/importer/accounts_index_importer_spec.rb
+++ b/spec/lib/importer/accounts_index_importer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Importer::AccountsIndexImporter do
+RSpec.describe Importer::AccountsIndexImporter do
describe 'import!' do
let(:pool) { Concurrent::FixedThreadPool.new(5) }
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
diff --git a/spec/lib/importer/base_importer_spec.rb b/spec/lib/importer/base_importer_spec.rb
index 78e9a869b8beed..0d12f975aa21c9 100644
--- a/spec/lib/importer/base_importer_spec.rb
+++ b/spec/lib/importer/base_importer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Importer::BaseImporter do
+RSpec.describe Importer::BaseImporter do
describe 'import!' do
let(:pool) { Concurrent::FixedThreadPool.new(5) }
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
diff --git a/spec/lib/importer/public_statuses_index_importer_spec.rb b/spec/lib/importer/public_statuses_index_importer_spec.rb
index bc7c038a97c5a8..2407717409bdfe 100644
--- a/spec/lib/importer/public_statuses_index_importer_spec.rb
+++ b/spec/lib/importer/public_statuses_index_importer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Importer::PublicStatusesIndexImporter do
+RSpec.describe Importer::PublicStatusesIndexImporter do
describe 'import!' do
let(:pool) { Concurrent::FixedThreadPool.new(5) }
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
diff --git a/spec/lib/importer/statuses_index_importer_spec.rb b/spec/lib/importer/statuses_index_importer_spec.rb
index d5e1c9f2cb9a0f..f6fac3bd678fc5 100644
--- a/spec/lib/importer/statuses_index_importer_spec.rb
+++ b/spec/lib/importer/statuses_index_importer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Importer::StatusesIndexImporter do
+RSpec.describe Importer::StatusesIndexImporter do
describe 'import!' do
let(:pool) { Concurrent::FixedThreadPool.new(5) }
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
diff --git a/spec/lib/importer/tags_index_importer_spec.rb b/spec/lib/importer/tags_index_importer_spec.rb
index 348990c01e8235..44de9e7c3459ad 100644
--- a/spec/lib/importer/tags_index_importer_spec.rb
+++ b/spec/lib/importer/tags_index_importer_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Importer::TagsIndexImporter do
+RSpec.describe Importer::TagsIndexImporter do
describe 'import!' do
let(:pool) { Concurrent::FixedThreadPool.new(5) }
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
diff --git a/spec/lib/mastodon/cli/accounts_spec.rb b/spec/lib/mastodon/cli/accounts_spec.rb
index 3988e0b0271836..f6cc28297a94cd 100644
--- a/spec/lib/mastodon/cli/accounts_spec.rb
+++ b/spec/lib/mastodon/cli/accounts_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/accounts'
-describe Mastodon::CLI::Accounts do
+RSpec.describe Mastodon::CLI::Accounts do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/cache_spec.rb b/spec/lib/mastodon/cli/cache_spec.rb
index 247a14f9e2713f..dc571238d21f33 100644
--- a/spec/lib/mastodon/cli/cache_spec.rb
+++ b/spec/lib/mastodon/cli/cache_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/cache'
-describe Mastodon::CLI::Cache do
+RSpec.describe Mastodon::CLI::Cache do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/canonical_email_blocks_spec.rb b/spec/lib/mastodon/cli/canonical_email_blocks_spec.rb
index 1745ea01bf3311..faa5ec7cb83f72 100644
--- a/spec/lib/mastodon/cli/canonical_email_blocks_spec.rb
+++ b/spec/lib/mastodon/cli/canonical_email_blocks_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/canonical_email_blocks'
-describe Mastodon::CLI::CanonicalEmailBlocks do
+RSpec.describe Mastodon::CLI::CanonicalEmailBlocks do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/domains_spec.rb b/spec/lib/mastodon/cli/domains_spec.rb
index 448e6fe42b34e7..d1c26546f04dd9 100644
--- a/spec/lib/mastodon/cli/domains_spec.rb
+++ b/spec/lib/mastodon/cli/domains_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/domains'
-describe Mastodon::CLI::Domains do
+RSpec.describe Mastodon::CLI::Domains do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/email_domain_blocks_spec.rb b/spec/lib/mastodon/cli/email_domain_blocks_spec.rb
index 55e3da0bb89be7..a5fbd23e652a63 100644
--- a/spec/lib/mastodon/cli/email_domain_blocks_spec.rb
+++ b/spec/lib/mastodon/cli/email_domain_blocks_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/email_domain_blocks'
-describe Mastodon::CLI::EmailDomainBlocks do
+RSpec.describe Mastodon::CLI::EmailDomainBlocks do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/emoji_spec.rb b/spec/lib/mastodon/cli/emoji_spec.rb
index d05e972e77c15a..4336db17d37472 100644
--- a/spec/lib/mastodon/cli/emoji_spec.rb
+++ b/spec/lib/mastodon/cli/emoji_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/emoji'
-describe Mastodon::CLI::Emoji do
+RSpec.describe Mastodon::CLI::Emoji do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/feeds_spec.rb b/spec/lib/mastodon/cli/feeds_spec.rb
index 420cb3d5872893..75a8cb3ebc6f56 100644
--- a/spec/lib/mastodon/cli/feeds_spec.rb
+++ b/spec/lib/mastodon/cli/feeds_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/feeds'
-describe Mastodon::CLI::Feeds do
+RSpec.describe Mastodon::CLI::Feeds do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/ip_blocks_spec.rb b/spec/lib/mastodon/cli/ip_blocks_spec.rb
index d44b1b9fe44e3e..68d6b198593c61 100644
--- a/spec/lib/mastodon/cli/ip_blocks_spec.rb
+++ b/spec/lib/mastodon/cli/ip_blocks_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/ip_blocks'
-describe Mastodon::CLI::IpBlocks do
+RSpec.describe Mastodon::CLI::IpBlocks do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/main_spec.rb b/spec/lib/mastodon/cli/main_spec.rb
index 99d770a81dd188..a63b798683c4d1 100644
--- a/spec/lib/mastodon/cli/main_spec.rb
+++ b/spec/lib/mastodon/cli/main_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/main'
-describe Mastodon::CLI::Main do
+RSpec.describe Mastodon::CLI::Main do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/maintenance_spec.rb b/spec/lib/mastodon/cli/maintenance_spec.rb
index cde25d39eda357..6a15677f43ab91 100644
--- a/spec/lib/mastodon/cli/maintenance_spec.rb
+++ b/spec/lib/mastodon/cli/maintenance_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/maintenance'
-describe Mastodon::CLI::Maintenance do
+RSpec.describe Mastodon::CLI::Maintenance do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/media_spec.rb b/spec/lib/mastodon/cli/media_spec.rb
index ecc7101b6cf8c8..fa7a3161d09945 100644
--- a/spec/lib/mastodon/cli/media_spec.rb
+++ b/spec/lib/mastodon/cli/media_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/media'
-describe Mastodon::CLI::Media do
+RSpec.describe Mastodon::CLI::Media do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/preview_cards_spec.rb b/spec/lib/mastodon/cli/preview_cards_spec.rb
index 951ae3758f0642..949787a7590fab 100644
--- a/spec/lib/mastodon/cli/preview_cards_spec.rb
+++ b/spec/lib/mastodon/cli/preview_cards_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/preview_cards'
-describe Mastodon::CLI::PreviewCards do
+RSpec.describe Mastodon::CLI::PreviewCards do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/search_spec.rb b/spec/lib/mastodon/cli/search_spec.rb
index ed3789c3e7d282..8a6c2492aa43d0 100644
--- a/spec/lib/mastodon/cli/search_spec.rb
+++ b/spec/lib/mastodon/cli/search_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/search'
-describe Mastodon::CLI::Search do
+RSpec.describe Mastodon::CLI::Search do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/settings_spec.rb b/spec/lib/mastodon/cli/settings_spec.rb
index e1b353eb90296d..5565b798ef9cd1 100644
--- a/spec/lib/mastodon/cli/settings_spec.rb
+++ b/spec/lib/mastodon/cli/settings_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/settings'
-describe Mastodon::CLI::Settings do
+RSpec.describe Mastodon::CLI::Settings do
it_behaves_like 'CLI Command'
describe 'subcommand "registrations"' do
diff --git a/spec/lib/mastodon/cli/statuses_spec.rb b/spec/lib/mastodon/cli/statuses_spec.rb
index 161b7c02bbf64a..2597ad7f2741eb 100644
--- a/spec/lib/mastodon/cli/statuses_spec.rb
+++ b/spec/lib/mastodon/cli/statuses_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/statuses'
-describe Mastodon::CLI::Statuses do
+RSpec.describe Mastodon::CLI::Statuses do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/cli/upgrade_spec.rb b/spec/lib/mastodon/cli/upgrade_spec.rb
index 6861e04887655f..6861e1a06854d1 100644
--- a/spec/lib/mastodon/cli/upgrade_spec.rb
+++ b/spec/lib/mastodon/cli/upgrade_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/cli/upgrade'
-describe Mastodon::CLI::Upgrade do
+RSpec.describe Mastodon::CLI::Upgrade do
subject { cli.invoke(action, arguments, options) }
let(:cli) { described_class.new }
diff --git a/spec/lib/mastodon/migration_warning_spec.rb b/spec/lib/mastodon/migration_warning_spec.rb
index 4adf0837ab23d7..d796d1e90210ea 100644
--- a/spec/lib/mastodon/migration_warning_spec.rb
+++ b/spec/lib/mastodon/migration_warning_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'mastodon/migration_warning'
-describe Mastodon::MigrationWarning do
+RSpec.describe Mastodon::MigrationWarning do
describe 'migration_duration_warning' do
before do
allow(migration).to receive(:valid_environment?).and_return(true)
diff --git a/spec/lib/mastodon/redis_configuration_spec.rb b/spec/lib/mastodon/redis_configuration_spec.rb
index c7326fd41175a4..a48ffc80e6c743 100644
--- a/spec/lib/mastodon/redis_configuration_spec.rb
+++ b/spec/lib/mastodon/redis_configuration_spec.rb
@@ -45,6 +45,20 @@
it 'uses the url from the base config' do
expect(subject[:url]).to eq 'redis://localhost:6379/0'
end
+
+ context 'when the base config uses sentinel' do
+ around do |example|
+ ClimateControl.modify REDIS_SENTINELS: '192.168.0.1:3000,192.168.0.2:4000', REDIS_SENTINEL_MASTER: 'mainsentinel' do
+ example.run
+ end
+ end
+
+ it 'uses the sentinel configuration from base config' do
+ expect(subject[:url]).to eq 'redis://mainsentinel/0'
+ expect(subject[:name]).to eq 'mainsentinel'
+ expect(subject[:sentinels]).to contain_exactly({ host: '192.168.0.1', port: 3000 }, { host: '192.168.0.2', port: 4000 })
+ end
+ end
end
context "when the `#{prefix}_REDIS_URL` environment variable is present" do
@@ -72,6 +86,39 @@
end
end
+ shared_examples 'sentinel support' do |prefix = nil|
+ prefix = prefix ? "#{prefix}_" : ''
+
+ context 'when configuring sentinel support' do
+ around do |example|
+ ClimateControl.modify "#{prefix}REDIS_PASSWORD": 'testpass1', "#{prefix}REDIS_HOST": 'redis2.example.com', "#{prefix}REDIS_SENTINELS": '192.168.0.1:3000,192.168.0.2:4000', "#{prefix}REDIS_SENTINEL_MASTER": 'mainsentinel' do
+ example.run
+ end
+ end
+
+ it 'constructs the url using the sentinel master name' do
+ expect(subject[:url]).to eq 'redis://:testpass1@mainsentinel/0'
+ end
+
+ it 'includes the sentinel master name and list of sentinels' do
+ expect(subject[:name]).to eq 'mainsentinel'
+ expect(subject[:sentinels]).to contain_exactly({ host: '192.168.0.1', port: 3000 }, { host: '192.168.0.2', port: 4000 })
+ end
+ end
+
+ context 'when giving sentinels without port numbers' do
+ around do |example|
+ ClimateControl.modify "#{prefix}REDIS_SENTINELS": '192.168.0.1,192.168.0.2', "#{prefix}REDIS_SENTINEL_MASTER": 'mainsentinel' do
+ example.run
+ end
+ end
+
+ it 'uses the default sentinel port' do
+ expect(subject[:sentinels]).to contain_exactly({ host: '192.168.0.1', port: 26_379 }, { host: '192.168.0.2', port: 26_379 })
+ end
+ end
+ end
+
describe '#base' do
subject { redis_environment.base }
@@ -81,6 +128,8 @@
url: 'redis://localhost:6379/0',
driver: :hiredis,
namespace: nil,
+ name: nil,
+ sentinels: nil,
})
end
end
@@ -113,12 +162,15 @@
url: 'redis://:testpass@redis.example.com:3333/3',
driver: :hiredis,
namespace: nil,
+ name: nil,
+ sentinels: nil,
})
end
end
include_examples 'setting a different driver'
include_examples 'setting a namespace'
+ include_examples 'sentinel support'
end
describe '#sidekiq' do
@@ -127,6 +179,7 @@
include_examples 'secondary configuration', 'SIDEKIQ'
include_examples 'setting a different driver'
include_examples 'setting a namespace'
+ include_examples 'sentinel support', 'SIDEKIQ'
end
describe '#cache' do
@@ -139,6 +192,8 @@
namespace: 'cache',
expires_in: 10.minutes,
connect_timeout: 5,
+ name: nil,
+ sentinels: nil,
pool: {
size: 5,
timeout: 5,
@@ -166,5 +221,6 @@
include_examples 'secondary configuration', 'CACHE'
include_examples 'setting a different driver'
+ include_examples 'sentinel support', 'CACHE'
end
end
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
index 0e20f26c7c335a..f808b96289d436 100644
--- a/spec/lib/ostatus/tag_manager_spec.rb
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe OStatus::TagManager do
+RSpec.describe OStatus::TagManager do
describe '#unique_tag' do
it 'returns a unique tag' do
expect(described_class.instance.unique_tag(Time.utc(2000), 12, 'Status')).to eq 'tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Status'
diff --git a/spec/lib/paperclip/response_with_limit_adapter_spec.rb b/spec/lib/paperclip/response_with_limit_adapter_spec.rb
index baf8bf5bb72b59..3db52ffa0d85ad 100644
--- a/spec/lib/paperclip/response_with_limit_adapter_spec.rb
+++ b/spec/lib/paperclip/response_with_limit_adapter_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Paperclip::ResponseWithLimitAdapter do
+RSpec.describe Paperclip::ResponseWithLimitAdapter do
subject { described_class.new(response_with_limit) }
before { stub_request(:get, url).to_return(headers: headers, body: body) }
diff --git a/spec/lib/permalink_redirector_spec.rb b/spec/lib/permalink_redirector_spec.rb
index a0091365616f67..3f77d7665a23d2 100644
--- a/spec/lib/permalink_redirector_spec.rb
+++ b/spec/lib/permalink_redirector_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe PermalinkRedirector do
+RSpec.describe PermalinkRedirector do
let(:remote_account) { Fabricate(:account, username: 'alice', domain: 'example.com', url: 'https://example.com/@alice', id: 2) }
describe '#redirect_url' do
diff --git a/spec/lib/request_pool_spec.rb b/spec/lib/request_pool_spec.rb
index a82eb5a188c0d9..2e8c785de8b3e6 100644
--- a/spec/lib/request_pool_spec.rb
+++ b/spec/lib/request_pool_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe RequestPool do
+RSpec.describe RequestPool do
subject { described_class.new }
describe '#with' do
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index c99f18838ba432..c600a48ee24e3a 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
require 'securerandom'
-describe Request do
+RSpec.describe Request do
subject { described_class.new(:get, 'http://example.com') }
describe '#headers' do
diff --git a/spec/lib/sanitize/config_spec.rb b/spec/lib/sanitize/config_spec.rb
index a1e39153e62138..c2008544f50e95 100644
--- a/spec/lib/sanitize/config_spec.rb
+++ b/spec/lib/sanitize/config_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
-describe Sanitize::Config do
+RSpec.describe Sanitize::Config do
shared_examples 'common HTML sanitization' do
it 'keeps h1' do
expect(Sanitize.fragment('