From 35f0af3c55406cf227d77483ed8766331bc39820 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 14 Jul 2015 03:32:50 +0200 Subject: [PATCH] don't parse guid from hcard if it is equals to nickname --- lib/diaspora_federation/discovery/h_card.rb | 12 ++++++++++-- .../lib/diaspora_federation/discovery/h_card_spec.rb | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/diaspora_federation/discovery/h_card.rb b/lib/diaspora_federation/discovery/h_card.rb index e727e1e..ceb1373 100644 --- a/lib/diaspora_federation/discovery/h_card.rb +++ b/lib/diaspora_federation/discovery/h_card.rb @@ -164,7 +164,7 @@ module DiasporaFederation doc = parse_html_and_validate(html_string) data = { - guid: content_from_doc(doc, :uid), + guid: guid_from_doc(doc), nickname: content_from_doc(doc, :nickname), full_name: content_from_doc(doc, :fn), url: element_from_doc(doc, :url)["href"], @@ -173,7 +173,7 @@ module DiasporaFederation photo_small_url: photo_from_doc(doc, :photo_small), searchable: (content_from_doc(doc, :searchable) == "true"), - # TODO: change me! ################### + # TODO: remove me! ################### first_name: content_from_doc(doc, :given_name), last_name: content_from_doc(doc, :family_name) ####################################### @@ -288,6 +288,14 @@ module DiasporaFederation element_from_doc(doc, photo_selector)["src"] end private_class_method :photo_from_doc + + # @deprecated hack for old hcard + # @todo remove this when all pods have the new generator + def self.guid_from_doc(doc) + uid_element = element_from_doc(doc, :uid) + uid_element.content unless uid_element[:class].include? "nickname" + end + private_class_method :guid_from_doc end end end diff --git a/spec/lib/diaspora_federation/discovery/h_card_spec.rb b/spec/lib/diaspora_federation/discovery/h_card_spec.rb index 3e763d2..f4cf1c4 100644 --- a/spec/lib/diaspora_federation/discovery/h_card_spec.rb +++ b/spec/lib/diaspora_federation/discovery/h_card_spec.rb @@ -227,6 +227,9 @@ HTML expect(hcard.first_name).to eq(person.first_name) expect(hcard.last_name).to eq(person.last_name) + + expect(hcard.guid).to be_nil + expect(hcard.public_key).to be_nil end it "fails if the document is incomplete" do