4 require 'yajl/json_gem'
8 $metafile = "tmp/songtitle"
11 file = "sets/#{$set}.csv"
12 csv = CSV.read(File.open(file))
14 $tracklist = csv.map do |row|
15 Hash[*names.zip(row).flatten]
25 class App < Sinatra::Base
27 set :protection, :except => :frame_options
30 get '/tracklist.json' do
35 index = params["index"].to_i
36 if ( index < 0 || index > $tracklist.length )
38 return "No such track index."
41 title = ( index < 1 ) ? "-" : $tracklist[index - 1]["title"]
43 File.open($metafile, "a+") do |fp|
44 fp.flock(File::LOCK_EX)
49 fp.flock(File::LOCK_UN)
54 get '/js/handler.js' do
55 content_type 'text/javascript'
59 get '/css/meta.css' do
60 content_type 'text/css'
65 erb :index, :locals => { :mixtitle => $set, :tracklist => tracklist_json }