Skip to content

Commit

Permalink
Merge pull request #3491 from manyfold3d/creator-update-activities
Browse files Browse the repository at this point in the history
Deliver creator updates to its followers
  • Loading branch information
Floppy authored Jan 27, 2025
2 parents 8a249e2 + dc8528f commit 20efe41
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ gem "better_content_security_policy", "~> 0.1.4"
gem "devise_zxcvbn", "~> 6.0"

gem "ransack", "~> 4.2"
gem "federails", git: "https://gitlab.com/experimentslabs/federails", branch: "fix-webfinger-type-match"
gem "federails", git: "https://gitlab.com/experimentslabs/federails", branch: "interim-object-addressing"
gem "federails-moderation", "~> 0.2"
gem "caber"

Expand Down
4 changes: 2 additions & 2 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ GIT

GIT
remote: https://gitlab.com/experimentslabs/federails
revision: a7cb37c0d24745f56ed7ccc13a7037fe6652d301
branch: fix-webfinger-type-match
revision: e1f219e4892c3b856b654b3a798607835fec8d2c
branch: interim-object-addressing
specs:
federails (0.5.0)
faraday
Expand Down
16 changes: 12 additions & 4 deletions app/models/concerns/followable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,29 @@ def followed_by?(follower)
federails_actor.followers.include? follower.federails_actor
end

def owning_actor
user = permitted_users.with_permission("own").first || SiteSettings.default_user
user&.federails_actor
end

private

def recently_posted?
Federails::Activity.exists?(entity: federails_actor, created_at: TIMEOUT.minutes.ago..)
end

def followable_post_creation_activity
followable_post_activity("Create")
end

def followable_post_update_activity
followable_post_activity("Update") unless Federails::Activity.exists?(entity: federails_actor, created_at: TIMEOUT.minutes.ago..)
followable_post_activity("Update") unless recently_posted?
end

def followable_post_activity(action)
user = permitted_users.with_permission("own").first || SiteSettings.default_user
return if user.nil?
return unless owning_actor
Federails::Activity.create!(
actor: user.federails_actor,
actor: owning_actor,
action: action,
entity: federails_actor,
created_at: updated_at
Expand Down

0 comments on commit 20efe41

Please sign in to comment.