diff --git a/app/models/reshare.rb b/app/models/reshare.rb index ea9980336..c042e0852 100644 --- a/app/models/reshare.rb +++ b/app/models/reshare.rb @@ -65,17 +65,6 @@ class Reshare < Post private - def after_parse - if root.blank? - self.root = Diaspora::Fetcher::Single.find_or_fetch_from_remote root_guid, @root_diaspora_id do |fetched_post, author| - # why do we check this? - if fetched_post.diaspora_handle != author.diaspora_handle - raise Diaspora::PostNotFetchable, "Diaspora ID (#{fetched_post.diaspora_handle}) in the root does not match the Diaspora ID (#{author.diaspora_handle}) specified in the reshare!" - end - end - end - end - def root_must_be_public if self.root && !self.root.public errors[:base] << "Only posts which are public may be reshared." diff --git a/lib/diaspora/fetcher.rb b/lib/diaspora/fetcher.rb index a27831e2f..adb82e552 100644 --- a/lib/diaspora/fetcher.rb +++ b/lib/diaspora/fetcher.rb @@ -1,6 +1,5 @@ module Diaspora module Fetcher require 'diaspora/fetcher/public' - require 'diaspora/fetcher/single' end end diff --git a/lib/diaspora/fetcher/single.rb b/lib/diaspora/fetcher/single.rb deleted file mode 100644 index 797fc3ccc..000000000 --- a/lib/diaspora/fetcher/single.rb +++ /dev/null @@ -1,41 +0,0 @@ -module Diaspora - module Fetcher - module Single - module_function - - # Fetch and store a remote public post - # @param [String] guid the remote posts guid - # @param [String] author_id Diaspora ID of a user known to have the post, - # preferably the author - # @yield [Post, Person] If a block is given it is yielded the post - # and the author prior save - # @return a saved post - def find_or_fetch_from_remote guid, author_id - post = Post.where(guid: guid).first - return post if post - - post_author = Person.find_or_fetch_by_identifier(author_id) - post_author.save! unless post_author.persisted? - - if fetched_post = fetch_post(post_author, guid) - yield fetched_post, post_author if block_given? - raise Diaspora::PostNotFetchable unless fetched_post.save - end - - fetched_post - end - - # Fetch a remote public post, used for receiving of unknown public posts - # @param [Person] author the remote post's author - # @param [String] guid the remote post's guid - # @return [Post] an unsaved remote post or false if the post was not found - def fetch_post author, guid - url = URI.join(author.url, "/p/#{guid}.xml") - response = Faraday.get(url) - raise Diaspora::PostNotFetchable if response.status == 404 # Old pod, Friendika, deleted - raise "Failed to get #{url}" unless response.success? # Other error, N/A for example - Diaspora::Parser.from_xml(response.body) - end - end - end -end