about summary refs log tree commit diff
path: root/app/services
diff options
context:
space:
mode:
Diffstat (limited to 'app/services')
-rw-r--r--app/services/favourite_service.rb5
-rw-r--r--app/services/follow_service.rb10
-rw-r--r--app/services/process_feed_service.rb3
-rw-r--r--app/services/remove_status_service.rb2
-rw-r--r--app/services/unfavourite_service.rb5
-rw-r--r--app/services/unfollow_service.rb5
6 files changed, 24 insertions, 6 deletions
diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb
index 824729ed6..818898302 100644
--- a/app/services/favourite_service.rb
+++ b/app/services/favourite_service.rb
@@ -22,10 +22,13 @@ class FavouriteService < BaseService
   private
 
   def build_xml(favourite)
+    description = "#{favourite.account.acct} favourited a status by #{favourite.status.account.acct}"
+
     Nokogiri::XML::Builder.new do |xml|
       entry(xml, true) do
         unique_id xml, favourite.created_at, favourite.id, 'Favourite'
-        title xml, "#{favourite.account.acct} favourited a status by #{favourite.status.account.acct}"
+        title xml, description
+        content xml, description
 
         author(xml) do
           include_author xml, favourite.account
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index d67b1bf2d..915f95b4c 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -55,10 +55,13 @@ class FollowService < BaseService
   end
 
   def build_follow_request_xml(follow_request)
+    description = "#{follow_request.account.acct} requested to follow #{follow_request.target_account.acct}"
+
     Nokogiri::XML::Builder.new do |xml|
       entry(xml, true) do
         unique_id xml, follow_request.created_at, follow_request.id, 'FollowRequest'
-        title xml, "#{follow_request.account.acct} requested to follow #{follow_request.target_account.acct}"
+        title xml, description
+        content xml, description
 
         author(xml) do
           include_author xml, follow_request.account
@@ -75,10 +78,13 @@ class FollowService < BaseService
   end
 
   def build_follow_xml(follow)
+    description = "#{follow.account.acct} started following #{follow.target_account.acct}"
+
     Nokogiri::XML::Builder.new do |xml|
       entry(xml, true) do
         unique_id xml, follow.created_at, follow.id, 'Follow'
-        title xml, "#{follow.account.acct} started following #{follow.target_account.acct}"
+        title xml, description
+        content xml, description
 
         author(xml) do
           include_author xml, follow.account
diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb
index f0a62aa14..5d952df6f 100644
--- a/app/services/process_feed_service.rb
+++ b/app/services/process_feed_service.rb
@@ -181,6 +181,9 @@ class ProcessFeedService < BaseService
         next unless link['href']
 
         media = MediaAttachment.where(status: parent, remote_url: link['href']).first_or_initialize(account: parent.account, status: parent, remote_url: link['href'])
+        parsed_url = URI.parse(link['href'])
+
+        next if !%w(http https).include?(parsed_url.scheme) || parsed_url.host.empty?
 
         begin
           media.file_remote_url = link['href']
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 73b545f17..cf1f432e4 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -59,7 +59,7 @@ class RemoveStatusService < BaseService
   end
 
   def unpush(type, receiver, status)
-    if status.reblog?
+    if status.reblog? && !redis.zscore(FeedManager.instance.key(type, receiver.id), status.reblog_of_id).nil?
       redis.zadd(FeedManager.instance.key(type, receiver.id), status.reblog_of_id, status.reblog_of_id)
     else
       redis.zremrangebyscore(FeedManager.instance.key(type, receiver.id), status.id, status.id)
diff --git a/app/services/unfavourite_service.rb b/app/services/unfavourite_service.rb
index 1d3e6f06d..5f0ba4254 100644
--- a/app/services/unfavourite_service.rb
+++ b/app/services/unfavourite_service.rb
@@ -13,10 +13,13 @@ class UnfavouriteService < BaseService
   private
 
   def build_xml(favourite)
+    description = "#{favourite.account.acct} no longer favourites a status by #{favourite.status.account.acct}"
+
     Nokogiri::XML::Builder.new do |xml|
       entry(xml, true) do
         unique_id xml, Time.now.utc, favourite.id, 'Favourite'
-        title xml, "#{favourite.account.acct} no longer favourites a status by #{favourite.status.account.acct}"
+        title xml, description
+        content xml, description
 
         author(xml) do
           include_author xml, favourite.account
diff --git a/app/services/unfollow_service.rb b/app/services/unfollow_service.rb
index 07f9b93dd..3440da364 100644
--- a/app/services/unfollow_service.rb
+++ b/app/services/unfollow_service.rb
@@ -13,10 +13,13 @@ class UnfollowService < BaseService
   private
 
   def build_xml(follow)
+    description = "#{follow.account.acct} is no longer following #{follow.target_account.acct}"
+
     Nokogiri::XML::Builder.new do |xml|
       entry(xml, true) do
         unique_id xml, Time.now.utc, follow.id, 'Follow'
-        title xml, "#{follow.account.acct} is no longer following #{follow.target_account.acct}"
+        title xml, description
+        content xml, description
 
         author(xml) do
           include_author xml, follow.account