forked from cybrespace/mastodon
		
	Deleting statuses, deletion propagation
This commit is contained in:
		
							parent
							
								
									75b3339a99
								
							
						
					
					
						commit
						5c99e304e5
					
				
					 5 changed files with 18 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -16,12 +16,12 @@ Mastodon is a federated microblogging engine. An alternative implementation of t
 | 
			
		|||
- REST API, including home and mention timelines
 | 
			
		||||
- OAuth2 provider system for the API
 | 
			
		||||
- Upload header image for profile page
 | 
			
		||||
- Deleting statuses, deletion propagation
 | 
			
		||||
 | 
			
		||||
Missing:
 | 
			
		||||
 | 
			
		||||
- Media attachments (photos, videos)
 | 
			
		||||
- UI to post, reblog, favourite, follow and unfollow
 | 
			
		||||
- Deleting statuses, deletion propagation
 | 
			
		||||
- Streaming API
 | 
			
		||||
 | 
			
		||||
## Configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,8 +147,8 @@ module AtomBuilderHelper
 | 
			
		|||
 | 
			
		||||
  def include_entry(xml, stream_entry)
 | 
			
		||||
    unique_id    xml, stream_entry.created_at, stream_entry.activity_id, stream_entry.activity_type
 | 
			
		||||
    published_at xml, stream_entry.activity.created_at
 | 
			
		||||
    updated_at   xml, stream_entry.activity.updated_at
 | 
			
		||||
    published_at xml, stream_entry.created_at
 | 
			
		||||
    updated_at   xml, stream_entry.updated_at
 | 
			
		||||
    title        xml, stream_entry.title
 | 
			
		||||
    content      xml, stream_entry.content
 | 
			
		||||
    verb         xml, stream_entry.verb
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@ class Feed
 | 
			
		|||
    return PrecomputeFeedService.new.(@type, @account).take(limit) if unhydrated.empty? && offset == 0
 | 
			
		||||
 | 
			
		||||
    Status.where(id: unhydrated).with_includes.with_counters.each { |status| status_map[status.id.to_s] = status }
 | 
			
		||||
    return unhydrated.map { |id| status_map[id] }
 | 
			
		||||
    return unhydrated.map { |id| status_map[id] }.compact
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@ class Status < ActiveRecord::Base
 | 
			
		|||
  belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies
 | 
			
		||||
  belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs
 | 
			
		||||
 | 
			
		||||
  has_one :stream_entry, as: :activity, dependent: :destroy
 | 
			
		||||
  has_one :stream_entry, as: :activity
 | 
			
		||||
 | 
			
		||||
  has_many :favourites, inverse_of: :status, dependent: :destroy
 | 
			
		||||
  has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,11 +5,11 @@ class StreamEntry < ActiveRecord::Base
 | 
			
		|||
  validates :account, :activity, presence: true
 | 
			
		||||
 | 
			
		||||
  def object_type
 | 
			
		||||
    targeted? ? :activity : self.activity.object_type
 | 
			
		||||
    orphaned? ? :activity : (targeted? ? :activity : self.activity.object_type)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def verb
 | 
			
		||||
    self.activity.verb
 | 
			
		||||
    orphaned? ? :delete : self.activity.verb
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def targeted?
 | 
			
		||||
| 
						 | 
				
			
			@ -17,15 +17,15 @@ class StreamEntry < ActiveRecord::Base
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def target
 | 
			
		||||
    self.activity.target
 | 
			
		||||
    orphaned? ? nil : self.activity.target
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def title
 | 
			
		||||
    self.activity.title
 | 
			
		||||
    orphaned? ? nil : self.activity.title
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def content
 | 
			
		||||
    self.activity.content
 | 
			
		||||
    orphaned? ? nil : self.activity.content
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def threaded?
 | 
			
		||||
| 
						 | 
				
			
			@ -33,10 +33,16 @@ class StreamEntry < ActiveRecord::Base
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def thread
 | 
			
		||||
    self.activity.thread
 | 
			
		||||
    orphaned? ? nil : self.activity.thread
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def mentions
 | 
			
		||||
    self.activity.mentions
 | 
			
		||||
    orphaned? ? [] : self.activity.mentions
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def orphaned?
 | 
			
		||||
    self.activity.nil?
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue