blob: 0e6524001f68d55db528b8a8250af77d22219402 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# frozen_string_literal: true
module CommandTag::Commands::StatusTools
def handle_title_before_save(args)
return unless author_of_status?
@status.title = args[0]
end
def handle_visibility_before_save(args)
return unless author_of_status? && args[0].present?
args[0] = read_visibility_from(args[0])
return if args[0].blank?
if args[1].blank?
@status.visibility = args[0].to_sym
elsif args[0] == @status.visibility.to_s
domains = args[1..-1].map { |domain| normalize_domain(domain) }.uniq.compact
@status.domain_permissions.where(domain: domains).destroy_all if domains.present?
else
args[1..-1].flat_map(&:split).uniq.each do |domain|
domain = normalize_domain(domain)
@status.domain_permissions.create_or_update(domain: domain, visibility: args[0]) if domain.present?
end
end
end
alias handle_v_before_save handle_visibility_before_save
alias handle_privacy_before_save handle_visibility_before_save
def handle_semiprivate_before_save(args)
return unless author_of_status?
@semiprivate = args.blank? || read_boolean_from(args[0])
end
end
|