diff options
author | re4k <re4k@re4k.info> | 2013-03-19 01:47:22 +0900 |
---|---|---|
committer | re4k <re4k@re4k.info> | 2013-03-19 01:48:52 +0900 |
commit | 5227f1b8c7dae086d14a5b6f8251ac63fec93c44 (patch) | |
tree | 726937a8b0cae476ea21943cc57ea7f6fd6db3ea /app | |
parent | 98e49ee3308759913477338be95ca07b781355f0 (diff) | |
download | aclog-5227f1b8c7dae086d14a5b6f8251ac63fec93c44.tar.gz |
Minor changes
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/application_controller.rb | 14 | ||||
-rw-r--r-- | app/controllers/i_controller.rb | 10 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 27 | ||||
-rw-r--r-- | app/helpers/application_helper.rb | 32 | ||||
-rw-r--r-- | app/helpers/errors_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/i_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/main_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/sessions_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/users_helper.rb | 2 | ||||
-rw-r--r-- | app/views/shared/_tweet.haml | 25 | ||||
-rw-r--r-- | app/views/shared/_tweets.haml | 2 | ||||
-rw-r--r-- | app/views/users/info.haml | 6 |
12 files changed, 50 insertions, 76 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ef1614f..9157caa 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -19,13 +19,13 @@ class ApplicationController < ActionController::Base def prepare_cache # check - return unless @items + #return unless @items - @favorite_cache = Favorite.where(@items.map{|m| "tweet_id = #{m.id}"}.join(" OR ")).sort_by{|m| m.id}.group_by{|m| m.tweet_id} - @retweet_cache = Retweet.where(@items.map{|m| "tweet_id = #{m.id}"}.join(" OR ")).sort_by{|m| m.id}.group_by{|m| m.tweet_id} - @user_cache = Hash[User.where( - (@items.to_a + @favorite_cache.values + @retweet_cache.values).flatten.map{|m| m.user_id}.uniq - .map{|m| "id = #{m}"}.join(" OR ")) - .map{|m| [m.id, m]}] + #@favorite_cache = Favorite.where(@items.map{|m| "tweet_id = #{m.id}"}.join(" OR ")).sort_by{|m| m.id}.group_by{|m| m.tweet_id} + #@retweet_cache = Retweet.where(@items.map{|m| "tweet_id = #{m.id}"}.join(" OR ")).sort_by{|m| m.id}.group_by{|m| m.tweet_id} + #@user_cache = Hash[User.where( + # (@items.to_a + @favorite_cache.values + @retweet_cache.values).flatten.map{|m| m.user_id}.uniq + # .map{|m| "id = #{m}"}.join(" OR ")) + # .map{|m| [m.id, m]}] end end diff --git a/app/controllers/i_controller.rb b/app/controllers/i_controller.rb index 42b7111..74a1701 100644 --- a/app/controllers/i_controller.rb +++ b/app/controllers/i_controller.rb @@ -1,8 +1,12 @@ class IController < ApplicationController def show id = params[:id].to_i - @items = Tweet.where(:id => id).page(1) - prepare_cache - @title = "\"#{ApplicationController.helpers.strip_tags(ApplicationController.helpers.format_tweet_text(@items.first.text))[0...30]}\" from @#{@user_cache[@items.first.user_id].screen_name}" + items = Tweet.where(:id => id) + if items.count > 0 + @items = items.page(1) + @title = "\"#{ApplicationController.helpers.strip_tags(ApplicationController.helpers.format_tweet_text(items.first.text))[0...30]}\" from @#{items.first.user.screen_name}" + else + @items = [] + end end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 4fe7b86..670c1c6 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2,10 +2,10 @@ class UsersController < ApplicationController def best page = get_page_number(params) screen_name = params[:screen_name] - user = User.find_by(:screen_name => screen_name) + user = User.where(:screen_name => screen_name).first if user @items = user.tweets - .where("favorites_count > 0 or retweets_count > 0") + .where("favorites_count > 0 OR retweets_count > 0") .order("COALESCE(favorites_count, 0) + COALESCE(retweets_count, 0) DESC") .page(page) .per(Settings.page_per) @@ -13,30 +13,28 @@ class UsersController < ApplicationController @items = [] end @title = "@#{screen_name}'s Best Tweets" - prepare_cache end def recent page = get_page_number(params) screen_name = params[:screen_name] - user = User.find_by(:screen_name => screen_name) + user = User.where(:screen_name => screen_name).first if user @items = user.tweets - .where("favorites_count > 0 or retweets_count > 0") + .where("favorites_count > 0 OR retweets_count > 0") .order("id DESC") .page(page) .per(Settings.page_per) else @items = [] end - @title = "@#{screen_name}'s Newest Tweets" - prepare_cache + @title = "@#{screen_name}'s Newest Favorited Tweets" end def timeline page = get_page_number(params) screen_name = params[:screen_name] - user = User.find_by(:screen_name => screen_name) + user = User.where(:screen_name => screen_name).first if user @items = user.tweets .order("id DESC") @@ -46,13 +44,12 @@ class UsersController < ApplicationController @items = [] end @title = "@#{screen_name}'s Newest Tweets" - prepare_cache end def my page = get_page_number(params) screen_name = params[:screen_name] - user = User.find_by(:screen_name => screen_name) + user = User.where(:screen_name => screen_name).first if user @items = Tweet .where("id IN (SELECT tweet_id FROM (" + @@ -73,9 +70,13 @@ class UsersController < ApplicationController def info screen_name = params[:screen_name] - user = User.find_by(:screen_name => screen_name) - if user && account = Account.find_by(:id => user.id) - @info = get_user_info + user = User.where(:screen_name => screen_name).first + if user + @tweets_count = user.tweets.count + @favorites_count = user.favorites.count + @retweets_count = user.retweets.count + @favorited_count = user.tweets.inject(0){|s, m| s + m.favorites_count} + @retweeted_count = user.tweets.inject(0){|s, m| s + m.retweets_count} else @info = nil end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 93f7063..a41f15d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -18,37 +18,7 @@ module ApplicationHelper format_tweet_text(text) end - def status_url(tweet) - "/#{u(tweet).screen_name}/status/#{tweet.id}" - end - def twitter_status_url(tweet) - "https://twitter.com/#{u(tweet).screen_name}/status/#{tweet.id}" - end - - def user_url(object) - "/#{u(object).screen_name}" - end - - def u(object) - if object.is_a?(Tweet) || - object.is_a?(Favorite) || - object.is_a?(Retweet) || - object.is_a?(Account) - u(object.user_id) - elsif object.is_a?(User) - object - elsif object.is_a?(Fixnum) || - object.is_a?(Bignum) - @user_cache[object] || User.new(object) - end - end - - def favoriters(item) - (@favorite_cache[item.id] || []).map{|m| u(m)} - end - - def retweeters(item) - (@retweet_cache[item.id] || []).map{|m| u(m)} + "https://twitter.com/#{tweet.user.screen_name}/status/#{tweet.id}" end end diff --git a/app/helpers/errors_helper.rb b/app/helpers/errors_helper.rb deleted file mode 100644 index 8e3b415..0000000 --- a/app/helpers/errors_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module ErrorsHelper -end diff --git a/app/helpers/i_helper.rb b/app/helpers/i_helper.rb deleted file mode 100644 index ef8bff0..0000000 --- a/app/helpers/i_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module IHelper -end diff --git a/app/helpers/main_helper.rb b/app/helpers/main_helper.rb deleted file mode 100644 index 826effe..0000000 --- a/app/helpers/main_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module MainHelper -end diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb deleted file mode 100644 index 309f8b2..0000000 --- a/app/helpers/sessions_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module SessionsHelper -end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb deleted file mode 100644 index 2310a24..0000000 --- a/app/helpers/users_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module UsersHelper -end diff --git a/app/views/shared/_tweet.haml b/app/views/shared/_tweet.haml index d4edec6..8576466 100644 --- a/app/views/shared/_tweet.haml +++ b/app/views/shared/_tweet.haml @@ -1,31 +1,36 @@ .item .tweet .avatar - - user = u(item) - = link_to image_tag(user.profile_image_url), user_url(user), :title => user.name + = link_to image_tag(item.user.profile_image_url, :alt => item.user.screen_name, :title => item.user.name), :controller => "users", :action => "best", :screen_name => item.user.screen_name .tweet_content_fix .tweet_content .user %span.name - = link_to user.name, user_url(user) + = link_to item.user.name, :controller => "users", :action => "best", :screen_name => item.user.screen_name %span.screen_name - = link_to "@#{user.screen_name}", user_url(user) + = link_to "@#{item.user.screen_name}", :controller => "users", :action => "best", :screen_name => item.user.screen_name .text = raw format_tweet_text(item.text) .meta.clearfix - = link_to image_tag("bird_gray_16.png"), twitter_status_url(item), :target => "_blank", :class => "twitter_bird" - = link_to format_tweet_created_at(item.tweeted_at), status_url(item), :class => "created_at" + %span.twitter_bird + = link_to image_tag("bird_gray_16.png", :alt => "Twitter"), twitter_status_url(item), :target => "_blank" + %span.created_at + = link_to format_tweet_created_at(item.tweeted_at), :controller => "i", :action => "show", :id => item.id %span.source = raw format_source_text(item.source) .stats - - [["FAVS", favoriters(item), "favs"], ["RETWEETS", retweeters(item), "retweets"]].each do |type, users, cssclass| + - [["FAVS", item.favorites, "favs"], ["RETWEETS", item.retweets, "retweets"]].select{|m| m[1].size > 0}.each do |type, actions, cssclass| %div{:class => "#{cssclass} clearfix"} .info - %span.count= users.size + %span.count= actions.size %span.type= type .height_fix %ul.favoriters.clearfix - - users.each do |m| + - actions.take(params[:controller] == "i" && params[:action] == "show" ? actions.size : 20).each do |a| | + - m = a.user || User.new %li - = link_to image_tag(m.profile_image_url), user_url(m), :title => m.name + - if m.screen_name + = link_to image_tag(m.profile_image_url, :alt => m.screen_name, :title => m.name), :controller => "users", :action => "best", :screen_name => m.screen_name + - else + = image_tag(m.profile_image_url, :alt => m.name, :title => m.name) diff --git a/app/views/shared/_tweets.haml b/app/views/shared/_tweets.haml index 7dfb14b..681b9cc 100644 --- a/app/views/shared/_tweets.haml +++ b/app/views/shared/_tweets.haml @@ -1,4 +1,4 @@ .items - = render :partial => "shared/tweet", :collection => items, :as => :item + = render :partial => "shared/tweet", :collection => items, :as => :item, :local => {:showallusers => @showallusers} - if items.size > 0 = paginate items diff --git a/app/views/users/info.haml b/app/views/users/info.haml index 2672287..e29c41a 100644 --- a/app/views/users/info.haml +++ b/app/views/users/info.haml @@ -1 +1,5 @@ -= render :partial => "shared/tweets", :locals => {:items => @items} += @tweets_count += @favorites_count += @retweets_count += @favorited_count += @retweeted_count |