mirror of
https://github.com/danbee/neompc
synced 2025-03-04 08:39:10 +00:00
+ Added missing files.
This commit is contained in:
parent
5aee29fa04
commit
9f8faef999
BIN
._control.php
Normal file
BIN
._control.php
Normal file
Binary file not shown.
71
control.php
Normal file
71
control.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
require_once('lib/global.php');
|
||||
|
||||
$action = $_GET['action'];
|
||||
|
||||
switch ($action) {
|
||||
case 'stop':
|
||||
$mympd->Stop();
|
||||
break;
|
||||
case 'play':
|
||||
$mympd->Play();
|
||||
break;
|
||||
case 'pause':
|
||||
$mympd->Pause();
|
||||
break;
|
||||
case 'playpause':
|
||||
if ($mympd->state == MPD_STATE_PLAYING) {
|
||||
$mympd->Pause();
|
||||
}
|
||||
else {
|
||||
$mympd->Play();
|
||||
}
|
||||
break;
|
||||
case 'prev':
|
||||
$mympd->Previous();
|
||||
break;
|
||||
case 'next':
|
||||
$mympd->Next();
|
||||
break;
|
||||
case 'repeat':
|
||||
// toggle repeat
|
||||
$repeat = ($mympd->repeat == 0 ? 1 : 0);
|
||||
$mympd->SetRepeat($repeat);
|
||||
break;
|
||||
}
|
||||
|
||||
echo mpd_info();
|
||||
|
||||
function mpd_info() {
|
||||
global $mympd, $_CONFIG;
|
||||
// we will create an array of info detailing the current state of MPD
|
||||
// and return it as JSON.
|
||||
$info = array();
|
||||
$info['state'] = $mympd->state;
|
||||
|
||||
$current_track = $mympd->playlist[$mympd->current_track_id];
|
||||
|
||||
$cover_link = $_CONFIG['music_directory'] . '/'
|
||||
. substr($current_track['file'], 0, strrpos($current_track['file'], '/') + 1)
|
||||
. $_CONFIG['album_cover_name'];
|
||||
|
||||
if (file_exists($cover_link)) {
|
||||
$info['coverimage'] = 'lib/image.php?file=' . $cover_link . '&size=' . $_CONFIG['album_cover_size'];
|
||||
}
|
||||
|
||||
$info['title'] = $current_track['Title'];
|
||||
$info['album'] = $current_track['Album'];
|
||||
$info['artist'] = $current_track['Artist'];
|
||||
$info['file'] = $current_track['file'];
|
||||
$info['filename'] = substr($current_track['file'], strrpos($current_track['file'], '/') + 1);
|
||||
$info['length'] = $mympd->current_track_length;
|
||||
$info['position'] = $mympd->current_track_position;
|
||||
$info['volume'] = $mympd->volume;
|
||||
$info['repeat'] = $mympd->repeat;
|
||||
$info['random'] = $mympd->random;
|
||||
|
||||
return json_encode($info);
|
||||
}
|
||||
|
||||
?>
|
||||
BIN
lib/._mpd.class.php
Normal file
BIN
lib/._mpd.class.php
Normal file
Binary file not shown.
BIN
lib/._page.php
Normal file
BIN
lib/._page.php
Normal file
Binary file not shown.
BIN
lib/js/._neompc.js
Normal file
BIN
lib/js/._neompc.js
Normal file
Binary file not shown.
19
lib/js/jquery-min.js
vendored
Normal file
19
lib/js/jquery-min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
109
lib/js/neompc.js
Normal file
109
lib/js/neompc.js
Normal file
@ -0,0 +1,109 @@
|
||||
progressbar_width = {:$progressbar_width:};
|
||||
template = '{:$template:}';
|
||||
volume_min = {:$volume_min:};
|
||||
volume_max = {:$volume_max:};
|
||||
vol_orientation = '{:$volume_orientation:}'
|
||||
|
||||
String.prototype.pad = function(l, s){
|
||||
return (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length) + 1).join(s)).substr(0, s.length) + this + s.substr(0, l - s.length) : this;
|
||||
};
|
||||
|
||||
function seconds_to_time(seconds) {
|
||||
time = Math.floor(seconds / 60).toFixed().pad(2, "0") + ":" + (seconds % 60).toFixed().pad(2, "0");
|
||||
return time;
|
||||
}
|
||||
|
||||
function volume_to_pos(volume) {
|
||||
pos = volume_min + (volume / 100) * (volume_max - volume_min);
|
||||
return pos;
|
||||
}
|
||||
|
||||
function pos_to_volume(pos) {
|
||||
|
||||
}
|
||||
|
||||
function ajax_control(action) {
|
||||
// this function will fire an AJAX call with the appropriate action.
|
||||
// or it will simply fire an AJAX call to get the current status.
|
||||
|
||||
$.getJSON('control.php', {action: action},
|
||||
function(data){
|
||||
// this is where we update the page.
|
||||
if (data.state == 'play') {
|
||||
$('#playpause_button').addClass('pause');
|
||||
}
|
||||
else {
|
||||
$('#playpause_button').removeClass('pause');
|
||||
}
|
||||
$('#pos').text((data.track_no > -1 ? data.track_no+'.' : ''));
|
||||
$('#artist').text(data.artist || '');
|
||||
$('#album').text(data.album || '');
|
||||
$('#title').text(data.title || '');
|
||||
$('#cover').attr('src', (data.coverimage ? data.coverimage : 'templates/'+template+'/images/default_cover.png'));
|
||||
$('#current').text((data.position > -1 ? seconds_to_time(data.position) : '--:--'));
|
||||
if (data.repeat == 1) {
|
||||
$('#repeat_button').addClass('selected');
|
||||
}
|
||||
else {
|
||||
$('#repeat_button').removeClass('selected');
|
||||
}
|
||||
$('#volume_slider').css('top', volume_to_pos(data.volume)+'px');
|
||||
update_progress(data.position, data.length);
|
||||
});
|
||||
}
|
||||
|
||||
function update_progress(song_position, song_length) {
|
||||
|
||||
//set the interval if it hasn't been set already.
|
||||
//if (update_int == null) {
|
||||
// update_int = setInterval('update_progress()', 1000);
|
||||
//}
|
||||
|
||||
if (song_position > -1) {
|
||||
new_margin = Math.round(progressbar_width - ((song_position / song_length) * progressbar_width));
|
||||
|
||||
new_margin_string = new_margin + 'px';
|
||||
|
||||
$('#progressbar').css('marginRight', new_margin_string);
|
||||
|
||||
}
|
||||
else {
|
||||
$('#progressbar').css('marginRight', '100%');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function hide_volume() {
|
||||
$('#volume_container').hide();
|
||||
$('#volume_button').css('visibility', 'visible');
|
||||
}
|
||||
|
||||
function show_volume() {
|
||||
$('#volume_container').show();
|
||||
$('#volume_button').css('visibility', 'hidden');
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
update_int = null;
|
||||
|
||||
$('.control_button').click(function(event){
|
||||
ajax_control(this.rel);
|
||||
this.blur();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#volume_button').click(function(event){
|
||||
show_volume();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#volume_container').click(function(event){
|
||||
hide_volume();
|
||||
return false;
|
||||
});
|
||||
|
||||
ajax_control();
|
||||
ajax_int = setInterval('ajax_control()', 1000);
|
||||
|
||||
});
|
||||
314
smarty/templates_c/%%3B^3B9^3B9ACDBF%%styles.css.php
Normal file
314
smarty/templates_c/%%3B^3B9^3B9ACDBF%%styles.css.php
Normal file
@ -0,0 +1,314 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 18:55:59
|
||||
compiled from default/styles.css */ ?>
|
||||
* {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
}
|
||||
body {
|
||||
background: #333 url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/menu_shadow.png) center 29px repeat-x;
|
||||
color: #fff;
|
||||
font: 13px helvetica,verdana,sans-serif;
|
||||
text-align: center;
|
||||
margin: 45px 0px 0px 0px;
|
||||
}
|
||||
p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#menu {
|
||||
background: #111;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
top: 0px;
|
||||
padding: 0px 2px 0px 0px;
|
||||
z-index: 1;
|
||||
text-align: center;
|
||||
}
|
||||
#menu ul {
|
||||
width: 320px;
|
||||
margin: 0px auto;
|
||||
}
|
||||
#menu li {
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
#menu a {
|
||||
background: #000 url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/menu_back.png);
|
||||
font: 14px helvetica,verdana,sans-serif;
|
||||
color: rgba(0, 0, 0, 1);;
|
||||
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.6);
|
||||
padding: 5px 0px 2px;
|
||||
float: left;
|
||||
margin-left: 0px;
|
||||
display: block;
|
||||
width: 107px;
|
||||
height: 23px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
#menu a:hover {
|
||||
background: #ccc url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/menu_back_active.png);;
|
||||
color: #000;
|
||||
}
|
||||
#menu a:active {
|
||||
background: #ccc url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/menu_back_active.png);;
|
||||
color: #000;
|
||||
}
|
||||
#menu a.selected {
|
||||
background: #333 url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/menu_back_selected.png);
|
||||
color: #fff;
|
||||
width: 106px;
|
||||
text-shadow: 0 0 12px rgba(150, 210, 255, 0.9);
|
||||
}
|
||||
#page {
|
||||
padding: 0px;
|
||||
clear: left;
|
||||
}
|
||||
#page ul {
|
||||
list-style-type: none;
|
||||
width: 280px;
|
||||
text-align: left;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
#page ul.list {
|
||||
margin-top: 10px;
|
||||
}
|
||||
#page ul li {
|
||||
padding: 0px 1px 1px 0px;
|
||||
border-top: 1px solid #666;
|
||||
}
|
||||
#song_display {
|
||||
position: relative;
|
||||
width: 280px;
|
||||
height: 217px;
|
||||
margin: 0px auto 5px;
|
||||
/* height: 55px; */
|
||||
text-align: left;
|
||||
font-size: 14px;
|
||||
}
|
||||
#page #pos {
|
||||
font-weight: bold;
|
||||
}
|
||||
#page #title {
|
||||
font-size: 16px;
|
||||
color: #ffc;
|
||||
font-weight: bold;
|
||||
}
|
||||
#page #song_info {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
}
|
||||
#page #album_info {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 150px;
|
||||
}
|
||||
#page #artist {
|
||||
font-style: italic;
|
||||
}
|
||||
#page #album {
|
||||
color: #888;
|
||||
}
|
||||
#buttons {
|
||||
width: 280px;
|
||||
margin: 0px auto;
|
||||
padding-top: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
img.icon {
|
||||
margin: 2px 2px -1px 2px;
|
||||
}
|
||||
img.button {
|
||||
float: right;
|
||||
margin: 2px 2px -1px 2px;
|
||||
}
|
||||
#controls {
|
||||
background: #666 url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/control_back.png) center center repeat-x;
|
||||
text-align: center;
|
||||
margin: 8px 0px 0px 0px;
|
||||
padding: 10px 7px 10px 0px;
|
||||
height: 50px;
|
||||
}
|
||||
#controls .container {
|
||||
position: relative;
|
||||
width: 280px;
|
||||
margin: 0px auto;
|
||||
}
|
||||
#controls #main_controls {
|
||||
width: 280px;
|
||||
}
|
||||
#controls #main_controls li {
|
||||
display: block;
|
||||
float: left;
|
||||
border: 0;
|
||||
}
|
||||
#controls #main_controls a {
|
||||
background-image: url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/buttons.png);
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin-left: 7px;
|
||||
}
|
||||
#main_controls #prev_button {
|
||||
background-position: 0px 0px;
|
||||
}
|
||||
#main_controls #playpause_button {
|
||||
background-position: -50px 0px;
|
||||
}
|
||||
#main_controls #playpause_button.pause {
|
||||
background-position: -100px 0px;
|
||||
}
|
||||
#main_controls #stop_button {
|
||||
background-position: -150px 0px;
|
||||
}
|
||||
#main_controls #next_button {
|
||||
background-position: -200px 0px;
|
||||
}
|
||||
|
||||
#main_controls #prev_button:hover {
|
||||
background-position: 0px -50px;
|
||||
}
|
||||
#main_controls #playpause_button:hover {
|
||||
background-position: -50px -50px;
|
||||
}
|
||||
#main_controls #playpause_button.pause:hover {
|
||||
background-position: -100px -50px;
|
||||
}
|
||||
#main_controls #stop_button:hover {
|
||||
background-position: -150px -50px;
|
||||
}
|
||||
#main_controls #next_button:hover {
|
||||
background-position: -200px -50px;
|
||||
}
|
||||
|
||||
#volume_repeat {
|
||||
position: absolute;
|
||||
left: 250px;
|
||||
}
|
||||
#volume_repeat a {
|
||||
display: block;
|
||||
width: 30px;
|
||||
height: 20px;
|
||||
margin-bottom: 10px;
|
||||
background-position: 0px 0px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
#volume_repeat #volume_button {
|
||||
background-image: url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/volume.png);
|
||||
}
|
||||
#volume_repeat #repeat_button {
|
||||
background-image: url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/repeat.png);
|
||||
}
|
||||
#volume_repeat #volume_button:hover {
|
||||
background-position: 0px -20px;
|
||||
}
|
||||
#volume_repeat #repeat_button:hover {
|
||||
background-position: 0px -20px;
|
||||
}
|
||||
#volume_repeat #repeat_button.selected {
|
||||
background-position: -30px 0px;
|
||||
}
|
||||
#volume_repeat #repeat_button.selected:hover {
|
||||
background-position: -30px -20px;
|
||||
}
|
||||
|
||||
#volume_container {
|
||||
position: absolute;
|
||||
display: none;
|
||||
top: -140px;
|
||||
background: url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/volume_container.png) center center no-repeat;
|
||||
height: 160px;
|
||||
width: 30px;
|
||||
}
|
||||
#volume_container a#volume_hide {
|
||||
position: absolute;
|
||||
top: 140px;
|
||||
left: 0px;
|
||||
width: 30px;
|
||||
height: 20px;
|
||||
}
|
||||
#volume_container a#volume_slider {
|
||||
background: url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/volume_slider.png) center center no-repeat;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
width: 20px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
#crumb_trail ul {
|
||||
list-style-position: inside;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#crumb_trail li {
|
||||
display: inline;
|
||||
margin-left: 3px;
|
||||
border: 0px none !important;
|
||||
}
|
||||
li.playing {
|
||||
background: #444;
|
||||
}
|
||||
#progress {
|
||||
background: #222 url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/progress_back.png) center center repeat-x;
|
||||
border: 1px solid #666;
|
||||
padding: 2px;
|
||||
width: 276px;
|
||||
height: 10px;
|
||||
margin: 5px auto 10px;
|
||||
text-align: left;
|
||||
clear: both;
|
||||
}
|
||||
#progressbar {
|
||||
font-size: 1px;
|
||||
background: #ccc url(templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/progress.png) center center repeat-x;;
|
||||
height: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
#cover_image {
|
||||
float: left;
|
||||
height: 130px;
|
||||
width: 130px;
|
||||
margin: 10px 0px 20px;
|
||||
}
|
||||
img#cover {
|
||||
background: #111;
|
||||
padding: 2px;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
#tracktime {
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
top: 130px;
|
||||
left: 150px;
|
||||
}
|
||||
#tracktime #total {
|
||||
color: #666;
|
||||
}
|
||||
17
smarty/templates_c/%%3F^3F8^3F8E1A98%%playlist_item.html.php
Normal file
17
smarty/templates_c/%%3F^3F8^3F8E1A98%%playlist_item.html.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 12:17:35
|
||||
compiled from default/playlist_item.html */ ?>
|
||||
<?php require_once(SMARTY_CORE_DIR . 'core.load_plugins.php');
|
||||
smarty_core_load_plugins(array('plugins' => array(array('modifier', 'string_format', 'default/playlist_item.html', 1, false),)), $this); ?>
|
||||
<?php if ($this->_tpl_vars['playlist_item']['Pos'] == $this->_tpl_vars['playing']): ?><li class="playing"><?php else: ?><li><?php endif; ?><a href="<?php echo $this->_tpl_vars['playlist_remove_link']; ?>
|
||||
<?php echo $this->_tpl_vars['playlist_item']['Pos']; ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/del.gif" alt="Remove from Playlist" class="button" /></a><a href="<?php echo $this->_tpl_vars['playlist_play_link']; ?>
|
||||
<?php echo $this->_tpl_vars['playlist_item']['Pos']; ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/play.gif" alt="Play" class="button" /></a><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/note.gif" class="icon" /> <span class="pos"><?php echo ((is_array($_tmp=$this->_tpl_vars['playlist_item']['Pos']+1)) ? $this->_run_mod_handler('string_format', true, $_tmp, "%02d") : smarty_modifier_string_format($_tmp, "%02d")); ?>
|
||||
.</span> <?php if ($this->_tpl_vars['playlist_item']['Title']): ?><span class="title"><?php echo $this->_tpl_vars['playlist_item']['Title']; ?>
|
||||
</span><?php if ($this->_tpl_vars['playlist_item']['Artist'] && $this->_tpl_vars['show_extra_track_info']): ?><br /><span class="artist"><?php echo $this->_tpl_vars['playlist_item']['Artist']; ?>
|
||||
</span> <?php if ($this->_tpl_vars['playlist_item']['Album']): ?><span class="album">(<?php echo $this->_tpl_vars['playlist_item']['Album']; ?>
|
||||
)</span><?php endif; ?><?php endif; ?><?php else: ?><?php echo $this->_tpl_vars['playlist_item']['file_name']; ?>
|
||||
<?php endif; ?></li>
|
||||
12
smarty/templates_c/%%73^73A^73AF6CEB%%menu.html.php
Normal file
12
smarty/templates_c/%%73^73A^73AF6CEB%%menu.html.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 12:17:35
|
||||
compiled from default/menu.html */ ?>
|
||||
<div id="menu">
|
||||
<ul>
|
||||
<li><a <?php if ($this->_tpl_vars['page'] == 'browse'): ?>class="selected" <?php endif; ?>href="<?php echo $this->_tpl_vars['browse_link']; ?>
|
||||
">Browse</a></li>
|
||||
<li><a <?php if ($this->_tpl_vars['page'] == 'playlist'): ?>class="selected" <?php endif; ?>href="<?php echo $this->_tpl_vars['playlist_link']; ?>
|
||||
">Playlist</a></li>
|
||||
<li><a <?php if ($this->_tpl_vars['page'] == 'control'): ?>class="selected" <?php endif; ?>href="<?php echo $this->_tpl_vars['control_link']; ?>
|
||||
">Control</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -0,0 +1,57 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 18:46:12
|
||||
compiled from default/browselist_item.html */ ?>
|
||||
<?php require_once(SMARTY_CORE_DIR . 'core.load_plugins.php');
|
||||
smarty_core_load_plugins(array('plugins' => array(array('modifier', 'escape', 'default/browselist_item.html', 4, false),)), $this); ?>
|
||||
|
||||
<?php if ($this->_tpl_vars['browselist_item']['directory']): ?>
|
||||
|
||||
<li><a href="index.php?browse=<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['directory'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/dir.gif" class="icon" /> <?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['directory_name'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</a></li>
|
||||
|
||||
<?php elseif ($this->_tpl_vars['browselist_item']['metaArtist']): ?>
|
||||
|
||||
<li><a href="index.php?browse=<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['path'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/artist.gif" class="icon" /> <?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['metaArtist'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</a></li>
|
||||
|
||||
<?php elseif ($this->_tpl_vars['browselist_item']['metaAlbum']): ?>
|
||||
|
||||
<li><a href="index.php?browse=<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['path'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/album.gif" class="icon" /> <?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['metaAlbum'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</a></li>
|
||||
|
||||
<?php elseif ($this->_tpl_vars['browselist_item']['Title']): ?>
|
||||
|
||||
<?php if ($this->_tpl_vars['browselist_item']['in_playlist']): ?><li class="playing"><?php else: ?><li><?php endif; ?><a href="<?php echo $this->_tpl_vars['browselist_add_link']; ?>
|
||||
<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/add.gif" alt="Add" class="button" /></a><a href="<?php echo $this->_tpl_vars['browselist_play_link']; ?>
|
||||
<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/play.gif" alt="Play" class="button" /></a><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/note.gif" class="icon" /> <?php if (((is_array($_tmp=$this->_tpl_vars['browselist_item']['Title'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html'))): ?><span class="title"><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Title'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</span><?php if ($this->_tpl_vars['browselist_item']['Artist'] && $this->_tpl_vars['show_extra_track_info']): ?><br /><span class="artist"><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Artist'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</span> <?php if ($this->_tpl_vars['browselist_item']['Album']): ?><span class="album">(<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Album'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
)</span><?php endif; ?><?php endif; ?><?php else: ?><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file_name'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
<?php endif; ?></li>
|
||||
|
||||
<?php elseif ($this->_tpl_vars['browselist_item']['file']): ?>
|
||||
|
||||
<?php if ($this->_tpl_vars['browselist_item']['in_playlist']): ?><li class="playing"><?php else: ?><li><?php endif; ?><a href="<?php echo $this->_tpl_vars['browselist_add_link']; ?>
|
||||
<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/add.gif" alt="Add" class="button" /></a><a href="<?php echo $this->_tpl_vars['browselist_play_link']; ?>
|
||||
<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/play.gif" alt="Play" class="button" /></a><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/note.gif" class="icon" /> <?php if (((is_array($_tmp=$this->_tpl_vars['browselist_item']['Title'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html'))): ?><span class="title"><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Title'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</span><?php if ($this->_tpl_vars['browselist_item']['Artist'] && $this->_tpl_vars['show_extra_track_info']): ?><br /><span class="artist"><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Artist'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</span> <?php if ($this->_tpl_vars['browselist_item']['Album']): ?><span class="album">(<?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['Album'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
)</span><?php endif; ?><?php endif; ?><?php else: ?><?php echo ((is_array($_tmp=$this->_tpl_vars['browselist_item']['file_name'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
<?php endif; ?></li>
|
||||
|
||||
<?php endif; ?>
|
||||
35
smarty/templates_c/%%86^860^86006DCD%%browse.html.php
Normal file
35
smarty/templates_c/%%86^860^86006DCD%%browse.html.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 18:46:12
|
||||
compiled from default/browse.html */ ?>
|
||||
<?php require_once(SMARTY_CORE_DIR . 'core.load_plugins.php');
|
||||
smarty_core_load_plugins(array('plugins' => array(array('modifier', 'escape', 'default/browse.html', 6, false),)), $this); ?>
|
||||
|
||||
<ul id="crumb_trail">
|
||||
<li><a href="<?php echo $this->_tpl_vars['home_link']; ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/home.gif" alt="Home" /></a></li>
|
||||
|
||||
<?php $_from = $this->_tpl_vars['dir_list']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
|
||||
foreach ($_from as $this->_tpl_vars['dir_list_item']):
|
||||
?>
|
||||
<li>• <a href="index.php?browse=<?php echo $this->_tpl_vars['dir_list_item']['path']; ?>
|
||||
"><?php echo ((is_array($_tmp=$this->_tpl_vars['dir_list_item']['name'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'html') : smarty_modifier_escape($_tmp, 'html')); ?>
|
||||
</a></li>
|
||||
<?php endforeach; endif; unset($_from); ?>
|
||||
|
||||
</ul>
|
||||
|
||||
<div id="buttons"><a href="index.php?action=playall"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/playall.gif" /></a> <a href="index.php?action=addall"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/addall.gif" /></a></div>
|
||||
|
||||
<ul class="list">
|
||||
<?php $_from = $this->_tpl_vars['browselist']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
|
||||
foreach ($_from as $this->_tpl_vars['browselist_item']):
|
||||
?>
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "default/browselist_item.html", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
<?php endforeach; endif; unset($_from); ?>
|
||||
</ul>
|
||||
22
smarty/templates_c/%%A0^A09^A09C29AE%%playlist.html.php
Normal file
22
smarty/templates_c/%%A0^A09^A09C29AE%%playlist.html.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 12:17:35
|
||||
compiled from default/playlist.html */ ?>
|
||||
<?php if ($this->_tpl_vars['playlist']): ?>
|
||||
<div id="buttons"><a href="<?php echo $this->_tpl_vars['playlist_clear_link']; ?>
|
||||
"><img src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/delall.gif" /></a></div>
|
||||
|
||||
<ul class="list">
|
||||
<?php $_from = $this->_tpl_vars['playlist']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
|
||||
foreach ($_from as $this->_tpl_vars['playlist_item']):
|
||||
?>
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "default/playlist_item.html", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
<?php endforeach; endif; unset($_from); ?>
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<p>(Empty playlist)</p>
|
||||
<?php endif; ?>
|
||||
|
||||
68
smarty/templates_c/%%B6^B60^B607F601%%control.html.php
Normal file
68
smarty/templates_c/%%B6^B60^B607F601%%control.html.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 18:54:12
|
||||
compiled from default/control.html */ ?>
|
||||
<?php require_once(SMARTY_CORE_DIR . 'core.load_plugins.php');
|
||||
smarty_core_load_plugins(array('plugins' => array(array('modifier', 'escape', 'default/control.html', 3, false),array('modifier', 'string_format', 'default/control.html', 12, false),)), $this); ?>
|
||||
<div id="song_display">
|
||||
|
||||
<!--<div id="cover_image"><?php if ($this->_tpl_vars['coverimage']): ?><img id="cover" title="<?php echo $this->_tpl_vars['current_album']; ?>
|
||||
" src="lib/image.php?file=<?php echo ((is_array($_tmp=$this->_tpl_vars['coverimage'])) ? $this->_run_mod_handler('escape', true, $_tmp, 'url') : smarty_modifier_escape($_tmp, 'url')); ?>
|
||||
&size=<?php echo $this->_tpl_vars['coversize']; ?>
|
||||
" /><?php else: ?><img id="cover" title="<?php echo $this->_tpl_vars['current_album']; ?>
|
||||
" src="templates/default/images/default_cover.png" /><?php endif; ?></div>
|
||||
|
||||
<div id="album_info"><p id="artist"><?php echo $this->_tpl_vars['current_artist']; ?>
|
||||
</p><?php if ($this->_tpl_vars['current_album']): ?><p id="album"><?php echo $this->_tpl_vars['current_album']; ?>
|
||||
</p><?php endif; ?></div>
|
||||
|
||||
<?php if ($this->_tpl_vars['mpd_state'] == 'play' || $this->_tpl_vars['mpd_state'] == 'pause'): ?><div id="tracktime"><span id="min"><?php echo $this->_tpl_vars['initialmin']; ?>
|
||||
</span>:<span id="sec"><?php echo $this->_tpl_vars['initialsec']; ?>
|
||||
</span> <span id="total">(<?php echo $this->_tpl_vars['totalmin']; ?>
|
||||
:<?php echo $this->_tpl_vars['totalsec']; ?>
|
||||
)</span></div><?php endif; ?>
|
||||
|
||||
<?php if ($this->_tpl_vars['mpd_state'] == 'play' || $this->_tpl_vars['mpd_state'] == 'pause'): ?><div id="progress"><div id="progressbar" style="margin-right: <?php echo $this->_tpl_vars['initialprogress']; ?>
|
||||
px;"> </div></div><?php else: ?><div id="progress"></div><?php endif; ?>
|
||||
|
||||
<div id="song_info">
|
||||
<?php if ($this->_tpl_vars['current_title']): ?><span id="pos"><?php echo ((is_array($_tmp=$this->_tpl_vars['current_track_no']+1)) ? $this->_run_mod_handler('string_format', true, $_tmp, "%02d") : smarty_modifier_string_format($_tmp, "%02d")); ?>
|
||||
.</span> <span id="title"><?php echo $this->_tpl_vars['current_title']; ?>
|
||||
</span><br /><br /><?php elseif ($this->_tpl_vars['current_filename']): ?><?php echo $this->_tpl_vars['current_filename']; ?>
|
||||
<?php else: ?>[Nothing playing]<?php endif; ?>
|
||||
|
||||
</div>-->
|
||||
|
||||
<div id="cover_image"><img id="cover" title="<?php echo $this->_tpl_vars['current_album']; ?>
|
||||
" src="templates/<?php echo $this->_tpl_vars['template']; ?>
|
||||
/images/default_cover.png" /></div>
|
||||
|
||||
<div id="album_info"><p id="artist"></p><p id="album"></p></div>
|
||||
|
||||
<div id="tracktime"><span id="current">--:--</span></div>
|
||||
|
||||
<div id="progress"><div id="progressbar" style="margin-right: 100%;"> </div></div>
|
||||
|
||||
<div id="song_info">
|
||||
<span id="pos"></span> <span id="title"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="controls">
|
||||
<div class="container">
|
||||
<ul id="main_controls">
|
||||
<li><a rel="prev" id="prev_button" class="control_button" href="index.php?action=prev"></a></li>
|
||||
<li><a rel="playpause" id="playpause_button" class="control_button" href="index.php?action=playpause"></a></li>
|
||||
<li><a rel="stop" id="stop_button" class="control_button" href="index.php?action=stop"></a></li>
|
||||
<li><a rel="next" id="next_button" class="control_button" href="index.php?action=next"></a></li>
|
||||
</ul>
|
||||
<div id="volume_repeat">
|
||||
<div id="volume_container">
|
||||
<a id="volume_slider"></a>
|
||||
<a id="volume_hide" href="index.php?action=hide_volume"></a>
|
||||
</div>
|
||||
<a rel="volume" id="volume_button" href="index.php?action=show_volume"></a>
|
||||
<a rel="repeat" id="repeat_button" class="control_button" href="index.php?action=repeat"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
54
smarty/templates_c/%%C1^C14^C14AEF59%%index.html.php
Normal file
54
smarty/templates_c/%%C1^C14^C14AEF59%%index.html.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-11 20:34:43
|
||||
compiled from default/index.html */ ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>NeoMPC <?php echo $this->_tpl_vars['version']; ?>
|
||||
</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<meta name="viewport" content="width=320, user-scalable=no"/>
|
||||
|
||||
<style>
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "default/styles.css", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" src="lib/js/jquery-min.js"></script>
|
||||
<script type="text/javascript">
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "../lib/js/neompc.js", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "default/menu.html", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
|
||||
<div id="page">
|
||||
|
||||
<?php $_smarty_tpl_vars = $this->_tpl_vars;
|
||||
$this->_smarty_include(array('smarty_include_tpl_file' => "default/".($this->_tpl_vars['page']).".html", 'smarty_include_vars' => array()));
|
||||
$this->_tpl_vars = $_smarty_tpl_vars;
|
||||
unset($_smarty_tpl_vars);
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php echo $this->_tpl_vars['refresh']; ?>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
116
smarty/templates_c/%%FD^FD6^FD689738%%neompc.js.php
Normal file
116
smarty/templates_c/%%FD^FD6^FD689738%%neompc.js.php
Normal file
@ -0,0 +1,116 @@
|
||||
<?php /* Smarty version 2.6.26, created on 2010-01-12 20:03:58
|
||||
compiled from ../lib/js/neompc.js */ ?>
|
||||
progressbar_width = <?php echo $this->_tpl_vars['progressbar_width']; ?>
|
||||
;
|
||||
template = '<?php echo $this->_tpl_vars['template']; ?>
|
||||
';
|
||||
volume_min = <?php echo $this->_tpl_vars['volume_min']; ?>
|
||||
;
|
||||
volume_max = <?php echo $this->_tpl_vars['volume_max']; ?>
|
||||
;
|
||||
vol_orientation = '<?php echo $this->_tpl_vars['volume_orientation']; ?>
|
||||
'
|
||||
|
||||
String.prototype.pad = function(l, s){
|
||||
return (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length) + 1).join(s)).substr(0, s.length) + this + s.substr(0, l - s.length) : this;
|
||||
};
|
||||
|
||||
function seconds_to_time(seconds) {
|
||||
time = Math.floor(seconds / 60).toFixed().pad(2, "0") + ":" + (seconds % 60).toFixed().pad(2, "0");
|
||||
return time;
|
||||
}
|
||||
|
||||
function volume_to_pos(volume) {
|
||||
pos = volume_min + (volume / 100) * (volume_max - volume_min);
|
||||
return pos;
|
||||
}
|
||||
|
||||
function pos_to_volume(pos) {
|
||||
|
||||
}
|
||||
|
||||
function ajax_control(action) {
|
||||
// this function will fire an AJAX call with the appropriate action.
|
||||
// or it will simply fire an AJAX call to get the current status.
|
||||
|
||||
$.getJSON('control.php', {action: action},
|
||||
function(data){
|
||||
// this is where we update the page.
|
||||
if (data.state == 'play') {
|
||||
$('#playpause_button').addClass('pause');
|
||||
}
|
||||
else {
|
||||
$('#playpause_button').removeClass('pause');
|
||||
}
|
||||
$('#pos').text((data.track_no > -1 ? data.track_no+'.' : ''));
|
||||
$('#artist').text(data.artist || '');
|
||||
$('#album').text(data.album || '');
|
||||
$('#title').text(data.title || '');
|
||||
$('#cover').attr('src', (data.coverimage ? data.coverimage : 'templates/'+template+'/images/default_cover.png'));
|
||||
$('#current').text((data.position > -1 ? seconds_to_time(data.position) : '--:--'));
|
||||
if (data.repeat == 1) {
|
||||
$('#repeat_button').addClass('selected');
|
||||
}
|
||||
else {
|
||||
$('#repeat_button').removeClass('selected');
|
||||
}
|
||||
$('#volume_slider').css('top', volume_to_pos(data.volume)+'px');
|
||||
update_progress(data.position, data.length);
|
||||
});
|
||||
}
|
||||
|
||||
function update_progress(song_position, song_length) {
|
||||
|
||||
//set the interval if it hasn't been set already.
|
||||
//if (update_int == null) {
|
||||
// update_int = setInterval('update_progress()', 1000);
|
||||
//}
|
||||
|
||||
if (song_position > -1) {
|
||||
new_margin = Math.round(progressbar_width - ((song_position / song_length) * progressbar_width));
|
||||
|
||||
new_margin_string = new_margin + 'px';
|
||||
|
||||
$('#progressbar').css('marginRight', new_margin_string);
|
||||
|
||||
}
|
||||
else {
|
||||
$('#progressbar').css('marginRight', '100%');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function hide_volume() {
|
||||
$('#volume_container').hide();
|
||||
$('#volume_button').css('visibility', 'visible');
|
||||
}
|
||||
|
||||
function show_volume() {
|
||||
$('#volume_container').show();
|
||||
$('#volume_button').css('visibility', 'hidden');
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
update_int = null;
|
||||
|
||||
$('.control_button').click(function(event){
|
||||
ajax_control(this.rel);
|
||||
this.blur();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#volume_button').click(function(event){
|
||||
show_volume();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#volume_container').click(function(event){
|
||||
hide_volume();
|
||||
return false;
|
||||
});
|
||||
|
||||
ajax_control();
|
||||
ajax_int = setInterval('ajax_control()', 1000);
|
||||
|
||||
});
|
||||
BIN
templates/default/._config.inc.php
Normal file
BIN
templates/default/._config.inc.php
Normal file
Binary file not shown.
BIN
templates/default/._control.html
Normal file
BIN
templates/default/._control.html
Normal file
Binary file not shown.
BIN
templates/default/._index.html
Normal file
BIN
templates/default/._index.html
Normal file
Binary file not shown.
BIN
templates/default/._styles.css
Normal file
BIN
templates/default/._styles.css
Normal file
Binary file not shown.
BIN
templates/default/images/buttons.png
Executable file
BIN
templates/default/images/buttons.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
BIN
templates/default/images/repeat.png
Executable file
BIN
templates/default/images/repeat.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
BIN
templates/default/images/shuffle.png
Executable file
BIN
templates/default/images/shuffle.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
BIN
templates/default/images/volume.png
Normal file
BIN
templates/default/images/volume.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
BIN
templates/default/images/volume_container.png
Normal file
BIN
templates/default/images/volume_container.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.0 KiB |
BIN
templates/default/images/volume_slider.png
Normal file
BIN
templates/default/images/volume_slider.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1016 B |
Loading…
Reference in New Issue
Block a user