Merge branch 'main' into glitch-soc/merge-upstream
This commit is contained in:
@@ -27,7 +27,6 @@
|
||||
# header_file_size :integer
|
||||
# header_updated_at :datetime
|
||||
# avatar_remote_url :string
|
||||
# subscription_expires_at :datetime
|
||||
# locked :boolean default(FALSE), not null
|
||||
# header_remote_url :string default(""), not null
|
||||
# last_webfingered_at :datetime
|
||||
@@ -55,6 +54,8 @@
|
||||
#
|
||||
|
||||
class Account < ApplicationRecord
|
||||
self.ignored_columns = %w(subscription_expires_at)
|
||||
|
||||
USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
|
||||
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[a-z0-9]+)?)/i
|
||||
|
||||
@@ -97,7 +98,6 @@ class Account < ApplicationRecord
|
||||
|
||||
scope :remote, -> { where.not(domain: nil) }
|
||||
scope :local, -> { where(domain: nil) }
|
||||
scope :expiring, ->(time) { remote.where.not(subscription_expires_at: nil).where('subscription_expires_at < ?', time) }
|
||||
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
|
||||
scope :silenced, -> { where.not(silenced_at: nil) }
|
||||
scope :suspended, -> { where.not(suspended_at: nil) }
|
||||
@@ -194,10 +194,6 @@ class Account < ApplicationRecord
|
||||
"acct:#{local_username_and_domain}"
|
||||
end
|
||||
|
||||
def subscribed?
|
||||
subscription_expires_at.present?
|
||||
end
|
||||
|
||||
def searchable?
|
||||
!(suspended? || moved?)
|
||||
end
|
||||
|
@@ -17,7 +17,7 @@ module Expireable
|
||||
end
|
||||
|
||||
def expires_in=(interval)
|
||||
self.expires_at = interval.to_i.seconds.from_now if interval.present?
|
||||
self.expires_at = interval.present? ? interval.to_i.seconds.from_now : nil
|
||||
@expires_in = interval
|
||||
end
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
.fields-row__column.fields-row__column-6.fields-group
|
||||
= f.input :phrase, as: :string, wrapper: :with_label, hint: false
|
||||
.fields-row__column.fields-row__column-6.fields-group
|
||||
= f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: lambda { |i| I18n.t("invites.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt')
|
||||
= f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: lambda { |i| I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt')
|
||||
|
||||
.fields-group
|
||||
= f.input :context, wrapper: :with_block_label, collection: CustomFilter::VALID_CONTEXTS, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label_method: lambda { |context| I18n.t("filters.contexts.#{context}") }, include_blank: false
|
||||
|
@@ -39,7 +39,7 @@
|
||||
%tr
|
||||
%th= t('exports.bookmarks')
|
||||
%td= number_with_delimiter @export.total_bookmarks
|
||||
%td= table_link_to 'download', t('bookmarks.csv'), settings_exports_bookmarks_path(format: :csv)
|
||||
%td= table_link_to 'download', t('exports.csv'), settings_exports_bookmarks_path(format: :csv)
|
||||
|
||||
%hr.spacer/
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::BackupCleanupScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
old_backups.reorder(nil).find_each(&:destroy!)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::DoorkeeperCleanupScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::EmailScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
FREQUENCY = 7.days.freeze
|
||||
SIGN_IN_OFFSET = 1.day.freeze
|
||||
|
@@ -4,7 +4,7 @@ class Scheduler::FeedCleanupScheduler
|
||||
include Sidekiq::Worker
|
||||
include Redisable
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
clean_home_feeds!
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::InstanceRefreshScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
Instance.refresh
|
||||
|
@@ -5,7 +5,7 @@ class Scheduler::IpCleanupScheduler
|
||||
|
||||
IP_RETENTION_PERIOD = 1.year.freeze
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
clean_ip_columns!
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::MediaCleanupScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
unattached_media.find_each(&:destroy)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::PgheroScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
PgHero.capture_space_stats
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::ScheduledStatusesScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
publish_scheduled_statuses!
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::TrendingTagsScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
TrendingTags.update! if Setting.trends
|
||||
|
@@ -3,7 +3,7 @@
|
||||
class Scheduler::UserCleanupScheduler
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options lock: :until_executed, retry: 0
|
||||
sidekiq_options retry: 0
|
||||
|
||||
def perform
|
||||
clean_unconfirmed_accounts!
|
||||
|
Reference in New Issue
Block a user