mirror of
https://github.com/SuperBFG7/ympd
synced 2025-10-27 20:07:41 +00:00
initial mongoose checkin
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
<ul id="nav_links" class="nav navbar-nav">
|
||||
<li id="playlist"><a href="#/">Playlist</a></li>
|
||||
<li id="browse"><a href="#/browse/">Browse database</a></li>
|
||||
<li><a href="#" data-toggle="modal" data-target="#about" onclick="getVersion();">About</a></li>
|
||||
<li><a href="#" data-toggle="modal" data-target="#about">About</a></li>
|
||||
<li><a href="#" data-toggle="modal" data-target="#settings" onclick="getHost();">Settings</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -197,11 +197,23 @@
|
||||
<input type="text" class="form-control" id="mpdport" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<label class="control-label" for="mpd_pw">MPD Password</label>
|
||||
<input type="password" class="form-control" id="mpd_pw" placeholder="Password"/>
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label class="control-label" for="mpd_pw_con">MPD Password (Confirmation)</label>
|
||||
<input type="password" class="form-control" id="mpd_pw_con" placeholder="Password confirmation"
|
||||
data-placement="right" data-toggle="popover" data-content="Password does not match!"
|
||||
data-trigger="manual" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="setHost();">Save</button>
|
||||
<button type="button" class="btn btn-default" onclick="confirmSettings();">Save</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
|
||||
@@ -41,7 +41,8 @@ var app = $.sammy(function() {
|
||||
current_app = 'playlist';
|
||||
$('#breadcrump').addClass('hide');
|
||||
$('#salamisandwich').find("tr:gt(0)").remove();
|
||||
$.get( "/api/get_playlist", socket.onmessage);
|
||||
// $.get( "/api/get_playlist", socket.onmessage);
|
||||
socket.send('MPD_API_GET_PLAYLIST');
|
||||
|
||||
$('#panel-heading').text("Playlist");
|
||||
$('#playlist').addClass('active');
|
||||
@@ -53,7 +54,8 @@ var app = $.sammy(function() {
|
||||
$('#salamisandwich').find("tr:gt(0)").remove();
|
||||
var path = this.params['splat'][0];
|
||||
|
||||
$.get( "/api/get_browse/" + encodeURIComponent(path), socket.onmessage);
|
||||
// $.get( "/api/get_browse/" + encodeURIComponent(path), socket.onmessage);
|
||||
socket.send('MPD_API_GET_BROWSE,' + path);
|
||||
|
||||
$('#panel-heading').text("Browse database: "+path+"");
|
||||
var path_array = path.split('/');
|
||||
@@ -100,13 +102,14 @@ $(document).ready(function(){
|
||||
|
||||
function webSocketConnect() {
|
||||
if (typeof MozWebSocket != "undefined") {
|
||||
socket = new MozWebSocket(get_appropriate_ws_url(), "ympd-client");
|
||||
socket = new MozWebSocket(get_appropriate_ws_url());
|
||||
} else {
|
||||
socket = new WebSocket(get_appropriate_ws_url(), "ympd-client");
|
||||
socket = new WebSocket(get_appropriate_ws_url());
|
||||
}
|
||||
|
||||
try {
|
||||
socket.onopen = function() {
|
||||
console.log("connected");
|
||||
$('.top-right').notify({
|
||||
message:{text:"Connected to ympd"},
|
||||
fadeOut: { enabled: true, delay: 500 }
|
||||
@@ -288,7 +291,7 @@ function webSocketConnect() {
|
||||
break;
|
||||
case "update_playlist":
|
||||
if(current_app === 'playlist')
|
||||
$.get( "/api/get_playlist", socket.onmessage);
|
||||
socket.send('MPD_API_GET_PLAYLIST');
|
||||
break;
|
||||
case "song_change":
|
||||
$('#currenttrack').text(" " + obj.data.title);
|
||||
@@ -315,6 +318,10 @@ function webSocketConnect() {
|
||||
case "mpdhost":
|
||||
$('#mpdhost').val(obj.data.host);
|
||||
$('#mpdport').val(obj.data.port);
|
||||
if(obj.data.passwort_set) {
|
||||
$('#mpd_pw').attr('placeholder', '*******');
|
||||
$('#mpd_pw_con').attr('placeholder', '*******');
|
||||
}
|
||||
break;
|
||||
case "error":
|
||||
$('.top-right').notify({
|
||||
@@ -328,6 +335,7 @@ function webSocketConnect() {
|
||||
|
||||
}
|
||||
socket.onclose = function(){
|
||||
console.log("disconnected");
|
||||
$('.top-right').notify({
|
||||
message:{text:"Connection to ympd lost, retrying in 3 seconds "},
|
||||
type: "danger",
|
||||
@@ -448,30 +456,36 @@ $('#btnnotify').on('click', function (e) {
|
||||
}
|
||||
});
|
||||
|
||||
function getVersion()
|
||||
{
|
||||
$.get( "/api/get_version", function(response) {
|
||||
$('#ympd_version').text(response.data.ympd_version);
|
||||
$('#mpd_version').text(response.data.mpd_version);
|
||||
});
|
||||
}
|
||||
|
||||
function getHost() {
|
||||
socket.send('MPD_API_GET_MPDHOST');
|
||||
|
||||
function onEnter(event) {
|
||||
if ( event.which == 13 ) {
|
||||
setHost();
|
||||
$('#settings').modal('hide');
|
||||
confirmSettings();
|
||||
}
|
||||
}
|
||||
|
||||
$('#mpdhost').keypress(onEnter);
|
||||
$('#mpdport').keypress(onEnter);
|
||||
$('#mpd_pw').keypress(onEnter);
|
||||
$('#mpd_pw_con').keypress(onEnter);
|
||||
|
||||
}
|
||||
|
||||
function setHost() {
|
||||
function confirmSettings() {
|
||||
if($('#mpd_pw').val().length + $('#mpd_pw_con').val().length > 0) {
|
||||
if ($('#mpd_pw').val() !== $('#mpd_pw_con').val())
|
||||
{
|
||||
$('#mpd_pw_con').popover('show');
|
||||
setTimeout(function() {
|
||||
$('#mpd_pw_con').popover('hide');
|
||||
}, 2000);
|
||||
return;
|
||||
} else
|
||||
socket.send('MPD_API_SET_MPDPASS,'+$('#mpd_pw').val());
|
||||
}
|
||||
socket.send('MPD_API_SET_MPDHOST,'+$('#mpdport').val()+','+$('#mpdhost').val());
|
||||
$('#settings').modal('hide');
|
||||
}
|
||||
|
||||
function notificationsSupported() {
|
||||
|
||||
87
htdocs/mkdata.pl
Normal file
87
htdocs/mkdata.pl
Normal file
@@ -0,0 +1,87 @@
|
||||
# This program is used to embed arbitrary data into a C binary. It takes
|
||||
# a list of files as an input, and produces a .c data file that contains
|
||||
# contents of all these files as collection of char arrays.
|
||||
#
|
||||
# Usage: perl <this_file> <file1> [file2, ...] > embedded_data.c
|
||||
|
||||
use File::MimeInfo;
|
||||
|
||||
foreach my $i (0 .. $#ARGV) {
|
||||
open FD, '<:raw', $ARGV[$i] or die "Cannot open $ARGV[$i]: $!\n";
|
||||
printf("static const unsigned char v%d[] = {", $i);
|
||||
my $byte;
|
||||
my $j = 0;
|
||||
while (read(FD, $byte, 1)) {
|
||||
if (($j % 12) == 0) {
|
||||
print "\n";
|
||||
}
|
||||
printf ' %#04x,', ord($byte);
|
||||
$j++;
|
||||
}
|
||||
print " 0x00\n};\n";
|
||||
close FD;
|
||||
}
|
||||
|
||||
print <<EOS;
|
||||
/* ympd
|
||||
(c) 2013-2014 Andrew Karpow <andy\@ympd.org>
|
||||
This project's homepage is: http://www.ympd.org
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef __HTTP_FILES_H__
|
||||
#define __HTTP_FILES_H__
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
static const struct embedded_file {
|
||||
const char *name;
|
||||
const unsigned char *data;
|
||||
const char *mimetype;
|
||||
size_t size;
|
||||
} embedded_files[] = {
|
||||
EOS
|
||||
|
||||
foreach my $i (0 .. $#ARGV) {
|
||||
my $mime = mimetype($ARGV[$i]);
|
||||
print " {\"/$ARGV[$i]\", v$i, \"$mime\", sizeof(v$i) - 1},\n";
|
||||
}
|
||||
|
||||
print <<EOS;
|
||||
{NULL, NULL, NULL, 0}
|
||||
};
|
||||
|
||||
const struct embedded_file *find_embedded_file(const char *name) {
|
||||
const struct embedded_file *p;
|
||||
for (p = embedded_files; p->name != NULL; p++)
|
||||
if (!strcmp(p->name, name))
|
||||
return p;
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
EOS
|
||||
Reference in New Issue
Block a user