diff --git a/app.rb b/app.rb index ef1b72e1..d7edabde 100644 --- a/app.rb +++ b/app.rb @@ -87,7 +87,9 @@ get '/site/:username' do |username| if current_site && (site.is_blocking?(current_site) || current_site.is_blocking?(site)) not_found end + @title = site.title + @latest_events = site.latest_events erb :'site', locals: {site: site, is_current_site: site == current_site} end @@ -125,6 +127,7 @@ end get '/?' do if current_site require_login + @suggestions = current_site.suggestions halt erb :'home', locals: {site: current_site} end diff --git a/models/site.rb b/models/site.rb index 35f309f9..4def7d66 100644 --- a/models/site.rb +++ b/models/site.rb @@ -195,6 +195,7 @@ class Site < Sequel::Model } end +=begin def follows_dataset super.where(Sequel.~(site_id: blocking_site_ids)) .where(Sequel.~(actioning_site_id: blocking_site_ids)) @@ -209,6 +210,7 @@ class Site < Sequel::Model super.where(Sequel.~(site_id: blocking_site_ids)) .where(Sequel.~(actioning_site_id: blocking_site_ids)) end +=end def blocking_site_ids @blocking_site_ids ||= blockings_dataset.select(:site_id).all.collect {|s| s.site_id} @@ -493,8 +495,13 @@ class Site < Sequel::Model 'Supporter Plan' end - def latest_events - events_dataset.order(:id.desc).limit(10).all + def latest_events(limit=10, offset=0) + events_dataset.order(:created_at.desc).limit(limit, offset).all + end + + def news_feed(limit=10, offset=0) + 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).limit(limit, offset).all end def title @@ -523,6 +530,10 @@ class Site < Sequel::Model end end + def suggestions(limit=8, offset=0) + Site.where(tags: tags).limit(limit, offset).order(:updated_at.desc).all + end + def screenshot_path(filename, resolution) File.join(SCREENSHOTS_ROOT, values[:username], "#{filename}.#{resolution}.jpg") end diff --git a/views/_news.erb b/views/_news.erb index f3a283b2..81c6c3f4 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -15,7 +15,7 @@
<% actioning_site_username = event.actioning_site_dataset.select(:username).first.username %> <% event_site_username = event.site_dataset.select(:username).first.username %> - <%= actioning_site_username %> followed <%= event_site_username %>'s website<%= event.created_at.ago %> + <%= actioning_site_username %> is following <%= event_site_username %>.<%= event.created_at.ago %> <% elsif event.site_change_id %>You aren't following any websites yet! Once you do, updates will show up here and you can like and comment on them. Here are some website suggestions based on your tags, or check out all the sites on Neocities!
++ You aren't following any websites yet! Once you do, updates will show up here and you can like and comment on them. + + <% if @suggestions.length > 0 %> + Here are some website suggestions based on your tags, or check out all the sites on Neocities! + <% else %> + Want to find some sites to follow? Check out all the sites on Neocities! + <% end %> +
No recent activity.
- <% if site == current_site %> + <% if @site == current_site %>You should update your site!
<% end %>