add `delete_in:thread`/`thread:delete_in`

staging
multiple creatures 2019-07-26 15:20:31 -05:00
parent 78dd3d0e92
commit f9e382b9a6
1 changed files with 22 additions and 16 deletions

View File

@ -36,6 +36,11 @@ class Bangtags
['parent', 'lifespan'] => ['lifespan', 'parent'], ['parent', 'lifespan'] => ['lifespan', 'parent'],
['parent', 'delete_in'] => ['delete_in', 'parent'], ['parent', 'delete_in'] => ['delete_in', 'parent'],
['thread', 'l'] => ['l', 'thread'],
['thread', 'live'] => ['live', 'thread'],
['thread', 'lifespan'] => ['lifespan', 'thread'],
['thread', 'delete_in'] => ['delete_in', 'thread'],
['all', 'l'] => ['l', 'all'], ['all', 'l'] => ['l', 'all'],
['all', 'live'] => ['live', 'all'], ['all', 'live'] => ['live', 'all'],
['all', 'lifespan'] => ['lifespan', 'all'], ['all', 'lifespan'] => ['lifespan', 'all'],
@ -552,13 +557,11 @@ class Bangtags
chunk = nil chunk = nil
next if cmd[1].nil? next if cmd[1].nil?
case cmd[1].downcase case cmd[1].downcase
when 'parent' when 'parent', 'thread', 'all'
next unless @parent_status.present? && @parent_status.account_id == @account.id s = cmd[1].downcase.to_sym
s = @parent_status s = @parent_status if s == :parent
i = cmd[2].to_i next unless @parent_status.present?
unit = cmd[3].present? ? cmd[3].downcase : 'minutes' next unless s != :thread && @parent_status.account_id == @account.id
when 'all'
s = :all
i = cmd[2].to_i i = cmd[2].to_i
unit = cmd[3].present? ? cmd[3].downcase : 'minutes' unit = cmd[3].present? ? cmd[3].downcase : 'minutes'
else else
@ -567,22 +570,25 @@ class Bangtags
unit = cmd[2].present? ? cmd[2].downcase : 'minutes' unit = cmd[2].present? ? cmd[2].downcase : 'minutes'
end end
delete_after = case unit delete_after = case unit
when 's', 'second', 'seconds' when 'min', 'mins', 'minute', 'minutes'
[60, i].max.seconds
when 'm', 'minute', 'minutes'
i.minutes i.minutes
when 'h', 'hour', 'hours' when 'h', 'hr', 'hrs', 'hour', 'hours'
i.hours i.hours
when 'd', 'day', 'days' when 'd', 'dy', 'dys', 'day', 'days'
i.days i.days
when 'w', 'week', 'weeks' when 'w', 'wk', 'wks', 'week', 'weeks'
i.weeks i.weeks
when 'm', 'month', 'months' when 'm', 'mn', 'mns', 'month', 'months'
i.months i.months
when 'y', 'year', 'years' when 'y', 'yr', 'yrs', 'year', 'years'
i.years i.years
end end
if s == :all if s == :thread
@parent_status.conversation.statuses.where(account_id: @account.id).find_each do |s|
s.delete_after = delete_after
Rails.cache.delete("statuses/#{s.id}")
end
elsif s == :all
@account.statuses.find_each do |s| @account.statuses.find_each do |s|
s.delete_after = delete_after s.delete_after = delete_after
Rails.cache.delete("statuses/#{s.id}") Rails.cache.delete("statuses/#{s.id}")