Merge pull request #1255 from ThibG/glitch-soc/merge-upstream

Merge upstream changes
rebase/4.0.0rc2
ThibG 2019-12-19 16:07:21 +01:00 committed by GitHub
commit f064cd4fb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
92 changed files with 468 additions and 743 deletions

1
.gitignore vendored
View File

@ -23,6 +23,7 @@ public/packs
public/packs-test
.env
.env.production
.env.development
node_modules/
build/

View File

@ -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'
@ -125,7 +126,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
@ -137,7 +138,7 @@ group :development do
gem 'letter_opener', '~> 1.7'
gem 'letter_opener_web', '~> 1.3'
gem 'memory_profiler'
gem 'rubocop', '~> 0.76', require: false
gem 'rubocop', '~> 0.77', require: false
gem 'rubocop-rails', '~> 2.4', require: false
gem 'brakeman', '~> 4.7', require: false
gem 'bundler-audit', '~> 0.6', require: false

View File

@ -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)
@ -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)
@ -238,9 +238,9 @@ 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)
faker (2.8.1)
i18n (>= 1.6, < 1.8)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
@ -326,7 +326,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)
@ -358,7 +358,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)
@ -382,7 +382,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)
@ -390,7 +390,7 @@ GEM
net-ssh (>= 2.6.5, < 6.0.0)
net-ssh (5.2.0)
nio4r (2.5.2)
nokogiri (1.10.5)
nokogiri (1.10.7)
mini_portile2 (~> 2.4.0)
nokogumbo (2.0.1)
nokogiri (~> 1.8, >= 1.8.4)
@ -426,7 +426,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)
@ -460,7 +460,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)
@ -471,18 +471,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)
@ -498,15 +498,15 @@ 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)
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)
@ -561,7 +561,7 @@ GEM
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
rspec-support (3.9.0)
rubocop (0.76.0)
rubocop (0.77.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
parser (>= 2.6)
@ -618,7 +618,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)
@ -663,16 +663,16 @@ 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)
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)
@ -757,7 +757,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)
@ -771,7 +771,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)
@ -783,7 +783,7 @@ DEPENDENCIES
rqrcode (~> 0.10)
rspec-rails (~> 3.9)
rspec-sidekiq (~> 3.0)
rubocop (~> 0.76)
rubocop (~> 0.77)
rubocop-rails (~> 2.4)
ruby-progressbar (~> 1.10)
sanitize (~> 5.1)
@ -794,6 +794,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)

View File

@ -47,7 +47,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);
});

View File

@ -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;
}
}

View File

@ -726,7 +726,6 @@
overflow-x: hidden;
flex: 1 1 auto;
-webkit-overflow-scrolling: touch;
will-change: transform; // improves perf in mobile Chrome
&.optionally-scrollable {
overflow-y: auto;

View File

@ -1,5 +1,5 @@
import 'intersection-observer';
import 'requestidlecallback';
import objectFitImages from 'object-fit-images';
import objectFitImages from 'object-fit-images';
objectFitImages();

View File

@ -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)}
/>
<AutosuggestInput

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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

View File

@ -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
@ -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?

View File

@ -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

View File

@ -16,6 +16,7 @@ class Form::AdminSettings
open_deletion
timeline_preview
show_staff_badge
enable_bootstrap_timeline_accounts
bootstrap_timeline_accounts
flavour
skin
@ -46,6 +47,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

View File

@ -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

View File

@ -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?

View File

@ -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?

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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) unless resource_url.nil?
end
end

View File

@ -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)

View File

@ -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

View File

@ -28,7 +28,7 @@
.report-card__profile
= account_link_to target_account, '', size: 36, path: admin_account_path(target_account.id)
.report-card__profile__stats
= link_to pluralize(target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_account_path(target_account.id)
= link_to t('admin.reports.account.notes', count: target_account.targeted_moderation_notes.count), admin_account_path(target_account.id)
%br/
- if target_account.suspended?
%span.red= t('admin.accounts.suspended')

View File

@ -1,37 +1,28 @@
- 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
%tr
%th= t('admin.reports.reported_account')
%td= admin_account_link_to @report.target_account
%td= table_link_to 'flag', pluralize(@report.target_account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.target_account.id)
%td= table_link_to 'file', pluralize(@report.target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.target_account.id)
%td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.target_account.targeted_reports.count), admin_reports_path(target_account_id: @report.target_account.id)
%td= table_link_to 'file', t('admin.reports.account.notes', count: @report.target_account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.target_account.id)
%tr
%th= t('admin.reports.reported_by')
- if @report.account.instance_actor?
%td{ colspan: 3 }= site_hostname
- elsif @report.account.local?
%td= admin_account_link_to @report.account
%td= table_link_to 'flag', pluralize(@report.account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.account.id)
%td= table_link_to 'file', pluralize(@report.account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.account.id)
%td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.account.targeted_reports.count), admin_reports_path(target_account_id: @report.account.id)
%td= table_link_to 'file', t('admin.reports.account.notes', count: @report.account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.account.id)
- else
%td{ colspan: 3 }= @report.account.domain
%tr
@ -74,6 +65,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

View File

@ -38,7 +38,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/

View File

@ -18,7 +18,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'

View File

@ -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

View File

@ -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:
@ -399,9 +394,6 @@ ar:
created_msg: تم إنشاء ملاحظة الشكوى بنجاح!
destroyed_msg: تم حذف ملاحظة الشكوى بنجاح!
reports:
account:
note: ملحوظة
report: تقرير
action_taken_by: تم اتخاذ الإجراء مِن طرف
are_you_sure: هل أنت متأكد ؟
assign_to_self: عين لي

View File

@ -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

View File

@ -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
@ -398,9 +393,6 @@ ca:
created_msg: La nota del informe s'ha creat correctament!
destroyed_msg: La nota del informe s'ha esborrat correctament!
reports:
account:
note: nota
report: informe
action_taken_by: Mesures adoptades per
are_you_sure: N'estàs segur?
assign_to_self: Assignar-me

View File

@ -118,9 +118,7 @@ co:
email_status: Statutu di le-mail
enable: Attivà
enabled: Attivatu
feed_url: URL di u flussu
followers: Abbunati
followers_url: URL di labbunati
follows: Abbunamenti
header: Intistatura
inbox_url: URL di linbox
@ -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 loutbox
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 linbox spartuta
@ -398,9 +393,6 @@ co:
created_msg: Nota di signalamentu creata!
destroyed_msg: Nota di signalamentu sguassata!
reports:
account:
note: nota
report: palisà
action_taken_by: Intervenzione di
are_you_sure: Site sicuru·a?
assign_to_self: Assignallu à mè

View File

@ -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
@ -410,9 +405,6 @@ cs:
created_msg: Poznámka o nahlášení úspěšně vytvořena!
destroyed_msg: Poznámka o nahlášení úspěšně smazána!
reports:
account:
note: poznámka
report: nahlášení
action_taken_by: Akci vykonal/a
are_you_sure: Jste si jistý/á?
assign_to_self: Přidělit ke mně

View File

@ -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
@ -419,9 +414,6 @@ cy:
created_msg: Llwyddwyd i greu nodyn adroddiad!
destroyed_msg: Llwyddwyd i ddileu nodyn adroddiad!
reports:
account:
note: nodyn
report: adroddiad
action_taken_by: Gwnaethpwyd hyn gan
are_you_sure: Ydych chi'n sicr?
assign_to_self: Aseinio i mi

View File

@ -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
@ -333,9 +328,6 @@ da:
created_msg: Anmeldelse note blev oprettet!
destroyed_msg: Anmeldelse note blev slettet!
reports:
account:
note: notat
report: anmeld
action_taken_by: Handling udført af
are_you_sure: Er du sikker?
assign_to_self: Tildel til mig

View File

@ -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
@ -396,9 +391,6 @@ de:
created_msg: Meldungs-Kommentar erfolgreich erstellt!
destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht!
reports:
account:
note: Notiz
report: Meldung
action_taken_by: Maßnahme ergriffen durch
are_you_sure: Bist du dir sicher?
assign_to_self: Mir zuweisen

View File

@ -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 κοινόχρηστων εισερχομένων
@ -398,9 +393,6 @@ el:
created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας!
destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας!
reports:
account:
note: σημείωση
report: καταγγελία
action_taken_by: Ενέργεια από τον/την
are_you_sure: Σίγουρα;
assign_to_self: Ανάθεση σε μένα

View File

@ -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
@ -401,8 +396,12 @@ en:
destroyed_msg: Report note successfully deleted!
reports:
account:
note: note
report: report
notes:
one: "%{count} note"
other: "%{count} notes"
reports:
one: "%{count} report"
other: "%{count} reports"
action_taken_by: Action taken by
are_you_sure: Are you sure?
assign_to_self: Assign to me
@ -453,6 +452,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
enable_keybase:
desc_html: Allow your users to prove their identity via keybase
title: Enable keybase integration
@ -731,7 +732,6 @@ en:
blocks: You block
csv: CSV
domain_blocks: Domain blocks
follows: You follow
lists: Lists
mutes: You mute
storage: Media storage

View File

@ -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:
@ -348,9 +343,6 @@ en_GB:
created_msg: Report note successfully created!
destroyed_msg: Report note successfully deleted!
reports:
account:
note: note
report: report
action_taken_by: Action taken by
are_you_sure: Are you sure?
assign_to_self: Assign to me

View File

@ -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:
@ -380,9 +375,6 @@ eo:
created_msg: Signala noto sukcese kreita!
destroyed_msg: Signala noto sukcese forigita!
reports:
account:
note: noto
report: signalo
action_taken_by: Ago farita de
are_you_sure: Ĉu vi certas?
assign_to_self: Asigni al mi

View File

@ -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
@ -395,9 +391,6 @@ es-AR:
created_msg: "¡La nota de denuncia fue creada exitosamente!"
destroyed_msg: "¡La nota de denuncia fue eliminada exitosamente!"
reports:
account:
note: nota
report: denuncia
action_taken_by: Acción tomada por
are_you_sure: "¿Estás seguro?"
assign_to_self: Asignármela a mí

View File

@ -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
@ -398,9 +393,6 @@ es:
created_msg: "¡El registro de la denuncia se ha creado correctamente!"
destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!"
reports:
account:
note: nota
report: denuncia
action_taken_by: Acción tomada por
are_you_sure: "¿Estás seguro?"
assign_to_self: Asignármela a mí

View File

@ -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
@ -401,9 +396,6 @@ et:
created_msg: Teade edukalt koostatud!
destroyed_msg: Teade edukalt kustutatud!
reports:
account:
note: märkus
report: teavita
action_taken_by: Meetmeid kasutanud
are_you_sure: Olete kindel?
assign_to_self: Määra mulle

View File

@ -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
@ -398,9 +393,6 @@ eu:
created_msg: Salaketa oharra ongi sortu da!
destroyed_msg: Salaketa oharra ongi ezabatu da!
reports:
account:
note: oharra
report: salaketa
action_taken_by: Neurrien hartzailea
are_you_sure: Ziur zaude?
assign_to_self: Esleitu niri

View File

@ -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: نشانی صندوق ورودی مشترک
@ -396,9 +391,6 @@ fa:
created_msg: یادداشت گزارش با موفقیت ساخته شد!
destroyed_msg: یادداشت گزارش با موفقیت حذف شد!
reports:
account:
note: یادداشت
report: گزارش
action_taken_by: انجام‌دهنده
are_you_sure: آیا مطمئن هستید؟
assign_to_self: به عهدهٔ من بگذار

View File

@ -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:
@ -270,9 +265,6 @@ fi:
created_msg: Muistiinpano onnistuneesti lisätty raporttiin!
destroyed_msg: Muistiinpano onnistuneesti poistettu raportista!
reports:
account:
note: muistiinpano
report: raportti
action_taken_by: Toimenpiteen tekijä
are_you_sure: Oletko varma?
assign_to_self: Ota tehtäväksi

View File

@ -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 dentrée
@ -148,10 +146,8 @@ fr:
no_account_selected: Aucun compte na été modifié, car aucun na été sélectionné
no_limits_imposed: Aucune limite imposée
not_subscribed: Non abonné
outbox_url: URL de sortie
pending: En attente dapprobation
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
@ -398,9 +393,6 @@ fr:
created_msg: Note de signalement créée avec succès!
destroyed_msg: Note de signalement effacée avec succès!
reports:
account:
note: note
report: signalement(s)
action_taken_by: Intervention de
are_you_sure: Êtes vous certain⋅e?
assign_to_self: Me lassigner

View File

@ -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
@ -396,9 +391,6 @@ gl:
created_msg: Creouse correctamente a nota do informe!
destroyed_msg: Nota do informe eliminouse con éxito!
reports:
account:
note: nota
report: informe
action_taken_by: Acción tomada por
are_you_sure: Está segura?
assign_to_self: Asignarmo

View File

@ -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:

View File

@ -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
@ -400,9 +395,6 @@ hu:
created_msg: Bejelentési feljegyzés létrehozva!
destroyed_msg: Bejelentési feljegyzés törölve!
reports:
account:
note: feljegyzés
report: bejelentés
action_taken_by: 'Kezelte:'
are_you_sure: Biztos vagy benne?
assign_to_self: Magamhoz rendelés

View File

@ -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
@ -391,9 +386,6 @@ id:
created_msg: Catatan laporan berhasil dibuat!
destroyed_msg: Catatan laporan berhasil dihapus!
reports:
account:
note: catatan
report: lapor
action_taken_by: Aksi dilakukan oleh
are_you_sure: Apakah Anda yakin?
assign_to_self: Tugaskan kpd saya

View File

@ -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
@ -394,9 +389,6 @@ it:
created_msg: Nota rapporto creata!
destroyed_msg: Nota rapporto cancellata!
reports:
account:
note: note
report: rapporto
action_taken_by: Azione intrapresa da
are_you_sure: Sei sicuro?
assign_to_self: Assegna a me

View File

@ -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
@ -392,9 +387,6 @@ ja:
created_msg: 通報メモを書き込みました!
destroyed_msg: 通報メモを削除しました!
reports:
account:
note: メモ
report: 通報
action_taken_by: 通報処理者
are_you_sure: 本当に実行しますか?
assign_to_self: 担当になる

View File

@ -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:
@ -267,9 +262,6 @@ ka:
created_msg: რეპორტის ჩანაწერი წარმატებით შეიქმნა!
destroyed_msg: რეპორტის ჩანაწერი წარმატებით გაუქმდა!
reports:
account:
note: ჩანაწერი
report: რეპორტი
action_taken_by: მოქმედება შეასრულა
are_you_sure: დარწმუნებული ხარ?
assign_to_self: დანიშნე ჩემზე

View File

@ -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
@ -398,9 +393,6 @@ kk:
created_msg: Шағым жазбасы сәтті құрылды!
destroyed_msg: Шағым жазбасы сәтті өшірілді!
reports:
account:
note: жазба
report: шағым
action_taken_by: Белсенділік жасаған
are_you_sure: Шынымен бе?
assign_to_self: Мені тағайындау

View File

@ -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
@ -392,9 +387,6 @@ ko:
created_msg: 리포트 노트가 성공적으로 작성되었습니다!
destroyed_msg: 리포트 노트가 성공적으로 삭제되었습니다!
reports:
account:
note: 노트
report: 리포트
action_taken_by: 신고 처리자
are_you_sure: 정말로 실행하시겠습니까?
assign_to_self: 나에게 할당하기

View File

@ -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:
@ -309,9 +304,6 @@ lt:
created_msg: Skundo žinutė sekmingai sukurta!
destroyed_msg: Skundo žinutė sekmingai ištrinta!
reports:
account:
note: raštelis
report: skundas
action_taken_by: Veiksmo ėmėsi
are_you_sure: Ar tu įsitikinęs?
assign_to_self: Paskirti man

View File

@ -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:
@ -276,9 +271,6 @@ ms:
created_msg: Nota laporan berjaya dicipta!
destroyed_msg: Nota laporan berjaya dipadam!
reports:
account:
note: nota
report: laporan
action_taken_by: Tindakan oleh
are_you_sure: Anda pasti?
assign_to_self: Berikan pada saya

View File

@ -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
@ -396,9 +391,6 @@ nl:
created_msg: Opmerking bij rapportage succesvol aangemaakt!
destroyed_msg: Opmerking bij rapportage succesvol verwijderd!
reports:
account:
note: opmerking
report: rapportage
action_taken_by: Actie uitgevoerd door
are_you_sure: Weet je het zeker?
assign_to_self: Aan mij toewijzen

View File

@ -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:

View File

@ -108,9 +108,7 @@ oc:
email_status: Estat de ladreç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:
@ -383,9 +378,6 @@ oc:
created_msg: Nòta de moderacion corrèctament creada!
destroyed_msg: Nòta de moderacion corrèctament suprimida!
reports:
account:
note: nòta
report: rapòrt
action_taken_by: Mesura menada per
are_you_sure: Es segur?
assign_to_self: Me lassignar

View File

@ -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:
@ -403,9 +398,6 @@ pl:
created_msg: Pomyslnie utworzono notatkę moderacyjną.
destroyed_msg: Pomyślnie usunięto notatkę moderacyjną.
reports:
account:
note: notatka
report: zgłoszenie
action_taken_by: Działanie podjęte przez
are_you_sure: Czy na pewno?
assign_to_self: Przypisz do siebie

View File

@ -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:
@ -368,9 +363,6 @@ pt-BR:
created_msg: Nota de denúncia criada com sucesso!
destroyed_msg: Nota de denúncia excluída com sucesso!
reports:
account:
note: nota
report: denúncia
action_taken_by: Ação realizada por
are_you_sure: Você tem certeza?
assign_to_self: Designar para mim

View File

@ -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:
@ -346,9 +341,6 @@ pt-PT:
created_msg: Relatório criado com sucesso!
destroyed_msg: Relatório apagado com sucesso!
reports:
account:
note: nota
report: relatório
action_taken_by: Ação tomada por
are_you_sure: Tens a certeza?
assign_to_self: Atribuí-me a mim

View File

@ -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 общих входящих
@ -410,9 +405,6 @@ ru:
created_msg: Примечание жалобы создано!
destroyed_msg: Примечание жалобы удалено!
reports:
account:
note: заметок
report: жалоб
action_taken_by: 'Действие предпринято:'
are_you_sure: Вы уверены?
assign_to_self: Назначить себе

View File

@ -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
@ -403,9 +398,6 @@ sk:
created_msg: Poznámka o nahlásení úspešne vytvorená!
destroyed_msg: Poznámka o nahlásení úspešne vymazaná!
reports:
account:
note: poznámka
report: nahlás
action_taken_by: Zákrok vykonal/a
are_you_sure: Si si istý/á?
assign_to_self: Priraď sebe

View File

@ -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:
@ -375,9 +370,6 @@ sl:
created_msg: Opomba o prijavi je uspešno ustvarjena!
destroyed_msg: Opomba o prijavi je uspešno izbrisana!
reports:
account:
note: opomba
report: prijava
action_taken_by: Dejanje, ki ga je sprejel
are_you_sure: Ali ste prepričani?
assign_to_self: Dodeli meni

View File

@ -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
@ -315,9 +311,6 @@ sq:
created_msg: Shënimi i raportimit u krijua me sukses!
destroyed_msg: Shënimi i raportimit u fshi me sukses!
reports:
account:
note: shënim
report: raportojeni
action_taken_by: Veprimi i ndërmarrë nga
are_you_sure: A jeni i sigurt?
assign_to_self: Caktojani vetes

View File

@ -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:

View File

@ -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:
@ -330,9 +325,6 @@ sr:
created_msg: Белешка пријаве успешно направљена!
destroyed_msg: Белешка пријаве успешно избрисана!
reports:
account:
note: белешка
report: извештај
action_taken_by: Акцију извео
are_you_sure: Да ли сте сигурни?
assign_to_self: Додели мени

View File

@ -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
@ -318,9 +313,6 @@ sv:
created_msg: Anmälningsanteckning har skapats!
destroyed_msg: Anmälningsanteckning har raderats!
reports:
account:
note: anteckning
report: anmälan
action_taken_by: Åtgärder vidtagna av
are_you_sure: Är du säker?
assign_to_self: Tilldela till mig

View File

@ -87,9 +87,7 @@ te:
email_status: ఈమెయిల్ స్థితి
enable: చేతనం
enabled: చేతనం చేయబడింది
feed_url: ఫీడ్ URL
followers: అనుచరులు
followers_url: అనుచరుల URL
follows: అనుసరిస్తున్నారు
inbox_url: ఇన్ బాక్స్ URL
location:

View File

@ -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: สาธารณะ
@ -310,9 +306,6 @@ th:
created_msg: สร้างหมายเหตุรายงานสำเร็จ!
destroyed_msg: ลบหมายเหตุรายงานสำเร็จ!
reports:
account:
note: หมายเหตุ
report: รายงาน
are_you_sure: คุณแน่ใจหรือไม่?
assign_to_self: มอบหมายให้ฉัน
assigned: ผู้ควบคุมที่ได้รับมอบหมาย

View File

@ -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ı
@ -398,9 +393,6 @@ tr:
created_msg: Şikayet notu başarıyla oluşturuldu!
destroyed_msg: Şikayet notu başarıyla silindi!
reports:
account:
note: not
report: şikayet
action_taken_by: tarafından gerçekleştirilen eylem
are_you_sure: Emin misiniz?
assign_to_self: Bana ata

View File

@ -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:
@ -400,9 +395,6 @@ uk:
created_msg: Скарга успішно створена!
destroyed_msg: Скарга успішно видалена!
reports:
account:
note: нотатка
report: скарга
action_taken_by: Дія виконана
are_you_sure: Ви впевнені?
assign_to_self: Призначити мені

View File

@ -107,9 +107,7 @@ zh-CN:
email_status: 电子邮件地址状态
enable: 启用
enabled: 已启用
feed_url: 订阅 URL
followers: 关注者
followers_url: 关注者FollowersURL
follows: 正在关注
header: 个人资料页横幅图片
inbox_url: 收件箱InboxURL
@ -137,10 +135,8 @@ zh-CN:
no_account_selected: 因为没有账户被选择,所以没有更改
no_limits_imposed: 无限制
not_subscribed: 未订阅
outbox_url: 发件箱OutboxURL
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 InboxURL
@ -384,9 +379,6 @@ zh-CN:
created_msg: 举报记录建立成功!
destroyed_msg: 举报记录删除成功!
reports:
account:
note: 条记录
report: 条举报
action_taken_by: 操作执行者
are_you_sure: 你确定吗?
assign_to_self: 接管

View File

@ -64,9 +64,7 @@ zh-HK:
email_status: 电子邮件状态
enable: 啟用
enabled: 已啟用
feed_url: 訂閱 URL
followers: 關注者
followers_url: 關注者FollowersURL
follows: 正在關注
inbox_url: 收件箱InboxURL
ip: IP 位域
@ -87,9 +85,7 @@ zh-HK:
most_recent_activity: 最新活動
most_recent_ip: 最新 IP 位域
not_subscribed: 未訂閱
outbox_url: 寄件箱OutboxURL
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 InboxURL
show:
@ -233,9 +228,6 @@ zh-HK:
created_msg: 舉報筆記已建立。
destroyed_msg: 舉報筆記已刪除。
reports:
account:
note: 筆記
report: 舉報
action_taken_by: 操作執行者
are_you_sure: 你確認嗎?
assign_to_self: 指派給自己

View File

@ -99,9 +99,7 @@ zh-TW:
email_status: 電子信箱狀態
enable: 啟用
enabled: 已啟用
feed_url: 訂閱 URL
followers: 關注者
followers_url: 關注者FollowersURL
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:
@ -323,9 +318,6 @@ zh-TW:
created_msg: 檢舉記錄建立成功!
destroyed_msg: 檢舉記錄刪除成功!
reports:
account:
note: 條記錄
report: 條檢舉
action_taken_by: 操作執行者
are_you_sure: 你確定嗎?
assign_to_self: 指派給自己

View File

@ -66,6 +66,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

View File

@ -0,0 +1,21 @@
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class IncreaseBackupSize < ActiveRecord::Migration[5.2]
include Mastodon::MigrationHelpers
disable_ddl_transaction!
def up
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
safety_assured do
change_column_type_concurrently :backups, :dump_file_size, :integer
cleanup_concurrent_column_type_change :backups, :dump_file_size
end
end
end

View File

@ -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
@ -706,30 +706,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

View File

@ -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
@ -20,7 +21,7 @@ module Mastodon
by someone locally but no longer are.
This is a computationally heavy procedure that creates extra database
indicides before commencing, and removes them afterward.
indices before commencing, and removes them afterward.
LONG_DESC
def remove
say('Creating temporary database indices...')
@ -34,18 +35,28 @@ 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 bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)') # Skip statuses bookmarked by local users
.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))')
# Skip statuses bookmarked by local users
scope = scope.where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)')
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...')

View File

@ -65,12 +65,12 @@
"@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",
"@clusterws/cws": "^0.16.0",
"array-includes": "^3.0.3",
"array-includes": "^3.1.0",
"atrament": "^0.2.3",
"arrow-key-navigation": "^1.1.0",
"autoprefixer": "^9.7.3",
@ -83,10 +83,10 @@
"babel-runtime": "^6.26.0",
"blurhash": "^1.1.3",
"classnames": "^2.2.5",
"compression-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^5.0.5",
"compression-webpack-plugin": "^3.0.1",
"copy-webpack-plugin": "^5.1.1",
"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",
@ -136,7 +136,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",
@ -176,7 +176,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",

View File

@ -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

View File

@ -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 }

View File

@ -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
{

View File

@ -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
{

View File

@ -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

View File

@ -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
</entry>
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
</entry>
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

View File

@ -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' => '<http://example.com/foo>; 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) { '<html><head><link rel="alternate" href="http://example.com/foo" type="application/activity+json"/></head></html>' }
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

247
yarn.lock
View File

@ -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"
@ -1592,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"
@ -2142,14 +2154,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"
@ -2207,26 +2219,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"
@ -2343,6 +2335,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"
@ -2642,16 +2639,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:
@ -2755,10 +2752,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"
@ -2770,22 +2767,16 @@ 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.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"
@ -2953,23 +2944,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"
@ -3524,10 +3515,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"
@ -3670,7 +3661,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==
@ -3686,6 +3677,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"
@ -3815,10 +3823,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"
@ -7134,10 +7142,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"
@ -8058,10 +8066,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 +8267,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==
@ -8636,12 +8644,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 +8699,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"
@ -9429,7 +9432,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==
@ -9467,7 +9470,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==
@ -9491,15 +9494,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.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"