diff --git a/lib/diaspora_federation/entities/event.rb b/lib/diaspora_federation/entities/event.rb
index 1568f0c..0eda632 100644
--- a/lib/diaspora_federation/entities/event.rb
+++ b/lib/diaspora_federation/entities/event.rb
@@ -24,7 +24,7 @@ module DiasporaFederation
# @!attribute [r] description
# Description of the event
# @return [String] event description
- property :description, :string, optional: true
+ property :description, :string, alias: :text, optional: true
# @!attribute [r] start
# The start time of the event
diff --git a/lib/diaspora_federation/entities/profile.rb b/lib/diaspora_federation/entities/profile.rb
index 8fa2736..8caebf7 100644
--- a/lib/diaspora_federation/entities/profile.rb
+++ b/lib/diaspora_federation/entities/profile.rb
@@ -43,9 +43,12 @@ module DiasporaFederation
# @return [String] url to the small avatar (50x50)
property :image_url_small, :string, optional: true
+ # @!attribute [r] bio
+ # @return [String] bio of the person
+ property :bio, :string, alias: :text, optional: true
+
property :birthday, :string, optional: true
property :gender, :string, optional: true
- property :bio, :string, optional: true
property :location, :string, optional: true
# @!attribute [r] searchable
diff --git a/lib/diaspora_federation/federation/receiver/abstract_receiver.rb b/lib/diaspora_federation/federation/receiver/abstract_receiver.rb
index 1d23a1c..d63ba6e 100644
--- a/lib/diaspora_federation/federation/receiver/abstract_receiver.rb
+++ b/lib/diaspora_federation/federation/receiver/abstract_receiver.rb
@@ -30,6 +30,7 @@ module DiasporaFederation
validate
DiasporaFederation.callbacks.trigger(:receive_entity, entity, sender, recipient_id)
logger.info "successfully received #{entity} from person #{sender}#{" for #{recipient_id}" if recipient_id}"
+ fetch_linked_entities_from_text
end
def validate
@@ -43,6 +44,10 @@ module DiasporaFederation
sender == entity.author
end
end
+
+ def fetch_linked_entities_from_text
+ DiasporaUrlParser.fetch_linked_entities(sender, entity.text) if entity.respond_to?(:text) && entity.text
+ end
end
end
end
diff --git a/spec/lib/diaspora_federation/entities/account_migration_spec.rb b/spec/lib/diaspora_federation/entities/account_migration_spec.rb
index 928ff8b..debc3d0 100644
--- a/spec/lib/diaspora_federation/entities/account_migration_spec.rb
+++ b/spec/lib/diaspora_federation/entities/account_migration_spec.rb
@@ -24,9 +24,9 @@ module DiasporaFederation
#{data[:profile].image_url}
#{data[:profile].image_url}
#{data[:profile].image_url}
+ #{data[:profile].bio}
#{data[:profile].birthday}
#{data[:profile].gender}
- #{data[:profile].bio}
#{data[:profile].location}
#{data[:profile].searchable}
#{data[:profile].public}
diff --git a/spec/lib/diaspora_federation/entities/person_spec.rb b/spec/lib/diaspora_federation/entities/person_spec.rb
index 435aac6..6344827 100644
--- a/spec/lib/diaspora_federation/entities/person_spec.rb
+++ b/spec/lib/diaspora_federation/entities/person_spec.rb
@@ -13,9 +13,9 @@ module DiasporaFederation
#{data[:profile].image_url}
#{data[:profile].image_url}
#{data[:profile].image_url}
+ #{data[:profile].bio}
#{data[:profile].birthday}
#{data[:profile].gender}
- #{data[:profile].bio}
#{data[:profile].location}
#{data[:profile].searchable}
#{data[:profile].public}
diff --git a/spec/lib/diaspora_federation/entities/profile_spec.rb b/spec/lib/diaspora_federation/entities/profile_spec.rb
index d162556..30b1aa1 100644
--- a/spec/lib/diaspora_federation/entities/profile_spec.rb
+++ b/spec/lib/diaspora_federation/entities/profile_spec.rb
@@ -9,9 +9,9 @@ module DiasporaFederation
#{data[:image_url]}
#{data[:image_url]}
#{data[:image_url]}
+ #{data[:bio]}
#{data[:birthday]}
#{data[:gender]}
- #{data[:bio]}
#{data[:location]}
#{data[:searchable]}
#{data[:public]}
@@ -29,9 +29,9 @@ XML
"image_url": "#{data[:image_url]}",
"image_url_medium": "#{data[:image_url]}",
"image_url_small": "#{data[:image_url]}",
+ "bio": "#{data[:bio]}",
"birthday": "#{data[:birthday]}",
"gender": "#{data[:gender]}",
- "bio": "#{data[:bio]}",
"location": "#{data[:location]}",
"searchable": #{data[:searchable]},
"public": #{data[:public]},
diff --git a/spec/lib/diaspora_federation/federation/receiver/private_spec.rb b/spec/lib/diaspora_federation/federation/receiver/private_spec.rb
index 2deda9d..5635e91 100644
--- a/spec/lib/diaspora_federation/federation/receiver/private_spec.rb
+++ b/spec/lib/diaspora_federation/federation/receiver/private_spec.rb
@@ -112,6 +112,36 @@ module DiasporaFederation
end
end
end
+
+ context "with text" do
+ before do
+ expect(DiasporaFederation.callbacks).to receive(:trigger)
+ end
+
+ it "fetches linked entities when the received entity has a text property" do
+ expect(Federation::DiasporaUrlParser).to receive(:fetch_linked_entities).with(post.author, post.text)
+
+ described_class.new(magic_env, recipient).receive
+ end
+
+ it "fetches linked entities for the profile bio" do
+ profile = Fabricate(:profile_entity)
+ magic_env = Salmon::MagicEnvelope.new(profile, profile.author)
+
+ expect(Federation::DiasporaUrlParser).to receive(:fetch_linked_entities).with(profile.author, profile.bio)
+
+ described_class.new(magic_env, recipient).receive
+ end
+
+ it "doesn't try to fetch linked entities when the text is nil" do
+ photo = Fabricate(:photo_entity, public: false, text: nil)
+ magic_env = Salmon::MagicEnvelope.new(photo, photo.author)
+
+ expect(Federation::DiasporaUrlParser).not_to receive(:fetch_linked_entities)
+
+ described_class.new(magic_env, recipient).receive
+ end
+ end
end
end
end
diff --git a/spec/lib/diaspora_federation/federation/receiver/public_spec.rb b/spec/lib/diaspora_federation/federation/receiver/public_spec.rb
index 0234487..04f2108 100644
--- a/spec/lib/diaspora_federation/federation/receiver/public_spec.rb
+++ b/spec/lib/diaspora_federation/federation/receiver/public_spec.rb
@@ -134,6 +134,36 @@ module DiasporaFederation
described_class.new(magic_env).receive
end
end
+
+ context "with text" do
+ before do
+ expect(DiasporaFederation.callbacks).to receive(:trigger)
+ end
+
+ it "fetches linked entities when the received entity has a text property" do
+ expect(Federation::DiasporaUrlParser).to receive(:fetch_linked_entities).with(post.author, post.text)
+
+ described_class.new(magic_env).receive
+ end
+
+ it "fetches linked entities for the profile bio" do
+ profile = Fabricate(:profile_entity, public: true)
+ magic_env = Salmon::MagicEnvelope.new(profile, profile.author)
+
+ expect(Federation::DiasporaUrlParser).to receive(:fetch_linked_entities).with(profile.author, profile.bio)
+
+ described_class.new(magic_env).receive
+ end
+
+ it "doesn't try to fetch linked entities when the text is nil" do
+ photo = Fabricate(:photo_entity, text: nil)
+ magic_env = Salmon::MagicEnvelope.new(photo, photo.author)
+
+ expect(Federation::DiasporaUrlParser).not_to receive(:fetch_linked_entities)
+
+ described_class.new(magic_env).receive
+ end
+ end
end
end
end