From 1d200a886e1d17b952a5c4097f0dcd80603b6dfd Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 17 Sep 2014 20:13:14 -0700 Subject: [PATCH] richer news feed, change screenshots/thumbnails to use retina quality --- Rakefile | 7 +++++++ models/site.rb | 5 ++--- views/_follows.erb | 4 ++-- views/_news.erb | 22 +++++++++++++++------- views/_news_profile_comment.erb | 21 ++++++++++++++++----- views/browse.erb | 2 +- views/dashboard.erb | 10 +++++----- views/home.erb | 4 ++-- views/index.erb | 16 ++++++++-------- views/site.erb | 2 +- workers/screenshot_worker.rb | 12 ++++++++++-- 11 files changed, 69 insertions(+), 36 deletions(-) diff --git a/Rakefile b/Rakefile index f823b5b7..ec7ed7cb 100644 --- a/Rakefile +++ b/Rakefile @@ -168,4 +168,11 @@ task :cleantags => [:environment] do matching_tag.delete end end +end + +desc 'update screenshots' +task :updatescreenshots => [:environment] do + Site.select(:username).where(site_changed: true, is_banned: false, is_crashing: false).all.each do |site| + ScreenshotWorker.new.perform site.username, 'index.html' + end end \ No newline at end of file diff --git a/models/site.rb b/models/site.rb index 06eeacf1..3d737643 100644 --- a/models/site.rb +++ b/models/site.rb @@ -59,8 +59,8 @@ class Site < Sequel::Model HTML_REGEX = /htm|html/ MAX_COMMENT_SIZE = 420 # Used to be the limit for Facebook.. no comment (PUN NOT INTENDED). - SCREENSHOT_RESOLUTIONS = ['235x141', '105x63', '270x162', '37x37', '146x88', '302x182', '90x63', '82x62', '348x205'] - THUMBNAIL_RESOLUTIONS = ['105x63', '90x63'] + SCREENSHOT_RESOLUTIONS = ['540x405', '210x158', '100x100', '50x50'] + THUMBNAIL_RESOLUTIONS = ['210x158'] CLAMAV_THREAT_MATCHES = [ /^VBS/, @@ -779,7 +779,6 @@ class Site < Sequel::Model following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id} Event.filter(site_id: following_ids+[self.id]). order(:created_at.desc). - exclude(actioning_site_id: self.id). paginate(current_page, limit) end diff --git a/views/_follows.erb b/views/_follows.erb index bd0a9f74..e711a3a5 100644 --- a/views/_follows.erb +++ b/views/_follows.erb @@ -6,7 +6,7 @@

You are not following any sites yet. Add some by browsing sites or looking at your tags. <% else %> <% site.followings_dataset.select(:site_id).all.each do |following| %> - + <% end %> <% end %> @@ -21,7 +21,7 @@ <% else %> <% site.follows_dataset.select(:actioning_site_id).all.each do |follow| %> <% follow_actioning_site = follow.actioning_site_dataset.select(:username).first %> - + <% end %> <% end %> diff --git a/views/_news.erb b/views/_news.erb index bbc7ea64..3d2192c1 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -18,15 +18,23 @@

- <% actioning_site = event.actioning_site_dataset.select(:username, :title, :domain).first %> + <% actioning_site = event.actioning_site_dataset.select(:id, :username, :title, :domain).first %> <% event_site = event.site_dataset.select(:id, :username, :title, :domain).first %> - <%= actioning_site.title.shorten(40) %> - is following + + <% if current_site && current_site.id == actioning_site.id %> + You + <% else %> + <%= actioning_site.username %> + <% end %> + + started following + <% if current_site && event_site.id == current_site.id %> your site! <% else %> - <%= event_site.title.shorten(40) %> + <%= event_site.username %> <% end %> + <%= event.created_at.ago %> @@ -39,7 +47,7 @@ <% if current_site && event_site.id == current_site.id %> Your site was updated. <% else %> - <%= event_site.title %> has been updated. + <%= event_site.title.shorten(45) %> has been updated. <% end %> <%= event.created_at.ago %> @@ -54,9 +62,9 @@
<% if site_change_file_display_class(f) == 'html' %> - + <% elsif site_change_file_display_class(f) == 'image' %> - + <% elsif site_change_file_display_class(f) == 'misc' %> <%= File.extname(f).sub('.', '') %> diff --git a/views/_news_profile_comment.erb b/views/_news_profile_comment.erb index 6f1c7f98..fbf3d6d9 100644 --- a/views/_news_profile_comment.erb +++ b/views/_news_profile_comment.erb @@ -1,11 +1,22 @@ -<% actioning_site = profile_comment.actioning_site_dataset.select(:username, :title, :domain).first %> +<% actioning_site = profile_comment.actioning_site_dataset.select(:id, :username).first %> +<% site = profile_comment.site_dataset.select(:id, :username).first %>
-
-
<%= actioning_site.title %> - <% if request.path == '/' %> - posted on your site profile: +
+ + <% if current_site && current_site.id == actioning_site.id && request.path == '/' %> + You + <% else %> + <%= actioning_site.username %> + <% end %> + + <% if request.path == '/' %> + <% if current_site && current_site.id == profile_comment.site_id %> + left a comment on your profile: + <% else %> + left a comment on <%= profile_comment.site.username %><%= site.username[site.username.length-1] == 's' ? "'" : "'s" %> site profile: <% end %> + <% end %> <%= profile_comment.created_at.ago %> diff --git a/views/browse.erb b/views/browse.erb index 564ad1ad..2fb8e8c5 100644 --- a/views/browse.erb +++ b/views/browse.erb @@ -65,7 +65,7 @@ <% @sites.each do |site| %>
  • - + <%= site.title %> diff --git a/views/dashboard.erb b/views/dashboard.erb index 3a1afcb2..8c984f60 100644 --- a/views/dashboard.erb +++ b/views/dashboard.erb @@ -22,7 +22,7 @@ @@ -112,14 +112,14 @@
    <% @file_list.each do |file| %>
    - <% if file[:is_html] && current_site.screenshot_exists?(file[:path], '105x63') %> + <% if file[:is_html] && current_site.screenshot_exists?(file[:path], '210x158') %>
    - +
    - <% elsif file[:is_image] && current_site.thumbnail_exists?(file[:path], '105x63') %> + <% elsif file[:is_image] && current_site.thumbnail_exists?(file[:path], '210x158') %>
    - +
    <% elsif file[:is_directory] %> diff --git a/views/home.erb b/views/home.erb index cafc05a8..cd151196 100644 --- a/views/home.erb +++ b/views/home.erb @@ -39,7 +39,7 @@ - +
    View Site Profile diff --git a/views/index.erb b/views/index.erb index 6b21b8a0..c6894fe6 100644 --- a/views/index.erb +++ b/views/index.erb @@ -184,42 +184,42 @@ diff --git a/views/site.erb b/views/site.erb index a1dbfe33..d3ed03fd 100644 --- a/views/site.erb +++ b/views/site.erb @@ -14,7 +14,7 @@ diff --git a/workers/screenshot_worker.rb b/workers/screenshot_worker.rb index d62cf7b3..f3ff32f8 100644 --- a/workers/screenshot_worker.rb +++ b/workers/screenshot_worker.rb @@ -44,7 +44,7 @@ class ScreenshotWorker f.fetch( output: screenshot_output_path, width: 1280, - height: 720 + height: 960 ) rescue Timeout::Error # :nocov: @@ -89,7 +89,15 @@ class ScreenshotWorker FileUtils.mkdir_p screenshot_path unless Dir.exists?(screenshot_path) Site::SCREENSHOT_RESOLUTIONS.each do |res| - img.scale(*res.split('x').collect {|r| r.to_i}).write(File.join(user_screenshots_path, "#{path}.#{res}.jpg")) { + width, height = res.split('x').collect {|r| r.to_i} + + if width == height + new_img = img.crop_resized width, height, Magick::NorthGravity + else + new_img = img.scale width, height + end + + new_img.write(File.join(user_screenshots_path, "#{path}.#{res}.jpg")) { self.quality = 90 } end