From c085fd068d08db04b0e00d43e0cd7dacfd284ed0 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Thu, 14 Aug 2014 22:02:26 -0700 Subject: [PATCH 1/3] fix up news feed a bit --- models/site.rb | 7 +++++-- views/_news.erb | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/models/site.rb b/models/site.rb index 5a1af946..5b87e43a 100644 --- a/models/site.rb +++ b/models/site.rb @@ -629,12 +629,15 @@ class Site < Sequel::Model end def latest_events(current_page=1, limit=10) - events_dataset.exclude(site_id: self.id).order(:created_at.desc).paginate(current_page, limit) + events_dataset.order(:created_at.desc).paginate(current_page, limit) end def news_feed(current_page=1, limit=10) 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).paginate(current_page, limit) + Event.filter(site_id: following_ids+[self.id]). + order(:created_at.desc). + exclude(actioning_site_id: self.id). + paginate(current_page, limit) end def host diff --git a/views/_news.erb b/views/_news.erb index 5a7a3334..9ffc8108 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -19,10 +19,14 @@
<% actioning_site = event.actioning_site_dataset.select(:username, :title, :domain).first %> - <% event_site = event.site_dataset.select(:username, :title, :domain).first %> + <% event_site = event.site_dataset.select(:id, :username, :title, :domain).first %> <%= actioning_site.title.shorten(40) %> is following - <%= event_site.title.shorten(40) %> + <% if event_site.id == current_site.id %> + your site! + <% else %> + <%= event_site.title.shorten(40) %> + <% end %> <%= event.created_at.ago %> @@ -31,8 +35,12 @@
- <% event_site = event.site_dataset.select(:username, :title, :domain).first %> - <%= event_site.title %> has been updated. + <% event_site = event.site_dataset.select(:id, :username, :title, :domain).first %> + <% if event_site.id == current_site.id %> + Your site was updated. + <% else %> + <%= event_site.title %> has been updated. + <% end %> <%= event.created_at.ago %> @@ -70,7 +78,7 @@
<% event.comments.each do |comment| %> - <% comment_actioning_site = comment.actioning_site_dataset.select(:title, :domain, :username).first %> + <% comment_actioning_site = comment.actioning_site_dataset.select(:id, :title, :domain, :username).first %>
<%= comment_actioning_site.title %> From c0bea57468215835bff1deb2474ef7552a331a70 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Fri, 15 Aug 2014 12:55:10 -0700 Subject: [PATCH 2/3] use redis connection pool for cache purge --- environment.rb | 4 +++- workers/purge_cache_worker.rb | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/environment.rb b/environment.rb index 729b69f1..10385a8f 100644 --- a/environment.rb +++ b/environment.rb @@ -51,7 +51,9 @@ Sidekiq.configure_client do |config| end if $config['pubsub_url'] - $pubsub = Redis.new url: $config['pubsub_url'] + $pubsub_pool = ConnectionPool.new(size: 10, timeout: 5) { + Redis.new url: $config['pubsub_url'] + } end if $config['pubsub_url'].nil? && ENV['RACK_ENV'] == 'production' diff --git a/workers/purge_cache_worker.rb b/workers/purge_cache_worker.rb index 5017bdbf..461c92a7 100644 --- a/workers/purge_cache_worker.rb +++ b/workers/purge_cache_worker.rb @@ -6,7 +6,9 @@ class PurgeCacheWorker attempt = 0 begin attempt += 1 - $pubsub.publish 'purgecache', payload.to_json + $pubsub_pool.with do |redis| + redis.publish 'purgecache', payload.to_json + end rescue Redis::BaseConnectionError => error raise if attempt > 3 puts "pubsub error: #{error}, retrying in 1s" From d261e5bf9568ce52e0c0e7b4faa21c4567003959 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Fri, 15 Aug 2014 18:17:56 -0700 Subject: [PATCH 3/3] skip already banned sites --- models/site.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/models/site.rb b/models/site.rb index 5b87e43a..11e3e0f2 100644 --- a/models/site.rb +++ b/models/site.rb @@ -243,6 +243,8 @@ class Site < Sequel::Model raise 'username is missing' end + return if is_banned == true + DB.transaction { self.is_banned = true self.updated_at = Time.now