1
0
Fork 0
mirror of https://github.com/mastodon/mastodon.git synced 2024-08-20 21:08:15 -07:00

Compare commits

...

21 commits

Author SHA1 Message Date
Shlee
885d6f096b
Merge 4e4bdaf335 into a50c8e951f 2024-07-31 14:05:05 +00:00
Claire
a50c8e951f
Fix issue with grouped notifications UI due to recent API change (#31224) 2024-07-31 13:23:08 +00:00
Claire
2c1e75727d
Change filtered notification banner design to take up less space (#31222) 2024-07-31 12:36:08 +00:00
Shlee
4e4bdaf335
Update sidekiq.yml 2024-03-27 12:55:56 +10:30
Shlee
686a99d841
Merge branch 'main' into patch-1 2024-03-03 22:45:32 +10:30
Shlee
6c50ab4bbe
Update sidekiq.yml 2024-02-17 01:57:01 +10:30
Shlee
44877ebd84
Update sidekiq.yml 2024-02-17 01:54:36 +10:30
Shlee
5fdbb70833
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:54:23 +10:30
Shlee
2f23cc799b
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:44:30 +10:30
Shlee
396208aded
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:44:07 +10:30
Shlee
99535b4f46
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:41:06 +10:30
Shlee
56fe3a5d1a
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:29:08 +10:30
Shlee
05ece28852
Update .env.production.sample 2024-02-17 01:24:59 +10:30
Shlee
dba64bac83
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:24:29 +10:30
Shlee
1b0a477a8f
Update .env.production.sample 2024-02-17 01:23:35 +10:30
Shlee
47b25d80af
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:18:57 +10:30
Shlee
860d4c1da8
Update ip_spamlist_urls_scheduler.rb 2024-02-17 01:15:49 +10:30
Shlee
97c396edaf
Update sidekiq.yml 2024-02-17 01:14:39 +10:30
Shlee
afa1c150da
Create ip_spamlist_urls_scheduler.rb 2024-02-17 01:13:50 +10:30
Shlee
eff406b4c8
Update .env.production.sample 2024-02-17 01:07:10 +10:30
Shlee
76323a0cb2
Update .env.production.sample 2024-02-17 01:06:01 +10:30
8 changed files with 90 additions and 33 deletions

View file

@ -75,3 +75,11 @@ S3_ALIAS_HOST=files.example.com
# -----------------------
IP_RETENTION_PERIOD=31556952
SESSION_RETENTION_PERIOD=31556952
# Antispam: IP Block/Limit lists (Limited IP require manual approval).
# -----------------------
# URLS in this list are refreshed every 24 hours. Blocked/limited IP Addresses expire after 24 hours.
# Comma delimited to add more URLs. The format should contain only IP addresses (subnet optional)
# -----------------------
# SCHEDULED_IPLIMIT_URLS="https://check.torproject.org/torbulkexitlist"
# SCHEDULED_IPBLOCK_URLS=""

View file

@ -60,7 +60,7 @@ export interface BaseNotificationGroupJSON {
interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON {
type: NotificationWithStatusType;
status: ApiStatusJSON;
status_id: string;
}
interface NotificationWithStatusJSON extends BaseNotificationJSON {

View file

@ -49,21 +49,14 @@ export const FilteredNotificationsBanner: React.FC = () => {
<span>
<FormattedMessage
id='filtered_notifications_banner.pending_requests'
defaultMessage='Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know'
defaultMessage='From {count, plural, =0 {no one} one {one person} other {# people}} you may know'
values={{ count: policy.summary.pending_requests_count }}
/>
</span>
</div>
<div className='filtered-notifications-banner__badge'>
<div className='filtered-notifications-banner__badge__badge'>
{toCappedNumber(policy.summary.pending_notifications_count)}
</div>
<FormattedMessage
id='filtered_notifications_banner.mentions'
defaultMessage='{count, plural, one {mention} other {mentions}}'
values={{ count: policy.summary.pending_notifications_count }}
/>
{toCappedNumber(policy.summary.pending_notifications_count)}
</div>
</Link>
);

View file

@ -300,8 +300,7 @@
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filtered_notifications_banner.mentions": "{count, plural, one {mention} other {mentions}}",
"filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.title": "Filtered notifications",
"firehose.all": "All",
"firehose.local": "This server",

View file

@ -124,9 +124,9 @@ export function createNotificationGroupFromJSON(
case 'mention':
case 'poll':
case 'update': {
const { status, ...groupWithoutStatus } = group;
const { status_id: statusId, ...groupWithoutStatus } = group;
return {
statusId: status.id,
statusId,
sampleAccountIds,
...groupWithoutStatus,
};

View file

@ -10171,25 +10171,10 @@ noscript {
}
&__badge {
display: flex;
align-items: center;
border-radius: 999px;
background: var(--background-border-color);
color: $darker-text-color;
padding: 4px;
padding-inline-end: 8px;
gap: 6px;
font-weight: 500;
font-size: 11px;
line-height: 16px;
word-break: keep-all;
&__badge {
background: $ui-button-background-color;
color: $white;
border-radius: 100px;
padding: 2px 8px;
}
background: $ui-button-background-color;
color: $white;
border-radius: 100px;
padding: 2px 8px;
}
}

View file

@ -0,0 +1,68 @@
# frozen_string_literal: true
class Scheduler::IpSpamlistUrlsScheduler
include Sidekiq::Worker
sidekiq_options retry: 0
def perform
grab_ip_blocks_addresses! if ENV['SCHEDULED_IPBLOCK_URLS'].present?
add_ip_blocks_addresses! if ENV['SCHEDULED_IPBLOCK_URLS'].present?
grab_ip_limit_addresses! if ENV['SCHEDULED_IPLIMIT_URLS'].present?
add_ip_limit_addresses! if ENV['SCHEDULED_IPLIMIT_URLS'].present?
end
def grab_ip_blocks_addresses!
@blockips = []
ENV['SCHEDULED_IPBLOCK_URLS'].split(',').each do |url|
Request.new(:get, url).perform do |res|
@blockips.insert = res.body
end
end
end
def grab_ip_limit_addresses!
@limitips = []
ENV['SCHEDULED_IPBLIMIT_URLS'].split(',').each do |url|
Request.new(:get, url).perform do |res|
@limitips.insert = res.body
end
end
end
def add_ip_blocks_addresses!
@blockips.each do |ip|
ip_block = IpBlock.find_by(ip: ip)
if ip_block.present?
ip_block.update(expires_in: 24.hours.to_i)
next
end
IpBlock.create(
ip: ip,
severity: :sign_up_block,
comment: 'Scheduled IPBlock',
expires_in: 24.hours.to_i
)
end
end
def add_ip_limit_addresses!
@limitips.each do |ip|
ip_limit = IpBlock.find_by(ip: ip)
if ip_limit.present?
ip_limit.update(expires_in: 24.hours.to_i)
next
end
IpBlock.create(
ip: ip,
severity: :sign_up_requires_approval,
comment: 'Scheduled IPLimit',
expires_in: 24.hours.to_i
)
end
end
end

View file

@ -67,3 +67,7 @@
interval: 1 hour
class: Scheduler::AutoCloseRegistrationsScheduler
queue: scheduler
ip_spamlist_url_scheduler:
every: '24h'
class: Scheduler::IpSpamlistUrlsScheduler
queue: scheduler