0
0
Fork 0

Improved /api/v1/accounts/:id/statuses with new params: only_media, exclude_replies

Redirect /:username to /users/:username
Redirect /:username/:id to /users/:username/updates/:id
Updated API documentation and sponsors
This commit is contained in:
Eugen Rochko 2017-03-05 17:27:17 +01:00
parent 07b166af64
commit 5f4e402204
5 changed files with 40 additions and 22 deletions

View file

@ -37,6 +37,9 @@ class Status < ApplicationRecord
scope :remote, -> { where.not(uri: nil) }
scope :local, -> { where(uri: nil) }
scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }
scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') }
cache_associated :account, :application, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :application, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account
def reply?
@ -109,8 +112,8 @@ class Status < ApplicationRecord
def as_public_timeline(account = nil, local_only = false)
query = joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id')
.where(visibility: :public)
.where('(statuses.reply = false OR statuses.in_reply_to_account_id = statuses.account_id)')
.where('statuses.reblog_of_id IS NULL')
.without_replies
.without_reblogs
query = query.where('accounts.domain IS NULL') if local_only
@ -121,7 +124,7 @@ class Status < ApplicationRecord
query = tag.statuses
.joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id')
.where(visibility: :public)
.where('statuses.reblog_of_id IS NULL')
.without_reblogs
query = query.where('accounts.domain IS NULL') if local_only