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

Compare commits

...

19 commits

Author SHA1 Message Date
Shlee
536e3f257d
Merge 4e4bdaf335 into 549ab089ee 2024-07-31 11:04:44 +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
3 changed files with 80 additions and 0 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

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