diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb index 575aaf1869..02aa04fa4b 100644 --- a/app/validators/status_length_validator.rb +++ b/app/validators/status_length_validator.rb @@ -1,20 +1,23 @@ # frozen_string_literal: true class StatusLengthValidator < ActiveModel::Validator - MAX_CHARS = 500 URL_PLACEHOLDER_CHARS = 23 URL_PLACEHOLDER = 'x' * 23 + def max_chars + @max_chars ||= ENV.fetch('MAX_CHARACTERS', 500).to_i + end + def validate(status) return unless status.local? && !status.reblog? - status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if too_long?(status) + status.errors.add(:text, I18n.t('statuses.over_character_limit', max: max_chars)) if too_long?(status) end private def too_long?(status) - countable_length(combined_text(status)) > MAX_CHARS + countable_length(combined_text(status)) > max_chars end def countable_length(str) @@ -56,4 +59,4 @@ class StatusLengthValidator < ActiveModel::Validator result << str[last_index..] result end -end +end \ No newline at end of file