aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/api/api_users.rb4
-rw-r--r--app/controllers/users_controller.rb8
-rw-r--r--app/models/user.rb8
3 files changed, 12 insertions, 8 deletions
diff --git a/app/api/api_users.rb b/app/api/api_users.rb
index a1f4139..5b4630a 100644
--- a/app/api/api_users.rb
+++ b/app/api/api_users.rb
@@ -26,13 +26,13 @@ class ApiUsers < Grape::API
desc "Returns the list of the users who discovered the Tweets of a user, specified by username or user ID.", example_params: { id: 15926668 }
params_user[]
get "discovered_by", rabl: "user_discovered_by_and_users" do
- @result = user.count_discovered_by.sort_by {|user_id, count| -count }
+ @result = user.count_discovered_by
end
desc "Returns the list of the users discovered by a user, specified by username or user ID.", example_params: { screen_name: "toshi_a" }
params_user[]
get "discovered_users", rabl: "user_discovered_by_and_users" do
- @result = user.count_discovered_users.sort_by {|user_id, count| -count }
+ @result = user.count_discovered_users
end
desc "", nodoc: true, example_params: { ids: "280414022,99008565" }
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 336defc..8c0e58e 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -6,15 +6,15 @@ class UsersController < ApplicationController
def discovered_by
@user = require_user
authorize_to_show_user_best! @user
- @result = @user.count_discovered_by.sort_by {|user_id, count| -count }.take(Settings.users.count)
- @cached_users = Hash[User.find(@result.map {|user_id, count| user_id }).map {|user| [user.id, user] }]
+ @result = @user.count_discovered_by.take(Settings.users.count)
+ @cached_users = User.find(@result.map(&:first)).map {|user| [user.id, user] }.to_h
end
def discovered_users
@user = require_user
authorize_to_show_user_best! @user
- @result = @user.count_discovered_users.sort_by {|user_id, count| -count }.take(Settings.users.count)
- @cached_users = Hash[User.find(@result.map {|user_id, count| user_id }).map {|user| [user.id, user] }]
+ @result = @user.count_discovered_users.take(Settings.users.count)
+ @cached_users = User.find(@result.map(&:first)).map {|user| [user.id, user] }.to_h
end
def user_jump_suggest
diff --git a/app/models/user.rb b/app/models/user.rb
index 15dfcfb..8b3e730 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -96,7 +96,9 @@ class User < ActiveRecord::Base
.joins("INNER JOIN (#{self.tweets.reacted.order_by_id.limit(100).to_sql}) tweets ON tweets.id = #{klass.table_name}.tweet_id")
.group("`#{klass.table_name}`.`user_id`")
.count("`#{klass.table_name}`.`user_id`")
- }.inject { |m, s| m.merge(s) { |key, first, second| first.to_i + second.to_i } }
+ }.inject { |m, s|
+ m.merge(s) { |key, first, second| first.to_i + second.to_i }
+ }.sort_by { |user_id, count| -count }
end
def count_discovered_users
@@ -105,6 +107,8 @@ class User < ActiveRecord::Base
.joins("INNER JOIN (#{self.__send__(klass.table_name.to_sym).order(id: :desc).limit(500).to_sql}) m ON m.tweet_id = tweets.id")
.group("tweets.user_id")
.count("tweets.user_id")
- }.inject { |m, s| m.merge(s) { |key, first, second| first.to_i + second.to_i } }
+ }.inject { |m, s|
+ m.merge(s) { |key, first, second| first.to_i + second.to_i }
+ }.sort_by { |user_id, count| -count }
end
end