diff options
author | multiple creatures <dev@multiple-creature.party> | 2020-01-13 21:57:24 -0600 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2020-01-13 21:57:24 -0600 |
commit | 67516a07db44196cc4bb94bf94abe5c6f611cf07 (patch) | |
tree | f65b7c79f859329a0438d806e777fa1d7aa7f400 /app/models/status.rb | |
parent | 1fbe7c340201ddff5232c7931a265136943ffd59 (diff) |
add new privacy option to auto-defederate after a given timespan + add options to defederate and/or delete past posts + add `defed_in`/`parent:defed_in`/`thread:defed_in` bangtags + ui indicator for posts marked for auto-defederation
Diffstat (limited to 'app/models/status.rb')
-rw-r--r-- | app/models/status.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 001437795..f21a2087e 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -82,6 +82,7 @@ class Status < ApplicationRecord has_one :status_stat, inverse_of: :status has_one :poll, inverse_of: :status, dependent: :destroy has_one :destructing_status, inverse_of: :status, dependent: :destroy + has_one :defederating_status, inverse_of: :status, dependent: :destroy has_one :imported_status, inverse_of: :status, dependent: :destroy has_one :sharekey, inverse_of: :status, dependent: :destroy @@ -284,6 +285,10 @@ class Status < ApplicationRecord end def delete_after=(value) + if defederate_after && defederate_after < (Time.now.utc + 5.minutes + value) + value = 5.minutes + value + end + if destructing_status.nil? DestructingStatus.create!(status_id: id, delete_after: Time.now.utc + value) else @@ -291,6 +296,20 @@ class Status < ApplicationRecord end end + def defederate_after + defederating_status&.defederate_after + end + + def defederate_after=(value) + return unless delete_after.nil? || delete_after >= (Time.now.utc + 5.minutes + value) + + if defederating_status.nil? + DefederatingStatus.create!(status_id: id, defederate_after: Time.now.utc + value) + else + defederating_status.defederate_after = Time.now.utc + value + end + end + def mark_for_mass_destruction! @marked_for_mass_destruction = true end |