27 lines
		
	
	
		
			636 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			636 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| class OStatus::Activity::Share < OStatus::Activity::Creation
 | |
|   def perform
 | |
|     return if reblog.nil?
 | |
| 
 | |
|     status, just_created = super
 | |
|     NotifyService.new.call(reblog.account, status) if reblog.account.local? && just_created
 | |
|     status
 | |
|   end
 | |
| 
 | |
|   def object
 | |
|     @xml.at_xpath('.//activity:object', activity: OStatus::TagManager::AS_XMLNS)
 | |
|   end
 | |
| 
 | |
|   private
 | |
| 
 | |
|   def reblog
 | |
|     return @reblog if defined? @reblog
 | |
| 
 | |
|     original_status = OStatus::Activity::Remote.new(object).perform
 | |
|     return if original_status.nil?
 | |
| 
 | |
|     @reblog = original_status.reblog? ? original_status.reblog : original_status
 | |
|   end
 | |
| end
 |