From a3ab009e96db2269dcf3f6dd1c103aa885186ee4 Mon Sep 17 00:00:00 2001 From: pdp8 Date: Sun, 30 Jul 2023 16:45:03 +0200 Subject: media moved to media.pdp8.info, drone release --- rss.rb | 71 ++++++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 26 deletions(-) (limited to 'rss.rb') diff --git a/rss.rb b/rss.rb index b700f55..47b47c0 100755 --- a/rss.rb +++ b/rss.rb @@ -1,32 +1,51 @@ #!/usr/bin/env ruby -require "rss" +require 'date' +MEDIA = '/srv/media/' +WWW = '/srv/www/pdp8-test/' +items = [] +%w[music videos].each do |cat| + Dir[File.join(MEDIA, cat, '*')].each do |dir| + date = File.basename(dir).split('_')[0] + updated = Date.parse(date) # .strftime('%Y-%m-%d') + items << { + title: File.basename(dir).split('_')[1..-1].join(' '), + link: File.join('https://pdp8.info', cat + '.html#' + date), + description: File.read(File.join(dir, 'README')).chomp.sub(/^\n/, '').sub("\n\n", "\n"), + pubDate: updated.httpdate, + 'dc:date' => updated.rfc3339 + } + end +end +date = Dir[File.join(MEDIA, 'pictures', '*.jpeg')].last.split('_')[0] +updated = Date.parse(date) # .strftime('%Y%m%d') +items << { + title: 'pictures', + link: 'https://pdp8.info/pictures.html', + pubDate: updated.httpdate, + 'dc:date' => updated.rfc3339 +} -ROOT = ARGV[0] +xml = [' + + + pdp8 + https://pdp8.info + music, pictures and videos + en'] +date = DateTime.now +xml << " #{date.httpdate}" +xml << " #{date.rfc3339}" -rss = RSS::Maker.make("2.0") do |maker| - maker.channel.language = "en" - maker.channel.author = "pdp8" - maker.channel.updated = Time.now.to_s - maker.channel.link = "https://pdp8.info" - maker.channel.title = "pdp8" - maker.channel.description = "music, pictures and videos" - ["music", "videos"].each do |cat| - Dir[File.join(ROOT, cat, "*")].each do |dir| - maker.items.new_item do |item| - item.title = File.basename(dir).split("_")[1..-1].join(" ") - date = File.basename(dir).split("_")[0] - item.link = File.join("https://pdp8.info", cat + ".html#" + date) - item.updated = Time.parse(date).strftime("%Y-%m-%d") - item.description = File.read(File.join(dir, "README")).chomp.sub(/^\n/, '').sub("\n\n", "\n") - end - end - end - maker.items.new_item do |item| - item.title = "pictures" - item.link = "https://pdp8.info/pictures.html" - date = Dir[File.join(ROOT, "pictures", "*.jpeg")].last.split("_")[0] - item.updated = Time.parse(date).strftime("%Y%m%d") +items.sort_by { |i| i['dc:date'] }.each do |item| + xml << ' ' + item.each do |k, v| + xml << " <#{k}>#{v}" end + xml << ' ' end +xml << ' +' -File.open(File.join(ROOT, "rss.xml"), "w+") { |f| f.puts rss } +File.open(File.join(WWW, 'rss.xml'), 'w+') { |f| f.puts xml.join("\n") } -- cgit v1.2.3