Add RSS and JSON feeds of incidents and an open dataset
Let readers and bots follow new incidents without polling the card: /:locale/feed.xml (RSS 2.0) and /:locale/feed.json (JSON Feed 1.1), the latest 50 incidents with stable IDs, advertised in the page head and footer. /data.json publishes every datacenter with its specs and sourced incidents under CC BY 4.0, for journalists and OSINT reuse. Assisted-by: Claude:opus-5
This commit is contained in:
parent
9c8606fbac
commit
03355983b4
8 changed files with 215 additions and 0 deletions
24
views/feed_rss.erb
Normal file
24
views/feed_rss.erb
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<% base = base_url %>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title><%= format(t(:feed_title), site: t(:title)) %></title>
|
||||
<link><%= base %>/<%= @locale %></link>
|
||||
<description><%= t(:tagline) %></description>
|
||||
<language><%= @locale %></language>
|
||||
<atom:link href="<%= base %>/<%= @locale %>/feed.xml" rel="self" type="application/rss+xml"/>
|
||||
<% if (top = @incidents.first) %>
|
||||
<lastBuildDate><%= [*@incidents.map(&:updated_at).compact, feed_time(top)].max.utc.rfc2822 %></lastBuildDate>
|
||||
<% end %>
|
||||
<% @incidents.each do |i| %>
|
||||
<item>
|
||||
<title><%= incident_headline(i) %></title>
|
||||
<link><%= base %><%= dc_path(i.datacenter) %></link>
|
||||
<guid isPermaLink="false"><%= incident_id(i) %></guid>
|
||||
<pubDate><%= feed_time(i).rfc2822 %></pubDate>
|
||||
<category><%= kind_label(i.kind) %></category>
|
||||
<description><%= incident_html(i) %></description>
|
||||
</item>
|
||||
<% end %>
|
||||
</channel>
|
||||
</rss>
|
||||
Loading…
Add table
Add a link
Reference in a new issue