diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:05:29 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:13:59 +0200 |
commit | d392020da6ff4511a2925b327de23933f374bea3 (patch) | |
tree | e86a590276a96ef72d5ed49f79998e7680969cb6 /app/services | |
parent | c699b2d141d7aa910bd81ae5fe881ecec7039395 (diff) | |
parent | 1ca4e51eb38de6de81cedf3ddcdaa626f1d1c569 (diff) |
Merge branch 'master' into glitch-soc/tentative-merge
Conflicts: README.md app/controllers/statuses_controller.rb app/lib/feed_manager.rb config/navigation.rb spec/lib/feed_manager_spec.rb Conflicts were resolved by taking both versions for each change. This means the two filter systems (glitch-soc's keyword mutes and tootsuite's custom filters) are in place, which will be changed in a follow-up commit.
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/favourite_service.rb | 8 | ||||
-rw-r--r-- | app/services/post_status_service.rb | 7 | ||||
-rw-r--r-- | app/services/reblog_service.rb | 7 | ||||
-rw-r--r-- | app/services/remove_status_service.rb | 4 |
4 files changed, 25 insertions, 1 deletions
diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb index bc2d1547a..6e1ac3ba9 100644 --- a/app/services/favourite_service.rb +++ b/app/services/favourite_service.rb @@ -15,7 +15,10 @@ class FavouriteService < BaseService return favourite unless favourite.nil? favourite = Favourite.create!(account: account, status: status) + create_notification(favourite) + bump_potential_friendship(account, status) + favourite end @@ -33,6 +36,11 @@ class FavouriteService < BaseService end end + def bump_potential_friendship(account, status) + return if account.following?(status.account_id) + PotentialFriendshipTracker.record(account.id, status.account_id, :favourite) + end + def build_json(favourite) Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new( favourite, diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 8b8fe51c1..a27f28ef6 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -50,6 +50,8 @@ class PostStatusService < BaseService redis.setex("idempotency:status:#{account.id}:#{options[:idempotency]}", 3_600, status.id) end + bump_potential_friendship(account, status) + status end @@ -82,4 +84,9 @@ class PostStatusService < BaseService def redis Redis.current end + + def bump_potential_friendship(account, status) + return if !status.reply? || account.following?(status.in_reply_to_account_id) + PotentialFriendshipTracker.record(account.id, status.in_reply_to_account_id, :reply) + end end diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb index 8d8b15a41..955a2bdbc 100644 --- a/app/services/reblog_service.rb +++ b/app/services/reblog_service.rb @@ -27,6 +27,8 @@ class ReblogService < BaseService end create_notification(reblog) + bump_potential_friendship(account, reblog) + reblog end @@ -44,6 +46,11 @@ class ReblogService < BaseService end end + def bump_potential_friendship(account, reblog) + return if account.following?(reblog.reblog.account_id) + PotentialFriendshipTracker.record(account.id, reblog.reblog.account_id, :reblog) + end + def build_json(reblog) Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new( reblog, diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index b9631077c..238099169 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -67,7 +67,9 @@ class RemoveStatusService < BaseService # delete notification - so here, we explicitly # send it to them - target_accounts = (@mentions.map(&:account).reject(&:local?) + @reblogs.map(&:account).reject(&:local?)).uniq(&:id) + target_accounts = (@mentions.map(&:account).reject(&:local?) + @reblogs.map(&:account).reject(&:local?)) + target_accounts << @status.reblog.account if @status.reblog? && !@status.reblog.account.local? + target_accounts.uniq!(&:id) # Ostatus NotificationWorker.push_bulk(target_accounts.select(&:ostatus?).uniq(&:domain)) do |target_account| |