diff options
Diffstat (limited to 'music.rb')
-rwxr-xr-x | music.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/music.rb b/music.rb new file mode 100755 index 0000000..e86e0c5 --- /dev/null +++ b/music.rb @@ -0,0 +1,51 @@ +#!/usr/bin/env ruby + +require_relative 'lib' + +music = Dir[File.join(MEDIA_DIR, 'music', '20*')].sort.reverse +html = File.read(File.join(SNIPPETS, 'head.html')) +html += nav 'music' +html += '<div class="post"><a href="https://faircamp.webr.ing/prev/pdp8.info/music.html">← prev</a> | + <a href="https://faircamp.webr.ing/">faircamp webring</a> | + <a href="https://faircamp.webr.ing/rand">random</a> | + <a href="https://faircamp.webr.ing/next/pdp8.info/music.html">next →</a></div>' +music.each do |dir| + date = File.basename(dir).split('_')[0] + html += "<div class='post' id='#{date}'>" + title = File.basename(dir).split('_')[1..-1].join(' ') + html += "<h1>#{title}</h1>" + html += File.read(File.join(dir, 'README')).chomp.gsub("\n\n", '<p>').gsub("\n", '<br>') # + '<p>' + cover = File.join(MEDIA_URL, dir.sub(MEDIA_DIR, ''), 'cover.webp') + alt = File.read(File.join(dir, 'cover.txt')).chomp + w, h = `identify -format "%w %h" #{cover}`.chomp.split(' ') + html += "<img class='cover' loading='lazy' width='#{w}' height='#{h}' src='#{cover}' alt='#{alt}'>" + html += '<table>' + copyrights_file = File.join(dir, 'copyrights') + copyrights = File.readlines(copyrights_file).collect { |l| l.chomp } if File.exist? copyrights_file + Dir[File.join(dir, '*mp3')].each_with_index do |mp3, _i| + mp3 = File.join(MEDIA_URL, mp3.sub(MEDIA_DIR, '')) + name = File.basename(mp3, '.mp3')[3..-1].gsub('_', ' ') + html += '<tr>' + html += "<td>#{name}</td>" + html += "<td> + <audio preload='none' controls> + <source src='#{mp3}' type='audio/mpeg'> + <a href=#{mp3}>#{mp3}</a> + </audio> + </td>" + html += '</tr>' + end + html += '</table>' + ia = "https://archive.org/details/pdp8_#{title.gsub(' ', '_')}" + html += "<p>Internet Archive: <a href='#{ia}'>#{ia}</a>" + bc = if File.exist?(File.join(dir, 'bandcamp')) + File.read(File.join(dir, 'bandcamp')).chomp + else + "https://pdp8.bandcamp.com/album/#{title.gsub(' ', '-')}" + end + html += "<p>Bandcamp: <a href='#{bc}'>#{bc}</a>" + html += '</div>' +end +html += '<p>© pdp8 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>' +html += File.read(File.join(SNIPPETS, 'tail.html')) +print_html 'music', html |