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
 |