Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream changes up to 1cf30717dbe7a0038a645c62f19deef7efc42207 #2967

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ GEM
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
excon (0.112.0)
excon (1.2.3)
fabrication (2.31.0)
faker (3.5.1)
i18n (>= 1.8.11, < 2)
Expand All @@ -244,15 +244,15 @@ GEM
flatware-rspec (2.3.4)
flatware (= 2.3.4)
rspec (>= 3.6)
fog-core (2.5.0)
fog-core (2.6.0)
builder
excon (~> 0.71)
excon (~> 1.0)
formatador (>= 0.2, < 2.0)
mime-types
fog-json (1.2.0)
fog-core
multi_json (~> 1.10)
fog-openstack (1.1.3)
fog-openstack (1.1.4)
fog-core (~> 2.1)
fog-json (>= 1.0)
formatador (1.1.0)
Expand Down Expand Up @@ -350,7 +350,7 @@ GEM
addressable (~> 2.8)
bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2)
jwt (2.9.3)
jwt (2.10.1)
base64
kaminari (1.2.2)
activesupport (>= 4.1.0)
Expand Down Expand Up @@ -407,7 +407,7 @@ GEM
mime-types (3.6.0)
logger
mime-types-data (~> 3.2015)
mime-types-data (3.2025.0107)
mime-types-data (3.2025.0204)
mini_mime (1.1.5)
mini_portile2 (2.8.8)
minitest (5.25.4)
Expand Down Expand Up @@ -461,7 +461,7 @@ GEM
validate_email
validate_url
webfinger (~> 1.2)
openssl (3.2.1)
openssl (3.3.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
opentelemetry-api (1.4.0)
Expand Down Expand Up @@ -697,7 +697,7 @@ GEM
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.2)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
Expand All @@ -707,7 +707,7 @@ GEM
rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (7.1.0)
rspec-rails (7.1.1)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
Expand Down Expand Up @@ -753,7 +753,7 @@ GEM
ruby-saml (1.17.0)
nokogiri (>= 1.13.10)
rexml
ruby-vips (2.2.2)
ruby-vips (2.2.3)
ffi (~> 1.12)
logger
rubyzip (2.4.1)
Expand Down Expand Up @@ -825,7 +825,7 @@ GEM
thor (1.3.2)
tilt (2.6.0)
timeout (0.4.3)
tpm-key_attestation (0.12.1)
tpm-key_attestation (0.14.0)
bindata (~> 2.4)
openssl (> 2.0)
openssl-signature_algorithm (~> 1.0)
Expand Down Expand Up @@ -860,18 +860,18 @@ GEM
public_suffix
warden (1.2.9)
rack (>= 2.0.9)
webauthn (3.2.2)
webauthn (3.3.0)
android_key_attestation (~> 0.3.0)
bindata (~> 2.4)
cbor (~> 0.5.9)
cose (~> 1.1)
openssl (>= 2.2)
safety_net_attestation (~> 0.4.0)
tpm-key_attestation (~> 0.12.0)
tpm-key_attestation (~> 0.14.0)
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.24.0)
webmock (3.25.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
Expand Down
36 changes: 18 additions & 18 deletions app/javascript/mastodon/locales/eo.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"account.languages": "Ŝanĝi la abonitajn lingvojn",
"account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}",
"account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.",
"account.media": "Plurmedio",
"account.media": "Aŭdovidaĵoj",
"account.mention": "Mencii @{name}",
"account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
"account.mute": "Silentigi @{name}",
Expand Down Expand Up @@ -172,7 +172,7 @@
"column_search.cancel": "Nuligi",
"column_subheading.settings": "Agordoj",
"community.column_settings.local_only": "Nur loka",
"community.column_settings.media_only": "Nur plurmedio",
"community.column_settings.media_only": "Nur vidaŭdaĵoj",
"community.column_settings.remote_only": "Nur fora",
"compose.language.change": "Ŝanĝi lingvon",
"compose.language.search": "Serĉi lingvojn...",
Expand Down Expand Up @@ -208,7 +208,7 @@
"confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
"confirmations.delete_list.title": "Ĉu forigi liston?",
"confirmations.discard_edit_media.confirm": "Forĵeti",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la plurmedio, ĉu vi forĵetu ilin malgraŭe?",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭvidigo de la vidaŭdaĵo, ĉu vi forĵetu ilin malgraŭe?",
"confirmations.edit.confirm": "Redakti",
"confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.edit.title": "Ĉu superskribi afiŝon?",
Expand Down Expand Up @@ -459,7 +459,7 @@
"keyboard_shortcuts.muted": "Malfermu la liston de silentigitaj uzantoj",
"keyboard_shortcuts.my_profile": "Malfermu vian profilon",
"keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon",
"keyboard_shortcuts.open_media": "Malfermu plurmedion",
"keyboard_shortcuts.open_media": "Malfermi vidaŭdaĵon",
"keyboard_shortcuts.pinned": "Malfermu alpinglitajn afiŝojn-liston",
"keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo",
"keyboard_shortcuts.reply": "Respondu al afiŝo",
Expand All @@ -468,7 +468,7 @@
"keyboard_shortcuts.spoilers": "Montri/kaŝi CW-kampon",
"keyboard_shortcuts.start": "Malfermu \"por komenci\" kolumnon",
"keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ CW",
"keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi plurmedion",
"keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi vidaŭdaĵojn",
"keyboard_shortcuts.toot": "Komencu novan afiŝon",
"keyboard_shortcuts.translate": "Traduki afiŝon",
"keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon",
Expand Down Expand Up @@ -540,7 +540,7 @@
"navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj",
"navigation_bar.lists": "Listoj",
"navigation_bar.logout": "Elsaluti",
"navigation_bar.moderation": "Modereco",
"navigation_bar.moderation": "Reguligo",
"navigation_bar.mutes": "Silentigitaj uzantoj",
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
"navigation_bar.personal": "Persone",
Expand Down Expand Up @@ -574,11 +574,11 @@
"notification.mention": "Mencii",
"notification.mentioned_you": "{name} menciis vin",
"notification.moderation-warning.learn_more": "Lerni pli",
"notification.moderation_warning": "Vi ricevis moderigan averton",
"notification.moderation_warning": "Vi ricevis reguligan averton",
"notification.moderation_warning.action_delete_statuses": "Kelkaj el viaj afiŝoj estis forigitaj.",
"notification.moderation_warning.action_disable": "Via konto estas malŝaltita.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Kelkaj el viaj afiŝoj estis markitaj kiel sentemaj.",
"notification.moderation_warning.action_none": "Via konto ricevis moderigan averton.",
"notification.moderation_warning.action_none": "Via konto ricevis reguligan averton.",
"notification.moderation_warning.action_sensitive": "Viaj afiŝoj estos markitaj kiel sentemaj ekde nun.",
"notification.moderation_warning.action_silence": "Via konto estis limigita.",
"notification.moderation_warning.action_suspend": "Via konto estas malakceptita.",
Expand All @@ -605,8 +605,8 @@
"notification_requests.dismiss_multiple": "{count, plural, one {Malakcepti # peton…} other {# Malakcepti # petojn…}}",
"notification_requests.edit_selection": "Redakti",
"notification_requests.exit_selection": "Farita",
"notification_requests.explainer_for_limited_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto estis limigita de moderanto.",
"notification_requests.explainer_for_limited_remote_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto aŭ ĝia servilo estis limigitaj de moderanto.",
"notification_requests.explainer_for_limited_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto estis limigita de reguligisto.",
"notification_requests.explainer_for_limited_remote_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto aŭ ĝia servilo estis limigitaj de reguligisto.",
"notification_requests.maximize": "Maksimumigi",
"notification_requests.minimize_banner": "Minimumigi filtritajn sciigojn-rubandon",
"notification_requests.notifications_from": "Sciigoj de {name}",
Expand Down Expand Up @@ -653,8 +653,8 @@
"notifications.policy.drop_hint": "Sendi al la malpleno, por neniam esti vidita denove",
"notifications.policy.filter": "Filtri",
"notifications.policy.filter_hint": "Sendi al filtritaj sciigoj-enirkesto",
"notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj moderigantoj",
"notifications.policy.filter_limited_accounts_title": "Moderigitaj kontoj",
"notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj reguligistoj",
"notifications.policy.filter_limited_accounts_title": "Reguligitaj kontoj",
"notifications.policy.filter_new_accounts.hint": "Kreite en la {days, plural, one {lasta tago} other {# lastaj tagoj}}",
"notifications.policy.filter_new_accounts_title": "Novaj kontoj",
"notifications.policy.filter_not_followers_hint": "Inkluzive de homoj, kiuj sekvis vin malpli ol {days, plural, one {unu tago} other {# tagoj}}",
Expand Down Expand Up @@ -781,7 +781,7 @@
"search.quick_action.go_to_account": "Iri al profilo {x}",
"search.quick_action.go_to_hashtag": "Iri al kradvorto {x}",
"search.quick_action.open_url": "Malfermi URL en Mastodono",
"search.quick_action.status_search": "Afiŝoj kiuj kongruas kun {x}",
"search.quick_action.status_search": "Afiŝoj kiuj konformas kun {x}",
"search.search_or_paste": "Serĉu aŭ algluu URL-on",
"search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.",
Expand All @@ -796,7 +796,7 @@
"search_results.hashtags": "Kradvortoj",
"search_results.no_results": "Ne estas rezultoj.",
"search_results.no_search_yet": "Provu serĉi afiŝojn, profilojn aŭ kradvortojn.",
"search_results.see_all": "Vidu ĉiujn",
"search_results.see_all": "Vidi ĉiujn",
"search_results.statuses": "Afiŝoj",
"search_results.title": "Serĉu \"{q}\"",
"server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
Expand All @@ -809,9 +809,9 @@
"sign_in_banner.mastodon_is": "Mastodon estas la plej bona maniero resti ĝisdata pri aktualaĵoj.",
"sign_in_banner.sign_in": "Ensaluti",
"sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi",
"status.admin_account": "Malfermi fasadon de moderigado por @{name}",
"status.admin_domain": "Malfermu moderigan interfacon por {domain}",
"status.admin_status": "Malfermi ĉi tiun afiŝon en la kontrola interfaco",
"status.admin_account": "Malfermi fasadon de la reguligado por @{name}",
"status.admin_domain": "Malfermi fasadon de la reguligado por {domain}",
"status.admin_status": "Malfermi ĉi tiun afiŝon en la fasado de la reguligado",
"status.block": "Bloki @{name}",
"status.bookmark": "Aldoni al la legosignoj",
"status.cancel_reblog_private": "Ne plu diskonigi",
Expand All @@ -834,7 +834,7 @@
"status.load_more": "Ŝargi pli",
"status.media.open": "Alklaki por malfermi",
"status.media.show": "Alklaki por montri",
"status.media_hidden": "Plurmedio kaŝita",
"status.media_hidden": "Vidaŭdaĵo kaŝita",
"status.mention": "Mencii @{name}",
"status.more": "Pli",
"status.mute": "Silentigi @{name}",
Expand Down
8 changes: 8 additions & 0 deletions app/javascript/mastodon/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,11 @@
"alert.unexpected.title": "エラー!",
"alt_text_badge.title": "代替テキスト",
"alt_text_modal.add_alt_text": "代替テキストを追加",
"alt_text_modal.add_text_from_image": "画像からテキストを追加",
"alt_text_modal.cancel": "キャンセル",
"alt_text_modal.change_thumbnail": "サムネイルを変更",
"alt_text_modal.describe_for_people_with_hearing_impairments": "耳の不自由な方のために説明してください…",
"alt_text_modal.describe_for_people_with_visual_impairments": "目が不自由な方のために説明してください…",
"alt_text_modal.done": "完了",
"announcement.announcement": "お知らせ",
"annual_report.summary.archetype.booster": "トレンドハンター",
Expand Down Expand Up @@ -215,6 +218,10 @@
"confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?",
"confirmations.logout.title": "ログアウトしようとしています",
"confirmations.missing_alt_text.confirm": "代替テキストを追加",
"confirmations.missing_alt_text.message": "あなたの投稿には大体テキストのないメディアが含まれています。説明文を追加することで、より多くの人がコンテンツにアクセスできるようになります。",
"confirmations.missing_alt_text.secondary": "そのまま投稿する",
"confirmations.missing_alt_text.title": "代替テキストを追加しますか?",
"confirmations.mute.confirm": "ミュート",
"confirmations.redraft.confirm": "削除して下書きに戻す",
"confirmations.redraft.message": "投稿を削除して下書きに戻します。この投稿へのお気に入り登録やブーストは失われ、返信は孤立することになります。よろしいですか?",
Expand Down Expand Up @@ -463,6 +470,7 @@
"keyboard_shortcuts.toggle_hidden": "CWで隠れた文を見る/隠す",
"keyboard_shortcuts.toggle_sensitivity": "非表示のメディアを見る/隠す",
"keyboard_shortcuts.toot": "新規投稿",
"keyboard_shortcuts.translate": "投稿を翻訳する",
"keyboard_shortcuts.unfocus": "投稿の入力欄・検索欄から離れる",
"keyboard_shortcuts.up": "カラム内一つ上に移動",
"lightbox.close": "閉じる",
Expand Down
2 changes: 1 addition & 1 deletion app/javascript/mastodon/locales/pt-PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@
"status.cancel_reblog_private": "Retirar impulso",
"status.cannot_reblog": "Esta publicação não pode ser impulsionada",
"status.continued_thread": "Continuação da conversa",
"status.copy": "Copiar hiperligação para a publicação",
"status.copy": "Copiar hiperligação da publicação",
"status.delete": "Eliminar",
"status.detailed_status": "Vista pormenorizada da conversa",
"status.direct": "Mencionar @{name} em privado",
Expand Down
2 changes: 2 additions & 0 deletions app/javascript/mastodon/locales/sk.json
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@
"confirmations.logout.confirm": "Odhlásiť sa",
"confirmations.logout.message": "Určite sa chcete odhlásiť?",
"confirmations.logout.title": "Odhlásiť sa?",
"confirmations.missing_alt_text.secondary": "Odošli aj tak",
"confirmations.mute.confirm": "Stíšiť",
"confirmations.redraft.confirm": "Vymazať a prepísať",
"confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.",
Expand Down Expand Up @@ -319,6 +320,7 @@
"follow_requests.unlocked_explanation": "Aj keď váš účet nie je uzamknutý, tím domény {domain} si myslel, že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
"follow_suggestions.curated_suggestion": "Výber redakcie",
"follow_suggestions.dismiss": "Znova nezobrazovať",
"follow_suggestions.featured_longer": "Ručne vybrané tímom {domain}",
"follow_suggestions.friends_of_friends_longer": "Populárne medzi ľudmi ktorých nasleduješ",
"follow_suggestions.hints.featured": "Tento profil bol ručne zvolený tímom domény {domain}.",
"follow_suggestions.hints.friends_of_friends": "Tento profil je obľúbený medzi účtami, ktoré sledujete.",
Expand Down
1 change: 1 addition & 0 deletions app/javascript/mastodon/locales/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@
"confirmations.logout.message": "Ви впевнені, що хочете вийти?",
"confirmations.logout.title": "Вийти?",
"confirmations.missing_alt_text.confirm": "Додати альтернативний текст",
"confirmations.missing_alt_text.message": "У вашому дописі є медіа без альтернативного тексту. Додавання опису допоможе зробити ваші матеріали доступними для більшої кількості людей.",
"confirmations.missing_alt_text.secondary": "Все одно опублікувати",
"confirmations.missing_alt_text.title": "Додати альтернативний текст?",
"confirmations.mute.confirm": "Приховати",
Expand Down
2 changes: 1 addition & 1 deletion app/lib/admin/system_check/media_privacy_check.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def check_s3_listing!(full_url)

def media_attachment
@media_attachment ||= begin
attachment = Account.representative.media_attachments.first
attachment = Account.representative.media_attachments.take
if attachment.present?
attachment.touch
attachment
Expand Down
9 changes: 9 additions & 0 deletions app/lib/feed_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ def key(type, id, subtype = nil)
"feed:#{type}:#{id}:#{subtype}"
end

# The number of items in the given timeline
# @param [Symbol] type
# @param [Integer] id
# @param [Symbol] subtype
# @return [Integer]
def timeline_size(type, id, subtype = nil)
redis.zcard(key(type, id, subtype))
end

# The filter result of the status to a particular feed
# @param [Symbol] timeline_type
# @param [Status] status
Expand Down
16 changes: 12 additions & 4 deletions app/services/precompute_feed_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,22 @@
class PrecomputeFeedService < BaseService
include Redisable

def call(account)
FeedManager.instance.populate_home(account)
FeedManager.instance.populate_direct_feed(account)
def call(account, skip_filled_timelines: false)
@skip_filled_timelines = skip_filled_timelines

FeedManager.instance.populate_home(account) unless skip_timeline?(:home, account.id)
FeedManager.instance.populate_direct_feed(account) unless skip_timeline?(:direct, account.id)

account.owned_lists.each do |list|
FeedManager.instance.populate_list(list)
FeedManager.instance.populate_list(list) unless skip_timeline?(:list, list.id)
end
ensure
redis.del("account:#{account.id}:regeneration")
end

private

def skip_timeline?(type, id)
@skip_filled_timelines && FeedManager.instance.timeline_size(type, id) * 2 > FeedManager::MAX_ITEMS
end
end
2 changes: 1 addition & 1 deletion config/locales/doorkeeper.eo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ eo:
write:filters: krei filtrilojn
write:follows: sekvi homojn
write:lists: krei listojn
write:media: alŝuti plurmediojn
write:media: alŝuti aŭdovidaĵojn
write:mutes: silentigi homojn kaj konversaciojn
write:notifications: forigi viajn sciigojn
write:reports: signali aliajn homojn
Expand Down
4 changes: 2 additions & 2 deletions config/locales/eo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ eo:
dashboard:
active_users: aktivaj uzantoj
interactions: interago
media_storage: Konservo de plurmedioj
media_storage: Konservo de aŭdovidaĵoj
new_users: novaj uzantoj
opened_reports: raportoj malfermitaj
pending_appeals_html:
Expand Down Expand Up @@ -508,7 +508,7 @@ eo:
description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj.
limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno.
policies:
reject_media: Malakcepti plurmediojn
reject_media: Malakcepti la vidaŭdaĵojn
reject_reports: Malakcepti raportojn
silence: Kaŝu
suspend: Suspendi
Expand Down
Loading