]> cat aescling's git repositories - mastodon.git/commitdiff
set local_only in a before_create callback instead of status service
authorErin <sylphofelectricity@gmail.com>
Mon, 11 Dec 2017 03:39:27 +0000 (21:39 -0600)
committerErin <sylphofelectricity@gmail.com>
Mon, 11 Dec 2017 03:39:27 +0000 (21:39 -0600)
app/models/status.rb
app/services/post_status_service.rb

index 9ae75344730dd87589d915321a043994beed84f2..94b2a1aa9411bfa2fad6a471441545483ad2d697 100644 (file)
@@ -141,6 +141,8 @@ class Status < ApplicationRecord
 
   around_create Mastodon::Snowflake::Callbacks
 
+  before_create :set_locality
+
   before_validation :prepare_contents, if: :local?
   before_validation :set_reblog
   before_validation :set_visibility
@@ -302,6 +304,12 @@ class Status < ApplicationRecord
     self.sensitive = sensitive || spoiler_text.present?
   end
 
+  def set_locality
+    if account.domain.nil?
+      self.local_only = marked_local_only?
+    end
+  end
+
   def set_conversation
     self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply
 
index c7b5e8ffb09652412350986104ca8927d81b8b33..ff6cfbe8f52028e67e4fbc79f80c674e1a92d269 100644 (file)
@@ -40,9 +40,6 @@ class PostStatusService < BaseService
     LinkCrawlWorker.perform_async(status.id) unless status.spoiler_text?
     DistributionWorker.perform_async(status.id)
 
-    status.local_only = status.marked_local_only?
-    status.save!
-
     unless status.local_only
       Pubsubhubbub::DistributionWorker.perform_async(status.stream_entry.id)
       ActivityPub::DistributionWorker.perform_async(status.id)