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
 | 
					- REST API, including home and mention timelines
 | 
				
			||||||
- OAuth2 provider system for the API
 | 
					- OAuth2 provider system for the API
 | 
				
			||||||
- Upload header image for profile page
 | 
					- Upload header image for profile page
 | 
				
			||||||
 | 
					- Deleting statuses, deletion propagation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Missing:
 | 
					Missing:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Media attachments (photos, videos)
 | 
					- Media attachments (photos, videos)
 | 
				
			||||||
- UI to post, reblog, favourite, follow and unfollow
 | 
					- UI to post, reblog, favourite, follow and unfollow
 | 
				
			||||||
- Deleting statuses, deletion propagation
 | 
					 | 
				
			||||||
- Streaming API
 | 
					- Streaming API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Configuration
 | 
					## Configuration
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -147,8 +147,8 @@ module AtomBuilderHelper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def include_entry(xml, stream_entry)
 | 
					  def include_entry(xml, stream_entry)
 | 
				
			||||||
    unique_id    xml, stream_entry.created_at, stream_entry.activity_id, stream_entry.activity_type
 | 
					    unique_id    xml, stream_entry.created_at, stream_entry.activity_id, stream_entry.activity_type
 | 
				
			||||||
    published_at xml, stream_entry.activity.created_at
 | 
					    published_at xml, stream_entry.created_at
 | 
				
			||||||
    updated_at   xml, stream_entry.activity.updated_at
 | 
					    updated_at   xml, stream_entry.updated_at
 | 
				
			||||||
    title        xml, stream_entry.title
 | 
					    title        xml, stream_entry.title
 | 
				
			||||||
    content      xml, stream_entry.content
 | 
					    content      xml, stream_entry.content
 | 
				
			||||||
    verb         xml, stream_entry.verb
 | 
					    verb         xml, stream_entry.verb
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ class Feed
 | 
				
			||||||
    return PrecomputeFeedService.new.(@type, @account).take(limit) if unhydrated.empty? && offset == 0
 | 
					    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 }
 | 
					    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
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  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 :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
 | 
					  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 :favourites, inverse_of: :status, dependent: :destroy
 | 
				
			||||||
  has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, 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
 | 
					  validates :account, :activity, presence: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def object_type
 | 
					  def object_type
 | 
				
			||||||
    targeted? ? :activity : self.activity.object_type
 | 
					    orphaned? ? :activity : (targeted? ? :activity : self.activity.object_type)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def verb
 | 
					  def verb
 | 
				
			||||||
    self.activity.verb
 | 
					    orphaned? ? :delete : self.activity.verb
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def targeted?
 | 
					  def targeted?
 | 
				
			||||||
| 
						 | 
					@ -17,15 +17,15 @@ class StreamEntry < ActiveRecord::Base
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def target
 | 
					  def target
 | 
				
			||||||
    self.activity.target
 | 
					    orphaned? ? nil : self.activity.target
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def title
 | 
					  def title
 | 
				
			||||||
    self.activity.title
 | 
					    orphaned? ? nil : self.activity.title
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def content
 | 
					  def content
 | 
				
			||||||
    self.activity.content
 | 
					    orphaned? ? nil : self.activity.content
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def threaded?
 | 
					  def threaded?
 | 
				
			||||||
| 
						 | 
					@ -33,10 +33,16 @@ class StreamEntry < ActiveRecord::Base
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def thread
 | 
					  def thread
 | 
				
			||||||
    self.activity.thread
 | 
					    orphaned? ? nil : self.activity.thread
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def mentions
 | 
					  def mentions
 | 
				
			||||||
    self.activity.mentions
 | 
					    orphaned? ? [] : self.activity.mentions
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def orphaned?
 | 
				
			||||||
 | 
					    self.activity.nil?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue