about summary refs log tree commit diff
path: root/app/services
diff options
context:
space:
mode:
authorpluralcafe-docker <docker@plural.cafe>2018-08-30 05:23:58 +0000
committerpluralcafe-docker <docker@plural.cafe>2018-08-30 05:23:58 +0000
commitcc7437e25597e24b9a5f06f7991861506d9abe5c (patch)
treee627d32df29ef7ae30a67607caf3ecdc1ae333a9 /app/services
parent395164add468b1079669699dfe8eeaab73f69c15 (diff)
parent5ce67276691c37baad149f2f89f765543f70e6f9 (diff)
Merge branch 'glitch'
Diffstat (limited to 'app/services')
-rw-r--r--app/services/activitypub/process_account_service.rb7
-rw-r--r--app/services/follow_service.rb2
-rw-r--r--app/services/notify_service.rb2
3 files changed, 7 insertions, 4 deletions
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 7f95678b0..670a0e4d6 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -5,9 +5,10 @@ class ActivityPub::ProcessAccountService < BaseService
 
   # Should be called with confirmed valid JSON
   # and WebFinger-resolved username and domain
-  def call(username, domain, json)
+  def call(username, domain, json, options = {})
     return if json['inbox'].blank? || unsupported_uri_scheme?(json['id'])
 
+    @options     = options
     @json        = json
     @uri         = @json['id']
     @username    = username
@@ -31,7 +32,7 @@ class ActivityPub::ProcessAccountService < BaseService
     return if @account.nil?
 
     after_protocol_change! if protocol_changed?
-    after_key_change! if key_changed?
+    after_key_change! if key_changed? && !@options[:signed_with_known_key]
     check_featured_collection! if @account.featured_collection_url.present?
 
     @account
@@ -226,7 +227,7 @@ class ActivityPub::ProcessAccountService < BaseService
     updated   = tag['updated']
     emoji     = CustomEmoji.find_by(shortcode: shortcode, domain: @account.domain)
 
-    return unless emoji.nil? || emoji.updated_at >= updated
+    return unless emoji.nil? || image_url != emoji.image_remote_url || (updated && emoji.updated_at >= updated)
 
     emoji ||= CustomEmoji.new(domain: @account.domain, shortcode: shortcode, uri: uri)
     emoji.image_remote_url = image_url
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index 60a389afd..f6888a68d 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -27,6 +27,8 @@ class FollowService < BaseService
       return
     end
 
+    ActivityTracker.increment('activity:interactions')
+
     if target_account.locked? || target_account.activitypub?
       request_follow(source_account, target_account, reblogs: reblogs)
     else
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index 6490d2735..7d0dcc7ad 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -123,7 +123,7 @@ class NotifyService < BaseService
 
   def send_email
     return if @notification.activity.nil?
-    NotificationMailer.public_send(@notification.type, @recipient, @notification).deliver_later
+    NotificationMailer.public_send(@notification.type, @recipient, @notification).deliver_later(wait: 2.minutes)
   end
 
   def email_enabled?