diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-08-30 14:40:07 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-08-30 14:40:07 +0900 |
commit | fdb242db1d3807a41c7fa467591e278e43adcc9d (patch) | |
tree | a6dbff47cb7c6a667262a3c8ce9087164a4ad7f0 /app | |
parent | 0480264f6352596562fe17113dfaf607b120aba7 (diff) | |
download | aclog-fdb242db1d3807a41c7fa467591e278e43adcc9d.tar.gz |
optout: don't show opted out user's tweets
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/internal/tweets_controller.rb | 10 | ||||
-rw-r--r-- | app/views/internal/tweets/_tweet.json.jbuilder | 24 | ||||
-rw-r--r-- | app/views/shared/templates/_tweet.html.haml | 5 |
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 |