Fix exp hashtag digit max

This commit is contained in:
KMY 2023-03-21 15:05:36 +09:00
parent fc6819016d
commit e73706c82e

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class UpdateStatusExpirationService < BaseService class UpdateStatusExpirationService < BaseService
SCAN_EXPIRATION_RE = /#exp((\d+.\d+|\d+))([dhms]+)/ SCAN_EXPIRATION_RE = /#exp((\d{1,4}\.\d{1,2}|\d{1,4}))(d|h|m|s)/
def call(status) def call(status)
existing_expiration = ScheduledExpirationStatus.find_by(status: status) existing_expiration = ScheduledExpirationStatus.find_by(status: status)
@ -14,8 +14,6 @@ class UpdateStatusExpirationService < BaseService
expiration_option = expiration[2] expiration_option = expiration[2]
base_time = status.created_at || Time.now.utc base_time = status.created_at || Time.now.utc
raise Mastodon::ValidationError, 'Too many expiration value' if expiration_num >= 10000
expired_at = base_time + (expiration_option == 'd' ? expiration_num.days : expiration_option == 'h' ? expiration_num.hours : expiration_option == 's' ? expiration_num.seconds : expiration_num.minutes) expired_at = base_time + (expiration_option == 'd' ? expiration_num.days : expiration_option == 'h' ? expiration_num.hours : expiration_option == 's' ? expiration_num.seconds : expiration_num.minutes)
ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at) ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at)
end end