about summary refs log tree commit diff
path: root/app/models/status.rb
diff options
context:
space:
mode:
authorMatthew Walsh <mattwcstrfan@gmail.com>2017-10-15 21:02:39 -0700
committerMatthew Walsh <mattwcstrfan@gmail.com>2017-10-22 18:35:14 -0700
commit3db80f75a6d76a7eea576413c5ae9b206d2ab385 (patch)
tree0b6f4a0f446c94fbbda1484b6f14537181d00a1a /app/models/status.rb
parent09d81defcda96eae7ffba36ccf1fb091ce08f17b (diff)
Added a timeline for Direct statuses
* Lists all Direct statuses you've sent and received
* Displayed in Getting Started
* Streaming server support for direct TL
Diffstat (limited to 'app/models/status.rb')
-rw-r--r--app/models/status.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index 5a7245613..346282e2a 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -154,6 +154,14 @@ class Status < ApplicationRecord
       where(account: [account] + account.following).where(visibility: [:public, :unlisted, :private])
     end
 
+    def as_direct_timeline(account)
+      query = joins("LEFT OUTER JOIN mentions ON statuses.id = mentions.status_id AND mentions.account_id = #{account.id}")
+              .where("mentions.account_id = #{account.id} OR statuses.account_id = #{account.id}")
+              .where(visibility: [:direct])
+
+      apply_timeline_filters(query, account, false)
+    end
+
     def as_public_timeline(account = nil, local_only = false)
       query = timeline_scope(local_only).without_replies