aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-08-30 14:40:07 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-08-30 14:40:07 +0900
commitfdb242db1d3807a41c7fa467591e278e43adcc9d (patch)
treea6dbff47cb7c6a667262a3c8ce9087164a4ad7f0 /app
parent0480264f6352596562fe17113dfaf607b120aba7 (diff)
downloadaclog-fdb242db1d3807a41c7fa467591e278e43adcc9d.tar.gz
optout: don't show opted out user's tweets
Diffstat (limited to 'app')
-rw-r--r--app/controllers/internal/tweets_controller.rb10
-rw-r--r--app/views/internal/tweets/_tweet.json.jbuilder24
-rw-r--r--app/views/shared/templates/_tweet.html.haml5
3 files changed, 27 insertions, 12 deletions
diff --git a/app/controllers/internal/tweets_controller.rb b/app/controllers/internal/tweets_controller.rb
index 62a4bcf..3ab8b9d 100644
--- a/app/controllers/internal/tweets_controller.rb
+++ b/app/controllers/internal/tweets_controller.rb
@@ -30,24 +30,24 @@ class Internal::TweetsController < Internal::ApplicationController
end
def user_favorites
- @tweets = Tweet.reacted(params[:reactions]).favorited_by(@user).order("`favorites`.`id` DESC").eager_load(:user).paginate(params)
+ @tweets = Tweet.reacted(params[:reactions]).favorited_by(@user).order("`favorites`.`id` DESC").includes(user: :account).paginate(params)
end
def user_favorited_by
@source_user = authorize! User.find(screen_name: params[:source_screen_name])
- @tweets = @user.tweets.reacted(params[:reactions]).favorited_by(@source_user).order_by_id.eager_load(:user).paginate(params)
+ @tweets = @user.tweets.reacted(params[:reactions]).favorited_by(@source_user).order_by_id.paginate(params)
end
def all_best
- @tweets = Tweet.reacted.parse_recent(params[:recent]).order_by_reactions.eager_load(:user).paginate(params)
+ @tweets = Tweet.reacted.parse_recent(params[:recent]).order_by_reactions.includes(user: :account).paginate(params)
end
def all_timeline
- @tweets = Tweet.reacted(params[:reactions]).order_by_id.eager_load(:user).paginate(params)
+ @tweets = Tweet.reacted(params[:reactions]).order_by_id.includes(user: :account).paginate(params)
end
def filter
- @tweets = Tweet.recent((params[:period] || 7).days).filter_by_query(params[:q].to_s).order_by_id.eager_load(:user).paginate(params)
+ @tweets = Tweet.recent((params[:period] || 7).days).filter_by_query(params[:q].to_s).order_by_id.includes(user: :account).paginate(params)
end
private
diff --git a/app/views/internal/tweets/_tweet.json.jbuilder b/app/views/internal/tweets/_tweet.json.jbuilder
index ac63359..674a99f 100644
--- a/app/views/internal/tweets/_tweet.json.jbuilder
+++ b/app/views/internal/tweets/_tweet.json.jbuilder
@@ -1,6 +1,24 @@
-if authorized?(tweet.user)
+if !authorized?(tweet.user)
+ json.allowed false
+
+ json.tweeted_at tweet.tweeted_at
+ json.text "ユーザーはツイートを非公開にしています"
+elsif tweet.user.opted_out?
json.id_str tweet.id.to_s
+ json.allowed false
+ json.opted_out true
+
+ json.user do
+ json.(tweet.user, :name, :screen_name, :profile_image_url)
+ end
+ json.tweeted_at tweet.tweeted_at
+ json.text "ユーザーはオプトアウトしているため表示されません"
+else
+ json.id_str tweet.id.to_s
+ json.allowed true
+ json.opted_out false
+
json.user do
json.(tweet.user, :name, :screen_name, :profile_image_url)
end
@@ -9,8 +27,4 @@ if authorized?(tweet.user)
json.favorites []
json.retweets []
- json.allowed true
-else
- json.tweeted_at tweet.tweeted_at
- json.allowed false
end
diff --git a/app/views/shared/templates/_tweet.html.haml b/app/views/shared/templates/_tweet.html.haml
index 9d0994f..c42354f 100644
--- a/app/views/shared/templates/_tweet.html.haml
+++ b/app/views/shared/templates/_tweet.html.haml
@@ -58,6 +58,7 @@
.status-head
%span.time
%time{datetime: "{{tweeted_at}}"} {{tweeted_at | toLocaleString}}
- .source.aclogicon.aclogicon-twitter
- .status-text.protected ユーザーはツイートを非公開にしています
+ %a.source.aclogicon.aclogicon-twitter{data: {"v-if" => "id_str"}, href: "https://twitter.com/{{user.screen_name}}/status/{{id_str}}", title: "Twitter で見る"}
+ .source.aclogicon.aclogicon-twitter{data: {"v-if" => "!id_str"}}
+ .status-text.protected {{text}}
.status-foot