Merge branch 'master' into glitch-soc/merge-upstream

main
Claire 4 years ago
commit ec3e2b8f72

@ -177,6 +177,32 @@ All notable changes to this project will be documented in this file.
- Fix 2FA/sign-in token sessions being valid after password change ([Gargron](https://github.com/tootsuite/mastodon/pull/14802)) - Fix 2FA/sign-in token sessions being valid after password change ([Gargron](https://github.com/tootsuite/mastodon/pull/14802))
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ThibG](https://github.com/tootsuite/mastodon/pull/15364)) - Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ThibG](https://github.com/tootsuite/mastodon/pull/15364))
## [3.2.2] - 2020-12-19
### Added
- Add `tootctl maintenance fix-duplicates` ([ThibG](https://github.com/tootsuite/mastodon/pull/14860), [Gargron](https://github.com/tootsuite/mastodon/pull/15223))
- Index corruption in the database?
- This command is for you
### Removed
- Remove dependency on unused and unmaintained http_parser.rb gem ([ThibG](https://github.com/tootsuite/mastodon/pull/14574))
### Fixed
- Fix Move handler not being triggered when failing to fetch target account ([ThibG](https://github.com/tootsuite/mastodon/pull/15107))
- Fix downloading remote media files when server returns empty filename ([ThibG](https://github.com/tootsuite/mastodon/pull/14867))
- Fix possible casing inconsistencies in hashtag search ([ThibG](https://github.com/tootsuite/mastodon/pull/14906))
- Fix updating account counters when association is not yet created ([Gargron](https://github.com/tootsuite/mastodon/pull/15108))
- Fix account processing failing because of large collections ([ThibG](https://github.com/tootsuite/mastodon/pull/15027))
- Fix resolving an account through its non-canonical form (i.e. alternate domain) ([ThibG](https://github.com/tootsuite/mastodon/pull/15187))
- Fix slow distinct queries where grouped queries are faster ([Gargron](https://github.com/tootsuite/mastodon/pull/15287))
### Security
- Fix 2FA/sign-in token sessions being valid after password change ([Gargron](https://github.com/tootsuite/mastodon/pull/14802))
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ThibG](https://github.com/tootsuite/mastodon/pull/15364))
## [3.2.1] - 2020-10-19 ## [3.2.1] - 2020-10-19
### Added ### Added

@ -15,12 +15,12 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0 version: 0.1.2
# This is the version number of the application being deployed. This version number should be # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to # incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using. # follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 3.1.5 appVersion: 3.3.0
dependencies: dependencies:
- name: elasticsearch - name: elasticsearch

@ -4,7 +4,7 @@ image:
repository: tootsuite/mastodon repository: tootsuite/mastodon
pullPolicy: Always pullPolicy: Always
# https://hub.docker.com/r/tootsuite/mastodon/tags # https://hub.docker.com/r/tootsuite/mastodon/tags
tag: v3.2.1 tag: v3.3.0
# alternatively, use `latest` for the latest release or `edge` for the image # alternatively, use `latest` for the latest release or `edge` for the image
# built from the most recent commit # built from the most recent commit
# #

@ -23,7 +23,7 @@ bn:
hosted_on: এই মাস্টাডনটি আছে %{domain} এ hosted_on: এই মাস্টাডনটি আছে %{domain} এ
instance_actor_flash: 'এই অ্যাকাউন্টটি ভার্চুয়াল এক্টর যা নিজে কোনও সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও পৃথক ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহৃত হয় এবং আপনি যদি পুরো ইনস্ট্যান্স ব্লক করতে না চান তবে অবরুদ্ধ করা উচিত নয়, সেক্ষেত্রে আপনার ডোমেন ব্লক ব্যবহার করা উচিত। instance_actor_flash: 'এই অ্যাকাউন্টটি ভার্চুয়াল এক্টর যা নিজে কোনও সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও পৃথক ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহৃত হয় এবং আপনি যদি পুরো ইনস্ট্যান্স ব্লক করতে না চান তবে অবরুদ্ধ করা উচিত নয়, সেক্ষেত্রে আপনার ডোমেন ব্লক ব্যবহার করা উচিত।
' '
learn_more: বিস্তারিত জানুন learn_more: বিস্তারিত জানুন
privacy_policy: গোপনীয়তা নীতি privacy_policy: গোপনীয়তা নীতি
see_whats_happening: কী কী হচ্ছে দেখুন see_whats_happening: কী কী হচ্ছে দেখুন

@ -8,7 +8,7 @@ hy:
scopes: Դաշտեր scopes: Դաշտեր
website: 'Յաւելուածի վէբկայք website: 'Յաւելուածի վէբկայք
' '
errors: errors:
models: models:
doorkeeper/application: doorkeeper/application:
@ -52,7 +52,7 @@ hy:
actions: Գործողութիւններ actions: Գործողութիւններ
application_id: 'Կլիենտի բանալի application_id: 'Կլիենտի բանալի
' '
callback_urls: URL֊ների ետկանչ callback_urls: URL֊ների ետկանչ
scopes: Դաշտեր scopes: Դաշտեր
secret: Կլիենտի գաղտնիք secret: Կլիենտի գաղտնիք
@ -147,7 +147,7 @@ hy:
write:favourites: հաւանել գրառումները write:favourites: հաւանել գրառումները
write:filters: 'ստեղծել ֆիլտրեր write:filters: 'ստեղծել ֆիլտրեր
' '
write:follows: հետեւել write:follows: հետեւել
write:lists: ստեղծել ցանկեր write:lists: ստեղծել ցանկեր
write:media: բեռնել մեդիա ֆայլեր write:media: բեռնել մեդիա ֆայլեր

@ -23,7 +23,7 @@ eu:
hosted_on: Mastodon %{domain} domeinuan ostatatua hosted_on: Mastodon %{domain} domeinuan ostatatua
instance_actor_flash: 'Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke. instance_actor_flash: 'Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke.
' '
learn_more: Ikasi gehiago learn_more: Ikasi gehiago
privacy_policy: Pribatutasun politika privacy_policy: Pribatutasun politika
see_whats_happening: Ikusi zer gertatzen ari den see_whats_happening: Ikusi zer gertatzen ari den

@ -23,7 +23,7 @@ gl:
hosted_on: Mastodon aloxado en %{domain} hosted_on: Mastodon aloxado en %{domain}
instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio. instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio.
' '
learn_more: Saber máis learn_more: Saber máis
privacy_policy: Política de privacidade privacy_policy: Política de privacidade
see_whats_happening: Ver o que está a acontecer see_whats_happening: Ver o que está a acontecer

@ -23,7 +23,7 @@ hu:
hosted_on: "%{domain} Mastodon szerver" hosted_on: "%{domain} Mastodon szerver"
instance_actor_flash: 'Ez a fiók egy virtuális szereplő, mely magát a szervert reprezentálja, nem egy felhasználót. Ez a föderáció támogatására készült, ezért nem szabad blokkolni, hacsak egy teljes szervert nem akarsz kitiltani, amire persze a domain blokkolása jobb megoldás. instance_actor_flash: 'Ez a fiók egy virtuális szereplő, mely magát a szervert reprezentálja, nem egy felhasználót. Ez a föderáció támogatására készült, ezért nem szabad blokkolni, hacsak egy teljes szervert nem akarsz kitiltani, amire persze a domain blokkolása jobb megoldás.
' '
learn_more: Tudj meg többet learn_more: Tudj meg többet
privacy_policy: Adatvédelmi szabályzat privacy_policy: Adatvédelmi szabályzat
see_whats_happening: Nézd, mi történik see_whats_happening: Nézd, mi történik

@ -23,7 +23,7 @@ hy:
hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում
instance_actor_flash: 'Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ instance_actor_flash: 'Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։
' '
learn_more: Իմանալ ավելին learn_more: Իմանալ ավելին
privacy_policy: Գաղտնիության քաղաքականություն privacy_policy: Գաղտնիության քաղաքականություն
see_whats_happening: Տես ինչ ա կատարվում see_whats_happening: Տես ինչ ա կատարվում

@ -23,7 +23,7 @@ id:
hosted_on: Mastodon dihosting di %{domain} hosted_on: Mastodon dihosting di %{domain}
instance_actor_flash: 'Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain. instance_actor_flash: 'Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain.
' '
learn_more: Pelajari selengkapnya learn_more: Pelajari selengkapnya
privacy_policy: Kebijakan Privasi privacy_policy: Kebijakan Privasi
see_whats_happening: Lihat apa yang sedang terjadi see_whats_happening: Lihat apa yang sedang terjadi

@ -23,7 +23,7 @@ ja:
hosted_on: Mastodon hosted on %{domain} hosted_on: Mastodon hosted on %{domain}
instance_actor_flash: 'このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 instance_actor_flash: 'このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。
' '
learn_more: もっと詳しく learn_more: もっと詳しく
privacy_policy: プライバシーポリシー privacy_policy: プライバシーポリシー
see_whats_happening: やりとりを見てみる see_whats_happening: やりとりを見てみる

@ -23,7 +23,7 @@ nl:
hosted_on: Mastodon op %{domain} hosted_on: Mastodon op %{domain}
instance_actor_flash: 'Dit account is een virtuel actor dat wordt gebruikt om de server zelf te vertegenwoordigen en is geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden geblokkeerd, tenzij je de hele server wilt blokkeren. In zo''n geval dien je echter een domeinblokkade te gebruiken. instance_actor_flash: 'Dit account is een virtuel actor dat wordt gebruikt om de server zelf te vertegenwoordigen en is geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden geblokkeerd, tenzij je de hele server wilt blokkeren. In zo''n geval dien je echter een domeinblokkade te gebruiken.
' '
learn_more: Meer leren learn_more: Meer leren
privacy_policy: Privacybeleid privacy_policy: Privacybeleid
see_whats_happening: Kijk wat er aan de hand is see_whats_happening: Kijk wat er aan de hand is

@ -23,7 +23,7 @@
hosted_on: Mastodon driftet på %{domain} hosted_on: Mastodon driftet på %{domain}
instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet.
' '
learn_more: Lær mer learn_more: Lær mer
privacy_policy: Privatlivsretningslinjer privacy_policy: Privatlivsretningslinjer
see_whats_happening: Se hva som skjer see_whats_happening: Se hva som skjer

@ -23,7 +23,7 @@ sc:
hosted_on: Mastodon acasagiadu in %{domain} hosted_on: Mastodon acasagiadu in %{domain}
instance_actor_flash: 'Custu contu est un''atore virtuale impreadu pro rapresentare su serbidore matessi, no est un''utente individuale. Benit impreadu pro punnas de federatzione e non lu dias dèpere blocare si non cheres blocare su domìniu intreu, e in cussu casu dias dèpere impreare unu blocu de domìniu. instance_actor_flash: 'Custu contu est un''atore virtuale impreadu pro rapresentare su serbidore matessi, no est un''utente individuale. Benit impreadu pro punnas de federatzione e non lu dias dèpere blocare si non cheres blocare su domìniu intreu, e in cussu casu dias dèpere impreare unu blocu de domìniu.
' '
learn_more: Àteras informatziones learn_more: Àteras informatziones
privacy_policy: Polìtica de riservadesa privacy_policy: Polìtica de riservadesa
see_whats_happening: Càstia su chi est acontessende see_whats_happening: Càstia su chi est acontessende

@ -23,7 +23,7 @@ sv:
hosted_on: Mastodon-värd på %{domain} hosted_on: Mastodon-värd på %{domain}
instance_actor_flash: 'Detta konto är en virtuell agent som används för att representera servern själv och inte någon individuell användare. Det används av sammanslutningsskäl och ska inte blockeras såvitt du inte vill blockera hela instansen, och för detta fall ska domänblockering användas. instance_actor_flash: 'Detta konto är en virtuell agent som används för att representera servern själv och inte någon individuell användare. Det används av sammanslutningsskäl och ska inte blockeras såvitt du inte vill blockera hela instansen, och för detta fall ska domänblockering användas.
' '
learn_more: Lär dig mer learn_more: Lär dig mer
privacy_policy: Integritetspolicy privacy_policy: Integritetspolicy
see_whats_happening: Se vad som händer see_whats_happening: Se vad som händer

@ -23,7 +23,7 @@ uk:
hosted_on: Mastodon розміщено на %{domain} hosted_on: Mastodon розміщено на %{domain}
instance_actor_flash: 'Цей обліковий запис є віртуальною особою, яка використовується для представлення самого сервера, а не певного користувача. Він використовується для потреб федерації і не повинен бути заблокований, якщо тільки ви не хочете заблокувати весь сервер, у цьому випадку ви повинні скористатися блокуванням домену. instance_actor_flash: 'Цей обліковий запис є віртуальною особою, яка використовується для представлення самого сервера, а не певного користувача. Він використовується для потреб федерації і не повинен бути заблокований, якщо тільки ви не хочете заблокувати весь сервер, у цьому випадку ви повинні скористатися блокуванням домену.
' '
learn_more: Дізнатися більше learn_more: Дізнатися більше
privacy_policy: Політика приватності privacy_policy: Політика приватності
see_whats_happening: Погляньте, що відбувається see_whats_happening: Погляньте, що відбувається

@ -23,7 +23,7 @@ vi:
hosted_on: "%{domain} vận hành nhờ Mastodon" hosted_on: "%{domain} vận hành nhờ Mastodon"
instance_actor_flash: 'Đây là một tài khoản ảo được sử dụng để đại diện cho máy chủ chứ không phải bất kỳ người dùng cá nhân nào. Nó được sử dụng cho mục đích liên kết và không nên chặn trừ khi bạn muốn chặn toàn bộ máy chủ. instance_actor_flash: 'Đây là một tài khoản ảo được sử dụng để đại diện cho máy chủ chứ không phải bất kỳ người dùng cá nhân nào. Nó được sử dụng cho mục đích liên kết và không nên chặn trừ khi bạn muốn chặn toàn bộ máy chủ.
' '
learn_more: Tìm hiểu learn_more: Tìm hiểu
privacy_policy: Chính sách bảo mật privacy_policy: Chính sách bảo mật
see_whats_happening: Dòng thời gian see_whats_happening: Dòng thời gian

@ -23,7 +23,7 @@ zh-CN:
hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例 hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例
instance_actor_flash: '这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 instance_actor_flash: '这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。
' '
learn_more: 了解详情 learn_more: 了解详情
privacy_policy: 隐私政策 privacy_policy: 隐私政策
see_whats_happening: 看一看现在在发生什么 see_whats_happening: 看一看现在在发生什么

@ -23,7 +23,7 @@ zh-TW:
hosted_on: 在 %{domain} 運作的 Mastodon 站點 hosted_on: 在 %{domain} 運作的 Mastodon 站點
instance_actor_flash: '這個帳戶是個用來代表伺服器自已的虛擬角色,而不是實際的使用者。它是用來聯盟用的,除非您想要封鎖整個站台,不然不該封鎖它。但要封鎖整個站台,您可以使用網域封鎖功能。 instance_actor_flash: '這個帳戶是個用來代表伺服器自已的虛擬角色,而不是實際的使用者。它是用來聯盟用的,除非您想要封鎖整個站台,不然不該封鎖它。但要封鎖整個站台,您可以使用網域封鎖功能。
' '
learn_more: 了解詳細 learn_more: 了解詳細
privacy_policy: 隱私權政策 privacy_policy: 隱私權政策
see_whats_happening: 看看發生什麼事 see_whats_happening: 看看發生什麼事

@ -245,10 +245,10 @@ module Mastodon
domain configuration. domain configuration.
LONG_DESC LONG_DESC
def fix_duplicates def fix_duplicates
Account.remote.select(:uri, 'count(*)').group(:uri).having('count(*) > 1').pluck_each(:uri) do |uri| Account.remote.select(:uri, 'count(*)').group(:uri).having('count(*) > 1').pluck(:uri).each do |uri|
say("Duplicates found for #{uri}") say("Duplicates found for #{uri}")
begin begin
ActivityPub::FetchRemotAccountService.new.call(uri) unless options[:dry_run] ActivityPub::FetchRemoteAccountService.new.call(uri) unless options[:dry_run]
rescue => e rescue => e
say("Error processing #{uri}: #{e}", :red) say("Error processing #{uri}: #{e}", :red)
end end

Loading…
Cancel
Save