mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
cached global activity feed, publicly acessible #69
This commit is contained in:
parent
41a7cb763d
commit
60f9b5b589
7 changed files with 67 additions and 51 deletions
6
app/activity.rb
Normal file
6
app/activity.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
get '/activity' do
|
||||||
|
expires 14400, :public, :must_revalidate if self.class.production? # 4 hours
|
||||||
|
params[:activity] = 'global' # FIXME this is a bad hack
|
||||||
|
@events = Event.global_dataset.all
|
||||||
|
erb :'activity'
|
||||||
|
end
|
|
@ -15,7 +15,7 @@ class Event < Sequel::Model
|
||||||
DEFAULT_GLOBAL_LIMIT = 100
|
DEFAULT_GLOBAL_LIMIT = 100
|
||||||
GLOBAL_VIEWS_MINIMUM = 500
|
GLOBAL_VIEWS_MINIMUM = 500
|
||||||
|
|
||||||
def self.global_dataset(current_page, limit=DEFAULT_GLOBAL_LIMIT)
|
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT)
|
||||||
select_all(:events).
|
select_all(:events).
|
||||||
order(:created_at.desc).
|
order(:created_at.desc).
|
||||||
paginate(current_page, 100).
|
paginate(current_page, 100).
|
||||||
|
|
|
@ -1,29 +1,15 @@
|
||||||
<header class="header-Base">
|
<header class="header-Base">
|
||||||
|
|
||||||
<nav class="header-Nav clearfix" role="navigation">
|
<nav class="header-Nav clearfix" role="navigation">
|
||||||
|
|
||||||
<a href="#!" title="show small screen nav" class="small-Nav">
|
<a href="#!" title="show small screen nav" class="small-Nav">
|
||||||
<img src="/img/nav-Icon.png" alt="navigation icon" />
|
<img src="/img/nav-Icon.png" alt="navigation icon" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<ul class="h-Nav constant-Nav">
|
<ul class="h-Nav constant-Nav">
|
||||||
<li>
|
<%== erb :'_header_links', layout: false %>
|
||||||
<a href="/browse">Websites</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/about">About</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/tutorials">Tutorials</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/api">API</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/plan">Support Us<i class="fa fa-heart"><i class="fa fa-heart"></i></i></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul class="status-Nav">
|
<ul class="status-Nav">
|
||||||
<% if !signed_in? %>
|
<% if !signed_in? %>
|
||||||
<li>
|
<li>
|
||||||
|
@ -35,7 +21,7 @@
|
||||||
<% else %>
|
<% else %>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
|
||||||
<%= current_site.username %>
|
<%= current_site.username %>
|
||||||
<span class="info">
|
<span class="info">
|
||||||
<% if current_site.unseen_notifications_count > 0 %>
|
<% if current_site.unseen_notifications_count > 0 %>
|
||||||
<span class="notification-value"><%= current_site.unseen_notifications_count %></span>
|
<span class="notification-value"><%= current_site.unseen_notifications_count %></span>
|
||||||
|
@ -46,7 +32,7 @@
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="/site/<%= current_site.username %>">Profile</a></li>
|
<li><a href="/site/<%= current_site.username %>">Profile</a></li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/?activity=mine"><span class="float-Left">Activity</span>
|
<a href="/?activity=mine"><span class="float-Left">Activity</span>
|
||||||
<% if current_site.unseen_notifications_count > 0 %>
|
<% if current_site.unseen_notifications_count > 0 %>
|
||||||
<span class="notification-value"><%= current_site.unseen_notifications_count %></span>
|
<span class="notification-value"><%= current_site.unseen_notifications_count %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
@ -85,4 +71,4 @@
|
||||||
<img src="/img/cat.png" alt="Neocities.org" />
|
<img src="/img/cat.png" alt="Neocities.org" />
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
23
views/_header_links.erb
Normal file
23
views/_header_links.erb
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<% if request.path == '/' %>
|
||||||
|
<li>
|
||||||
|
<a href="/">Neocities</a>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
<li>
|
||||||
|
<a href="/browse">Websites</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/activity">Activity</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/about">About</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/tutorials">Tutorials</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/api">API</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/plan">Support Us<i class="fa fa-heart"><i class="fa fa-heart"></i></i></a>
|
||||||
|
</li>
|
26
views/activity.erb
Normal file
26
views/activity.erb
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<div class="header-Outro with-columns">
|
||||||
|
<div class="row content">
|
||||||
|
<div class="col col-100">
|
||||||
|
<h3>Latest Activity on Neocities</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="content misc-page columns">
|
||||||
|
<div class="col-left">
|
||||||
|
<div class="col col-100">
|
||||||
|
<% if !signed_in? %>
|
||||||
|
<div class="welcome">
|
||||||
|
<h4>All the latest Neocities site news!</h4>
|
||||||
|
<p>
|
||||||
|
Neocities allows everyone create a free web site to express themselves. Want to create your own websome site? <a href="/#new">Join us!</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%== erb :'_news', locals: {current_site: nil, events: @events} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,22 +1,14 @@
|
||||||
<div class="header-Outro with-columns">
|
<div class="header-Outro with-columns">
|
||||||
<div class="row content">
|
<div class="row content">
|
||||||
<div class="col col-66">
|
<div class="col col-66">
|
||||||
<h3>
|
<h3>Your Feed</h3>
|
||||||
<% if params[:activity] == 'global' %>
|
|
||||||
Global Feed
|
|
||||||
<% else %>
|
|
||||||
Your Feed
|
|
||||||
<% end %>
|
|
||||||
</h3>
|
|
||||||
<div class="feed-filter">
|
<div class="feed-filter">
|
||||||
<% if !@events.empty? && (site.followings_dataset.count > 0) %>
|
<% if !@events.empty? && (site.followings_dataset.count > 0) %>
|
||||||
<a href="/" <% if params[:activity].nil? %>class="selected"<% end %>>All Activity</a>
|
<a href="/" <% if params[:activity].nil? %>class="selected"<% end %>>All Activity</a>
|
||||||
|
|
||||||
<a href="/?activity=mine" <% if params[:activity] == 'mine' %>class="selected"<% end %>>
|
<a href="/?activity=mine" <% if params[:activity] == 'mine' %>class="selected"<% end %>>Activity on your profile</a>
|
||||||
Activity on your profile
|
|
||||||
</a>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<a href="/?activity=global" <% if params[:activity] == 'global' %>class="selected"<% end %>>Global Activity</a>
|
<a href="/activity">Global Activity</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-32">
|
<div class="col col-32">
|
||||||
|
|
|
@ -51,24 +51,7 @@
|
||||||
<img src="/img/nav-Icon.png" alt="navigation icon" />
|
<img src="/img/nav-Icon.png" alt="navigation icon" />
|
||||||
</a>
|
</a>
|
||||||
<ul class="h-Nav constant-Nav" role="presentation">
|
<ul class="h-Nav constant-Nav" role="presentation">
|
||||||
<li>
|
<%== erb :'_header_links', layout: false %>
|
||||||
<a href="/">Neocities</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/browse">Websites</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/about">About</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/tutorials">Tutorials</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/api">API</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/plan">Support Us<i class="fa fa-heart"><i class="fa fa-heart"></i></i></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul class="status-Nav">
|
<ul class="status-Nav">
|
||||||
|
|
Loading…
Add table
Reference in a new issue