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 | |
parent | 98e49ee3308759913477338be95ca07b781355f0 (diff) | |
download | aclog-5227f1b8c7dae086d14a5b6f8251ac63fec93c44.tar.gz |
Minor changes
18 files changed, 50 insertions, 298 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 diff --git a/public/assets/application-37cb32f627581ac8bac91345987e7f10.css b/public/assets/application-37cb32f627581ac8bac91345987e7f10.css deleted file mode 100644 index ba54105..0000000 --- a/public/assets/application-37cb32f627581ac8bac91345987e7f10.css +++ /dev/null @@ -1,105 +0,0 @@ -.items { - width: 572px; - margin: 15px 0 15px 18px; } - .items .item { - margin: 15px 0; } - .items .item .tweet { - overflow: hidden; - background: white; - border: 1px solid #c1c5cb; - border-width: 1px 0; - padding: 15px; } - .items .item .tweet .avatar { - width: 60px; - float: left; } - .items .item .tweet .avatar img { - width: 48px; - height: 48px; } - .items .item .tweet .tweet_content_fix { - float: left; - width: 0; - height: 85px; } - .items .item .tweet .tweet_content { - float: left; - width: 473px; } - .items .item .tweet .tweet_content .user { - padding: 0 5px 15px; - font-weight: bold; } - .items .item .tweet .tweet_content .user .name { - font-size: 14px; } - .items .item .tweet .tweet_content .user .screen_name { - font-size: 12px; } - .items .item .tweet .tweet_content .user a { - color: #666666; } - .items .item .tweet .tweet_content .text { - font-size: 18px; - line-height: 25px; - padding: 0 5px 15px; - word-wrap: break-word; } - .items .item .tweet .tweet_content .meta { - padding: 0 5px 15px; - color: #666666; - font-size: 12px; } - .items .item .tweet .tweet_content .meta .twitter_bird { - display: block; - float: left; } - .items .item .tweet .tweet_content .meta .twitter_bird img { - vertical-align: top; - margin-right: 2px; - margin-top: 1px; } - .items .item .tweet .tweet_content .meta .created_at { - display: block; - float: left; } - .items .item .tweet .tweet_content .meta .source { - display: block; - float: right; } - .items .item .stats { - clear: both; - padding: 15px; } - .items .item .stats .type_row { - margin-bottom: 3px; } - .items .item .stats .type_row .info { - width: 60px; - float: left; } - .items .item .stats .type_row .info .count, - .items .item .stats .type_row .info .type { - color: #666666; - display: block; } - .items .item .stats .type_row .info .count { - font-weight: bold; - font-size: 14px; } - .items .item .stats .type_row .info .type { - font-size: 10px; } - .items .item .stats .type_row .users_content_fix { - float: left; - height: 48px; - width: 0; } - .items .item .stats .type_row .users_content { - float: left; } - .items .item .stats .type_row .users_content ul.users_row { - list-style: none; } - .items .item .stats .type_row .users_content ul.users_row li { - float: left; } - .items .item .stats .type_row .users_content ul.users_row li img { - width: 48px; - height: 48px; - vertical-align: bottom; } - -* { - margin: 0; - padding: 0; - font-family: "Ubuntu", sans-serif; } - -a { - text-decoration: none; - color: #3b5998; } - -img { - border: none; } - -.clearfix:after { - content: "."; - visibility: hidden; - display: block; - height: 0; - clear: both; } diff --git a/public/assets/application-37cb32f627581ac8bac91345987e7f10.css.gz b/public/assets/application-37cb32f627581ac8bac91345987e7f10.css.gz Binary files differdeleted file mode 100644 index 4f94225..0000000 --- a/public/assets/application-37cb32f627581ac8bac91345987e7f10.css.gz +++ /dev/null diff --git a/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css b/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css deleted file mode 100644 index 80f7d9c..0000000 --- a/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css +++ /dev/null @@ -1,116 +0,0 @@ -.items { - width: 572px; - margin: 15px 0 15px 18px; } - .items .item { - margin: 15px 0; } - .items .item .tweet { - overflow: hidden; - background: white; - border: 1px solid #c1c5cb; - border-width: 1px 0; - padding: 15px; } - .items .item .tweet .avatar { - width: 60px; - float: left; } - .items .item .tweet .avatar img { - width: 48px; - height: 48px; } - .items .item .tweet .tweet_content_fix { - float: left; - width: 0; - height: 85px; } - .items .item .tweet .tweet_content { - float: left; - width: 473px; } - .items .item .tweet .tweet_content .user { - padding: 0 5px 15px; - font-weight: bold; } - .items .item .tweet .tweet_content .user .name { - font-size: 14px; } - .items .item .tweet .tweet_content .user .screen_name { - font-size: 12px; } - .items .item .tweet .tweet_content .user a { - color: #666666; } - .items .item .tweet .tweet_content .text { - font-size: 18px; - line-height: 25px; - padding: 0 5px 15px; - word-wrap: break-word; } - .items .item .tweet .tweet_content .meta { - padding: 0 5px 15px; - color: #666666; - font-size: 12px; } - .items .item .tweet .tweet_content .meta .twitter_bird { - display: block; - float: left; } - .items .item .tweet .tweet_content .meta .twitter_bird img { - vertical-align: top; - margin-right: 2px; - margin-top: 1px; } - .items .item .tweet .tweet_content .meta .created_at { - display: block; - float: left; } - .items .item .tweet .tweet_content .meta .source { - display: block; - float: right; } - .items .item .stats { - clear: both; - padding: 15px; } - .items .item .stats .favs_row, - .items .item .stats .retweets_row { - margin-bottom: 3px; } - .items .item .stats .favs_row .info, - .items .item .stats .retweets_row .info { - width: 60px; - float: left; } - .items .item .stats .favs_row .info .count, - .items .item .stats .favs_row .info .type, - .items .item .stats .retweets_row .info .count, - .items .item .stats .retweets_row .info .type { - color: #666666; - display: block; } - .items .item .stats .favs_row .info .count, - .items .item .stats .retweets_row .info .count { - font-weight: bold; - font-size: 14px; } - .items .item .stats .favs_row .info .type, - .items .item .stats .retweets_row .info .type { - font-size: 10px; } - .items .item .stats .favs_row .users_content_fix, - .items .item .stats .retweets_row .users_content_fix { - float: left; - height: 48px; - width: 0; } - .items .item .stats .favs_row .users_content, - .items .item .stats .retweets_row .users_content { - float: left; } - .items .item .stats .favs_row .users_content ul.users_row, - .items .item .stats .retweets_row .users_content ul.users_row { - list-style: none; } - .items .item .stats .favs_row .users_content ul.users_row li, - .items .item .stats .retweets_row .users_content ul.users_row li { - float: left; } - .items .item .stats .favs_row .users_content ul.users_row li img, - .items .item .stats .retweets_row .users_content ul.users_row li img { - width: 48px; - height: 48px; - vertical-align: bottom; } - -* { - margin: 0; - padding: 0; - font-family: "Ubuntu", sans-serif; } - -a { - text-decoration: none; - color: #3b5998; } - -img { - border: none; } - -.clearfix:after { - content: "."; - visibility: hidden; - display: block; - height: 0; - clear: both; } diff --git a/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css.gz b/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css.gz Binary files differdeleted file mode 100644 index e08ad90..0000000 --- a/public/assets/application-7be762e280e0e5656d2ea3a02cbf372c.css.gz +++ /dev/null diff --git a/public/assets/manifest-0b26a376c9cfe81af432b634628ee75d.json b/public/assets/manifest-0b26a376c9cfe81af432b634628ee75d.json deleted file mode 100644 index 3d637cf..0000000 --- a/public/assets/manifest-0b26a376c9cfe81af432b634628ee75d.json +++ /dev/null @@ -1 +0,0 @@ -{"files":{"bird_gray_16-93f51980875017e26744056b62aaac22.png":{"logical_path":"bird_gray_16.png","mtime":"2013-03-09T14:41:39+09:00","size":1106,"digest":"93f51980875017e26744056b62aaac22"},"rails-bc7d436ef8afbf0f88829742a43ba3a4.png":{"logical_path":"rails.png","mtime":"2013-02-25T21:20:52+09:00","size":6646,"digest":"bc7d436ef8afbf0f88829742a43ba3a4"},"application-47a9a60feaec5625a9c66b1c985a1179.js":{"logical_path":"application.js","mtime":"2013-03-09T01:51:23+09:00","size":743,"digest":"47a9a60feaec5625a9c66b1c985a1179"},"application-37cb32f627581ac8bac91345987e7f10.css":{"logical_path":"application.css","mtime":"2013-03-09T15:10:20+09:00","size":3294,"digest":"37cb32f627581ac8bac91345987e7f10"},"application-7be762e280e0e5656d2ea3a02cbf372c.css":{"logical_path":"application.css","mtime":"2013-03-14T22:27:42+09:00","size":3969,"digest":"7be762e280e0e5656d2ea3a02cbf372c"}},"assets":{"bird_gray_16.png":"bird_gray_16-93f51980875017e26744056b62aaac22.png","rails.png":"rails-bc7d436ef8afbf0f88829742a43ba3a4.png","application.js":"application-47a9a60feaec5625a9c66b1c985a1179.js","application.css":"application-7be762e280e0e5656d2ea3a02cbf372c.css"}}
\ No newline at end of file diff --git a/public/assets/manifest-4b1ee8498d7a15fdf2a8795fb52ff876.json b/public/assets/manifest-8b2cd06c78837f5f27435d8942b3f60f.json index 7803527..7803527 100644 --- a/public/assets/manifest-4b1ee8498d7a15fdf2a8795fb52ff876.json +++ b/public/assets/manifest-8b2cd06c78837f5f27435d8942b3f60f.json |