mirror of
https://github.com/correl/melpa.git
synced 2024-12-24 03:00:13 +00:00
a4cba97e11
makes sure that if we have a version that is not a timestamp, then we can still build the rss feed. this is a terrible hack and probably needs fixing.
46 lines
2 KiB
Text
46 lines
2 KiB
Text
<?xml version="1.0" encoding="UTF-8"?>
|
|
<rss version="2.0"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
|
|
xmlns:atom="http://www.w3.org/2005/Atom">
|
|
<% base_url = "http://melpa.milkbox.net/" %>
|
|
<channel>
|
|
<title>MELPA package updates</title>
|
|
<link>http://melpa.milkbox.net</link>
|
|
<atom:link href="<%= base_url %>updates.rss" rel="self" type="application/rss+xml" />
|
|
<language>en-us</language>
|
|
<ttl>40</ttl>
|
|
<description>News about package updates</description>
|
|
<%
|
|
require 'json'
|
|
require 'time'
|
|
require 'ostruct'
|
|
packages = JSON.parse(File.open("archive.json").read).map do |pkgname, info|
|
|
versions, deps, descr, pkgtype = info
|
|
version = versions.join('.')
|
|
package = OpenStruct.new
|
|
package.name = pkgname
|
|
package.version = version
|
|
package.description = descr.gsub(/ \[source:.*$/, '')
|
|
begin
|
|
hour_portion = versions[1] ? sprintf("%04d", versions[1]) : "0000"
|
|
package.build_time = Time.new(version[0..3].to_i, version[4..5].to_i, version[6..7].to_i, hour_portion[0..1].to_i, hour_portion[2..3].to_i)
|
|
rescue ArgumentError
|
|
package.build_time = Time.now()
|
|
end
|
|
package.url = "#{base_url}packages/#{pkgname}-#{version}." + (pkgtype == "single" ? "el" : "tar")
|
|
package.info_url = "#{base_url}##{pkgname}"
|
|
package
|
|
end
|
|
packages.sort_by { |p| p.version }.reverse[0..200].each do |package|
|
|
%>
|
|
<item>
|
|
<title><%= package.name %> (<%= package.version %>) --- <%= ERB::Util.html_escape package.description %></title>
|
|
<description>The <%= package.name %> package in MELPA has been updated to version <%= package.version %>.</description>
|
|
<pubDate><%= package.build_time.rfc822 %></pubDate>
|
|
<guid isPermaLink="true"><%= package.url %></guid>
|
|
<link><%= package.info_url %></link>
|
|
</item>
|
|
<% end %>
|
|
</channel>
|
|
</rss>
|