From 9149e614019b8c5dc59d145d365011b2ed144b34 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Tue, 23 Jun 2020 08:31:16 -0700 Subject: Fix new packages feed Signed-off-by: Robin H. Johnson --- _includes/frontpage/packages | 2 +- _plugins/packages.rb | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/_includes/frontpage/packages b/_includes/frontpage/packages index adf87f9..444d15c 100644 --- a/_includes/frontpage/packages +++ b/_includes/frontpage/packages @@ -1,7 +1,7 @@ {% for post in site.data.packages.updates limit:5 %} - + {% endfor %} diff --git a/_plugins/packages.rb b/_plugins/packages.rb index 98cb373..5d02178 100644 --- a/_plugins/packages.rb +++ b/_plugins/packages.rb @@ -3,6 +3,52 @@ module Gentoo XML = '_data/packages.xml' def generate(site) + generate_soko(site) + end + def generate_soko(site) + xml = nil + begin + xml = Nokogiri::XML(File.open(XML)) + # atom is mainly one namespace + xml.remove_namespaces! + rescue + # Bail out if it's not valid XML + return [] + end + + #site.data['packages'] ||= { 'updates' => [] } + items = [] + + xml.xpath('/feed/entry').each do |item| + item_data = {} + + entry_by_tagname = {} + item.children.each do |tag| + entry_by_tagname[tag.name] = tag + end + + if entry_by_tagname['id'].text =~ /^tag:packages.gentoo.org,(\d{4}-\d{2}-\d{2}):\/package\/(.*)/ then + item_data['date'] = $1 + item_data['atom'] = $2 + item_data['atom_c'], item_data['atom_pn'] = item_data['atom'].split('/', 2) + item_data['atom_pv'] = nil + if entry_by_tagname['title'].text.start_with?(item_data['atom']) then + item_data['atom_pv'] = entry_by_tagname['title'].text.delete_prefix(item_data['atom']+"-") + end + item_data['description'] = entry_by_tagname['summary'].text + item_data['uri'] = entry_by_tagname['link']['href'] + if item_data['atom_pv'] then + item_data['atom_cpv'] = sprintf('%s:%s-%s', + item_data['atom_c'], + item_data['atom_pn'], + item_data['atom_pv']) + end + items << item_data + end + end + return items + end + def generate_kkuleomi(site) xml = Nokogiri::XML(File.open(XML)) # atom is mainly one namespace xml.remove_namespaces! @@ -30,3 +76,18 @@ module Gentoo end end end + +# Example from kkuleomi +# TODO +# Example from Soko: +# +# dev-python/requests-unixsocket-0.2.0 +# 2020-06-21T10:16:38Z +# tag:packages.gentoo.org,2020-06-21:/package/dev-python/requests-unixsocket +# dev-python/requests-unixsocket-0.2.0 is now available in Gentoo on these architectures: ~amd64 ~x86. See <a href='https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc81527c2dd329d517f9439123d52197968865d1'>Gitweb</a> +# +# Use requests to talk HTTP via a UNIX domain socket +# +# Michał Górny +# +# -- cgit v1.2.3-65-gdbad
{{ post.atom }}{{ post.atom_cpv }} {{ post.description }}