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]
32 class App < Sinatra::Base
34 set :protection, :except => :frame_options
37 get '/tracklist.json' do
42 index = params["index"].to_i
43 if ( index < 0 || index > $tracklist.length )
45 return "No such track index."
48 title = ( index < 1 ) ? "-" : $tracklist[index - 1]["title"]
50 File.open($metafile, "a+") do |fp|
51 fp.flock(File::LOCK_EX)
56 fp.flock(File::LOCK_UN)
61 get '/js/handler.js' do
62 content_type 'text/javascript'
66 get '/css/meta.css' do
67 content_type 'text/css'
72 erb :index, :locals => { :mixtitle => $set, :tracklist => tracklist_json }