Browse Source

QUESTA ROBA È UNA MERDA

encrypt 7 years ago
commit
7d3d9de0e6
3 changed files with 88 additions and 0 deletions
  1. 38 0
      app.rb
  2. 45 0
      views/index.erb
  3. 5 0
      views/playlist.erb

+ 38 - 0
app.rb

@@ -0,0 +1,38 @@
+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

+ 45 - 0
views/index.erb

@@ -0,0 +1,45 @@
+<!doctype html>
+<html>
+  <head>
+    <title>RadioMolestia</title>
+    <style>
+      body {
+      text-align: center;
+      }
+      .date {
+      font-size: 9pt;
+      }
+      form {
+      padding-top: 25%;
+      }
+      input {
+      padding: .375rem .75rem;
+      font-size: 1rem;
+      line-height: 1.5;
+      color: #55595c;
+      background-color: #fff;
+      background-image: none;
+      border: 1px solid #ccc;
+      border-radius: .25rem;
+      }
+    </style>
+    <script>
+      function addSong() {
+      var request = new XMLHttpRequest();
+      request.open('POST', '/add', true);
+      request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
+      data = "link="+document.getElementsByName('link')[0].value
+      request.send(data);      
+      }						    
+    </script>
+  </head>
+  <body>
+    <form>
+      <input type="text" name="link"></link>
+      <input type="button" onclick="addSong()" value="play"/>
+    </form>
+    <br/>
+    <a href="/listen">/listen</a><br/>
+    <a href="/playlist">/playlist</a>
+  </body>
+</html>

+ 5 - 0
views/playlist.erb

@@ -0,0 +1,5 @@
+<ul>
+<% songs.each do |song| %>
+<li><%= song %></li>
+<% end %>
+</ul>