about summary refs log tree commit diff
path: root/app/lib
diff options
context:
space:
mode:
authormultiple creatures <dev@multiple-creature.party>2019-07-20 06:40:31 -0500
committermultiple creatures <dev@multiple-creature.party>2019-07-20 06:40:31 -0500
commit74e81d4ef75fa95ad2665f619384fbd49f8ce759 (patch)
treefff38c12ca9939a1e1ae57037cdce6c74ae4d4ee /app/lib
parentbe251c1eb401eed64cd053a7f5956ab7aa62692f (diff)
`visibility` bangtag accepts additional `federate`/`nofederate` (`f`/`nf`) arg to set whether post can federate + add more aliases
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/bangtags.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/lib/bangtags.rb b/app/lib/bangtags.rb
index 61034a0b5..168cc2ccc 100644
--- a/app/lib/bangtags.rb
+++ b/app/lib/bangtags.rb
@@ -505,11 +505,19 @@ class Bangtags
             next if v.nil? || allowed_visibility_changes[o].nil?
             next unless allowed_visibility_changes[o].include?(v)
             @parent_status.visibility = v
+            @parent_status.local_only = false if cmd[3].downcase.in? %w(federate f public p world)
             @parent_status.save
-            FanOutOnWriteService.new.call(@parent_status)
+            DistributionWorker.perform_async(@parent_status.id)
+            ActivityPub::DistributionWorker.perform_async(@parent_status) unless @parent_status.local_only?
           else
             v = cmd[1].downcase
             status.visibility = visibilities[v] unless visibilities[v].nil?
+            case cmd[2].downcase
+            when 'federate', 'f', 'public', 'p', 'world'
+              status.local_only = false
+            when 'nofederate', 'nf', 'localonly', 'lo', 'local', 'l', 'monsterpit', 'm', 'community', 'c'
+              status.local_only = true
+            end
           end
         when 'keysmash'
           keyboard = [