summaryrefslogtreecommitdiff
path: root/music.rb
diff options
context:
space:
mode:
Diffstat (limited to 'music.rb')
-rwxr-xr-xmusic.rb51
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>&copy; 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