Merge pull request #3091 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes up to 989ca63b59
This commit is contained in:
Claire
2025-06-06 13:26:34 +02:00
committed by GitHub
25 changed files with 166 additions and 99 deletions

View File

@@ -47,8 +47,8 @@ body:
attributes: attributes:
label: Mastodon version label: Mastodon version
description: | description: |
This is displayed at the bottom of the About page, eg. `v4.4.0-alpha.1` This is displayed at the bottom of the About page, eg. `v4.4.0-beta.1`
placeholder: v4.3.0 placeholder: v4.4.0-beta.1
validations: validations:
required: true required: true
- type: input - type: input
@@ -56,7 +56,7 @@ body:
label: Browser name and version label: Browser name and version
description: | description: |
What browser are you using when getting this bug? Please specify the version as well. What browser are you using when getting this bug? Please specify the version as well.
placeholder: Firefox 131.0.0 placeholder: Firefox 139.0.0
validations: validations:
required: true required: true
- type: input - type: input
@@ -64,7 +64,7 @@ body:
label: Operating system label: Operating system
description: | description: |
What OS are you running? Please specify the version as well. What OS are you running? Please specify the version as well.
placeholder: macOS 15.0.1 placeholder: macOS 15.5
validations: validations:
required: true required: true
- type: textarea - type: textarea

View File

@@ -48,8 +48,8 @@ body:
attributes: attributes:
label: Mastodon version label: Mastodon version
description: | description: |
This is displayed at the bottom of the About page, eg. `v4.4.0-alpha.1` This is displayed at the bottom of the About page, eg. `v4.4.0-beta.1`
placeholder: v4.3.0 placeholder: v4.4.0-beta.1
validations: validations:
required: false required: false
- type: textarea - type: textarea
@@ -59,7 +59,7 @@ body:
Any additional technical details you may have, like logs or error traces Any additional technical details you may have, like logs or error traces
value: | value: |
If this is happening on your own Mastodon server, please fill out those: If this is happening on your own Mastodon server, please fill out those:
- Ruby version: (from `ruby --version`, eg. v3.4.1) - Ruby version: (from `ruby --version`, eg. v3.4.4)
- Node.js version: (from `node --version`, eg. v20.18.0) - Node.js version: (from `node --version`, eg. v22.16.0)
validations: validations:
required: false required: false

View File

@@ -49,7 +49,7 @@ body:
label: Mastodon version label: Mastodon version
description: | description: |
This is displayed at the bottom of the About page, eg. `v4.4.0-alpha.1` This is displayed at the bottom of the About page, eg. `v4.4.0-alpha.1`
placeholder: v4.3.0 placeholder: v4.4.0-beta.1
validations: validations:
required: false required: false
- type: textarea - type: textarea
@@ -59,9 +59,9 @@ body:
Details about your environment, like how Mastodon is deployed, if containers are used, version numbers, etc. Details about your environment, like how Mastodon is deployed, if containers are used, version numbers, etc.
value: | value: |
Please at least include those informations: Please at least include those informations:
- Operating system: (eg. Ubuntu 22.04) - Operating system: (eg. Ubuntu 24.04.2)
- Ruby version: (from `ruby --version`, eg. v3.4.1) - Ruby version: (from `ruby --version`, eg. v3.4.4)
- Node.js version: (from `node --version`, eg. v20.18.0) - Node.js version: (from `node --version`, eg. v22.16.0)
validations: validations:
required: false required: false
- type: textarea - type: textarea

View File

@@ -794,7 +794,7 @@ GEM
ruby-saml (1.18.0) ruby-saml (1.18.0)
nokogiri (>= 1.13.10) nokogiri (>= 1.13.10)
rexml rexml
ruby-vips (2.2.3) ruby-vips (2.2.4)
ffi (~> 1.12) ffi (~> 1.12)
logger logger
rubyzip (2.4.1) rubyzip (2.4.1)

View File

@@ -301,6 +301,7 @@
"hashtag.follow": "Heuliañ ar ger-klik", "hashtag.follow": "Heuliañ ar ger-klik",
"hashtag.unfollow": "Paouez heuliañ an hashtag", "hashtag.unfollow": "Paouez heuliañ an hashtag",
"hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}",
"home.column_settings.show_quotes": "Diskouez an arroudennoù",
"home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
"home.column_settings.show_replies": "Diskouez ar respontoù", "home.column_settings.show_replies": "Diskouez ar respontoù",
"home.hide_announcements": "Kuzhat ar c'hemennoù", "home.hide_announcements": "Kuzhat ar c'hemennoù",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Zobrazit další příspěvky na {domain}", "hints.profiles.see_more_posts": "Zobrazit další příspěvky na {domain}",
"hints.threads.replies_may_be_missing": "Odpovědi z jiných serverů mohou chybět.", "hints.threads.replies_may_be_missing": "Odpovědi z jiných serverů mohou chybět.",
"hints.threads.see_more": "Zobrazit další odpovědi na {domain}", "hints.threads.see_more": "Zobrazit další odpovědi na {domain}",
"home.column_settings.show_quotes": "Zobrazit citace",
"home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi", "home.column_settings.show_replies": "Zobrazit odpovědi",
"home.hide_announcements": "Skrýt oznámení", "home.hide_announcements": "Skrýt oznámení",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen", "hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen",
"hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.", "hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.",
"hints.threads.see_more": "Weitere Antworten auf {domain} ansehen", "hints.threads.see_more": "Weitere Antworten auf {domain} ansehen",
"home.column_settings.show_quotes": "Zitierte Beiträge anzeigen",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen", "home.column_settings.show_replies": "Antworten anzeigen",
"home.hide_announcements": "Ankündigungen ausblenden", "home.hide_announcements": "Ankündigungen ausblenden",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Ver más mensajes en {domain}", "hints.profiles.see_more_posts": "Ver más mensajes en {domain}",
"hints.threads.replies_may_be_missing": "Es posible que falten respuestas de otros servidores.", "hints.threads.replies_may_be_missing": "Es posible que falten respuestas de otros servidores.",
"hints.threads.see_more": "Ver más respuestas en {domain}", "hints.threads.see_more": "Ver más respuestas en {domain}",
"home.column_settings.show_quotes": "Mostrar citas",
"home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_reblogs": "Mostrar adhesiones",
"home.column_settings.show_replies": "Mostrar respuestas", "home.column_settings.show_replies": "Mostrar respuestas",
"home.hide_announcements": "Ocultar anuncios", "home.hide_announcements": "Ocultar anuncios",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Näytä lisää julkaisuja palvelimella {domain}", "hints.profiles.see_more_posts": "Näytä lisää julkaisuja palvelimella {domain}",
"hints.threads.replies_may_be_missing": "Muiden palvelinten vastauksia saattaa puuttua.", "hints.threads.replies_may_be_missing": "Muiden palvelinten vastauksia saattaa puuttua.",
"hints.threads.see_more": "Näytä lisää vastauksia palvelimella {domain}", "hints.threads.see_more": "Näytä lisää vastauksia palvelimella {domain}",
"home.column_settings.show_quotes": "Näytä lainaukset",
"home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_reblogs": "Näytä tehostukset",
"home.column_settings.show_replies": "Näytä vastaukset", "home.column_settings.show_replies": "Näytä vastaukset",
"home.hide_announcements": "Piilota tiedotteet", "home.hide_announcements": "Piilota tiedotteet",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Sí fleiri postar á {domain}", "hints.profiles.see_more_posts": "Sí fleiri postar á {domain}",
"hints.threads.replies_may_be_missing": "Svar frá øðrum ambætarum mangla møguliga.", "hints.threads.replies_may_be_missing": "Svar frá øðrum ambætarum mangla møguliga.",
"hints.threads.see_more": "Sí fleiri svar á {domain}", "hints.threads.see_more": "Sí fleiri svar á {domain}",
"home.column_settings.show_quotes": "Vís siteringar",
"home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_reblogs": "Vís lyft",
"home.column_settings.show_replies": "Vís svar", "home.column_settings.show_replies": "Vís svar",
"home.hide_announcements": "Fjal kunngerðir", "home.hide_announcements": "Fjal kunngerðir",

View File

@@ -1,6 +1,7 @@
{ {
"about.blocks": "Servidores suxeitos a moderación", "about.blocks": "Servidores suxeitos a moderación",
"about.contact": "Contacto:", "about.contact": "Contacto:",
"about.default_locale": "Por defecto",
"about.disclaimer": "Mastodon é software libre, de código aberto, e unha marca comercial de Mastodon gGmbH.", "about.disclaimer": "Mastodon é software libre, de código aberto, e unha marca comercial de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Motivo non indicado", "about.domain_blocks.no_reason_available": "Motivo non indicado",
"about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.", "about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.",
@@ -8,6 +9,7 @@
"about.domain_blocks.silenced.title": "Limitado", "about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.", "about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.",
"about.domain_blocks.suspended.title": "Suspendido", "about.domain_blocks.suspended.title": "Suspendido",
"about.language_label": "Idioma",
"about.not_available": "Esta información non está dispoñible neste servidor.", "about.not_available": "Esta información non está dispoñible neste servidor.",
"about.powered_by": "Comunicación social descentralizada grazas a {mastodon}", "about.powered_by": "Comunicación social descentralizada grazas a {mastodon}",
"about.rules": "Regras do servidor", "about.rules": "Regras do servidor",
@@ -428,6 +430,7 @@
"hints.profiles.see_more_posts": "Mira máis publicacións en {domain}", "hints.profiles.see_more_posts": "Mira máis publicacións en {domain}",
"hints.threads.replies_may_be_missing": "Poderían faltar respostas desde outros servidores.", "hints.threads.replies_may_be_missing": "Poderían faltar respostas desde outros servidores.",
"hints.threads.see_more": "Mira máis respostas en {domain}", "hints.threads.see_more": "Mira máis respostas en {domain}",
"home.column_settings.show_quotes": "Mostrar citas",
"home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_reblogs": "Amosar compartidos",
"home.column_settings.show_replies": "Amosar respostas", "home.column_settings.show_replies": "Amosar respostas",
"home.hide_announcements": "Agochar anuncios", "home.hide_announcements": "Agochar anuncios",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "Bekijk meer berichten op {domain}", "hints.profiles.see_more_posts": "Bekijk meer berichten op {domain}",
"hints.threads.replies_may_be_missing": "Antwoorden van andere servers kunnen ontbreken.", "hints.threads.replies_may_be_missing": "Antwoorden van andere servers kunnen ontbreken.",
"hints.threads.see_more": "Bekijk meer reacties op {domain}", "hints.threads.see_more": "Bekijk meer reacties op {domain}",
"home.column_settings.show_quotes": "Citaten tonen",
"home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen", "home.column_settings.show_replies": "Reacties tonen",
"home.hide_announcements": "Mededelingen verbergen", "home.hide_announcements": "Mededelingen verbergen",

View File

@@ -425,6 +425,7 @@
"hints.profiles.see_more_posts": "Shihni më tepër postime në {domain}", "hints.profiles.see_more_posts": "Shihni më tepër postime në {domain}",
"hints.threads.replies_may_be_missing": "Mund të mungojnë përgjigje nga shërbyes të tjerë.", "hints.threads.replies_may_be_missing": "Mund të mungojnë përgjigje nga shërbyes të tjerë.",
"hints.threads.see_more": "Shihni më tepër përgjigje në {domain}", "hints.threads.see_more": "Shihni më tepër përgjigje në {domain}",
"home.column_settings.show_quotes": "Shfaq thonjëza",
"home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_reblogs": "Shfaq përforcime",
"home.column_settings.show_replies": "Shfaq përgjigje", "home.column_settings.show_replies": "Shfaq përgjigje",
"home.hide_announcements": "Fshihi lajmërimet", "home.hide_announcements": "Fshihi lajmërimet",

View File

@@ -125,8 +125,8 @@
"attachments_list.unprocessed": "(nasin open)", "attachments_list.unprocessed": "(nasin open)",
"audio.hide": "o len e kalama", "audio.hide": "o len e kalama",
"block_modal.remote_users_caveat": "mi pana e wile sina tawa ma {domain}. taso, o sona: ma li ken kepeken nasin len ante la pakala li ken lon. toki pi lukin ale la jan pi ma ala li ken lukin.", "block_modal.remote_users_caveat": "mi pana e wile sina tawa ma {domain}. taso, o sona: ma li ken kepeken nasin len ante la pakala li ken lon. toki pi lukin ale la jan pi ma ala li ken lukin.",
"block_modal.show_less": "o pana e lili", "block_modal.show_less": "o lili e toki",
"block_modal.show_more": "o pana e mute", "block_modal.show_more": "o suli e toki",
"block_modal.they_cant_mention": "ona li ken ala toki tawa sina li ken ala kute e sina.", "block_modal.they_cant_mention": "ona li ken ala toki tawa sina li ken ala kute e sina.",
"block_modal.they_cant_see_posts": "ona li ken ala lukin e toki sina. sina ken ala lukin e toki ona.", "block_modal.they_cant_see_posts": "ona li ken ala lukin e toki sina. sina ken ala lukin e toki ona.",
"block_modal.they_will_know": "ona li ken sona e ni: sina len e ona.", "block_modal.they_will_know": "ona li ken sona e ni: sina len e ona.",
@@ -135,7 +135,7 @@
"boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama", "boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama",
"boost_modal.reblog": "o wawa ala wawa e toki?", "boost_modal.reblog": "o wawa ala wawa e toki?",
"boost_modal.undo_reblog": "o weka ala weka e wawa toki?", "boost_modal.undo_reblog": "o weka ala weka e wawa toki?",
"bundle_column_error.copy_stacktrace": "o awen e sona pakala lon ilo sina", "bundle_column_error.copy_stacktrace": "o jo e sona pakala lon ilo sina",
"bundle_column_error.error.body": "ilo li ken ala pana e lipu ni. ni li ken tan pakala ilo.", "bundle_column_error.error.body": "ilo li ken ala pana e lipu ni. ni li ken tan pakala ilo.",
"bundle_column_error.error.title": "pakala a!", "bundle_column_error.error.title": "pakala a!",
"bundle_column_error.network.body": "mi lukin pana e lipu la, pakala li lon. ken la, pakala li tan ilo nanpa sina. ken la, pakala li tan ilo nanpa suli pi ma kulupu ni.", "bundle_column_error.network.body": "mi lukin pana e lipu la, pakala li lon. ken la, pakala li tan ilo nanpa sina. ken la, pakala li tan ilo nanpa suli pi ma kulupu ni.",
@@ -143,7 +143,7 @@
"bundle_column_error.retry": "o alasa sin", "bundle_column_error.retry": "o alasa sin",
"bundle_column_error.return": "o tawa open", "bundle_column_error.return": "o tawa open",
"bundle_column_error.routing.body": "ilo li sona ala e lipu wile. sina pana ala pana e nasin pona tawa lipu?", "bundle_column_error.routing.body": "ilo li sona ala e lipu wile. sina pana ala pana e nasin pona tawa lipu?",
"bundle_column_error.routing.title": "pakala nanpa 404", "bundle_column_error.routing.title": "pakala #404",
"bundle_modal_error.close": "o pini", "bundle_modal_error.close": "o pini",
"bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.", "bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
"bundle_modal_error.retry": "o alasa sin", "bundle_modal_error.retry": "o alasa sin",
@@ -188,26 +188,26 @@
"compose.published.body": "toki li pana.", "compose.published.body": "toki li pana.",
"compose.published.open": "o lukin", "compose.published.open": "o lukin",
"compose.saved.body": "ilo li awen e ijo pana sina.", "compose.saved.body": "ilo li awen e ijo pana sina.",
"compose_form.direct_message_warning_learn_more": "o kama sona e ijo ante", "compose_form.direct_message_warning_learn_more": "o kama sona",
"compose_form.encryption_warning": "toki li len ala lon ilo Masoton ꞏ o pana ala e sona suli len lon ilo Masoton", "compose_form.encryption_warning": "toki li len ala lon ilo Masoton ꞏ o pana ala e sona suli len lon ilo Masoton",
"compose_form.lock_disclaimer": "lipu sina li open, li {locked} ala. jan ale li ken kama kute e sina, li ken lukin e toki sama ni.", "compose_form.lock_disclaimer": "lipu sina li open, li {locked} ala. jan ale li ken kama kute e sina, li ken lukin e toki sama ni.",
"compose_form.lock_disclaimer.lock": "pini", "compose_form.lock_disclaimer.lock": "pini",
"compose_form.placeholder": "sina wile toki e seme?", "compose_form.placeholder": "sina wile toki e seme?",
"compose_form.poll.duration": "tenpo pana", "compose_form.poll.duration": "tenpo pana",
"compose_form.poll.multiple": "pana mute", "compose_form.poll.multiple": "mute pana",
"compose_form.poll.option_placeholder": "ken nanpa {number}", "compose_form.poll.option_placeholder": "ken nanpa {number}",
"compose_form.poll.single": "toki pi wan taso", "compose_form.poll.single": "ken pi wan taso",
"compose_form.poll.switch_to_multiple": "o ante e nasin pana. pana mute o ken", "compose_form.poll.switch_to_multiple": "o ante e nasin pana. pana mute o ken",
"compose_form.poll.switch_to_single": "o ante e nasin pana. pana wan taso o lon", "compose_form.poll.switch_to_single": "o ante e nasin pana. pana wan taso o lon",
"compose_form.poll.type": "nasin", "compose_form.poll.type": "nasin",
"compose_form.publish": "o toki", "compose_form.publish": "o toki",
"compose_form.publish_form": "o open toki sin", "compose_form.publish_form": "o toki sin",
"compose_form.reply": "o toki lon ijo ni", "compose_form.reply": "o toki lon ijo ni",
"compose_form.save_changes": "o sin e ni", "compose_form.save_changes": "o sin",
"compose_form.spoiler.marked": "o weka e toki pi ijo ike ken", "compose_form.spoiler.marked": "o weka e toki pi ijo ike ken",
"compose_form.spoiler.unmarked": "o pali e toki pi ijo ike ken", "compose_form.spoiler.unmarked": "o pali e toki pi ijo ike ken",
"compose_form.spoiler_placeholder": "toki pi ijo ike ken (sina ken ala e ni)", "compose_form.spoiler_placeholder": "toki pi ijo ike ken (sina ken ala e ni)",
"confirmation_modal.cancel": "o weka", "confirmation_modal.cancel": "ala",
"confirmations.block.confirm": "o len", "confirmations.block.confirm": "o len",
"confirmations.delete.confirm": "o weka", "confirmations.delete.confirm": "o weka",
"confirmations.delete.message": "sina wile ala wile weka e toki ni?", "confirmations.delete.message": "sina wile ala wile weka e toki ni?",
@@ -225,49 +225,56 @@
"confirmations.follow_to_list.title": "sina wile ala wile kute?", "confirmations.follow_to_list.title": "sina wile ala wile kute?",
"confirmations.logout.confirm": "o weka", "confirmations.logout.confirm": "o weka",
"confirmations.logout.message": "sina wile ala wile weka", "confirmations.logout.message": "sina wile ala wile weka",
"confirmations.logout.title": "o weka?", "confirmations.logout.title": "o weka ala weka?",
"confirmations.missing_alt_text.confirm": "pana e toki pi sona lukin", "confirmations.missing_alt_text.confirm": "o pana e toki pi sona lukin",
"confirmations.missing_alt_text.message": "toki ni la sitelen li lon. taso toki pi sona lukin li lon ala. toki pi sona lukin li pona tan ni: jan ale li ken sona e toki.", "confirmations.missing_alt_text.message": "toki ni la sitelen li lon. taso toki pi sona lukin li lon ala. toki pi sona lukin li pona tan ni: jan ale li ken sona e toki.",
"confirmations.missing_alt_text.secondary": "o pana a", "confirmations.missing_alt_text.secondary": "o pana a",
"confirmations.missing_alt_text.title": "o pana e toki pi sona lukin", "confirmations.missing_alt_text.title": "o pana ala pana e toki pi sona lukin?",
"confirmations.mute.confirm": "o len", "confirmations.mute.confirm": "o len",
"confirmations.redraft.confirm": "o weka o pali sin e toki", "confirmations.redraft.confirm": "o weka o pali sin e toki",
"confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.", "confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
"confirmations.redraft.title": "ni li weka li pali sin e toki ni.", "confirmations.redraft.title": "ni li weka li pali sin e toki ni.",
"confirmations.reply.confirm": "toki lon toki ni", "confirmations.remove_from_followers.confirm": "o kama kute ala e jan",
"confirmations.reply.message": "sina toki lon toki ni la toki pali sina li weka. sina wile ala wile e ni?", "confirmations.remove_from_followers.message": "{name} li kama kute ala e sina. sina wile ala wile e ni?",
"confirmations.remove_from_followers.title": "o kama ala kama kute ala e jan?",
"confirmations.reply.confirm": "o weka",
"confirmations.reply.message": "sina pana e toki tawa lipu ante la ni li weka e toki sina lon. sina wile ala wile weka e toki ni?",
"confirmations.reply.title": "sina wile ala wile weka e toki lon?", "confirmations.reply.title": "sina wile ala wile weka e toki lon?",
"confirmations.unfollow.confirm": "o kute ala", "confirmations.unfollow.confirm": "o kute ala",
"confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?", "confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?",
"confirmations.unfollow.title": "sina wile ala wile pini kute?", "confirmations.unfollow.title": "sina wile ala wile pini kute?",
"content_warning.hide": "o len", "content_warning.hide": "o len",
"content_warning.show": "o lukin", "content_warning.show": "o lukin a",
"content_warning.show_more": "o lukin", "content_warning.show_more": "o lukin",
"conversation.delete": "o weka e toki ni", "conversation.delete": "o weka e toki ni",
"conversation.mark_as_read": "ni o sin ala", "conversation.mark_as_read": "ni o sin ala",
"conversation.open": "o lukin e toki", "conversation.open": "o lukin e toki",
"conversation.with": "lon {names}", "conversation.with": "lon {names}",
"copy_icon_button.copied": "toki li awen lon ilo sina", "copy_icon_button.copied": "sina jo e toki",
"copypaste.copied": "sina jo e toki", "copypaste.copied": "sina jo e toki",
"copypaste.copy_to_clipboard": "o awen lon ilo sina", "copypaste.copy_to_clipboard": "o jo e toki",
"directory.federated": "tan lipu ante sona", "directory.federated": "tan lipu ante sona",
"directory.local": "tan {domain} taso", "directory.local": "tan ma {domain} taso",
"directory.new_arrivals": "jan pi kama sin", "directory.new_arrivals": "jan pi kama sin",
"directory.recently_active": "jan lon tenpo poka", "directory.recently_active": "jan lon tenpo poka",
"disabled_account_banner.account_settings": "wile pi lipu jan", "disabled_account_banner.account_settings": "wile pi lipu jan",
"disabled_account_banner.text": "sina ken ala kepeken e lipu jan sina pi nimi {disabledAccount}.", "disabled_account_banner.text": "sina ken ala lon sijelo {disabledAccount}.",
"dismissable_banner.community_timeline": "ni li toki pi tenpo poka tawa ale tan jan lon ma lawa pi nimi {domain}.", "dismissable_banner.community_timeline": "ni li toki suli pi len ala lon ma {domain} tan tenpo poka.",
"dismissable_banner.dismiss": "o weka", "dismissable_banner.dismiss": "o weka",
"dismissable_banner.explore_links": "tenpo suno ni la jan pi kulupu ale li toki e ijo sin ni. ijo sin pi jan ante mute li sewi lon lipu ni.", "dismissable_banner.explore_links": "tenpo poka la jan pi kulupu ale li toki e ijo sin ni. ijo sin pi jan ante mute li sewi lon lipu ni.",
"dismissable_banner.explore_statuses": "jan mute li lukin e toki ni tan ma ilo weka. toki sin en toki pi wawa mute li lon sewi.", "dismissable_banner.explore_statuses": "tenpo poka la jan pi kulupu ale li toki e ijo ni. ijo sin pi jan ante mute li sewi lon lipu ni.",
"dismissable_banner.explore_tags": "tenpo poka la jan pi kulupu ale li toki e ijo ni. ijo sin pi jan ante mute li sewi lon lipu ni.",
"domain_block_modal.block": "o len e ma", "domain_block_modal.block": "o len e ma",
"domain_block_modal.block_account_instead": "o len e @{name}", "domain_block_modal.block_account_instead": "o len e @{name} a",
"domain_block_modal.they_can_interact_with_old_posts": "jan pi ma ni li ken ijo e toki sina.",
"domain_block_modal.they_cant_follow": "jan pi ma ni li ken ala kute e sina.", "domain_block_modal.they_cant_follow": "jan pi ma ni li ken ala kute e sina.",
"domain_block_modal.they_wont_know": "ona li sona ala e ni: sina len e ona.", "domain_block_modal.they_wont_know": "ona li sona ala e ni: sina len e ona.",
"domain_block_modal.title": "sina wile ala wile len e ma?", "domain_block_modal.title": "sina wile ala wile len e ma?",
"domain_block_modal.you_will_lose_num_followers": "{followersCount, plural, other {jan {followersCountDisplay}}} li kute e sina la, ona kama kute ala e sina. sina kute e {followingCount, plural,other {jan {followingCountDisplay}}} la, sina kama kute ala e ona.", "domain_block_modal.you_will_lose_num_followers": "{followersCount, plural, other {jan {followersCountDisplay}}} li kute e sina la, ona kama kute ala e sina. sina kute e {followingCount, plural,other {jan {followingCountDisplay}}} la, sina kama kute ala e ona.",
"domain_block_modal.you_will_lose_relationships": "jan li lon kulupu ni la ona kute e sina la, ona li kama kute ala e sina. jan li lon kulupu ni la sina kute e ona la, sina kama kute ala e ona.", "domain_block_modal.you_will_lose_relationships": "jan li lon kulupu ni la ona kute e sina la, ona li kama kute ala e sina. jan li lon kulupu ni la sina kute e ona la, sina kama kute ala e ona.",
"domain_block_modal.you_wont_see_posts": "sina ken ala lukin e toki tan jan pi ma ni", "domain_block_modal.you_wont_see_posts": "sina ken ala lukin e toki tan jan pi ma ni",
"domain_pill.activitypub_lets_connect": "ilo ni la sina ken toki tawa jan ante. ni li lon ma Masoton taso ala li lon ma mute a.",
"domain_pill.activitypub_like_language": "ilo Masoton li toki kepeken nasin ActivityPub tawa kulupu ilo ante.",
"domain_pill.server": "ma", "domain_pill.server": "ma",
"domain_pill.their_handle": "nimi pi ona taso li ni:", "domain_pill.their_handle": "nimi pi ona taso li ni:",
"domain_pill.their_server": "ni li ma ona lon ilo. toki ale ona li lon ma ni.", "domain_pill.their_server": "ni li ma ona lon ilo. toki ale ona li lon ma ni.",
@@ -304,8 +311,8 @@
"empty_column.favourited_statuses": "sina suli ala e toki. sina suli e toki la sina ken lukin e toki ni lon ni.", "empty_column.favourited_statuses": "sina suli ala e toki. sina suli e toki la sina ken lukin e toki ni lon ni.",
"empty_column.favourites": "jan ala li suli e toki ni. jan li suli e toki ni la sina ken lukin e ona lon ni.", "empty_column.favourites": "jan ala li suli e toki ni. jan li suli e toki ni la sina ken lukin e ona lon ni.",
"empty_column.follow_requests": "jan ala li toki pi wile kute tawa sina. jan li toki pi wile kute tawa sina la sina ken lukin e toki ni lon ni.", "empty_column.follow_requests": "jan ala li toki pi wile kute tawa sina. jan li toki pi wile kute tawa sina la sina ken lukin e toki ni lon ni.",
"empty_column.followed_tags": "sina alasa ala e toki ꞏ sina alasa e toki la toki li lon ni", "empty_column.followed_tags": "sina kute ala e kulupu lipu. sina kute la toki li kama lon ni.",
"empty_column.hashtag": "ala li lon toki ni", "empty_column.hashtag": "toki ala li lon kulupu ni.",
"empty_column.home": "ala a li lon lipu open sina! sina wile lon e ijo lon ni la o kute e jan pi toki suli.", "empty_column.home": "ala a li lon lipu open sina! sina wile lon e ijo lon ni la o kute e jan pi toki suli.",
"empty_column.list": "ala li lon kulupu lipu ni. jan pi kulupu lipu ni li toki sin la toki ni li lon ni.", "empty_column.list": "ala li lon kulupu lipu ni. jan pi kulupu lipu ni li toki sin la toki ni li lon ni.",
"empty_column.mutes": "jan ala li len tawa sina.", "empty_column.mutes": "jan ala li len tawa sina.",
@@ -316,6 +323,10 @@
"explore.trending_links": "sin", "explore.trending_links": "sin",
"explore.trending_statuses": "toki", "explore.trending_statuses": "toki",
"explore.trending_tags": "kulupu pi lipu suli", "explore.trending_tags": "kulupu pi lipu suli",
"featured_carousel.next": "kama",
"featured_carousel.post": "toki",
"featured_carousel.previous": "pini",
"featured_carousel.slide": "lipu {total} la lipu nanpa {index}",
"filter_modal.added.settings_link": "lipu lawa", "filter_modal.added.settings_link": "lipu lawa",
"filter_modal.select_filter.expired": "tenpo pini", "filter_modal.select_filter.expired": "tenpo pini",
"filter_modal.select_filter.search": "o alasa anu pali", "filter_modal.select_filter.search": "o alasa anu pali",
@@ -337,16 +348,23 @@
"footer.privacy_policy": "lawa len", "footer.privacy_policy": "lawa len",
"footer.source_code": "o lukin e toki ilo", "footer.source_code": "o lukin e toki ilo",
"footer.status": "lon", "footer.status": "lon",
"generic.saved": "ni li awen", "footer.terms_of_service": "lipu lawa",
"generic.saved": "mi awen e ni",
"getting_started.heading": "mi open",
"hashtag.admin_moderation": "o lawa e kulupu #{name}",
"hashtag.browse": "o lukin e kulupu toki #{hashtag}",
"hashtag.browse_from_account": "o lukin e kulupu toki #{hashtag} tan @{name}",
"hashtag.column_header.tag_mode.all": "en {additional}", "hashtag.column_header.tag_mode.all": "en {additional}",
"hashtag.column_header.tag_mode.any": "anu {additional}", "hashtag.column_header.tag_mode.any": "anu {additional}",
"hashtag.column_header.tag_mode.none": "en {additional} ala", "hashtag.column_header.tag_mode.none": "en {additional} ala",
"hashtag.column_settings.select.placeholder": "o alasa e kulupu…",
"hashtag.column_settings.tag_mode.all": "ale ni", "hashtag.column_settings.tag_mode.all": "ale ni",
"hashtag.column_settings.tag_mode.any": "wan ni", "hashtag.column_settings.tag_mode.any": "wan ni",
"hashtag.column_settings.tag_mode.none": "ala ni", "hashtag.column_settings.tag_mode.none": "ala ni",
"hashtag.counter_by_accounts": "{count, plural, other {jan {counter}}}", "hashtag.counter_by_accounts": "{count, plural, other {jan {counter}}}",
"hashtag.counter_by_uses": "{count, plural, other {toki {counter}}}", "hashtag.counter_by_uses": "{count, plural, other {toki {counter}}}",
"hashtag.follow": "o kute e kulupu lipu", "hashtag.follow": "o kute e kulupu lipu",
"hashtag.mute": "o kute ala e kulupu #{hashtag}",
"hashtag.unfollow": "o kute ala e kulupu lipu", "hashtag.unfollow": "o kute ala e kulupu lipu",
"home.column_settings.show_reblogs": "lukin e wawa", "home.column_settings.show_reblogs": "lukin e wawa",
"home.pending_critical_update.link": "o lukin e ijo ilo sin", "home.pending_critical_update.link": "o lukin e ijo ilo sin",
@@ -372,6 +390,7 @@
"keyboard_shortcuts.my_profile": "o lukin e lipu sina", "keyboard_shortcuts.my_profile": "o lukin e lipu sina",
"keyboard_shortcuts.open_media": "o lukin e sitelen", "keyboard_shortcuts.open_media": "o lukin e sitelen",
"keyboard_shortcuts.pinned": "o lukin pi lipu sina pi toki sewi", "keyboard_shortcuts.pinned": "o lukin pi lipu sina pi toki sewi",
"keyboard_shortcuts.reply": "o toki lon ijo ni",
"keyboard_shortcuts.toggle_sensitivity": "o ante e ken lukin", "keyboard_shortcuts.toggle_sensitivity": "o ante e ken lukin",
"keyboard_shortcuts.toot": "o toki", "keyboard_shortcuts.toot": "o toki",
"keyboard_shortcuts.up": "o tawa sewi lon lipu", "keyboard_shortcuts.up": "o tawa sewi lon lipu",
@@ -413,7 +432,7 @@
"notification.follow_request": "{name} li wile kute e sina", "notification.follow_request": "{name} li wile kute e sina",
"notification.label.mention": "jan li toki e sina", "notification.label.mention": "jan li toki e sina",
"notification.label.private_mention": "jan li toki e sina lon len", "notification.label.private_mention": "jan li toki e sina lon len",
"notification.label.private_reply": "Jan li toki tawa toki sina lon len", "notification.label.private_reply": "toki len",
"notification.label.reply": "jan li toki tawa toki sina", "notification.label.reply": "jan li toki tawa toki sina",
"notification.mentioned_you": "jan {name} li toki e sina", "notification.mentioned_you": "jan {name} li toki e sina",
"notification.moderation-warning.learn_more": "o kama sona e ijo ante", "notification.moderation-warning.learn_more": "o kama sona e ijo ante",
@@ -452,7 +471,8 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "tenpo suno ni", "relative_time.today": "tenpo suno ni",
"reply_indicator.cancel": "o ala", "reply_indicator.attachments": "{count, plural, other {sitelen #}}",
"reply_indicator.cancel": "o pana ala",
"report.block": "o len e jan", "report.block": "o len e jan",
"report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.", "report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
"report.categories.other": "ante", "report.categories.other": "ante",
@@ -486,7 +506,7 @@
"search_results.statuses": "toki", "search_results.statuses": "toki",
"server_banner.administered_by": "jan lawa:", "server_banner.administered_by": "jan lawa:",
"status.block": "o len e @{name}", "status.block": "o len e @{name}",
"status.cancel_reblog_private": "o pini e pana", "status.cancel_reblog_private": "o pana ala",
"status.delete": "o weka", "status.delete": "o weka",
"status.edit": "o ante", "status.edit": "o ante",
"status.favourite": "o sitelen pona", "status.favourite": "o sitelen pona",
@@ -520,6 +540,7 @@
"units.short.thousand": "{count}K", "units.short.thousand": "{count}K",
"upload_button.label": "o pana e sitelen anu kalama", "upload_button.label": "o pana e sitelen anu kalama",
"upload_error.limit": "ilo li ken ala e suli pi ijo ni.", "upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
"upload_form.drag_and_drop.on_drag_cancel": "sina wile ala pana e sitelen. mi weka e sitelen.",
"upload_form.edit": "o ante", "upload_form.edit": "o ante",
"upload_progress.label": "ilo li kama jo e ijo sina...", "upload_progress.label": "ilo li kama jo e ijo sina...",
"upload_progress.processing": "ilo li pali…", "upload_progress.processing": "ilo li pali…",

View File

@@ -84,6 +84,7 @@
"alt_text_modal.cancel": "取消", "alt_text_modal.cancel": "取消",
"alt_text_modal.done": "完成", "alt_text_modal.done": "完成",
"announcement.announcement": "公告", "announcement.announcement": "公告",
"annual_report.summary.thanks": "感謝您成為 Mastodon 的一份子!",
"attachments_list.unprocessed": "(未處理)", "attachments_list.unprocessed": "(未處理)",
"audio.hide": "隱藏音訊", "audio.hide": "隱藏音訊",
"block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重你的決定。然而,由於部份伺服器可能以不同方式處理封鎖,因此無法保證一定會成功。公開帖文仍然有機會被未登入的使用者看見。", "block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重你的決定。然而,由於部份伺服器可能以不同方式處理封鎖,因此無法保證一定會成功。公開帖文仍然有機會被未登入的使用者看見。",

View File

@@ -430,6 +430,7 @@
"hints.profiles.see_more_posts": "於 {domain} 檢視更多嘟文", "hints.profiles.see_more_posts": "於 {domain} 檢視更多嘟文",
"hints.threads.replies_may_be_missing": "來自其他站點之回覆或有缺失。", "hints.threads.replies_may_be_missing": "來自其他站點之回覆或有缺失。",
"hints.threads.see_more": "於 {domain} 檢視更多回覆", "hints.threads.see_more": "於 {domain} 檢視更多回覆",
"home.column_settings.show_quotes": "顯示引用嘟文",
"home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_reblogs": "顯示轉嘟",
"home.column_settings.show_replies": "顯示回覆", "home.column_settings.show_replies": "顯示回覆",
"home.hide_announcements": "隱藏公告", "home.hide_announcements": "隱藏公告",

View File

@@ -226,8 +226,6 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end end
def process_quote def process_quote
return unless Mastodon::Feature.inbound_quotes_enabled?
@quote_uri = @status_parser.quote_uri @quote_uri = @status_parser.quote_uri
return if @quote_uri.blank? return if @quote_uri.blank?

View File

@@ -4,7 +4,6 @@ class ActivityPub::Activity::QuoteRequest < ActivityPub::Activity
include Payloadable include Payloadable
def perform def perform
return unless Mastodon::Feature.inbound_quotes_enabled?
return if non_matching_uri_hosts?(@account.uri, @json['id']) return if non_matching_uri_hosts?(@account.uri, @json['id'])
quoted_status = status_from_uri(object_uri) quoted_status = status_from_uri(object_uri)

View File

@@ -75,26 +75,30 @@ class StatusCacheHydrator
end end
def hydrate_quote_payload(empty_payload, quote, account_id, nested: false) def hydrate_quote_payload(empty_payload, quote, account_id, nested: false)
empty_payload.tap do |payload| return unless quote&.acceptable?
# Nothing to do if we're in the shallow (depth limit) case
next unless payload.key?(:quoted_status)
empty_payload.tap do |payload|
payload.delete(:quoted_status) if nested payload.delete(:quoted_status) if nested
# TODO: performance improvements # TODO: performance improvements
if quote&.quoted_status.nil? if quote.accepted?
if quote.quoted_status.nil?
payload[nested ? :quoted_status_id : :quoted_status] = nil payload[nested ? :quoted_status_id : :quoted_status] = nil
payload[:state] = 'deleted' payload[:state] = 'deleted'
elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered? elsif StatusFilter.new(quote.quoted_status, Account.find_by(id: account_id)).filtered?
payload[nested ? :quoted_status_id : :quoted_status] = nil payload[nested ? :quoted_status_id : :quoted_status] = nil
payload[:state] = 'unauthorized' payload[:state] = 'unauthorized'
elsif payload[:state] == 'accepted' else
payload[:state] = 'accepted'
if nested if nested
payload[:quoted_status_id] = quote.quoted_status_id&.to_s payload[:quoted_status_id] = quote.quoted_status_id&.to_s
else else
payload[:quoted_status] = StatusCacheHydrator.new(quote.quoted_status).hydrate(account_id, nested: true) payload[:quoted_status] = StatusCacheHydrator.new(quote.quoted_status).hydrate(account_id, nested: true)
end end
end end
else
payload[nested ? :quoted_status_id : :quoted_status] = nil
end
end end
end end

View File

@@ -271,8 +271,6 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
end end
def update_quote! def update_quote!
return unless Mastodon::Feature.inbound_quotes_enabled?
quote_uri = @status_parser.quote_uri quote_uri = @status_parser.quote_uri
if quote_uri.present? if quote_uri.present?

View File

@@ -937,7 +937,7 @@ RSpec.describe ActivityPub::Activity::Create do
end end
end end
context 'with an unverifiable quote of a known post', feature: :inbound_quotes do context 'with an unverifiable quote of a known post' do
let(:quoted_status) { Fabricate(:status) } let(:quoted_status) { Fabricate(:status) }
let(:object_json) do let(:object_json) do
@@ -961,7 +961,7 @@ RSpec.describe ActivityPub::Activity::Create do
end end
end end
context 'with an unverifiable unknown post', feature: :inbound_quotes do context 'with an unverifiable unknown post' do
let(:unknown_post_uri) { 'https://unavailable.example.com/unavailable-post' } let(:unknown_post_uri) { 'https://unavailable.example.com/unavailable-post' }
let(:object_json) do let(:object_json) do
@@ -989,7 +989,7 @@ RSpec.describe ActivityPub::Activity::Create do
end end
end end
context 'with a verifiable quote of a known post', feature: :inbound_quotes do context 'with a verifiable quote of a known post' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let(:approval_uri) { 'https://quoted.example.com/quote-approval' } let(:approval_uri) { 'https://quoted.example.com/quote-approval' }

View File

@@ -2,7 +2,7 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe ActivityPub::Activity::QuoteRequest, feature: :inbound_quotes do RSpec.describe ActivityPub::Activity::QuoteRequest do
let(:sender) { Fabricate(:account, domain: 'example.com') } let(:sender) { Fabricate(:account, domain: 'example.com') }
let(:recipient) { Fabricate(:account) } let(:recipient) { Fabricate(:account) }
let(:quoted_post) { Fabricate(:status, account: recipient) } let(:quoted_post) { Fabricate(:status, account: recipient) }

View File

@@ -56,9 +56,10 @@ RSpec.describe StatusCacheHydrator do
context 'when handling an approved quote' do context 'when handling an approved quote' do
let(:quoted_status) { Fabricate(:status) } let(:quoted_status) { Fabricate(:status) }
let(:legacy) { false }
before do before do
Fabricate(:quote, status: status, quoted_status: quoted_status, state: :accepted) Fabricate(:quote, status: status, quoted_status: quoted_status, state: :accepted, legacy: legacy)
end end
it 'renders the same attributes as full render' do it 'renders the same attributes as full render' do
@@ -75,13 +76,46 @@ RSpec.describe StatusCacheHydrator do
end end
end end
context 'when the quote post is a legacy quote' do
let(:legacy) { true }
it 'renders the same attributes as full render' do
expect(subject).to eql(compare_to_hash)
expect(subject[:quote]).to_not be_nil
end
end
context 'when the quoted post is a private post the viewer is not authorized to see' do
let(:quoted_status) { Fabricate(:status, account: status.account, visibility: :private) }
it 'renders the same attributes as full render' do
expect(subject).to eql(compare_to_hash)
expect(subject[:quote]).to_not be_nil
expect(subject[:quote][:quoted_status]).to be_nil
end
end
context 'when the quoted post is a private post the viewer is authorized to see' do
let(:quoted_status) { Fabricate(:status, account: status.account, visibility: :private) }
before do
account.follow!(quoted_status.account)
end
it 'renders the same attributes as full render' do
expect(subject).to eql(compare_to_hash)
expect(subject[:quote]).to_not be_nil
expect(subject[:quote][:quoted_status]).to_not be_nil
end
end
context 'when the quoted post has been deleted' do context 'when the quoted post has been deleted' do
let(:quoted_status) { nil } let(:quoted_status) { nil }
it 'returns the same attributes as full render' do it 'returns the same attributes as full render' do
expect(subject).to eql(compare_to_hash) expect(subject).to eql(compare_to_hash)
expect(subject[:quote]).to_not be_nil expect(subject[:quote]).to_not be_nil
expect(subject[:quote_status]).to be_nil expect(subject[:quote][:quoted_status]).to be_nil
end end
end end
@@ -93,7 +127,7 @@ RSpec.describe StatusCacheHydrator do
it 'returns the same attributes as full render' do it 'returns the same attributes as full render' do
expect(subject).to eql(compare_to_hash) expect(subject).to eql(compare_to_hash)
expect(subject[:quote]).to_not be_nil expect(subject[:quote]).to_not be_nil
expect(subject[:quote_status]).to be_nil expect(subject[:quote][:quoted_status]).to be_nil
end end
end end

View File

@@ -435,7 +435,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status has an existing unverified quote and adds an approval link', feature: :inbound_quotes do context 'when the status has an existing unverified quote and adds an approval link' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: nil) } let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: nil) }
@@ -500,7 +500,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status has an existing verified quote and removes an approval link', feature: :inbound_quotes do context 'when the status has an existing verified quote and removes an approval link' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: approval_uri, state: :accepted) } let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: approval_uri, state: :accepted) }
@@ -535,7 +535,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status adds a verifiable quote', feature: :inbound_quotes do context 'when the status adds a verifiable quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let(:approval_uri) { 'https://quoted.example.com/approvals/1' } let(:approval_uri) { 'https://quoted.example.com/approvals/1' }
@@ -600,7 +600,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status adds a unverifiable quote', feature: :inbound_quotes do context 'when the status adds a unverifiable quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let(:approval_uri) { 'https://quoted.example.com/approvals/1' } let(:approval_uri) { 'https://quoted.example.com/approvals/1' }
@@ -635,7 +635,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status removes a verified quote', feature: :inbound_quotes do context 'when the status removes a verified quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: approval_uri, state: :accepted) } let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: approval_uri, state: :accepted) }
@@ -660,7 +660,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status removes an unverified quote', feature: :inbound_quotes do context 'when the status removes an unverified quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: nil, state: :pending) } let!(:quote) { Fabricate(:quote, status: status, quoted_status: quoted_status, approval_uri: nil, state: :pending) }
@@ -684,7 +684,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status swaps a verified quote with an unverifiable quote', feature: :inbound_quotes do context 'when the status swaps a verified quote with an unverifiable quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }
let(:second_quoted_status) { Fabricate(:status, account: quoted_account) } let(:second_quoted_status) { Fabricate(:status, account: quoted_account) }
@@ -752,7 +752,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
end end
end end
context 'when the status swaps a verified quote with another verifiable quote', feature: :inbound_quotes do context 'when the status swaps a verified quote with another verifiable quote' do
let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') } let(:quoted_account) { Fabricate(:account, domain: 'quoted.example.com') }
let(:second_quoted_account) { Fabricate(:account, domain: 'second-quoted.example.com') } let(:second_quoted_account) { Fabricate(:account, domain: 'second-quoted.example.com') }
let(:quoted_status) { Fabricate(:status, account: quoted_account) } let(:quoted_status) { Fabricate(:status, account: quoted_account) }

View File

@@ -4870,17 +4870,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"browserslist@npm:^4.24.0, browserslist@npm:^4.24.4, browserslist@npm:^4.24.5": "browserslist@npm:^4.24.0, browserslist@npm:^4.24.4, browserslist@npm:^4.25.0":
version: 4.24.5 version: 4.25.0
resolution: "browserslist@npm:4.24.5" resolution: "browserslist@npm:4.25.0"
dependencies: dependencies:
caniuse-lite: "npm:^1.0.30001716" caniuse-lite: "npm:^1.0.30001718"
electron-to-chromium: "npm:^1.5.149" electron-to-chromium: "npm:^1.5.160"
node-releases: "npm:^2.0.19" node-releases: "npm:^2.0.19"
update-browserslist-db: "npm:^1.1.3" update-browserslist-db: "npm:^1.1.3"
bin: bin:
browserslist: cli.js browserslist: cli.js
checksum: 10c0/f4c1ce1a7d8fdfab5e5b88bb6e93d09e8a883c393f86801537a252da0362dbdcde4dbd97b318246c5d84c6607b2f6b47af732c1b000d6a8a881ee024bad29204 checksum: 10c0/cc16c55b4468b18684a0e1ca303592b38635b1155d6724f172407192737a2f405b8030d87a05813729592793445b3d15e737b0055f901cdecccb29b1e580a1c5
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5001,10 +5001,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001716": "caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001718":
version: 1.0.30001718 version: 1.0.30001721
resolution: "caniuse-lite@npm:1.0.30001718" resolution: "caniuse-lite@npm:1.0.30001721"
checksum: 10c0/67f9ad09bc16443e28d14f265d6e468480cd8dc1900d0d8b982222de80c699c4f2306599c3da8a3fa7139f110d4b30d49dbac78f215470f479abb6ffe141d5d3 checksum: 10c0/fa3a8926899824b385279f1f886fe34c5efb1321c9ece1b9df25c8d567a2706db8450cc5b4d969e769e641593e08ea644909324aba93636a43e4949a75f81c4c
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5745,10 +5745,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"electron-to-chromium@npm:^1.5.149": "electron-to-chromium@npm:^1.5.160":
version: 1.5.159 version: 1.5.165
resolution: "electron-to-chromium@npm:1.5.159" resolution: "electron-to-chromium@npm:1.5.165"
checksum: 10c0/dc5b60a235ad04b1637b3b2af4914ac900c42813b02262a91a41d950223316f7b12de715697cf9c2d9f572f716f9422bf259ee65d86599cd2cc66e92c499ebd1 checksum: 10c0/20b91e67e7a8829a358c4a488e9b59b0e5f8d4cb075a70b9757bb21acf0fc751ca58ca7d9c6018bec74ac4bd42f7859e4ef37421c252a2275f642e12a32271d6
languageName: node languageName: node
linkType: hard linkType: hard
@@ -9338,9 +9338,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"postcss-custom-properties@npm:^14.0.5": "postcss-custom-properties@npm:^14.0.6":
version: 14.0.5 version: 14.0.6
resolution: "postcss-custom-properties@npm:14.0.5" resolution: "postcss-custom-properties@npm:14.0.6"
dependencies: dependencies:
"@csstools/cascade-layer-name-parser": "npm:^2.0.5" "@csstools/cascade-layer-name-parser": "npm:^2.0.5"
"@csstools/css-parser-algorithms": "npm:^3.0.5" "@csstools/css-parser-algorithms": "npm:^3.0.5"
@@ -9349,7 +9349,7 @@ __metadata:
postcss-value-parser: "npm:^4.2.0" postcss-value-parser: "npm:^4.2.0"
peerDependencies: peerDependencies:
postcss: ^8.4 postcss: ^8.4
checksum: 10c0/ddee0545075dc0888cd54a9bb5791a98719a5d4f31d1de33823841efb540fa79f65e48b7c4aaba753d3214102e419536c5bc46c72e6e1579e5352da4e042ef3b checksum: 10c0/0eeef77bc713551f5cb8fa5982d24da4e854075f3af020f1c94366c47a23a4cc225ebfecc978bdb17f00ee0bdee9d2c784e0d01adc64a447321e408abbe2c83b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -9530,8 +9530,8 @@ __metadata:
linkType: hard linkType: hard
"postcss-preset-env@npm:^10.1.5": "postcss-preset-env@npm:^10.1.5":
version: 10.2.0 version: 10.2.1
resolution: "postcss-preset-env@npm:10.2.0" resolution: "postcss-preset-env@npm:10.2.1"
dependencies: dependencies:
"@csstools/postcss-cascade-layers": "npm:^5.0.1" "@csstools/postcss-cascade-layers": "npm:^5.0.1"
"@csstools/postcss-color-function": "npm:^4.0.10" "@csstools/postcss-color-function": "npm:^4.0.10"
@@ -9567,7 +9567,7 @@ __metadata:
"@csstools/postcss-trigonometric-functions": "npm:^4.0.9" "@csstools/postcss-trigonometric-functions": "npm:^4.0.9"
"@csstools/postcss-unset-value": "npm:^4.0.0" "@csstools/postcss-unset-value": "npm:^4.0.0"
autoprefixer: "npm:^10.4.21" autoprefixer: "npm:^10.4.21"
browserslist: "npm:^4.24.5" browserslist: "npm:^4.25.0"
css-blank-pseudo: "npm:^7.0.1" css-blank-pseudo: "npm:^7.0.1"
css-has-pseudo: "npm:^7.0.2" css-has-pseudo: "npm:^7.0.2"
css-prefers-color-scheme: "npm:^10.0.0" css-prefers-color-scheme: "npm:^10.0.0"
@@ -9578,7 +9578,7 @@ __metadata:
postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-hex-alpha: "npm:^10.0.0"
postcss-color-rebeccapurple: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0"
postcss-custom-media: "npm:^11.0.6" postcss-custom-media: "npm:^11.0.6"
postcss-custom-properties: "npm:^14.0.5" postcss-custom-properties: "npm:^14.0.6"
postcss-custom-selectors: "npm:^8.0.5" postcss-custom-selectors: "npm:^8.0.5"
postcss-dir-pseudo-class: "npm:^9.0.1" postcss-dir-pseudo-class: "npm:^9.0.1"
postcss-double-position-gradients: "npm:^6.0.2" postcss-double-position-gradients: "npm:^6.0.2"
@@ -9599,7 +9599,7 @@ __metadata:
postcss-selector-not: "npm:^8.0.1" postcss-selector-not: "npm:^8.0.1"
peerDependencies: peerDependencies:
postcss: ^8.4 postcss: ^8.4
checksum: 10c0/33406dcdd1d63fd3810f12cd97bf0d6a09a51917943ee7d75e2ccaf1d8cbce363abcb90ee68f14509d287d00de4afd6664dbdecaa4f4b95509e3578e27f54a24 checksum: 10c0/1a78eb86bca8f7c2bf7686ee9ed354b21d1316a7d12ae9aec2ce4b4810f6d32e23d0787d7450e55145f14f76b715df758bb54af0ea6a151858b045bd429f596e
languageName: node languageName: node
linkType: hard linkType: hard