Do not PuSH-subscribe to remote accounts when creating them for salmon
							parent
							
								
									784b9cca6a
								
							
						
					
					
						commit
						10eb47a33e
					
				|  | @ -1,7 +1,7 @@ | |||
| class FollowRemoteAccountService | ||||
|   include ApplicationHelper | ||||
| 
 | ||||
|   def call(uri) | ||||
|   def call(uri, subscribe = true) | ||||
|     username, domain = uri.split('@') | ||||
|     account = Account.where(username: username, domain: domain).first | ||||
| 
 | ||||
|  | @ -19,9 +19,6 @@ class FollowRemoteAccountService | |||
|     account.public_key  = magic_key_to_pem(data.link('magic-public-key').href) | ||||
|     account.private_key = nil | ||||
| 
 | ||||
|     account.secret       = SecureRandom.hex | ||||
|     account.verify_token = SecureRandom.hex | ||||
| 
 | ||||
|     feed = get_feed(account.remote_url) | ||||
|     hubs = feed.xpath('//xmlns:link[@rel="hub"]') | ||||
| 
 | ||||
|  | @ -33,8 +30,15 @@ class FollowRemoteAccountService | |||
|     get_profile(feed, account) | ||||
|     account.save! | ||||
| 
 | ||||
|     subscription = account.subscription(subscription_url(account)) | ||||
|     subscription.subscribe | ||||
|     if subscribe | ||||
|       account.secret       = SecureRandom.hex | ||||
|       account.verify_token = SecureRandom.hex | ||||
| 
 | ||||
|       subscription = account.subscription(subscription_url(account)) | ||||
|       subscription.subscribe | ||||
| 
 | ||||
|       account.save! | ||||
|     end | ||||
| 
 | ||||
|     return account | ||||
|   rescue Goldfinger::Error, HTTP::Error => e | ||||
|  |  | |||
|  | @ -31,10 +31,12 @@ class ProcessFeedService | |||
| 
 | ||||
|   def add_reblog!(entry, status) | ||||
|     status.reblog = find_original_status(entry, target_id(entry)) | ||||
|     status.save! unless status.reblog.nil? | ||||
|   end | ||||
| 
 | ||||
|   def add_reply!(entry, status) | ||||
|     status.thread = find_original_status(entry, thread_id(entry)) | ||||
|     status.save! unless status.thread.nil? | ||||
|   end | ||||
| 
 | ||||
|   def find_original_status(xml, id) | ||||
|  | @ -54,7 +56,8 @@ class ProcessFeedService | |||
|   end | ||||
| 
 | ||||
|   def fetch_remote_status(xml, id) | ||||
|     # todo | ||||
|     url = xml.at_xpath('./link[@rel="self"]').attribute('href').value | ||||
|     nil | ||||
|   end | ||||
| 
 | ||||
|   def local_id?(id) | ||||
|  | @ -100,4 +103,8 @@ class ProcessFeedService | |||
|   rescue | ||||
|     :post | ||||
|   end | ||||
| 
 | ||||
|   def follow_remote_account_service | ||||
|     FollowRemoteAccountService.new | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ class ProcessInteractionService | |||
|     account  = Account.find_by(username: username, domain: domain) | ||||
| 
 | ||||
|     if account.nil? | ||||
|       account = follow_remote_account_service.("acct:#{username}@#{domain}") | ||||
|       account = follow_remote_account_service.("acct:#{username}@#{domain}", false) | ||||
|       return if account.nil? | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue