From f4906f2cac9ad94bb9413365ede058d457eb6dd1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2019 23:53:38 +0100 Subject: [PATCH 01/66] [Security] Bump excon from 0.62.0 to 0.71.0 (#12638) Bumps [excon](https://github.com/excon/excon) from 0.62.0 to 0.71.0. **This update includes a security fix.** - [Release notes](https://github.com/excon/excon/releases) - [Changelog](https://github.com/excon/excon/blob/master/changelog.txt) - [Commits](https://github.com/excon/excon/compare/v0.62.0...v0.71.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ec268dc8a..d9ca0f3aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -238,7 +238,7 @@ GEM erubi (1.9.0) et-orbi (1.1.6) tzinfo - excon (0.62.0) + excon (0.71.0) fabrication (2.21.0) faker (2.8.0) i18n (>= 1.6, < 1.8) From 09a72add0e98c3aebe82c417ecda01bed9596b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Tue, 17 Dec 2019 07:55:02 +0900 Subject: [PATCH 02/66] Fix tooltip messages of multiple poll switcher are reversed (#12616) --- .../mastodon/features/compose/components/poll_form.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index e9bbb4ba4..01df31d3a 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -82,8 +82,8 @@ class Option extends React.PureComponent { onKeyPress={this.handleCheckboxKeypress} role='button' tabIndex='0' - title={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)} - aria-label={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)} + title={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)} + aria-label={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)} /> Date: Tue, 17 Dec 2019 05:55:16 +0700 Subject: [PATCH 03/66] Improve report page structure (#12615) * Move resolved button to the heading This is one of the commits on improving overall reports page structure. It changes where resolved button is located, moving it to the heading, right next to the "Report #n" header, so-called "hot-place" to look at. To accomplish this we have to declare one more content variable, change admin dashboard template to respect it and CSS files for minor styling, so buttons are inlined and centrally aligned according to the heading. * Move actions buttons below the report table I believe that actions to react on report should not be located at the top of the page, instead they should be either after the table or reporter's comment. This is just a logical sign that you should not react to the report without reading all the details first. --- app/javascript/styles/mastodon/admin.scss | 31 +++++++++++++++++++---- app/views/admin/reports/show.html.haml | 24 ++++++++++-------- app/views/layouts/admin.html.haml | 7 ++++- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index dde1d69ba..203365f5e 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -181,18 +181,39 @@ $content-width: 840px; padding-top: 30px; } + &-heading { + display: flex; + + padding-bottom: 40px; + border-bottom: 1px solid lighten($ui-base-color, 8%); + margin-bottom: 40px; + + flex-wrap: wrap; + align-items: center; + + justify-content: space-between; + + &-actions { + display: inline-flex; + + & > * { + margin-left: 5px; + } + } + + @media screen and (max-width: $no-columns-breakpoint) { + border-bottom: 0; + padding-bottom: 0; + } + } + h2 { color: $secondary-text-color; font-size: 24px; line-height: 28px; font-weight: 400; - padding-bottom: 40px; - border-bottom: 1px solid lighten($ui-base-color, 8%); - margin-bottom: 40px; @media screen and (max-width: $no-columns-breakpoint) { - border-bottom: 0; - padding-bottom: 0; font-weight: 700; } } diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index aee9a3aef..7f3ec35a4 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -4,21 +4,12 @@ - content_for :page_title do = t('admin.reports.report', id: @report.id) -%div{ style: 'overflow: hidden; margin-bottom: 20px' } +- content_for :page_heading_actions do - if @report.unresolved? - %div{ style: 'float: right' } - - if @report.target_account.local? - = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button' - = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive' - = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive' - = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive' - %div{ style: 'float: left' } - = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' + = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button' - else = link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button' -%hr.spacer - .table-wrapper %table.table.inline-table %tbody @@ -77,6 +68,17 @@ %hr.spacer +%div{ style: 'overflow: hidden; margin-bottom: 20px; clear: both' } + - if @report.unresolved? + %div{ style: 'float: right' } + - if @report.target_account.local? + = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button' + = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive' + = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive' + +%hr.spacer + .speech-bubble .speech-bubble__bubble= simple_format(@report.comment.presence || t('admin.reports.comment.none')) .speech-bubble__owner diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index 57bda45e2..059bf8579 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -21,7 +21,12 @@ .content-wrapper .content - %h2= yield :page_title + .content-heading + %h2= yield :page_title + + - if :page_heading_actions + .content-heading-actions + = yield :page_heading_actions = render 'application/flashes' From 8094955461419661b88a0361a5d7caed4b19c29a Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 16 Dec 2019 23:55:28 +0100 Subject: [PATCH 04/66] Add Event activity-type support (#12637) This adds support for Event AP type in Mastodon. Events are converted into toots by taking their title (AS name) and their URL (AP ID). Event picture is also brought in if available. Testable by fetching event content from https://test.mobilizon.org Signed-off-by: Thomas Citharel --- app/lib/activitypub/activity.rb | 2 +- .../fetch_remote_status_service_spec.rb | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 0ca6b92a4..49b1dc9cd 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -5,7 +5,7 @@ class ActivityPub::Activity include Redisable SUPPORTED_TYPES = %w(Note Question).freeze - CONVERTED_TYPES = %w(Image Audio Video Article Page).freeze + CONVERTED_TYPES = %w(Image Audio Video Article Page Event).freeze def initialize(json, account, **options) @json = json diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 78dd59e3b..1ecc46952 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -104,6 +104,26 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do end end + context 'with Event object' do + let(:object) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: "https://#{valid_domain}/@foo/1234", + type: 'Event', + name: "Let's change the world", + attributedTo: ActivityPub::TagManager.instance.uri_for(sender) + } + end + + it 'creates status' do + status = sender.statuses.first + + expect(status).to_not be_nil + expect(status.url).to eq "https://#{valid_domain}/@foo/1234" + expect(strip_tags(status.text)).to eq "Let's change the world https://#{valid_domain}/@foo/1234" + end + end + context 'with wrong id' do let(:note) do { From 668f6980774e124a1cc4c80b280172de04ca7973 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Mon, 16 Dec 2019 23:55:50 +0100 Subject: [PATCH 05/66] Admin setting to disable default follows (#12566) --- app/javascript/packs/admin.js | 22 ++++++++++++++++++++-- app/models/form/admin_settings.rb | 2 ++ app/services/bootstrap_timeline_service.rb | 2 +- app/views/admin/settings/edit.html.haml | 7 ++++++- config/locales/en.yml | 2 ++ config/settings.yml | 1 + 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.js index 42c747d2e..b318cadc6 100644 --- a/app/javascript/packs/admin.js +++ b/app/javascript/packs/admin.js @@ -45,7 +45,25 @@ const onDomainBlockSeverityChange = (target) => { delegate(document, '#domain_block_severity', 'change', ({ target }) => onDomainBlockSeverityChange(target)); +const onEnableBootstrapTimelineAccountsChange = (target) => { + const bootstrapTimelineAccountsField = document.querySelector('#form_admin_settings_bootstrap_timeline_accounts'); + + if (bootstrapTimelineAccountsField) { + bootstrapTimelineAccountsField.disabled = !target.checked; + if (target.checked) { + bootstrapTimelineAccountsField.parentElement.classList.remove('disabled'); + } else { + bootstrapTimelineAccountsField.parentElement.classList.add('disabled'); + } + } +}; + +delegate(document, '#form_admin_settings_enable_bootstrap_timeline_accounts', 'change', ({ target }) => onEnableBootstrapTimelineAccountsChange(target)); + ready(() => { - const input = document.getElementById('domain_block_severity'); - if (input) onDomainBlockSeverityChange(input); + const domainBlockSeverityInput = document.getElementById('domain_block_severity'); + if (domainBlockSeverityInput) onDomainBlockSeverityChange(domainBlockSeverityInput); + + const enableBootstrapTimelineAccounts = document.getElementById('form_admin_settings_enable_bootstrap_timeline_accounts'); + if (enableBootstrapTimelineAccounts) onEnableBootstrapTimelineAccountsChange(enableBootstrapTimelineAccounts); }); diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 70e9c21f1..390836f28 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -16,6 +16,7 @@ class Form::AdminSettings open_deletion timeline_preview show_staff_badge + enable_bootstrap_timeline_accounts bootstrap_timeline_accounts theme min_invite_role @@ -40,6 +41,7 @@ class Form::AdminSettings open_deletion timeline_preview show_staff_badge + enable_bootstrap_timeline_accounts activity_api_enabled peers_api_enabled show_known_fediverse_at_about_page diff --git a/app/services/bootstrap_timeline_service.rb b/app/services/bootstrap_timeline_service.rb index c489601c1..8412aa7e7 100644 --- a/app/services/bootstrap_timeline_service.rb +++ b/app/services/bootstrap_timeline_service.rb @@ -5,7 +5,7 @@ class BootstrapTimelineService < BaseService @source_account = source_account autofollow_inviter! - autofollow_bootstrap_timeline_accounts! + autofollow_bootstrap_timeline_accounts! if Setting.enable_bootstrap_timeline_accounts end private diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index 6282bb39c..d7b493051 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -1,3 +1,6 @@ +- content_for :header_tags do + = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' + - content_for :page_title do = t('admin.settings.title') @@ -38,7 +41,9 @@ %hr.spacer/ .fields-group - = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html') + = f.input :enable_bootstrap_timeline_accounts, as: :boolean, wrapper: :with_label, label: t('admin.settings.enable_bootstrap_timeline_accounts.title') + .fields-group + = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html'), disabled: !Setting.enable_bootstrap_timeline_accounts %hr.spacer/ diff --git a/config/locales/en.yml b/config/locales/en.yml index ea94928e7..5edd6e0d3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -456,6 +456,8 @@ en: users: To logged-in local users domain_blocks_rationale: title: Show rationale + enable_bootstrap_timeline_accounts: + title: Enable default follows for new users hero: desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail title: Hero image diff --git a/config/settings.yml b/config/settings.yml index f66e3922e..002473643 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -61,6 +61,7 @@ defaults: &defaults - mod - moderator disallowed_hashtags: # space separated string or list of hashtags without the hash + enable_bootstrap_timeline_accounts: true bootstrap_timeline_accounts: '' activity_api_enabled: true peers_api_enabled: true From ed015e2e3df8075a0e57c54bc6a79994c59d970a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2019 10:19:20 +0900 Subject: [PATCH 06/66] Bump faker from 2.8.0 to 2.8.1 (#12633) Bumps [faker](https://github.com/faker-ruby/faker) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v2.8.0...v2.8.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d9ca0f3aa..582c71c65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -240,7 +240,7 @@ GEM tzinfo excon (0.71.0) fabrication (2.21.0) - faker (2.8.0) + faker (2.8.1) i18n (>= 1.6, < 1.8) faraday (0.15.4) multipart-post (>= 1.2, < 3) From 7e736d77ddb23a9fb9aa4914886a94c04befa1ae Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2019 10:19:58 +0900 Subject: [PATCH 07/66] Bump compression-webpack-plugin from 3.0.0 to 3.0.1 (#12620) Bumps [compression-webpack-plugin](https://github.com/webpack-contrib/compression-webpack-plugin) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/webpack-contrib/compression-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/compression-webpack-plugin/blob/v3.0.1/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/compression-webpack-plugin/compare/v3.0.0...v3.0.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 44 ++++++++++++-------------------------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 3bdec0d0e..c08cc0033 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "babel-runtime": "^6.26.0", "blurhash": "^1.1.3", "classnames": "^2.2.5", - "compression-webpack-plugin": "^3.0.0", + "compression-webpack-plugin": "^3.0.1", "copy-webpack-plugin": "^5.0.5", "cross-env": "^6.0.3", "css-loader": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index aeb7093c1..ebf6f575e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2203,26 +2203,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^11.2.0: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cacache@^12.0.2, cacache@^12.0.3: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" @@ -2638,16 +2618,16 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.40.0 < 2" -compression-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz#097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0" - integrity sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q== +compression-webpack-plugin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz#be7a343e6dfbccbd64a77c5fbe29627d140fc321" + integrity sha512-FOwoBVzDiwSdJDnZTKXDpAjJU90k8SbChgxnoiYwTo15xjIDJkSC8wFKuc13DymXjgasPEqzS5+2RUgSKXdKKA== dependencies: - cacache "^11.2.0" + cacache "^13.0.1" find-cache-dir "^3.0.0" neo-async "^2.5.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" webpack-sources "^1.0.1" compression@^1.7.4: @@ -9483,15 +9463,15 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: +serialize-javascript@^1.7.0: version "1.9.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -serialize-javascript@^2.1.0, serialize-javascript@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.1.tgz#952907a04a3e3a75af7f73d92d15e233862048b2" - integrity sha512-MPLPRpD4FNqWq9tTIjYG5LesFouDhdyH0EPY3gVK4DRD5+g4aDqdNSzLIwceulo3Yj+PL1bPh6laE5+H6LTcrQ== +serialize-javascript@^2.1.0, serialize-javascript@^2.1.1, serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serve-index@^1.9.1: version "1.9.1" From 0aaedcd66fa3786e106517f95e8ec3eff29ce689 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2019 10:20:49 +0900 Subject: [PATCH 08/66] Bump @babel/preset-env from 7.7.4 to 7.7.6 (#12623) Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.7.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.7.6) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 111 ++++++++++++++++++++++++++++----------------------- 2 files changed, 62 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index c08cc0033..dc6ca54d7 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@babel/plugin-proposal-decorators": "^7.7.4", "@babel/plugin-transform-react-inline-elements": "^7.7.4", "@babel/plugin-transform-runtime": "^7.7.6", - "@babel/preset-env": "^7.7.4", + "@babel/preset-env": "^7.7.6", "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.7.6", "@gamestdio/websocket": "^0.3.2", diff --git a/yarn.lock b/yarn.lock index ebf6f575e..a16c369e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -157,6 +157,18 @@ "@babel/types" "^7.7.4" lodash "^4.17.13" +"@babel/helper-module-transforms@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" + integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-simple-access" "^7.7.4" + "@babel/helper-split-export-declaration" "^7.7.4" + "@babel/template" "^7.7.4" + "@babel/types" "^7.7.4" + lodash "^4.17.13" + "@babel/helper-optimise-call-expression@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" @@ -478,21 +490,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71" - integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ== +"@babel/plugin-transform-modules-amd@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" + integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== dependencies: - "@babel/helper-module-transforms" "^7.7.4" + "@babel/helper-module-transforms" "^7.7.5" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3" - integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA== +"@babel/plugin-transform-modules-commonjs@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" + integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== dependencies: - "@babel/helper-module-transforms" "^7.7.4" + "@babel/helper-module-transforms" "^7.7.5" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.7.4" babel-plugin-dynamic-import-node "^2.3.0" @@ -592,10 +604,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.7.4" -"@babel/plugin-transform-regenerator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0" - integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw== +"@babel/plugin-transform-regenerator@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" + integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== dependencies: regenerator-transform "^0.14.0" @@ -661,10 +673,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/preset-env@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8" - integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g== +"@babel/preset-env@^7.7.6": + version "7.7.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2" + integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ== dependencies: "@babel/helper-module-imports" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -694,8 +706,8 @@ "@babel/plugin-transform-function-name" "^7.7.4" "@babel/plugin-transform-literals" "^7.7.4" "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.4" - "@babel/plugin-transform-modules-commonjs" "^7.7.4" + "@babel/plugin-transform-modules-amd" "^7.7.5" + "@babel/plugin-transform-modules-commonjs" "^7.7.5" "@babel/plugin-transform-modules-systemjs" "^7.7.4" "@babel/plugin-transform-modules-umd" "^7.7.4" "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" @@ -703,7 +715,7 @@ "@babel/plugin-transform-object-super" "^7.7.4" "@babel/plugin-transform-parameters" "^7.7.4" "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.4" + "@babel/plugin-transform-regenerator" "^7.7.5" "@babel/plugin-transform-reserved-words" "^7.7.4" "@babel/plugin-transform-shorthand-properties" "^7.7.4" "@babel/plugin-transform-spread" "^7.7.4" @@ -713,7 +725,7 @@ "@babel/plugin-transform-unicode-regex" "^7.7.4" "@babel/types" "^7.7.4" browserslist "^4.6.0" - core-js-compat "^3.1.1" + core-js-compat "^3.4.7" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" @@ -2138,14 +2150,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.0.tgz#6f06b0f974a7cc3a84babc2ccc56493668e3c789" - integrity sha512-HYnxc/oLRWvJ3TsGegR0SRL/UDnknGq2s/a8dYYEO+kOQ9m9apKoS5oiathLKZdh/e9uE+/J3j92qPlGD/vTqA== +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0, browserslist@^4.8.2: + version "4.8.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" + integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== dependencies: - caniuse-lite "^1.0.30001012" - electron-to-chromium "^1.3.317" - node-releases "^1.1.41" + caniuse-lite "^1.0.30001015" + electron-to-chromium "^1.3.322" + node-releases "^1.1.42" bser@^2.0.0: version "2.0.0" @@ -2319,6 +2331,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72" integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg== +caniuse-lite@^1.0.30001015: + version "1.0.30001016" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" + integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== + capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" @@ -2749,19 +2766,13 @@ copy-webpack-plugin@^5.0.5: serialize-javascript "^2.1.0" webpack-log "^2.0.0" -core-js-compat@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.3.tgz#0cc3ba4c7f62928c2837e1cffbe8dc78b4f1ae14" - integrity sha512-EP018pVhgwsKHz3YoN1hTq49aRe+h017Kjz0NQz3nXV0cCRMvH3fLQl+vEPGr4r4J5sk4sU3tUC7U1aqTCeJeA== +core-js-compat@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.5.0.tgz#5a11a619a9e9dd2dcf1c742b2060bc4a2143e5b6" + integrity sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg== dependencies: - browserslist "^4.6.0" - core-js-pure "3.1.3" - semver "^6.1.0" - -core-js-pure@3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.3.tgz#4c90752d5b9471f641514f3728f51c1e0783d0b5" - integrity sha512-k3JWTrcQBKqjkjI0bkfXS0lbpWPxYuHWfMMjC1VDmzU4Q58IwSbuXSo99YO/hUHlw/EB4AlfA2PVxOGkrIq6dA== + browserslist "^4.8.2" + semver "^6.3.0" core-js@^1.0.0: version "1.2.7" @@ -3500,10 +3511,10 @@ ejs@^2.3.4, ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== -electron-to-chromium@^1.3.317: - version "1.3.321" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.321.tgz#913869f5ec85daabba0e75c9c314b4bf26cdb01e" - integrity sha512-jJy/BZK2s2eAjMPXVMSaCmo7/pSY2aKkfQ+LoAb5Wk39qAhyP9r8KU74c4qTgr9cD/lPUhJgReZxxqU0n5puog== +electron-to-chromium@^1.3.322: + version "1.3.322" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" + integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== elliptic@^6.0.0: version "6.5.1" @@ -7106,10 +7117,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.41: - version "1.1.41" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.41.tgz#57674a82a37f812d18e3b26118aefaf53a00afed" - integrity sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg== +node-releases@^1.1.42: + version "1.1.42" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" + integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA== dependencies: semver "^6.3.0" @@ -9439,7 +9450,7 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== From 3830c0b74168070cdd410d311ba85a3b323bca9f Mon Sep 17 00:00:00 2001 From: scd31 <57571338+scd31@users.noreply.github.com> Date: Tue, 17 Dec 2019 12:30:58 +0000 Subject: [PATCH 09/66] Increase max backup size (#12602) * Increased max backup size * partially reverted schema.rb --- app/models/backup.rb | 2 +- .../20191212003415_increase_backup_size.rb | 9 ++++++ db/schema.rb | 28 ++----------------- 3 files changed, 12 insertions(+), 27 deletions(-) create mode 100644 db/migrate/20191212003415_increase_backup_size.rb diff --git a/app/models/backup.rb b/app/models/backup.rb index c2651313b..8eeb1748a 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -7,7 +7,7 @@ # user_id :bigint(8) # dump_file_name :string # dump_content_type :string -# dump_file_size :integer +# dump_file_size :bigint # dump_updated_at :datetime # processed :boolean default(FALSE), not null # created_at :datetime not null diff --git a/db/migrate/20191212003415_increase_backup_size.rb b/db/migrate/20191212003415_increase_backup_size.rb new file mode 100644 index 000000000..782c67db1 --- /dev/null +++ b/db/migrate/20191212003415_increase_backup_size.rb @@ -0,0 +1,9 @@ +class IncreaseBackupSize < ActiveRecord::Migration[5.2] + def up + change_column :backups, :dump_file_size, :bigint + end + + def down + change_column :backups, :dump_file_size, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 84c76e4ce..5a6b2530c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_10_31_163205) do +ActiveRecord::Schema.define(version: 2019_12_12_003415) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -200,7 +200,7 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do t.bigint "user_id" t.string "dump_file_name" t.string "dump_content_type" - t.integer "dump_file_size" + t.bigint "dump_file_size" t.datetime "dump_updated_at" t.boolean "processed", default: false, null: false t.datetime "created_at", null: false @@ -703,30 +703,6 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do t.index ["tag_id", "status_id"], name: "index_statuses_tags_on_tag_id_and_status_id", unique: true end - create_table "stream_entries", force: :cascade do |t| - t.bigint "activity_id" - t.string "activity_type" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "hidden", default: false, null: false - t.bigint "account_id" - t.index ["account_id", "activity_type", "id"], name: "index_stream_entries_on_account_id_and_activity_type_and_id" - t.index ["activity_id", "activity_type"], name: "index_stream_entries_on_activity_id_and_activity_type" - end - - create_table "subscriptions", force: :cascade do |t| - t.string "callback_url", default: "", null: false - t.string "secret" - t.datetime "expires_at" - t.boolean "confirmed", default: false, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.datetime "last_successful_delivery_at" - t.string "domain" - t.bigint "account_id", null: false - t.index ["account_id", "callback_url"], name: "index_subscriptions_on_account_id_and_callback_url", unique: true - end - create_table "tags", force: :cascade do |t| t.string "name", default: "", null: false t.datetime "created_at", null: false From da2143b3089ec16fca449b97acbfb65acfe92197 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 17 Dec 2019 13:31:56 +0100 Subject: [PATCH 10/66] Fixes featured hashtag setting page erroring out instead of rejecting invalid tags (#12436) * Revert "Fix ignoring whole status because of one invalid hashtag (#11621)" This reverts commit dff46b260b2f7d765d254c84a4b89105c7de5e97. * Fix statuses being rejected because of invalid hashtag names * Add spec for invalid hashtag names in statuses * Add test for featured tags controller --- app/lib/activitypub/activity/create.rb | 2 +- app/models/tag.rb | 2 +- .../settings/featured_tags_controller_spec.rb | 43 +++++++++++++++++++ spec/lib/activitypub/activity/create_spec.rb | 22 ++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 spec/controllers/settings/featured_tags_controller_spec.rb diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 8a12a2b08..756d5cb1c 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -157,7 +157,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if tag['name'].blank? Tag.find_or_create_by_names(tag['name']) do |hashtag| - @tags << hashtag unless @tags.include?(hashtag) + @tags << hashtag unless @tags.include?(hashtag) || !hashtag.valid? end rescue ActiveRecord::RecordInvalid nil diff --git a/app/models/tag.rb b/app/models/tag.rb index d3a7e1e6d..bce76fc16 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -117,7 +117,7 @@ class Tag < ApplicationRecord class << self def find_or_create_by_names(name_or_names) Array(name_or_names).map(&method(:normalize)).uniq { |str| str.mb_chars.downcase.to_s }.map do |normalized_name| - tag = matching_name(normalized_name).first || create!(name: normalized_name) + tag = matching_name(normalized_name).first || create(name: normalized_name) yield tag if block_given? diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb new file mode 100644 index 000000000..33b87f9f6 --- /dev/null +++ b/spec/controllers/settings/featured_tags_controller_spec.rb @@ -0,0 +1,43 @@ +require 'rails_helper' + +describe Settings::FeaturedTagsController do + render_views + + shared_examples 'authenticate user' do + it 'redirects to sign_in page' do + is_expected.to redirect_to new_user_session_path + end + end + + describe 'POST #create' do + context 'when user is not sign in' do + subject { post :create } + + it_behaves_like 'authenticate user' + end + + context 'when user is sign in' do + subject { post :create, params: { featured_tag: params } } + + let(:user) { Fabricate(:user, password: '12345678') } + + before { sign_in user, scope: :user } + + context 'when parameter is valid' do + let(:params) { { name: 'test' } } + + it 'creates featured tag' do + expect { subject }.to change { user.account.featured_tags.count }.by(1) + end + end + + context 'when parameter is invalid' do + let(:params) { { name: 'test, #foo !bleh' } } + + it 'renders new' do + expect(subject).to render_template :index + end + end + end + end +end diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb index b709954a3..c4efb5cc9 100644 --- a/spec/lib/activitypub/activity/create_spec.rb +++ b/spec/lib/activitypub/activity/create_spec.rb @@ -378,6 +378,28 @@ RSpec.describe ActivityPub::Activity::Create do end end + context 'with hashtags invalid name' do + let(:object_json) do + { + id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, + type: 'Note', + content: 'Lorem ipsum', + tag: [ + { + type: 'Hashtag', + href: 'http://example.com/blah', + name: 'foo, #eh !', + }, + ], + } + end + + it 'creates status' do + status = sender.statuses.first + expect(status).to_not be_nil + end + end + context 'with emojis' do let(:object_json) do { From 2ee5a9d9c319f187d4e94f6974654e1701e427eb Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 17 Dec 2019 13:32:57 +0100 Subject: [PATCH 11/66] Clean up OStatus-related codepaths (#12173) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove “protocol” argument and return value, as only ActivityPub is supported * Remove FetchRemoteAccountService, only use ActivityPub::FetchRemoteAccountService * Fix tests --- app/lib/activitypub/activity/create.rb | 2 +- app/services/fetch_remote_account_service.rb | 17 ------- app/services/fetch_remote_status_service.rb | 9 ++-- app/services/fetch_resource_service.rb | 2 +- app/services/resolve_url_service.rb | 10 ++-- .../fetch_remote_account_service_spec.rb | 50 ------------------- .../fetch_remote_status_service_spec.rb | 7 ++- spec/services/fetch_resource_service_spec.rb | 8 +-- 8 files changed, 15 insertions(+), 90 deletions(-) delete mode 100644 app/services/fetch_remote_account_service.rb delete mode 100644 spec/services/fetch_remote_account_service_spec.rb diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 756d5cb1c..c55cfe08e 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -167,7 +167,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if tag['href'].blank? account = account_from_uri(tag['href']) - account = ::FetchRemoteAccountService.new.call(tag['href']) if account.nil? + account = ActivityPub::FetchRemoteAccountService.new.call(tag['href']) if account.nil? return if account.nil? diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb deleted file mode 100644 index 3cd06e30f..000000000 --- a/app/services/fetch_remote_account_service.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -class FetchRemoteAccountService < BaseService - def call(url, prefetched_body = nil, protocol = :ostatus) - if prefetched_body.nil? - resource_url, resource_options, protocol = FetchResourceService.new.call(url) - else - resource_url = url - resource_options = { prefetched_body: prefetched_body } - end - - case protocol - when :activitypub - ActivityPub::FetchRemoteAccountService.new.call(resource_url, **resource_options) - end - end -end diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb index 208dc7809..21d277aff 100644 --- a/app/services/fetch_remote_status_service.rb +++ b/app/services/fetch_remote_status_service.rb @@ -1,17 +1,14 @@ # frozen_string_literal: true class FetchRemoteStatusService < BaseService - def call(url, prefetched_body = nil, protocol = :ostatus) + def call(url, prefetched_body = nil) if prefetched_body.nil? - resource_url, resource_options, protocol = FetchResourceService.new.call(url) + resource_url, resource_options = FetchResourceService.new.call(url) else resource_url = url resource_options = { prefetched_body: prefetched_body } end - case protocol - when :activitypub - ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) - end + ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) end end diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index 3676d899d..34382d279 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -33,7 +33,7 @@ class FetchResourceService < BaseService body = response.body_with_limit json = body_to_json(body) - [json['id'], { prefetched_body: body, id: true }, :activitypub] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json)) + [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json)) elsif !terminal link_header = response['Link'] && parse_link_header(response) diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb index 4e971a4b8..79b1bad0c 100644 --- a/app/services/resolve_url_service.rb +++ b/app/services/resolve_url_service.rb @@ -19,9 +19,9 @@ class ResolveURLService < BaseService def process_url if equals_or_includes_any?(type, ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) - FetchRemoteAccountService.new.call(resource_url, body, protocol) + ActivityPub::FetchRemoteAccountService.new.call(resource_url, prefetched_body: body) elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES) - status = FetchRemoteStatusService.new.call(resource_url, body, protocol) + status = FetchRemoteStatusService.new.call(resource_url, body) authorize_with @on_behalf_of, status, :show? unless status.nil? status elsif fetched_resource.nil? && @on_behalf_of.present? @@ -45,12 +45,8 @@ class ResolveURLService < BaseService fetched_resource.second[:prefetched_body] end - def protocol - fetched_resource.third - end - def type - return json_data['type'] if protocol == :activitypub + json_data['type'] end def json_data diff --git a/spec/services/fetch_remote_account_service_spec.rb b/spec/services/fetch_remote_account_service_spec.rb deleted file mode 100644 index ee7325be2..000000000 --- a/spec/services/fetch_remote_account_service_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'rails_helper' - -RSpec.describe FetchRemoteAccountService, type: :service do - let(:url) { 'https://example.com/alice' } - let(:prefetched_body) { nil } - let(:protocol) { :ostatus } - - subject { FetchRemoteAccountService.new.call(url, prefetched_body, protocol) } - - let(:actor) do - { - '@context': 'https://www.w3.org/ns/activitystreams', - id: 'https://example.com/alice', - type: 'Person', - preferredUsername: 'alice', - name: 'Alice', - summary: 'Foo bar', - inbox: 'http://example.com/alice/inbox', - } - end - - let(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } } - let(:xml) { File.read(Rails.root.join('spec', 'fixtures', 'xml', 'mastodon.atom')) } - - shared_examples 'return Account' do - it { is_expected.to be_an Account } - end - - context 'protocol is :activitypub' do - let(:prefetched_body) { Oj.dump(actor) } - let(:protocol) { :activitypub } - - before do - stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' }) - end - - include_examples 'return Account' - end - - context 'when prefetched_body is nil' do - context 'protocol is :activitypub' do - before do - stub_request(:get, url).to_return(status: 200, body: Oj.dump(actor), headers: { 'Content-Type' => 'application/activity+json' }) - stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' }) - end - - include_examples 'return Account' - end - end -end diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index f9db024b9..1c4b4fee2 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -16,9 +16,8 @@ RSpec.describe FetchRemoteStatusService, type: :service do end context 'protocol is :activitypub' do - subject { described_class.new.call(note[:id], prefetched_body, protocol) } + subject { described_class.new.call(note[:id], prefetched_body) } let(:prefetched_body) { Oj.dump(note) } - let(:protocol) { :activitypub } before do account.update(uri: ActivityPub::TagManager.instance.uri_for(account)) @@ -59,7 +58,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do XML - expect(subject.call('https://fake.domain/foo', status_body, :ostatus)).to be_nil + expect(subject.call('https://fake.domain/foo', status_body)).to be_nil end it 'does not create status with wrong id when id uses http format' do @@ -81,7 +80,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do XML - expect(subject.call('https://real.domain/statuses/456', status_body, :ostatus)).to be_nil + expect(subject.call('https://real.domain/statuses/456', status_body)).to be_nil end end end diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index f836147d3..3af6a0689 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -71,14 +71,14 @@ RSpec.describe FetchResourceService, type: :service do let(:content_type) { 'application/activity+json; charset=utf-8' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: body, id: true }] } end context 'when content type is ld+json with profile' do let(:content_type) { 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: body, id: true }] } end before do @@ -89,14 +89,14 @@ RSpec.describe FetchResourceService, type: :service do context 'when link header is present' do let(:headers) { { 'Link' => '; rel="alternate"; type="application/activity+json"', } } - it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: json, id: true }] } end context 'when content type is text/html' do let(:content_type) { 'text/html' } let(:body) { '' } - it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] } + it { is_expected.to eq [1, { prefetched_body: json, id: true }] } end end end From 7fe45e7c0317a896f3edfa1473489696dc7f0cf1 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 17 Dec 2019 13:33:36 +0100 Subject: [PATCH 12/66] Changes to tootctl statuses remove (#11267) * Fix comments in statuses_cli The comment for the part of query keeping statuses which have replies was incorrect, explaining the part of the query kept favourited statuses instead * Keep statuses favourited by local users in tootctl statuses remove * Do delete old replies that are not direct interactions with local users * Skip reblogs of local statuses instead of all reblogs * Optimize some queries * Keep old statuses with recent reblogs * Add option to clear toots from followed accounts too --- lib/mastodon/statuses_cli.rb | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb index 4d9af0a54..74f15de5f 100644 --- a/lib/mastodon/statuses_cli.rb +++ b/lib/mastodon/statuses_cli.rb @@ -13,6 +13,7 @@ module Mastodon end option :days, type: :numeric, default: 90 + option :clean_followed, type: :boolean desc 'remove', 'Remove unreferenced statuses' long_desc <<~LONG_DESC Remove statuses that are not referenced by local user activity, such as @@ -34,17 +35,26 @@ module Mastodon say('Beginning removal... This might take a while...') - Status.remote - .where('id < ?', max_id) - .where(reblog_of_id: nil) # Skip reblogs - .where(in_reply_to_id: nil) # Skip replies - .where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)') # Skip statuses that are pinned on profiles - .where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') # Skip statuses that mention local accounts - .where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)') # Skip statuses favourited by local accounts - .where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND statuses1.account_id IN (SELECT accounts.id FROM accounts WHERE accounts.domain IS NULL))') # Skip statuses reblogged by local accounts - .where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)') # Skip accounts followed by local accounts - .in_batches - .delete_all + scope = Status.remote.where('id < ?', max_id) + # Skip reblogs of local statuses + scope = scope.where('reblog_of_id NOT IN (SELECT statuses1.id FROM statuses AS statuses1 WHERE statuses1.id = statuses.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local))') + # Skip statuses that are pinned on profiles + scope = scope.where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)') + # Skip statuses that mention local accounts + scope = scope.where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') + # Skip statuses which have replies + scope = scope.where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)') + # Skip statuses reblogged by local accounts or with recent boosts + scope = scope.where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local OR statuses1.id >= ?))', max_id) + # Skip statuses favourited by local users + scope = scope.where('id NOT IN (SELECT favourites.status_id FROM favourites WHERE statuses.id = favourites.status_id AND favourites.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') + + unless options[:clean_followed] + # Skip accounts followed by local accounts + scope = scope.where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)') + end + + scope.in_batches.delete_all say('Beginning removal of now-orphaned media attachments to free up disk space...') From 71b4e2dcbb701977296384c897138b5d71a1fcac Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:32:51 +0900 Subject: [PATCH 13/66] Bump parallel_tests from 2.29.2 to 2.30.0 (#12634) Bumps [parallel_tests](https://github.com/grosser/parallel_tests) from 2.29.2 to 2.30.0. - [Release notes](https://github.com/grosser/parallel_tests/releases) - [Commits](https://github.com/grosser/parallel_tests/compare/v2.29.2...v2.30.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 43696f461..c7679fa3a 100644 --- a/Gemfile +++ b/Gemfile @@ -122,7 +122,7 @@ group :test do gem 'rspec-sidekiq', '~> 3.0' gem 'simplecov', '~> 0.17', require: false gem 'webmock', '~> 3.7' - gem 'parallel_tests', '~> 2.29' + gem 'parallel_tests', '~> 2.30' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 582c71c65..d088bd4df 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -424,7 +424,7 @@ GEM av (~> 0.9.0) paperclip (>= 2.5.2) parallel (1.19.1) - parallel_tests (2.29.2) + parallel_tests (2.30.0) parallel parser (2.6.5.0) ast (~> 2.4.0) @@ -753,7 +753,7 @@ DEPENDENCIES paperclip (~> 6.0) paperclip-av-transcoder (~> 0.6) parallel (~> 1.19) - parallel_tests (~> 2.29) + parallel_tests (~> 2.30) parslet pg (~> 1.1) pghero (~> 2.4) From d5fe6249927e1187292e5adb4b84404788d27a21 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:34:20 +0900 Subject: [PATCH 14/66] Bump stackprof from 0.2.13 to 0.2.14 (#12631) Bumps [stackprof](https://github.com/tmm1/stackprof) from 0.2.13 to 0.2.14. - [Release notes](https://github.com/tmm1/stackprof/releases) - [Changelog](https://github.com/tmm1/stackprof/blob/master/CHANGELOG.md) - [Commits](https://github.com/tmm1/stackprof/compare/v0.2.13...v0.2.14) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d088bd4df..82b9db8f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -615,7 +615,7 @@ GEM sshkit (1.20.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.13) + stackprof (0.2.14) statsd-ruby (1.4.0) stoplight (2.2.0) streamio-ffmpeg (3.0.2) From 99adf00d111540f3b3ef7c3b00c23264e46941fa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:36:49 +0900 Subject: [PATCH 15/66] Bump doorkeeper from 5.2.2 to 5.2.3 (#12630) Bumps [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) from 5.2.2 to 5.2.3. - [Release notes](https://github.com/doorkeeper-gem/doorkeeper/releases) - [Changelog](https://github.com/doorkeeper-gem/doorkeeper/blob/master/CHANGELOG.md) - [Commits](https://github.com/doorkeeper-gem/doorkeeper/compare/v5.2.2...v5.2.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 82b9db8f9..da2a1c430 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,7 +134,7 @@ GEM msgpack (~> 1.0) brakeman (4.7.2) browser (2.7.1) - builder (3.2.3) + builder (3.2.4) bullet (6.0.2) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) @@ -218,7 +218,7 @@ GEM docile (1.3.2) domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.2.2) + doorkeeper (5.2.3) railties (>= 5) dotenv (2.7.5) dotenv-rails (2.7.5) @@ -356,7 +356,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.3.1) + loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) From 49d1190a970c91d6a6fa8ad9c4fad16ed0d4ceba Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:40:34 +0900 Subject: [PATCH 16/66] Bump array-includes from 3.0.3 to 3.1.0 (#12627) Bumps [array-includes](https://github.com/es-shims/array-includes) from 3.0.3 to 3.1.0. - [Release notes](https://github.com/es-shims/array-includes/releases) - [Changelog](https://github.com/es-shims/array-includes/blob/master/CHANGELOG.md) - [Commits](https://github.com/es-shims/array-includes/compare/v3.0.3...v3.1.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 31 ++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index dc6ca54d7..2040b8cbc 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@babel/runtime": "^7.7.6", "@gamestdio/websocket": "^0.3.2", "@clusterws/cws": "^0.16.0", - "array-includes": "^3.0.3", + "array-includes": "^3.1.0", "arrow-key-navigation": "^1.1.0", "autoprefixer": "^9.7.3", "axios": "^0.19.0", diff --git a/yarn.lock b/yarn.lock index a16c369e7..d73239f44 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1604,13 +1604,13 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.0.3, array-includes@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.0.tgz#48a929ef4c6bb1fa6dc4a92c9b023a261b0ca404" + integrity sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.0" array-union@^1.0.1: version "1.0.2" @@ -3657,7 +3657,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1: version "1.16.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34" integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA== @@ -3673,6 +3673,23 @@ es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15 string.prototype.trimleft "^2.1.0" string.prototype.trimright "^2.1.0" +es-abstract@^1.17.0-next.0: + version "1.17.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172" + integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" From 80fb452446dc7e17325f21485c2b95f527284696 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:41:49 +0900 Subject: [PATCH 17/66] Bump css-loader from 3.2.0 to 3.3.2 (#12624) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.2.0 to 3.3.2. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.2.0...v3.3.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 2040b8cbc..6cb59b346 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "compression-webpack-plugin": "^3.0.1", "copy-webpack-plugin": "^5.0.5", "cross-env": "^6.0.3", - "css-loader": "^3.2.0", + "css-loader": "^3.3.2", "cssnano": "^4.1.10", "detect-passive-events": "^1.0.2", "dotenv": "^8.2.0", diff --git a/yarn.lock b/yarn.lock index d73239f44..9f631becf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2940,23 +2940,23 @@ css-list-helpers@^1.0.1: dependencies: tcomb "^2.5.0" -css-loader@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2" - integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ== +css-loader@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.3.2.tgz#41b2086528aa4fbf8c0692e874bc14f081129b21" + integrity sha512-4XSiURS+YEK2fQhmSaM1onnUm0VKWNf6WWBYjkp9YbSDGCBTVZ5XOM6Gkxo8tLgQlzkZOBJvk9trHlDk4gjEYg== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" - postcss "^7.0.17" + postcss "^7.0.23" postcss-modules-extract-imports "^2.0.0" postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.0" + postcss-modules-scope "^2.1.1" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.0" - schema-utils "^2.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" css-select-base-adapter@~0.1.0: version "0.1.1" @@ -8058,10 +8058,10 @@ postcss-modules-local-by-default@^3.0.2: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" @@ -8259,7 +8259,7 @@ postcss@^5.0.16: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: version "7.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1" integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ== @@ -9429,7 +9429,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.1: +schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== From b6b2757fc7c5b81f6eb631f9dc6aa5ef8e879600 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:42:02 +0900 Subject: [PATCH 18/66] Bump copy-webpack-plugin from 5.0.5 to 5.1.1 (#12621) Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.5 to 5.1.1. - [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.5...v5.1.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 6cb59b346..5f63039ec 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "blurhash": "^1.1.3", "classnames": "^2.2.5", "compression-webpack-plugin": "^3.0.1", - "copy-webpack-plugin": "^5.0.5", + "copy-webpack-plugin": "^5.1.1", "cross-env": "^6.0.3", "css-loader": "^3.3.2", "cssnano": "^4.1.10", diff --git a/yarn.lock b/yarn.lock index 9f631becf..66a3de7a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2748,10 +2748,10 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz#731df6a837a2ef0f8f8e2345bdfe9b7c62a2da68" - integrity sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ== +copy-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" + integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== dependencies: cacache "^12.0.3" find-cache-dir "^2.1.0" @@ -2763,7 +2763,7 @@ copy-webpack-plugin@^5.0.5: normalize-path "^3.0.0" p-limit "^2.2.1" schema-utils "^1.0.0" - serialize-javascript "^2.1.0" + serialize-javascript "^2.1.2" webpack-log "^2.0.0" core-js-compat@^3.4.7: @@ -9496,7 +9496,7 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -serialize-javascript@^2.1.0, serialize-javascript@^2.1.1, serialize-javascript@^2.1.2: +serialize-javascript@^2.1.1, serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== From 08f48cbeb43163ae220bbb9a4bdb5bf79e4cb301 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:42:25 +0900 Subject: [PATCH 19/66] Bump eslint-plugin-import from 2.19.0 to 2.19.1 (#12622) Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.19.0 to 2.19.1. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.19.0...v2.19.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5f63039ec..4437fcdee 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.15.1", "eslint": "^6.7.2", - "eslint-plugin-import": "~2.19.0", + "eslint-plugin-import": "~2.19.1", "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-react": "~7.17.0", diff --git a/yarn.lock b/yarn.lock index 66a3de7a0..0c4b39fbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3819,10 +3819,10 @@ eslint-plugin-eslint-plugin@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5" integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg== -eslint-plugin-import@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.0.tgz#560ddc8236b4e68df57a95c5ba33bcf23300c780" - integrity sha512-J13f9Slu7BCZq1N2NnWmK7tci/Y1SWWHUaj0J+I1NpzUm8l/Gwnz6KO+JMbM4TcnxU8O/DJ4psa6eZrmNREsOg== +eslint-plugin-import@~2.19.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" + integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" From b2aeb0061a128532153d47936b3e75de45b986f5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:53:15 +0900 Subject: [PATCH 20/66] Bump webpacker from 4.2.0 to 4.2.2 (#12632) Bumps [webpacker](https://github.com/rails/webpacker) from 4.2.0 to 4.2.2. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v4.2.0...v4.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index da2a1c430..a1ce3620a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -660,7 +660,7 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (4.2.0) + webpacker (4.2.2) activesupport (>= 4.2) rack-proxy (>= 0.6.1) railties (>= 4.2) From 9dc2fc9ec6122171142907a844712dc80eead119 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 03:54:42 +0900 Subject: [PATCH 21/66] Bump react-redux from 7.1.1 to 7.1.3 (#12626) Bumps [react-redux](https://github.com/reduxjs/react-redux) from 7.1.1 to 7.1.3. - [Release notes](https://github.com/reduxjs/react-redux/releases) - [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md) - [Commits](https://github.com/reduxjs/react-redux/compare/v7.1.1...v7.1.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 4437fcdee..4f1cec636 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "react-motion": "^0.5.2", "react-notification": "^6.8.5", "react-overlays": "^0.9.1", - "react-redux": "^7.1.1", + "react-redux": "^7.1.3", "react-redux-loading-bar": "^4.0.8", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", diff --git a/yarn.lock b/yarn.lock index 0c4b39fbd..6e196404b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8636,12 +8636,7 @@ react-intl@^2.9.0: intl-relativeformat "^2.1.0" invariant "^2.1.1" -react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa" - integrity sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw== - -react-is@^16.8.1: +react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== @@ -8696,10 +8691,10 @@ react-redux-loading-bar@^4.0.8: prop-types "^15.6.2" react-lifecycles-compat "^3.0.2" -react-redux@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.1.tgz#ce6eee1b734a7a76e0788b3309bf78ff6b34fa0a" - integrity sha512-QsW0vcmVVdNQzEkrgzh2W3Ksvr8cqpAv5FhEk7tNEft+5pp7rXxAudTz3VOPawRkLIepItpkEIyLcN/VVXzjTg== +react-redux@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79" + integrity sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w== dependencies: "@babel/runtime" "^7.5.5" hoist-non-react-statics "^3.3.0" From c436367c3c65a67dd0985c36bbcb465443c38cba Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 04:04:30 +0900 Subject: [PATCH 22/66] Bump json-ld-preloaded from 3.0.4 to 3.0.6 (#12361) Bumps [json-ld-preloaded](https://github.com/ruby-rdf/json-ld-preloaded) from 3.0.4 to 3.0.6. - [Release notes](https://github.com/ruby-rdf/json-ld-preloaded/releases) - [Commits](https://github.com/ruby-rdf/json-ld-preloaded/compare/3.0.4...3.0.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a1ce3620a..9362fd358 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -324,7 +324,7 @@ GEM jmespath (1.4.0) json (2.2.0) json-canonicalization (0.1.0) - json-ld-preloaded (3.0.4) + json-ld-preloaded (3.0.6) json-ld (~> 3.0) multi_json (~> 1.12) rdf (~> 3.0) @@ -380,7 +380,7 @@ GEM mini_portile2 (2.4.0) minitest (5.13.0) msgpack (1.3.1) - multi_json (1.13.1) + multi_json (1.14.1) multipart-post (2.1.1) necromancer (0.5.1) net-ldap (0.16.2) @@ -504,7 +504,7 @@ GEM thor (>= 0.19.0, < 2.0) rainbow (3.0.0) rake (13.0.1) - rdf (3.0.12) + rdf (3.0.13) hamster (~> 3.0) link_header (~> 0.0, >= 0.0.8) rdf-normalize (0.3.3) From 45f89684045d4b39ebc9291e0cad3d1f318e5f8c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2019 08:58:53 +0900 Subject: [PATCH 23/66] Bump rails from 5.2.3 to 5.2.4 (#12584) * Bump rails from 5.2.3 to 5.2.4 Bumps [rails](https://github.com/rails/rails) from 5.2.3 to 5.2.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v5.2.3...v5.2.4) Signed-off-by: dependabot-preview[bot] * sprockets ~> 3.7 --- Gemfile | 3 +- Gemfile.lock | 79 ++++++++++++++++++++++++++-------------------------- 2 files changed, 42 insertions(+), 40 deletions(-) diff --git a/Gemfile b/Gemfile index c7679fa3a..3a0161c45 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,8 @@ ruby '>= 2.4.0', '< 2.7.0' gem 'pkg-config', '~> 1.4' gem 'puma', '~> 4.3' -gem 'rails', '~> 5.2.3' +gem 'rails', '~> 5.2.4' +gem 'sprockets', '~> 3.7' gem 'thor', '~> 0.20' gem 'hamlit-rails', '~> 0.2' diff --git a/Gemfile.lock b/Gemfile.lock index 9362fd358..df29d4f39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,25 +44,25 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.2.3) - actionpack (= 5.2.3) + actioncable (5.2.4) + actionpack (= 5.2.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) + actionmailer (5.2.4) + actionpack (= 5.2.4) + actionview (= 5.2.4) + activejob (= 5.2.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.3) - actionview (= 5.2.3) - activesupport (= 5.2.3) + actionpack (5.2.4) + actionview (= 5.2.4) + activesupport (= 5.2.4) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.3) - activesupport (= 5.2.3) + actionview (5.2.4) + activesupport (= 5.2.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -73,20 +73,20 @@ GEM case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) active_record_query_trace (1.7) - activejob (5.2.3) - activesupport (= 5.2.3) + activejob (5.2.4) + activesupport (= 5.2.4) globalid (>= 0.3.6) - activemodel (5.2.3) - activesupport (= 5.2.3) - activerecord (5.2.3) - activemodel (= 5.2.3) - activesupport (= 5.2.3) + activemodel (5.2.4) + activesupport (= 5.2.4) + activerecord (5.2.4) + activemodel (= 5.2.4) + activesupport (= 5.2.4) arel (>= 9.0) - activestorage (5.2.3) - actionpack (= 5.2.3) - activerecord (= 5.2.3) + activestorage (5.2.4) + actionpack (= 5.2.4) + activerecord (= 5.2.4) marcel (~> 0.3.1) - activesupport (5.2.3) + activesupport (5.2.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -469,18 +469,18 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.3) - actioncable (= 5.2.3) - actionmailer (= 5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - activemodel (= 5.2.3) - activerecord (= 5.2.3) - activestorage (= 5.2.3) - activesupport (= 5.2.3) + rails (5.2.4) + actioncable (= 5.2.4) + actionmailer (= 5.2.4) + actionpack (= 5.2.4) + actionview (= 5.2.4) + activejob (= 5.2.4) + activemodel (= 5.2.4) + activerecord (= 5.2.4) + activestorage (= 5.2.4) + activesupport (= 5.2.4) bundler (>= 1.3.0) - railties (= 5.2.3) + railties (= 5.2.4) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.4) actionpack (>= 5.0.1.x) @@ -496,9 +496,9 @@ GEM railties (>= 5.0, < 6) rails-settings-cached (0.6.6) rails (>= 4.2.0) - railties (5.2.3) - actionpack (= 5.2.3) - activesupport (= 5.2.3) + railties (5.2.4) + actionpack (= 5.2.4) + activesupport (= 5.2.4) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) @@ -667,9 +667,9 @@ GEM webpush (0.3.8) hkdf (~> 0.2) jwt (~> 2.0) - websocket-driver (0.7.0) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.4) wisper (2.0.1) xpath (3.2.0) nokogiri (~> 1.8) @@ -767,7 +767,7 @@ DEPENDENCIES pundit (~> 2.1) rack-attack (~> 6.2) rack-cors (~> 1.1) - rails (~> 5.2.3) + rails (~> 5.2.4) rails-controller-testing (~> 1.0) rails-i18n (~> 5.1) rails-settings-cached (~> 0.6) @@ -789,6 +789,7 @@ DEPENDENCIES simple-navigation (~> 4.1) simple_form (~> 5.0) simplecov (~> 0.17) + sprockets (~> 3.7) sprockets-rails (~> 3.2) stackprof stoplight (~> 2.2.0) From a391eaf4d81d5b7a2e5d7e2106f3e119867e1a9b Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Thu, 19 Dec 2019 00:54:03 +0900 Subject: [PATCH 24/66] Fix an error when ActivityPub::FetchRemoteStatusService url is called with nil (#12652) --- app/services/fetch_remote_status_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb index 21d277aff..eafde4d4a 100644 --- a/app/services/fetch_remote_status_service.rb +++ b/app/services/fetch_remote_status_service.rb @@ -9,6 +9,6 @@ class FetchRemoteStatusService < BaseService resource_options = { prefetched_body: prefetched_body } end - ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) + ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) unless resource_url.nil? end end From 8a347f4937b26ba6cb71eb2585c0f446640176ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A8r=20Kessels?= Date: Wed, 18 Dec 2019 16:54:29 +0100 Subject: [PATCH 25/66] Fix typo in login feature-test. (#12651) --- spec/features/log_in_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb index f6c26cd0f..b874c255b 100644 --- a/spec/features/log_in_spec.rb +++ b/spec/features/log_in_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" feature "Log in" do - given(:email) { "test@examle.com" } + given(:email) { "test@example.com" } given(:password) { "password" } given(:confirmed_at) { Time.zone.now } From 68070e82ccadfef4f101653cf8456f15148c58b7 Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Thu, 19 Dec 2019 00:55:21 +0900 Subject: [PATCH 26/66] Add signature to exported status (#12649) --- app/services/backup_service.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb index fe26d7aa0..fba2d19a0 100644 --- a/app/services/backup_service.rb +++ b/app/services/backup_service.rb @@ -3,6 +3,8 @@ require 'rubygems/package' class BackupService < BaseService + include Payloadable + attr_reader :account, :backup, :collection def call(backup) @@ -20,7 +22,7 @@ class BackupService < BaseService account.statuses.with_includes.reorder(nil).find_in_batches do |statuses| statuses.each do |status| - item = serialize(status, ActivityPub::ActivitySerializer) + item = serialize_payload(status, ActivityPub::ActivitySerializer, signer: @account) item.delete(:'@context') unless item[:type] == 'Announce' || item[:object][:attachment].blank? From b364175e1b345e7f36955ba85b483ec2bdd8622d Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 18 Dec 2019 16:56:06 +0100 Subject: [PATCH 27/66] Fix link crawler not specifying accepted content-type (#12646) The link crawler expects HTML documents, so set the `Accept` header accordingly. Fixes #12618 --- app/services/fetch_link_card_service.rb | 2 +- app/services/fetch_oembed_service.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 5d4a7c303..91141c1f5 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService def html return @html if defined?(@html) - Request.new(:get, @url).perform do |res| + Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res| if res.code == 200 && res.mime_type == 'text/html' @html = res.body_with_limit @html_charset = res.charset diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb index 76d971bc5..67e33875c 100644 --- a/app/services/fetch_oembed_service.rb +++ b/app/services/fetch_oembed_service.rb @@ -93,7 +93,7 @@ class FetchOEmbedService def html return @html if defined?(@html) - @html = @options[:html] || Request.new(:get, @url).perform do |res| + @html = @options[:html] || Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res| res.code != 200 || res.mime_type != 'text/html' ? nil : res.body_with_limit end end From fb9137752a734caa6891637728cc243d79c1af97 Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 18 Dec 2019 16:56:39 +0100 Subject: [PATCH 28/66] Remove unused translatable strings (#12643) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove unused “salmon_url” string * Remove more unused translatable strings The following strings all used to be on the admin account page but aren't used anymore: profile_url, outbox_url, followers_url, feed_url --- config/locales/ar.yml | 5 ----- config/locales/bn.yml | 5 ----- config/locales/ca.yml | 5 ----- config/locales/co.yml | 5 ----- config/locales/cs.yml | 5 ----- config/locales/cy.yml | 5 ----- config/locales/da.yml | 5 ----- config/locales/de.yml | 5 ----- config/locales/el.yml | 5 ----- config/locales/en.yml | 5 ----- config/locales/en_GB.yml | 5 ----- config/locales/eo.yml | 5 ----- config/locales/es-AR.yml | 4 ---- config/locales/es.yml | 5 ----- config/locales/et.yml | 5 ----- config/locales/eu.yml | 5 ----- config/locales/fa.yml | 5 ----- config/locales/fi.yml | 5 ----- config/locales/fr.yml | 5 ----- config/locales/gl.yml | 5 ----- config/locales/he.yml | 5 ----- config/locales/hu.yml | 5 ----- config/locales/id.yml | 5 ----- config/locales/it.yml | 5 ----- config/locales/ja.yml | 5 ----- config/locales/ka.yml | 5 ----- config/locales/kk.yml | 5 ----- config/locales/ko.yml | 5 ----- config/locales/lt.yml | 5 ----- config/locales/ms.yml | 5 ----- config/locales/nl.yml | 5 ----- config/locales/no.yml | 5 ----- config/locales/oc.yml | 5 ----- config/locales/pl.yml | 5 ----- config/locales/pt-BR.yml | 5 ----- config/locales/pt-PT.yml | 5 ----- config/locales/ru.yml | 5 ----- config/locales/sk.yml | 5 ----- config/locales/sl.yml | 5 ----- config/locales/sq.yml | 4 ---- config/locales/sr-Latn.yml | 5 ----- config/locales/sr.yml | 5 ----- config/locales/sv.yml | 5 ----- config/locales/te.yml | 2 -- config/locales/th.yml | 4 ---- config/locales/tr.yml | 5 ----- config/locales/uk.yml | 5 ----- config/locales/zh-CN.yml | 5 ----- config/locales/zh-HK.yml | 5 ----- config/locales/zh-TW.yml | 5 ----- 50 files changed, 244 deletions(-) diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 340d720ae..835e96769 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -124,9 +124,7 @@ ar: email_status: حالة البريد الإلكتروني enable: تفعيل enabled: مفعَّل - feed_url: عنوان رابط التغذية followers: المتابِعون - followers_url: عنوان رابط المتابِعين follows: يتابع header: الرأسية inbox_url: رابط صندوق الوارد @@ -154,10 +152,8 @@ ar: no_account_selected: لم يطرأ أي تغيير على أي حساب بما أنه لم يتم اختيار أي واحد no_limits_imposed: مِن دون حدود مشروطة not_subscribed: غير مشترك - outbox_url: رابط صندوق الصادر pending: في انتظار المراجعة perform_full_suspension: تعليق الحساب - profile_url: رابط الصفحة التعريفية promote: ترقية protocol: البروتوكول public: عمومي @@ -180,7 +176,6 @@ ar: moderator: مشرف staff: الفريق user: مستخدِم - salmon_url: عنوان رابط سالمون Salmon search: البحث shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد show: diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 24f0a654a..7dd49ff96 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -118,9 +118,7 @@ bn: email_status: ইমেইলের অবস্থা enable: চালু করুন enabled: চালু করুন - feed_url: সম্মিলিত(feed) লিংক followers: অনুসরকারীরা - followers_url: অনুসরণকারীদের লিংক follows: অনুসরণ করে header: শিরোলেখা inbox_url: চিঠি পাওয়ার বক্স লিংক @@ -148,10 +146,8 @@ bn: no_account_selected: কোনও অ্যাকাউন্টই নির্বাচন করা হয়নি বলে কোনও অ্যাকাউন্ট পরিবর্তন করা হয়নি no_limits_imposed: কোন সীমা আরোপ করা নেই not_subscribed: সাবস্ক্রাইব নেই - outbox_url: চিঠি পাঠানোর বাক্স লিংক pending: পয্র্যবেক্ষণের অপেক্ষায় আছে perform_full_suspension: বাতিল করা - profile_url: প্রোফাইল URL promote: প্রচার protocol: প্রোটোকল public: সর্বজনীন @@ -174,7 +170,6 @@ bn: moderator: নিয়ামক staff: কর্মী user: ব্যবহারকারী - salmon_url: সালমন URL search: অনুসন্ধান search_same_ip: একই IP সহ অন্যান্য ব্যবহারকারীরা shared_inbox_url: ভাগ করা ইনবক্স URL diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 1331299cc..c3cfe3083 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -118,9 +118,7 @@ ca: email_status: Estat del correu electrònic enable: Habilita enabled: Habilitat - feed_url: URL del canal followers: Seguidors - followers_url: URL dels seguidors follows: Segueix header: Capçalera inbox_url: URL de la safata d'entrada @@ -148,10 +146,8 @@ ca: no_account_selected: No s'han canviat els comptes perque no s'han seleccionat no_limits_imposed: Sense límits imposats not_subscribed: No subscrit - outbox_url: URL de la bústia de sortida pending: Revisió pendent perform_full_suspension: Suspèn - profile_url: URL del perfil promote: Promociona protocol: Protocol public: Públic @@ -174,7 +170,6 @@ ca: moderator: Moderador staff: Personal user: Usuari - salmon_url: URL Salmon search: Cerca search_same_ip: Altres usuaris amb la mateixa IP shared_inbox_url: URL de la safata d'entrada compartida diff --git a/config/locales/co.yml b/config/locales/co.yml index c71df77c1..9653363ca 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -118,9 +118,7 @@ co: email_status: Statutu di l’e-mail enable: Attivà enabled: Attivatu - feed_url: URL di u flussu followers: Abbunati - followers_url: URL di l’abbunati follows: Abbunamenti header: Intistatura inbox_url: URL di l’inbox @@ -148,10 +146,8 @@ co: no_account_selected: Nisun contu hè statu cambiatu postu ch'ùn c'eranu micca selezziunati no_limits_imposed: Nisuna limita imposta not_subscribed: Micca abbunatu - outbox_url: URL di l’outbox pending: In attesa di rivista perform_full_suspension: Suspende - profile_url: URL di u prufile promote: Prumove protocol: Prutucollu public: Pubblicu @@ -174,7 +170,6 @@ co: moderator: Muderatore staff: Squadra user: Utilizatore - salmon_url: URL di Salmon search: Cercà search_same_ip: Altri utilizatori cù listessa IP shared_inbox_url: URL di l’inbox spartuta diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 51503ed70..81ae22680 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -126,9 +126,7 @@ cs: email_status: Stav e-mailu enable: Povolit enabled: Povoleno - feed_url: URL proudu followers: Sledující - followers_url: URL sledujících follows: Sledovaní header: Záhlaví inbox_url: URL příchozí schránky @@ -156,10 +154,8 @@ cs: no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen no_limits_imposed: Nejsou nastavena žádná omezení not_subscribed: Neodebírá - outbox_url: URL odchozí schránky pending: Čeká na posouzení perform_full_suspension: Pozastavit - profile_url: URL profilu promote: Povýšit protocol: Protokol public: Veřejný @@ -182,7 +178,6 @@ cs: moderator: Moderátor staff: Člen personálu user: Uživatel - salmon_url: URL Salmon search: Hledat search_same_ip: Další uživatelé se stejnou IP adresou shared_inbox_url: URL sdílené příchozí schránky diff --git a/config/locales/cy.yml b/config/locales/cy.yml index f360db211..fde22cc33 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -133,9 +133,7 @@ cy: email_status: Statws E-bost enable: Galluogi enabled: Wedi ei alluogi - feed_url: Ffrwd URL followers: Dilynwyr - followers_url: URL Dilynwyr follows: Yn dilyn header: Pennawd inbox_url: URL Mewnflwch @@ -163,10 +161,8 @@ cy: no_account_selected: Ni newidwyd dim cyfrif achos ni ddewiswyd dim un no_limits_imposed: Dim terfynau wedi'i gosod not_subscribed: Heb danysgrifio - outbox_url: Allflwch URL pending: Yn aros am adolygiad perform_full_suspension: Atal - profile_url: URL proffil promote: Hyrwyddo protocol: Protocol public: Cyhoeddus @@ -189,7 +185,6 @@ cy: moderator: Aroglygydd staff: Staff user: Defnyddiwr - salmon_url: URL Eog search: Chwilio search_same_ip: Defnyddwyr eraill gyda'r un IP shared_inbox_url: URL Mewnflwch wedi ei rannu diff --git a/config/locales/da.yml b/config/locales/da.yml index 149e7da2b..57f4ed879 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -96,9 +96,7 @@ da: edit: Rediger enable: Aktiver enabled: Aktiveret - feed_url: Link til feed followers: Følgere - followers_url: Link til følgere follows: Følger inbox_url: Link til indbakke invited_by: Inviteret af @@ -123,9 +121,7 @@ da: most_recent_activity: Seneste aktivitet most_recent_ip: Senest IP not_subscribed: Ikke abonneret - outbox_url: Link til udgående perform_full_suspension: Udeluk - profile_url: Link til profil promote: Forfrem protocol: Protokol public: Offentligt @@ -147,7 +143,6 @@ da: moderator: Mod staff: Personale user: Bruger - salmon_url: Salmon-URL search: Søg search_same_ip: Andre brugere med den samme IP-adresse shared_inbox_url: Link til delt indbakke diff --git a/config/locales/de.yml b/config/locales/de.yml index d27c6b105..445205871 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -118,9 +118,7 @@ de: email_status: E-Mail-Status enable: Freischalten enabled: Freigegeben - feed_url: Feed-URL followers: Folgende - followers_url: URL des Folgenden follows: Folgt header: Titelbild inbox_url: Posteingangs-URL @@ -148,10 +146,8 @@ de: no_account_selected: Keine Konten wurden geändert, da keine ausgewählt wurden no_limits_imposed: Keine Beschränkungen not_subscribed: Nicht abonniert - outbox_url: Postausgangs-URL pending: In Warteschlange perform_full_suspension: Verbannen - profile_url: Profil-URL promote: Befördern protocol: Protokoll public: Öffentlich @@ -174,7 +170,6 @@ de: moderator: Moderator_in staff: Mitarbeiter user: Nutzer - salmon_url: Salmon-URL search: Suche search_same_ip: Andere Benutzer mit derselben IP shared_inbox_url: Geteilte Posteingang-URL diff --git a/config/locales/el.yml b/config/locales/el.yml index cb1694573..585eefab4 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -118,9 +118,7 @@ el: email_status: Κατάσταση email enable: Ενεργοποίηση enabled: Ενεργοποιημένο - feed_url: URL ροής followers: Ακόλουθοι - followers_url: URL ακολούθων follows: Ακολουθεί header: Επικεφαλίδα inbox_url: URL εισερχομένων @@ -148,10 +146,8 @@ el: no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος no_limits_imposed: Χωρίς όρια not_subscribed: Άνευ συνδρομής - outbox_url: URL εξερχομένων pending: Εκκρεμεί έγκριση perform_full_suspension: Αναστολή - profile_url: URL προφίλ promote: Προβίβασε protocol: Πρωτόκολλο public: Δημόσιο @@ -174,7 +170,6 @@ el: moderator: Συντονιστής staff: Προσωπικό user: Χρήστης - salmon_url: URL Salmon search: Αναζήτηση search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP shared_inbox_url: URL κοινόχρηστων εισερχομένων diff --git a/config/locales/en.yml b/config/locales/en.yml index 5edd6e0d3..a54cc813e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -119,9 +119,7 @@ en: email_status: Email status enable: Enable enabled: Enabled - feed_url: Feed URL followers: Followers - followers_url: Followers URL follows: Follows header: Header inbox_url: Inbox URL @@ -149,10 +147,8 @@ en: no_account_selected: No accounts were changed as none were selected no_limits_imposed: No limits imposed not_subscribed: Not subscribed - outbox_url: Outbox URL pending: Pending review perform_full_suspension: Suspend - profile_url: Profile URL promote: Promote protocol: Protocol public: Public @@ -175,7 +171,6 @@ en: moderator: Moderator staff: Staff user: User - salmon_url: Salmon URL search: Search search_same_ip: Other users with the same IP shared_inbox_url: Shared inbox URL diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 45d3a5bc0..939dfe0c1 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -105,9 +105,7 @@ en_GB: email_status: Email status enable: Enable enabled: Enabled - feed_url: Feed URL followers: Followers - followers_url: Followers URL follows: Follows header: Header inbox_url: Inbox URL @@ -134,10 +132,8 @@ en_GB: most_recent_ip: Most recent IP no_limits_imposed: No limits imposed not_subscribed: Not subscribed - outbox_url: Outbox URL pending: Pending review perform_full_suspension: Suspend - profile_url: Profile URL promote: Promote protocol: Protocol public: Public @@ -159,7 +155,6 @@ en_GB: moderator: Moderator staff: Staff user: User - salmon_url: Salmon URL search: Search shared_inbox_url: Shared inbox URL show: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 432528010..78ea19af5 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -111,9 +111,7 @@ eo: email_status: Retadreso Stato enable: Ebligi enabled: Ebligita - feed_url: URL de la fluo followers: Sekvantoj - followers_url: URL de la sekvantoj follows: Sekvatoj header: Kapa bildo inbox_url: Enira URL @@ -141,10 +139,8 @@ eo: no_account_selected: Neniu konto estis ŝanĝita ĉar neniu estis selektita no_limits_imposed: Neniu limito trudita not_subscribed: Ne abonita - outbox_url: Elira URL pending: Pritraktata recenzo perform_full_suspension: Haltigi - profile_url: Profila URL promote: Plirangigi protocol: Protokolo public: Publika @@ -167,7 +163,6 @@ eo: moderator: Kontrolanto staff: Teamo user: Uzanto - salmon_url: Salmon-URL search: Serĉi shared_inbox_url: URL de kunhavigita leterkesto show: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 6515684a3..c52615139 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -118,9 +118,7 @@ es-AR: email_status: Estado del correo enable: Habilitar enabled: Habilitada - feed_url: Dirección de la fuente web followers: Seguidores - followers_url: Dirección web de los seguidores follows: Seguidores header: Cabecera inbox_url: Dirección web de la bandeja de entrada @@ -148,10 +146,8 @@ es-AR: no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada no_limits_imposed: Sin límites impuestos not_subscribed: No suscripto - outbox_url: Dirección web de la bandeja de salida pending: Revisión pendiente perform_full_suspension: Suspender - profile_url: Dirección web del perfil promote: Promocionar protocol: Protocolo public: Pública diff --git a/config/locales/es.yml b/config/locales/es.yml index 4b9cbef2b..1826331b3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -118,9 +118,7 @@ es: email_status: E-mail Status enable: Habilitar enabled: Habilitada - feed_url: URL de notificaciones followers: Seguidores - followers_url: URL de los seguidores follows: Sigue header: Cabecera inbox_url: URL de la bandeja de entrada @@ -148,10 +146,8 @@ es: no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada no_limits_imposed: Sin límites impuestos not_subscribed: No se está suscrito - outbox_url: URL de bandeja de salida pending: Revisión pendiente perform_full_suspension: Suspender - profile_url: URL del perfil promote: Promocionar protocol: Protocolo public: Público @@ -174,7 +170,6 @@ es: moderator: Moderador staff: Personal user: Usuario - salmon_url: URL de salmón search: Buscar search_same_ip: Otros usuarios con la misma IP shared_inbox_url: URL de bandeja compartida diff --git a/config/locales/et.yml b/config/locales/et.yml index 330847161..36a2931af 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -118,9 +118,7 @@ et: email_status: E-posti staatus enable: Luba enabled: Lubatud - feed_url: Voogu URL followers: Jälgijad - followers_url: Jälgijate URL follows: Jälgib header: Päis inbox_url: Sisendkausta URL @@ -148,10 +146,8 @@ et: no_account_selected: Mitte ühtegi kontot muudeti sest midagi polnud valitud no_limits_imposed: Mitte ühtegi limiiti kehtestatud not_subscribed: Ei ole tellitud - outbox_url: Väljundkausta URL pending: Ootab ülevaatamist perform_full_suspension: Peata - profile_url: Profiili URL promote: Edenda protocol: Protokoll public: Avalik @@ -174,7 +170,6 @@ et: moderator: Moderaator staff: Personal user: Kasutaja - salmon_url: Salmoni URL search: Otsi search_same_ip: Teised kasutajad, kellel on sama IP shared_inbox_url: Jagatud sisendkausta URL diff --git a/config/locales/eu.yml b/config/locales/eu.yml index ff8d00df1..9dfe5e9d3 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -118,9 +118,7 @@ eu: email_status: Posta elektronikoaren egoera enable: Gaitu enabled: Gaituta - feed_url: Jarioaren URL-a followers: Jarraitzaileak - followers_url: Jarraitzaileen URL-a follows: Jarraitzen du header: Goiburua inbox_url: Sarrera ontziaren URL-a @@ -148,10 +146,8 @@ eu: no_account_selected: Ez da konturik aldatu ez delako bata bera hautatu no_limits_imposed: Ez da mugarik ezarri not_subscribed: Harpidetu gabe - outbox_url: Irteera ontziaren URL-a pending: Berrikusketa egiteke perform_full_suspension: Kanporatu - profile_url: Profilaren URL-a promote: Sustatu protocol: Protokoloa public: Publikoa @@ -174,7 +170,6 @@ eu: moderator: Moderatzailea staff: Langilea user: Erabiltzailea - salmon_url: Salmon URL-a search: Bilatu search_same_ip: IP bera duten beste erabiltzaileak shared_inbox_url: Partekatutako sarrera ontziaren URL-a diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 78236432e..02a990a40 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -118,9 +118,7 @@ fa: email_status: وضعیت ایمیل enable: فعال enabled: فعال - feed_url: نشانی فید followers: پیگیران - followers_url: نشانی پیگیران follows: پی می‌گیرد header: زمینه inbox_url: نشانی صندوق ورودی @@ -148,10 +146,8 @@ fa: no_account_selected: هیچ حسابی تغییر نکرد زیرا حسابی انتخاب نشده بود no_limits_imposed: بدون محدودیت not_subscribed: عضو نیست - outbox_url: نشانی صندوق خروجی pending: در انتظار بررسی perform_full_suspension: تعلیق - profile_url: نشانی نمایه promote: ترفیع‌دادن protocol: پروتکل public: عمومی @@ -174,7 +170,6 @@ fa: moderator: ناظم staff: کارمند user: کاربر - salmon_url: نشانی Salmon search: جستجو search_same_ip: دیگر کاربران با همان IP shared_inbox_url: نشانی صندوق ورودی مشترک diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 62cc5b36d..3ab1a590e 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -96,9 +96,7 @@ fi: email_status: Sähköpostin tila enable: Ota käyttöön enabled: Käytössä - feed_url: Syötteen osoite followers: Seuraajat - followers_url: Seuraajien osoite follows: Seuraa inbox_url: Saapuvan postilaatikon osoite ip: IP @@ -122,9 +120,7 @@ fi: most_recent_activity: Viimeisin toiminta most_recent_ip: Viimeisin IP not_subscribed: Ei tilaaja - outbox_url: Lähtevän postilaatikon osoite perform_full_suspension: Siirrä kokonaan jäähylle - profile_url: Profiilin osoite promote: Ylennä protocol: Protokolla public: Julkinen @@ -146,7 +142,6 @@ fi: moderator: Moderaattori staff: Henkilöstö user: Käyttäjä - salmon_url: Salmon-URL search: Hae shared_inbox_url: Jaetun saapuvan postilaatikon osoite show: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d7585af4a..06b2916fe 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -118,9 +118,7 @@ fr: email_status: État du courriel enable: Activer enabled: Activé - feed_url: URL du flux followers: Abonné⋅e⋅s - followers_url: URL des abonné·e·s follows: Abonnements header: Entête inbox_url: URL d’entrée @@ -148,10 +146,8 @@ fr: no_account_selected: Aucun compte n’a été modifié, car aucun n’a été sélectionné no_limits_imposed: Aucune limite imposée not_subscribed: Non abonné - outbox_url: URL de sortie pending: En attente d’approbation perform_full_suspension: Suspendre - profile_url: URL du profil promote: Promouvoir protocol: Protocole public: Publique @@ -174,7 +170,6 @@ fr: moderator: Modérateur staff: Équipe user: Utilisateur - salmon_url: URL Salmon search: Rechercher search_same_ip: Autres utilisateur·rice·s avec la même IP shared_inbox_url: URL de la boite de réception partagée diff --git a/config/locales/gl.yml b/config/locales/gl.yml index fbd953359..057b21566 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -118,9 +118,7 @@ gl: email_status: Estado do correo enable: Habilitar enabled: Habilitado - feed_url: URL fonte followers: Seguidoras - followers_url: URL das seguidoras follows: Segue header: Cabeceira inbox_url: URL da Caixa de entrada @@ -148,10 +146,8 @@ gl: no_account_selected: Non cambiou nada xa que non tiña nada seleccionado no_limits_imposed: Sen límites impostos not_subscribed: Non suscrita - outbox_url: URL caixa de saída pending: Pendente revisión perform_full_suspension: Suspender - profile_url: URL do perfil promote: Promocionar protocol: Protocolo public: Público @@ -174,7 +170,6 @@ gl: moderator: Moderador staff: Membresía user: Usuaria - salmon_url: URL Salmon search: Busca search_same_ip: Outros usuarios co mesmo IP shared_inbox_url: URL da caixa de entrada compartida diff --git a/config/locales/he.yml b/config/locales/he.yml index 50db571dc..89e8a6e4f 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -52,9 +52,7 @@ he: email_status: סטטוס דוא"ל enable: לאפשר enabled: מאופשר - feed_url: כתובת פיד followers: עוקבים - followers_url: כתובת עוקבים follows: נעקבים inbox_url: כתובת תיבה נכנסת ip: כתובת IP @@ -75,9 +73,7 @@ he: most_recent_activity: פעילות עדכנית most_recent_ip: כתובות אחרונות not_subscribed: לא רשום - outbox_url: כתובת תיבת דואר יוצא perform_full_suspension: ביצוע השעייה מלאה - profile_url: כתובת פרופיל promote: להעלות בדרגה protocol: פרטיכל public: פומבי @@ -95,7 +91,6 @@ he: admin: מנהל מערכת moderator: מנחה דיונים user: משתמש(ת) - salmon_url: כתובת סלמון search: חיפוש shared_inbox_url: תיבה משותפת לדואר נכנס show: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 7f5cd3d51..b4f8a970a 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -120,9 +120,7 @@ hu: email_status: E-mail állapot enable: Bekapcsolás enabled: Bekapcsolva - feed_url: Hírcsatorna URL followers: Követő - followers_url: Követő URL follows: Követett header: Fejléc inbox_url: Beérkezett üzenetek URL @@ -150,10 +148,8 @@ hu: no_account_selected: Nem változott meg egy fiók sem, mert semmi sem volt kiválasztva no_limits_imposed: Nincs korlátozás not_subscribed: Nincs feliratkozás - outbox_url: Kimenő üzenetek URL pending: Engedélyezés alatt perform_full_suspension: Felfüggesztés - profile_url: Profil URL promote: Előléptetés protocol: Protokoll public: Nyilvános @@ -176,7 +172,6 @@ hu: moderator: Moderátor staff: Stáb user: Felhasználó - salmon_url: Salmon URL search: Keresés search_same_ip: Más felhasználók ugyanezzel az IP-vel shared_inbox_url: Megosztott bejövő üzenetek URL diff --git a/config/locales/id.yml b/config/locales/id.yml index 1a58b1c54..982e4289a 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -114,9 +114,7 @@ id: email_status: Status Email enable: Aktifkan enabled: Diaktifkan - feed_url: URL Feed followers: Pengikut - followers_url: URL pengikut follows: Mengikut header: Tajuk inbox_url: URL Kotak masuk @@ -144,10 +142,8 @@ id: no_account_selected: Tak ada akun yang diubah sebab tak ada yang dipilih no_limits_imposed: Tidak ada batasan not_subscribed: Tidak berlangganan - outbox_url: URL Kotak keluar pending: Tinjauan tertunda perform_full_suspension: Lakukan suspen penuh - profile_url: URL profil promote: Promosikan protocol: Protokol public: Publik @@ -170,7 +166,6 @@ id: moderator: Moderator staff: Staf user: Pengguna - salmon_url: URL Salmon search: Cari search_same_ip: Pengguna lain dengan IP yang sama shared_inbox_url: URL kotak masuk bersama diff --git a/config/locales/it.yml b/config/locales/it.yml index 987321313..aadf0f3d6 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -118,9 +118,7 @@ it: email_status: Stato email enable: Abilita enabled: Abilitato - feed_url: URL Feed followers: Follower - followers_url: URL follower follows: Segue header: Intestazione inbox_url: URL inbox @@ -148,10 +146,8 @@ it: no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno no_limits_imposed: Nessun limite imposto not_subscribed: Non sottoscritto - outbox_url: URL outbox pending: Revisioni in attesa perform_full_suspension: Sospendi - profile_url: URL profilo promote: Promuovi protocol: Protocollo public: Pubblico @@ -174,7 +170,6 @@ it: moderator: Moderatore staff: Personale user: Utente - salmon_url: URL Salmone search: Cerca search_same_ip: Altri utenti con lo stesso IP shared_inbox_url: URL Inbox Condiviso diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 477fb2e3c..0dc77b775 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -114,9 +114,7 @@ ja: email_status: メールアドレスの状態 enable: 有効化 enabled: 有効 - feed_url: フィードURL followers: フォロワー数 - followers_url: Followers URL follows: フォロー数 header: ヘッダー inbox_url: Inbox URL @@ -144,10 +142,8 @@ ja: no_account_selected: 何も選択されていないため、変更されていません no_limits_imposed: 制限なし not_subscribed: 購読していない - outbox_url: Outbox URL pending: 承認待ち perform_full_suspension: 活動を完全に停止させる - profile_url: プロフィールURL promote: 昇格 protocol: プロトコル public: パブリック @@ -170,7 +166,6 @@ ja: moderator: モデレーター staff: スタッフ user: ユーザー - salmon_url: Salmon URL search: 検索 search_same_ip: 同じ IP のユーザーを検索 shared_inbox_url: Shared inbox URL diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 094a1a1a8..125912892 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -70,9 +70,7 @@ ka: email_status: ელ-ფოსტის სტატუსი enable: ჩართვა enabled: ჩართულია - feed_url: ლენტის ურლ followers: მიმდევრები - followers_url: მიმდევრების ურლ follows: დადევნებები inbox_url: ინბოქსის ურლ ip: აი-პი @@ -93,9 +91,7 @@ ka: most_recent_activity: უახლესი აქტივობა most_recent_ip: უახლესი აი-პი not_subscribed: გამოუწერელი - outbox_url: აუთბოქსის ურლ perform_full_suspension: მოახდინეთ სრული შეჩერება - profile_url: პროფილის ურლ promote: დაწინაურება protocol: პროტოკოლი public: საჯარო @@ -115,7 +111,6 @@ ka: moderator: მოდერატორი staff: სტაფი user: მომხმარებელი - salmon_url: სალმონის ურლ search: ძებნა shared_inbox_url: გაზიარებული ინბოქსის ურლ show: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index b48d6dd27..df2a29dab 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -118,9 +118,7 @@ kk: email_status: Email статусы enable: Қосу enabled: Қосылды - feed_url: Feеd URL followers: Оқырмандар - followers_url: Оқырмандар URL follows: Жазылғандары header: Басы inbox_url: Келген хаттар URL @@ -148,10 +146,8 @@ kk: no_account_selected: Бірде-бір аккаунт өзгерген жоқ, себебі ештеңе таңдалмады no_limits_imposed: Шектеу жоқ not_subscribed: Жазылмаған - outbox_url: Кеткен хаттар URL pending: Күтудегілерді қарау perform_full_suspension: Тоқтат - profile_url: Профиль URL promote: Жарнамалау protocol: Хаттама public: Ашық @@ -174,7 +170,6 @@ kk: moderator: Модератор staff: Қызметкерлер user: Қолданушы - salmon_url: Ақсерке URL search: Іздеу search_same_ip: Осы ІРмен кірген басқа қолданушылар shared_inbox_url: Бөлісілген инбокс URL diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 8b1c76ee0..ee9e0e954 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -114,9 +114,7 @@ ko: email_status: 이메일 상태 enable: 활성화 enabled: 활성 - feed_url: 피드 URL followers: 팔로워 수 - followers_url: 팔로워 URL follows: 팔로잉 수 header: 헤더 inbox_url: 수신함 URL @@ -144,10 +142,8 @@ ko: no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 not_subscribed: 구독하지 않음 - outbox_url: 발신함 URL pending: 심사 대기 perform_full_suspension: 정지시키기 - profile_url: 프로필 URL promote: 승급 protocol: 프로토콜 public: 전체 공개 @@ -170,7 +166,6 @@ ko: moderator: 모더레이터 staff: 스태프 user: 사용자 - salmon_url: Salmon URL search: 검색 search_same_ip: 같은 IP의 다른 사용자들 shared_inbox_url: 공유된 inbox URL diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 66fe07de1..e9634b397 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -75,9 +75,7 @@ lt: email_status: El pašto statusas enable: Įjungti enabled: Įjungta - feed_url: Srauto URL followers: Sekėjai - followers_url: Sekėjų URL follows: Seka header: Antraštė inbox_url: Gautųjų URL @@ -102,9 +100,7 @@ lt: most_recent_ip: Paskutinis IP no_limits_imposed: Be limitu not_subscribed: Ne prenumeruota - outbox_url: Išsiustųjų URL perform_full_suspension: Užrakinti - profile_url: Profilio URL promote: Paaukštinti protocol: Protokolas public: Viešas @@ -125,7 +121,6 @@ lt: moderator: Moderatorius staff: Personalas user: Vartotojas - salmon_url: Lašišos URL search: Ieškoti shared_inbox_url: Bendroji gautųjų URL show: diff --git a/config/locales/ms.yml b/config/locales/ms.yml index c1fe7d15a..71dc72d9d 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -73,9 +73,7 @@ ms: email_status: Status Emel enable: Bolehkan enabled: Dibolehkan - feed_url: Suapan URL followers: Pengikut - followers_url: URL Pengikut follows: Mengikuti inbox_url: URL mesej masuk ip: Alamat IP @@ -97,9 +95,7 @@ ms: most_recent_ip: IP terbaru no_limits_imposed: Tiada had dikuatkuasakan not_subscribed: Tiada langganan - outbox_url: URL mesej keluar perform_full_suspension: Gantung - profile_url: URL profil promote: Naikkan pangkat protocol: Protokol public: Awam @@ -119,7 +115,6 @@ ms: moderator: Pengawal staff: Kakitangan user: Pengguna - salmon_url: URL Salmon search: Cari shared_inbox_url: URL Peti Masuk Berkongsi show: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 8f2b77f2f..2b49708e3 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -118,9 +118,7 @@ nl: email_status: E-mailstatus enable: Inschakelen enabled: Ingeschakeld - feed_url: Feed-URL followers: Volgers - followers_url: Volgers-URL follows: Volgt header: Omslagfoto inbox_url: Inbox-URL @@ -148,10 +146,8 @@ nl: no_account_selected: Er zijn geen accounts veranderd, omdat er geen een was geselecteerd no_limits_imposed: Geen limieten ingesteld not_subscribed: Niet geabonneerd - outbox_url: Outbox-URL pending: Moet nog beoordeeld worden perform_full_suspension: Opschorten - profile_url: Profiel-URL promote: Promoveren protocol: Protocol public: Openbaar @@ -174,7 +170,6 @@ nl: moderator: Moderator staff: Medewerkers user: Gebruiker - salmon_url: Salmon-URL search: Zoeken search_same_ip: Andere gebruikers met hetzelfde IP-adres shared_inbox_url: Gedeelde inbox-URL diff --git a/config/locales/no.yml b/config/locales/no.yml index fa40975a7..2c8786066 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -48,9 +48,7 @@ email_status: E-poststatus enable: Aktiver enabled: Aktivert - feed_url: Feed-URL followers: Følgere - followers_url: Følgere URL follows: Følginger inbox_url: Innboks URL ip: IP-adresse @@ -71,9 +69,7 @@ most_recent_activity: Nyligste aktivitet most_recent_ip: Nyligste IP not_subscribed: Ikke abonnért - outbox_url: Utboks URL perform_full_suspension: Utfør full utvisning - profile_url: Profil-URL promote: Oppgradere protocol: Protokoll public: Offentlig @@ -90,7 +86,6 @@ roles: staff: Personale user: Bruker - salmon_url: Salmon-URL search: Søk shared_inbox_url: Delt Innboks URL show: diff --git a/config/locales/oc.yml b/config/locales/oc.yml index a82adf380..f84fe882a 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -108,9 +108,7 @@ oc: email_status: Estat de l’adreça enable: Activar enabled: Activat - feed_url: Flux URL followers: Seguidors - followers_url: URL dels seguidors follows: Abonaments header: Bandièra inbox_url: URL de recepcion @@ -138,10 +136,8 @@ oc: no_account_selected: Cap de compte pas cambiat estant que cap èra pas seleccionat no_limits_imposed: Cap de limit impausat not_subscribed: Pas seguidor - outbox_url: URL Outbox pending: Revision en espèra perform_full_suspension: Suspendre - profile_url: URL del perfil promote: Promòure protocol: Protocòl public: Public @@ -164,7 +160,6 @@ oc: moderator: Moderador staff: Personnal user: Uitlizaire - salmon_url: URL Salmon search: Cercar shared_inbox_url: URL de recepcion partejada show: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 4d6181de3..8d80ac3a3 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -125,9 +125,7 @@ pl: email_status: Stan e-maila enable: Aktywuj enabled: Aktywowano - feed_url: Adres kanału followers: Śledzący - followers_url: Adres śledzących follows: Śledzeni header: Nagłówek inbox_url: Adres skrzynki @@ -155,10 +153,8 @@ pl: no_account_selected: Żadne konto nie zostało zmienione, bo żadne nie zostało wybrane no_limits_imposed: Nie nałożono ograniczeń not_subscribed: Nie zasubskrybowano - outbox_url: Adres skrzynki nadawczej pending: Oczekuje na przegląd perform_full_suspension: Zawieś - profile_url: Adres profilu promote: Podnieś uprawnienia protocol: Protokół public: Publiczne @@ -181,7 +177,6 @@ pl: moderator: Moderator staff: Ekipa user: Użytkownik - salmon_url: Adres Salmon search: Szukaj shared_inbox_url: Adres udostępnianej skrzynki show: diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e653de469..84eff7991 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -107,9 +107,7 @@ pt-BR: email_status: Estado do e-mail enable: Ativar enabled: Ativado - feed_url: URL do feed followers: Seguidores - followers_url: URL de seguidores follows: Segue header: Cabeçalho inbox_url: URL da caixa de entrada @@ -137,10 +135,8 @@ pt-BR: no_account_selected: Nenhuma conta foi modificada, pois nenhuma conta foi selecionada no_limits_imposed: Nenhum limite imposto not_subscribed: Não está inscrito - outbox_url: URL da caixa de saída pending: Esperando revisão perform_full_suspension: Suspender - profile_url: URL do perfil promote: Promover protocol: Protocolo public: Público @@ -163,7 +159,6 @@ pt-BR: moderator: Moderador staff: Equipe user: Usuário - salmon_url: URL Salmon search: Pesquisar shared_inbox_url: URL da caixa de entrada compartilhada show: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 836d2a3e7..3c5b1ca9a 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -106,9 +106,7 @@ pt-PT: email_status: Estado do correio electrónico enable: Ativar enabled: Ativado - feed_url: URL do Feed followers: Seguidores - followers_url: URL dos seguidores follows: A seguir header: Cabeçalho inbox_url: URL da caixa de entrada @@ -132,9 +130,7 @@ pt-PT: most_recent_ip: IP mais recente no_limits_imposed: Sem limites impostos not_subscribed: Não inscrito - outbox_url: URL da caixa de saída perform_full_suspension: Fazer suspensão completa - profile_url: URL do perfil promote: Promover protocol: Protocolo public: Público @@ -155,7 +151,6 @@ pt-PT: moderator: Moderador staff: Equipa user: Utilizador - salmon_url: URL Salmon search: Pesquisar shared_inbox_url: URL da caixa de entrada compartilhada show: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index fbf8ebc12..5c68ce4d4 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -126,9 +126,7 @@ ru: email_status: Статус e-mail enable: Включить enabled: Включен - feed_url: URL фида followers: Подписчики - followers_url: URL подписчиков follows: Подписки header: Шапка inbox_url: URL входящих @@ -156,10 +154,8 @@ ru: no_account_selected: Ничего не выбрано, никакие учётные записи не изменены no_limits_imposed: Без ограничений not_subscribed: Не подписаны - outbox_url: URL исходящих pending: Ожидает рассмотрения perform_full_suspension: Полная блокировка - profile_url: URL профиля promote: Повысить protocol: Протокол public: Публичный @@ -182,7 +178,6 @@ ru: moderator: Модератор staff: Персонал user: Пользователь - salmon_url: Страница Salmon search: Поиск search_same_ip: Другие пользователи с таким же IP shared_inbox_url: URL общих входящих diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 4d86cf602..8339309b3 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -122,9 +122,7 @@ sk: email_status: Stav emailu enable: Povoľ enabled: Povolený - feed_url: adresa časovej osi followers: Sledujúci - followers_url: URL adresa sledujúcich follows: Sledovania header: Záhlavie inbox_url: URL adresa prijatých správ @@ -152,10 +150,8 @@ sk: no_account_selected: Nedošlo k žiadnému pozmeneniu účtov, keďže žiadne neboli vybrané no_limits_imposed: Nie sú stanovené žiadné obmedzenia not_subscribed: Neodoberá - outbox_url: URL poslaných pending: Vyžaduje posúdenie perform_full_suspension: Vylúč - profile_url: URL adresa profilu promote: Vyzdvihni protocol: Protokol public: Verejná časová os @@ -178,7 +174,6 @@ sk: moderator: Moderátor staff: Člen user: Užívateľ - salmon_url: Salmon adresa search: Hľadaj search_same_ip: Ostatní užívatelia s rovnakou IP adresou shared_inbox_url: URL zdieľanej schránky diff --git a/config/locales/sl.yml b/config/locales/sl.yml index da4c48d4a..2faaa149a 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -114,9 +114,7 @@ sl: email_status: Stanje e-pošte enable: Omogoči enabled: Omogočeno - feed_url: URL vira followers: Sledilci - followers_url: URL sledilcev follows: Sledi header: Glava inbox_url: URL mape "Prejeto" @@ -144,10 +142,8 @@ sl: no_account_selected: Noben račun ni bil spremenjen, ker ni bil izbran noben no_limits_imposed: Brez omejitev not_subscribed: Ni naročen - outbox_url: URL za pošiljanje pending: Čakanje na pregled perform_full_suspension: Suspendiraj - profile_url: URL profila promote: Promoviraj protocol: Protokol public: Javen @@ -170,7 +166,6 @@ sl: moderator: Moderator staff: Osebje user: Uporabnik - salmon_url: URL lososa search: Iskanje shared_inbox_url: URL mape "Prejeto v skupni rabi" show: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index c64fe23c6..e5378082e 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -81,9 +81,7 @@ sq: email_status: Gjendje email-i enable: Aktivizoje enabled: E aktivizuar - feed_url: URL prurjeje followers: Ndjekës - followers_url: URL Ndjekësish follows: Ndjekje header: Krye inbox_url: URL Mesazhesh të Marrë @@ -108,9 +106,7 @@ sq: most_recent_ip: IP-ja më e freskët no_limits_imposed: Pa imponim kufijsh not_subscribed: Jo i pajtuar - outbox_url: URL Mesazhesh të Dërguar perform_full_suspension: Pezulloje - profile_url: URL profili promote: Promovojeni protocol: Protokoll public: Publike diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 2bddaf311..1f3d69e21 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -47,9 +47,7 @@ sr-Latn: email_status: Status e-pošte enable: Uključi enabled: Uključeno - feed_url: Adresa dovoda followers: Pratioci - followers_url: Adresa pratioca follows: Praćeni inbox_url: Adresa sandučeta location: @@ -69,9 +67,7 @@ sr-Latn: most_recent_activity: Najskorija aktivnost most_recent_ip: Najskorija IP adresa not_subscribed: Nije pretplaćen - outbox_url: Odlazno sanduče perform_full_suspension: Izvrši kompletno isključenje - profile_url: Adresa profila promote: Unapredi protocol: Protokol public: Javno @@ -87,7 +83,6 @@ sr-Latn: roles: staff: Osoblje user: Korisnik - salmon_url: Salmon adresa search: Pretraga shared_inbox_url: Adresa deljenog sandučeta show: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 21eb19fee..d06bb214e 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -91,9 +91,7 @@ sr: email_status: Статус е-поште enable: Омогући enabled: Укључено - feed_url: Адреса довода followers: Пратиоци - followers_url: Адреса пратиоца follows: Праћени header: Заглавље inbox_url: Адреса сандучета @@ -118,9 +116,7 @@ sr: most_recent_ip: Најскорија IP адреса no_limits_imposed: Нема ограничења not_subscribed: Није претплаћен - outbox_url: Одлазно сандуче perform_full_suspension: Искључи - profile_url: Адреса профила promote: Унапреди protocol: Протокол public: Јавно @@ -141,7 +137,6 @@ sr: moderator: Модератор staff: Особље user: Корисник - salmon_url: Salmon адреса search: Претрага shared_inbox_url: Адреса дељеног сандучета show: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 19c7ef845..911698620 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -106,9 +106,7 @@ sv: email_status: E-poststatus enable: Aktivera enabled: Aktiverad - feed_url: Flödes URL followers: Följare - followers_url: Följare URL follows: Följs header: Rubrik inbox_url: Inkorgs URL @@ -136,10 +134,8 @@ sv: no_account_selected: Inga konton har ändrats och inget har valts no_limits_imposed: Inga begränsningar har införts not_subscribed: Inte prenumererat - outbox_url: Utkorg URL pending: Inväntar granskning perform_full_suspension: Utför full avstängning - profile_url: Profil URL promote: Befordra protocol: Protokoll public: Offentlig @@ -162,7 +158,6 @@ sv: moderator: Moderator staff: Personal user: Användare - salmon_url: Lax URL search: Sök search_same_ip: Annan användare med samma IP-adress shared_inbox_url: Delad inkorg URL diff --git a/config/locales/te.yml b/config/locales/te.yml index 526b03b49..dd6c878e7 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -87,9 +87,7 @@ te: email_status: ఈమెయిల్ స్థితి enable: చేతనం enabled: చేతనం చేయబడింది - feed_url: ఫీడ్ URL followers: అనుచరులు - followers_url: అనుచరుల URL follows: అనుసరిస్తున్నారు inbox_url: ఇన్ బాక్స్ URL location: diff --git a/config/locales/th.yml b/config/locales/th.yml index eda9b52a2..214a93acf 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -97,9 +97,7 @@ th: email_status: สถานะอีเมล enable: เปิดใช้งาน enabled: เปิดใช้งานอยู่ - feed_url: URL ฟีด followers: ผู้ติดตาม - followers_url: URL ผู้ติดตาม follows: การติดตาม header: ส่วนหัว inbox_url: URL กล่องขาเข้า @@ -124,9 +122,7 @@ th: most_recent_activity: กิจกรรมล่าสุด most_recent_ip: IP ล่าสุด not_subscribed: ไม่ได้บอกรับ - outbox_url: URL กล่องขาออก perform_full_suspension: ระงับ - profile_url: URL โปรไฟล์ promote: เลื่อนตำแหน่ง protocol: โปรโตคอล public: สาธารณะ diff --git a/config/locales/tr.yml b/config/locales/tr.yml index afaf4d251..f3a2817ec 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -118,9 +118,7 @@ tr: email_status: E-posta durumu enable: Etkinleştir enabled: Etkin - feed_url: Besleme linki followers: Takipçiler - followers_url: Takipçi bağlantısı follows: Takip edilen header: Üstbilgi inbox_url: Gelen kutusu bağlantısı @@ -148,10 +146,8 @@ tr: no_account_selected: Hiçbiri seçilmediğinden hiçbir hesap değiştirilmedi no_limits_imposed: Sınır koymaz not_subscribed: Abone edilmedi - outbox_url: Giden Kutusu URL'si pending: Bekleyen yorum perform_full_suspension: Askıya al - profile_url: Profil linki promote: Yükselt protocol: Protokol public: Herkese açık @@ -174,7 +170,6 @@ tr: moderator: Denetleyici staff: Personel user: Kullanıcı - salmon_url: Salmon Linki search: Ara search_same_ip: Aynı IP adresine sahip diğer kullanıcılar shared_inbox_url: Paylaşılan gelen kutusu bağlantısı diff --git a/config/locales/uk.yml b/config/locales/uk.yml index fce2366c7..edcc289da 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -120,9 +120,7 @@ uk: email_status: Статус електронної пошти enable: Увімкнути enabled: Увімкнено - feed_url: URL-адреса каналу followers: Підписники - followers_url: URL підписників follows: Підписки header: Заголовок inbox_url: URL вхідних повідомлень @@ -150,10 +148,8 @@ uk: no_account_selected: Жоден обліковий запис не було змінено, оскільки жоден не було вибрано no_limits_imposed: Жодних обмежень не накладено not_subscribed: Не підписані - outbox_url: URL вихідних повідомлень pending: Відгук в очікуванні perform_full_suspension: Призупинити - profile_url: URL профілю promote: Просунути protocol: Протокол public: Публічний @@ -176,7 +172,6 @@ uk: moderator: Модератор staff: Персонал user: Користувач - salmon_url: Salmon URL search: Пошук shared_inbox_url: URL спільного вхідного кошика show: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index c7822d6e3..49dd31bac 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -107,9 +107,7 @@ zh-CN: email_status: 电子邮件地址状态 enable: 启用 enabled: 已启用 - feed_url: 订阅 URL followers: 关注者 - followers_url: 关注者(Followers)URL follows: 正在关注 header: 个人资料页横幅图片 inbox_url: 收件箱(Inbox)URL @@ -137,10 +135,8 @@ zh-CN: no_account_selected: 因为没有账户被选择,所以没有更改 no_limits_imposed: 无限制 not_subscribed: 未订阅 - outbox_url: 发件箱(Outbox)URL pending: 待审核 perform_full_suspension: 封禁 - profile_url: 个人资料页面 URL promote: 升任 protocol: 协议 public: 公开页面 @@ -163,7 +159,6 @@ zh-CN: moderator: 监察员 staff: 管理人员 user: 普通用户 - salmon_url: 三文鱼协议网址(Salmon URL) search: 搜索 search_same_ip: 具有相同IP的其他用户 shared_inbox_url: 公用收件箱(Shared Inbox)URL diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 74eefcd05..4b7ca52e1 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -64,9 +64,7 @@ zh-HK: email_status: 电子邮件状态 enable: 啟用 enabled: 已啟用 - feed_url: 訂閱 URL followers: 關注者 - followers_url: 關注者(Followers)URL follows: 正在關注 inbox_url: 收件箱(Inbox)URL ip: IP 位域 @@ -87,9 +85,7 @@ zh-HK: most_recent_activity: 最新活動 most_recent_ip: 最新 IP 位域 not_subscribed: 未訂閱 - outbox_url: 寄件箱(Outbox)URL perform_full_suspension: 完全停權 - profile_url: 個人檔案 URL promote: 升任 protocol: 協議 public: 公共 @@ -109,7 +105,6 @@ zh-HK: moderator: 監察員 staff: 管理人員 user: 普通用戶 - salmon_url: Salmon 反饋 URL search: 搜索 shared_inbox_url: 公共收件箱(Shared Inbox)URL show: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 1f0c5522f..7a5627c30 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -99,9 +99,7 @@ zh-TW: email_status: 電子信箱狀態 enable: 啟用 enabled: 已啟用 - feed_url: 訂閱 URL followers: 關注者 - followers_url: 關注者(Followers)URL follows: 正在關注 header: 開頭 inbox_url: 收件箱 (Inbox) URL @@ -128,10 +126,8 @@ zh-TW: most_recent_ip: 最近 IP 位址 no_limits_imposed: 未受限制 not_subscribed: 未訂閱 - outbox_url: 寄件箱 (Outbox) URL pending: 等待審核中 perform_full_suspension: 停權 - profile_url: 個人檔案 URL promote: 晉級 protocol: 協議 public: 公開 @@ -154,7 +150,6 @@ zh-TW: moderator: 版主 staff: 管理人員 user: 普通使用者 - salmon_url: Salmon 網址 search: 搜尋 shared_inbox_url: 共享收件箱網址 show: From c0ed53b810351b61db543701c4938d41723a6e4e Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 18 Dec 2019 16:56:59 +0100 Subject: [PATCH 29/66] Fix custom emoji category creation silently erroring out on duplicate category (#12647) Instead, just re-use the existing category if any. Fixes #12608 --- app/models/form/custom_emoji_batch.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb index 076e8c9e3..6b7ea5355 100644 --- a/app/models/form/custom_emoji_batch.rb +++ b/app/models/form/custom_emoji_batch.rb @@ -40,7 +40,7 @@ class Form::CustomEmojiBatch if category_id.present? CustomEmojiCategory.find(category_id) elsif category_name.present? - CustomEmojiCategory.create!(name: category_name) + CustomEmojiCategory.find_or_create_by!(name: category_name) end end From 1afbe083fda12907fbe48b42e658243103c7721b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 18 Dec 2019 19:04:43 +0100 Subject: [PATCH 30/66] Fix unsafe column type change in migration (#12653) --- .../20191212003415_increase_backup_size.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/db/migrate/20191212003415_increase_backup_size.rb b/db/migrate/20191212003415_increase_backup_size.rb index 782c67db1..a5192263c 100644 --- a/db/migrate/20191212003415_increase_backup_size.rb +++ b/db/migrate/20191212003415_increase_backup_size.rb @@ -1,9 +1,21 @@ +require Rails.root.join('lib', 'mastodon', 'migration_helpers') + class IncreaseBackupSize < ActiveRecord::Migration[5.2] + include Mastodon::MigrationHelpers + + disable_ddl_transaction! + def up - change_column :backups, :dump_file_size, :bigint + safety_assured do + change_column_type_concurrently :backups, :dump_file_size, :bigint + cleanup_concurrent_column_type_change :backups, :dump_file_size + end end def down - change_column :backups, :dump_file_size, :integer + safety_assured do + change_column_type_concurrently :backups, :dump_file_size, :integer + cleanup_concurrent_column_type_change :backups, :dump_file_size + end end end From 4dbf0a91b2a8f3f4a69c5fe8f663668708a9b901 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 07:21:51 +0900 Subject: [PATCH 31/66] [Security] Bump rack from 2.0.7 to 2.0.8 (#12654) Bumps [rack](https://github.com/rack/rack) from 2.0.7 to 2.0.8. **This update includes a security fix.** - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/2.0.7...2.0.8) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index df29d4f39..63d71b433 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -458,7 +458,7 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) raabro (1.1.6) - rack (2.0.7) + rack (2.0.8) rack-attack (6.2.1) rack (>= 1.0, < 3) rack-cors (1.1.0) From a90258dbe9f6632350a81f0e4e14f6cc354e0e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Wed, 18 Dec 2019 23:39:08 +0100 Subject: [PATCH 32/66] fix multiple space (#12655) --- app/javascript/mastodon/extra_polyfills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 3acc55abd..13c4f6da9 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,5 +1,5 @@ import 'intersection-observer'; import 'requestidlecallback'; -import objectFitImages from 'object-fit-images'; +import objectFitImages from 'object-fit-images'; objectFitImages(); From dc0750abc331749a92ffa96fed9fe048acdea3b1 Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 19 Dec 2019 12:47:19 +0100 Subject: [PATCH 33/66] Fix manual scrolling issue on Firefox/Windows (#12648) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #12607 `will-change: transform` apparently makes manual scrolling impossible on Firefox/Windows. While this should probably be considered a Firefox bug, `will-change: transform` seem like a very aggressive performance hint that may possibly make the browser consume more resources than needed, especially in multiple-column mode. This was originally added to improve scrolling performances on mobile, but I think this isn't necessary anymore, because of the two following reasons: - `contain: paint` (which is implied by `contain: strict`, which we apply whenever the browser supports grids) should have similar effects - in single-column mode, the scrolling container is the root element, which I believe is optimized in at least Chromium Keep in mind that I have not been able to make in-depth benchmarks, and especially not been able to try on mobile, so performances should probably be investigated further… --- app/javascript/styles/mastodon/components.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 13f9dfae7..4c7ce9ba7 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2512,7 +2512,6 @@ a.account__display-name { overflow-x: hidden; flex: 1 1 auto; -webkit-overflow-scrolling: touch; - will-change: transform; // improves perf in mobile Chrome &.optionally-scrollable { overflow-y: auto; From 902c6bed5aab12c2e97af3452f122247777226af Mon Sep 17 00:00:00 2001 From: Sasha Sorokin Date: Thu, 19 Dec 2019 18:47:55 +0700 Subject: [PATCH 34/66] Use different strings on exports page (#12569) Currently the page re-uses strings from other contexts which doesn't fit very well - strings incorrectly lowercase-d and pluralized, when they don't need to be, because it's a table. This commit changes page to re-use accounts.posts_tab_heading for toots, and admin.accounts for "Following" and "Follows". This all should look more aesthetically pleasing. --- app/views/settings/exports/show.html.haml | 6 +++--- config/locales/en.yml | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml index 76ff76bd9..0bb80e937 100644 --- a/app/views/settings/exports/show.html.haml +++ b/app/views/settings/exports/show.html.haml @@ -9,11 +9,11 @@ %td= number_to_human_size @export.total_storage %td %tr - %th= t('accounts.posts', count: @export.total_statuses) + %th= t('accounts.posts_tab_heading') %td= number_with_delimiter @export.total_statuses %td %tr - %th= t('exports.follows') + %th= t('admin.accounts.follows') %td= number_with_delimiter @export.total_follows %td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv) %tr @@ -21,7 +21,7 @@ %td= number_with_delimiter @export.total_lists %td= table_link_to 'download', t('exports.csv'), settings_exports_lists_path(format: :csv) %tr - %th= t('accounts.followers', count: @export.total_followers) + %th= t('admin.accounts.followers') %td= number_with_delimiter @export.total_followers %td %tr diff --git a/config/locales/en.yml b/config/locales/en.yml index a54cc813e..c7179d304 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -719,7 +719,6 @@ en: blocks: You block csv: CSV domain_blocks: Domain blocks - follows: You follow lists: Lists mutes: You mute storage: Media storage From 9c968a0b2358de20965e1fa804c5e72839aa3653 Mon Sep 17 00:00:00 2001 From: Baptiste Lemoine Date: Sat, 21 Dec 2019 17:03:26 +0100 Subject: [PATCH 35/66] :zap: refacto messaging into several components --- .../contacts-list.js} | 78 ++++--------------- .../messaging/conversation-stream.js | 14 ++++ .../ui/components/messaging/conversations.js | 24 ++++++ .../ui/components/messaging/messaging.js | 61 +++++++++++++++ .../ui/components/navigation_panel.js | 2 +- 5 files changed, 114 insertions(+), 65 deletions(-) rename app/javascript/mastodon/features/ui/components/{messaging.js => messaging/contacts-list.js} (63%) create mode 100644 app/javascript/mastodon/features/ui/components/messaging/conversation-stream.js create mode 100644 app/javascript/mastodon/features/ui/components/messaging/conversations.js create mode 100644 app/javascript/mastodon/features/ui/components/messaging/messaging.js diff --git a/app/javascript/mastodon/features/ui/components/messaging.js b/app/javascript/mastodon/features/ui/components/messaging/contacts-list.js similarity index 63% rename from app/javascript/mastodon/features/ui/components/messaging.js rename to app/javascript/mastodon/features/ui/components/messaging/contacts-list.js index a6e91167b..e023089bc 100644 --- a/app/javascript/mastodon/features/ui/components/messaging.js +++ b/app/javascript/mastodon/features/ui/components/messaging/contacts-list.js @@ -1,75 +1,21 @@ import React from 'react'; +import { isStaff } from '../../../../initial_state'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { isStaff } from '../../../initial_state'; - -export default class Messaging extends React.PureComponent { - - static propTypes = { - following : ImmutablePropTypes.list, - conversations: ImmutablePropTypes.list, - }; - const; - newMessage = 'meh'; - - openConversationWith(account) { - let conversationFound = account; - // if conversation exist, focus on it - if (conversationFound) { - - } else { - - } - // else, create conversation and focus on it - }; +export default class ContactsList extends React.PureComponent { submitCompose() { - }; - - constructor() { - super(); - - this.props.conversations = [ - { - withAccount: '@machin', - messages : [], - opened : true, - }, - { - withAccount: '@chuck', - messages : [], - opened : false, - }, - ]; - this.props.following = [ - { username: 'wulfila', handle: '@wulfila' }, - { username: 'machin', handle: '@machin' }, - { username: 'chuck norris', handle: '@chuck' }, - ]; - } render() { - const contactlist = null; + // return ( //
- // messagerie todo - // - // + // liste de contacts //
// ); - // const contactlist = this.props.following.foreEach(elem => ( - //
  • - //
    - // Machin - //
    - //
    3 min
    - //
  • - // )); + const contactlist = null; + return (
    @@ -88,7 +34,11 @@ export default class Messaging extends React.PureComponent {

    User list

      - {contactlist} + {contactlist && +

      + la liste de contacts +

      + }
    @@ -133,8 +83,8 @@ export default class Messaging extends React.PureComponent {