1234567891011121314151617181920212223242526272829303132333435363738 |
- require 'sinatra'
- require 'sinatra/contrib'
- require 'json'
- get '/' do
- erb :index
- end
- post '/add' do
- puts params.to_s
- if params[:link] and params[:link] =~ /http(s):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-]+)(&(amp;)?[\w\?=]*)?/
- File.open('/tmp/radio', 'w') do |f|
- f.puts(params[:link])
- f.flush
- end
- 200
- else
- 403
- end
- end
- get '/playlist', :provides => [:html, :json] do
- songs = `mpc playlist | cut -d '#' -f 2 | base64 -d`
- songs = songs.split("\n")
- respond_to do |format|
- format.json { songs.to_json }
- format.html { erb :playlist, locals: { songs: songs } }
- end
- end
- get '/info' do
- title = `mpc | head -n 1 | cut -d '#' -f 2 | base64 -d`
- title.gsub("\n", "")
- content_type :json
- {
- title: title
- }.to_json
- end
|