2 Commits

Author SHA1 Message Date
6c2df772f9 - Add docker support,
- Add cache support for zip file size,
- Remove obsolete JPlayer.
2026-07-13 00:44:09 +02:00
c764dcaba1 - Add docker support,
- Remove obsolete JPlayer.
2026-07-12 13:14:47 +02:00
47 changed files with 442 additions and 213 deletions

81
Dockerfile Normal file
View File

@@ -0,0 +1,81 @@
# Rx3/LMBrowse Dockerfile
#-------------------------------------------------------------------------------
ARG IMG_FROM_URL="rx3-docker/pphp-apache:latest"
FROM ${IMG_FROM_URL}
ARG IMG_NAME
ARG IMG_NAME_FULL
ARG IMG_VERSION
ARG IMG_MAINTAINER
ARG IMG_URL
LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL}
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER}
LABEL maintainer=${IMG_MAINTAINER}
ARG MODULE_NAME
ARG MODULE_PATH
ARG MODULE_VERSION
ARG HTTPD_VHOST_CONFIG_DIR=/etc/httpd/conf/sites.d/default_vhost.d
ARG LMBROWSE_HTTPD_CONFIG_NAME=70-lmbrowse.conf
ARG LMBROWSE_HTTPD_CONFIG_FILE=${HTTPD_VHOST_CONFIG_DIR}/${LMBROWSE_HTTPD_CONFIG_NAME}
ARG LMBROWSE_CONFIG_NAME=lmbrowse_config.inc
ARG LMBROWSE_CONFIG_FILE=/etc/lmbrowse/lmbrowse_config.inc
ARG LMBROWSE_SHARE_DIR=/usr/share/lmbrowse
ARG LMBROWSE_WWW_DIR=/var/www/lmbrowse
ARG LMBROWSE_LINKS="about.txt history.txt news.txt welcome.txt discography .links fonts skin skins tracks"
#-------------------------------------------------------------------------------------------------------
ARG LMBROWSE='#!/bin/bash \n\
\n\
cp -f '${LMBROWSE_HTTPD_CONFIG_FILE}.ref' '${LMBROWSE_HTTPD_CONFIG_FILE}' \n\
\n\
sed -i -e "s%LMBROWSE_URL%${LMBROWSE_URL}%g" '${LMBROWSE_HTTPD_CONFIG_FILE}' \n\
\n\
\n\
if [[ ! -f '${LMBROWSE_CONFIG_FILE}' ]] \n\
then \n\
cp '${LMBROWSE_SHARE_DIR}/${LMBROWSE_CONFIG_NAME}.ref' '${LMBROWSE_CONFIG_FILE}' \n\
fi \n\
\n\
\n\
if [[ ! -d '${LMBROWSE_WWW_DIR}'/discography ]] \n\
then \n\
cp -Rf '${LMBROWSE_WWW_DIR}.ref/*' '${LMBROWSE_WWW_DIR}' \n\
fi \n\
\n\
chown -R apache:apache '${LMBROWSE_WWW_DIR}' \n\
chmod -R a-x,a+X '${LMBROWSE_WWW_DIR}' \n\
chmod o-rwx '${LMBROWSE_WWW_DIR}' \n\
chmod -R ug+rwX '${LMBROWSE_WWW_DIR}
#-------------------------------------------------------------------------------------------------------
COPY ${MODULE_PATH}/conf.d/${LMBROWSE_HTTPD_CONFIG_NAME}.ref ${LMBROWSE_HTTPD_CONFIG_FILE}.ref
COPY ${MODULE_PATH}/html ${LMBROWSE_SHARE_DIR}
RUN . /etc/profile.d/rx3.sh && isl --add ${IMG_URL} \
&& urpmi.update -a \
&& urpmi --force flac zip \
&& sed -i -e "s%Alias /lmbrowse/%Alias LMBROWSE_URL%" ${LMBROWSE_HTTPD_CONFIG_FILE}.ref \
&& mv ${LMBROWSE_SHARE_DIR}/${LMBROWSE_CONFIG_NAME} ${LMBROWSE_SHARE_DIR}/${LMBROWSE_CONFIG_NAME}.ref \
&& ln -s ${LMBROWSE_CONFIG_FILE} ${LMBROWSE_SHARE_DIR}/${LMBROWSE_CONFIG_NAME} \
&& mkdir ${LMBROWSE_WWW_DIR}.ref \
&& for file in ${LMBROWSE_LINKS}; \
do \
mv ${LMBROWSE_SHARE_DIR}/${file} ${LMBROWSE_WWW_DIR}.ref \
&& ln -s ${LMBROWSE_WWW_DIR}/${file} ${LMBROWSE_SHARE_DIR}; \
done \
&& echo -e "${LMBROWSE}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/lmbrowse \
&& chmod a+x /etc/init.d/lmbrowse \
&& ln -s /etc/init.d/lmbrowse /etc/rcD.d/S40lmbrowse

View File

@@ -1,12 +1,22 @@
# $RCSfile: ReleaseNotes.txt,v $
# $Revision: 1.1 $
# $Name: $
# $Date: 2012/12/01 16:27:04 $
# $Author: agibert $
------------------------------------------------------------------------------------------------------------------------------------
LMBrowse V 1.9.1 - A. GIBERT - 2026/07/13
------------------------------------------------------------------------------------------------------------------------------------
- Add docker support,
- Add cache support for zip file size,
- Remove obsolete JPlayer.
------------------------------------------------------------------------------------------------------------------------------------
LMBrowse V 1.9.0 - A. GIBERT - 2026/06/20
------------------------------------------------------------------------------------------------------------------------------------
- Now open a modal window over the curent window to display cover, extra, icons...
- Force .hide handling in play and track page.
[...]
--------------------------------------------------------------------------------
LMBrowse V 1.0.0-1 - A. Gibert - 2012/12/01

58
compose.yaml Normal file
View File

@@ -0,0 +1,58 @@
# Rx3/LMBrowse Docker Image
#-------------------------------------------------------------------------------
name: ${HOST_NAME_PREFIX}
services:
#-------------------------------------------------------------------------------
webapp:
container_name: ${WA_HOST_NAME}
hostname: ${WA_HOST_NAME}
image: ${WA_IMG_URL}
restart: unless-stopped
build:
dockerfile: Dockerfile
args:
IMG_NAME: ${WA_IMG_URL}
IMG_NAME_FULL: ${WA_IMG_NAME_FULL}
IMG_VERSION: ${WA_IMG_VERSION}
IMG_MAINTAINER: ${APPL_MAINTAINER}
IMG_URL: ${WA_IMG_URL}
IMG_FROM_URL: ${WA_IMG_FROM_URL}
MODULE_NAME: ${WA_MODULE_NAME}
MODULE_PATH: ${WA_MODULE_PATH}
MODULE_VERSION: ${WA_MODULE_VERSION}
environment:
APACHE_UID: ${WA_USER_ID}
APACHE_GID: ${WA_GROUP_ID}
APACHE_DOC_ROOT: ${WA_DOC_ROOT}
APACHE_HTTPD_ENABLED: ${WA_APACHE_HTTPD_ENABLED}
PHP_MEMORY_LIMIT: ${WA_PHP_MEMORY_LIMIT}
PHP_UPLOAD_LIMIT: ${WA_PHP_UPLOAD_LIMIT}
LMBROWSE_URL: ${WA_LMBROWSE_URL}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:${WA_PORT_MAIN_INT}"]
interval: 10s
timeout: 3s
retries: 3
volumes:
- ./${WA_LOG_INIT_EXT}:${WA_LOG_INIT_INT}
- ./${WA_LOG_SV_EXT}:${WA_LOG_SV_INT}
- ./${WA_LOG_HTTPD_EXT}:${WA_LOG_HTTPD_INT}
- ./${WA_CONF_EXT}:${WA_CONF_INT}
- ./${WA_WWW_EXT}:${WA_WWW_INT}
ports:
- "127.0.0.1:${WA_PORT_SV_EXT}:${WA_PORT_SV_INT}"
- "127.0.0.1:${WA_PORT_MAIN_EXT}:${WA_PORT_MAIN_INT}"

121
env.dist Normal file
View File

@@ -0,0 +1,121 @@
# Rx3/LMBrowse Docker Image
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Global Settings
#-------------------------------------------------------------------------------
ORG_NAME="rx3-docker"
ORG_REGISTRY="docker.xor.rx3:5000"
ORG_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}"
#-------------------------------------------------------------------------------
# Image Settings
#-------------------------------------------------------------------------------
APPL_NAME="lmbrowse"
APPL_NAME_FULL="LMBrowse Docker Image"
APPL_NAME_SHORT="lmb"
APPL_ORG="rx3"
APPL_VERSION="1.0.0"
APPL_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
#-------------------------------------------------------------------------------
# User Settings
#-------------------------------------------------------------------------------
#APPL_ENV="prd"
#APPL_ENV="tst"
#APPL_ENV="int"
APPL_ENV="dvp"
#-------------------------------------------------------------------------------
# Common
#-------------------------------------------------------------------------------
if [[ "${APPL_ENV}" != "prd" ]]
then
APPL_SUFFIX="-${APPL_ENV}"
PORT_ENV_OFFSET=100
if [[ "${APPL_ENV}" == "tst" ]]
then
DOCKER_TOOLS_USER_GROUP_FORCE=FALSE
else
DOCKER_TOOLS_USER_GROUP_FORCE=TRUE
fi
else
APPL_SUFFIX=""
PORT_ENV_OFFSET=0
DOCKER_TOOLS_USER_GROUP_FORCE=FALSE
fi
if [[ "${APPL_ENV}" != "dvp" ]]
then
APPL_USER="apache"
APPL_GROUP="lm"
else
APPL_USER="apache"
APPL_GROUP="apache"
fi
#APPL_URL_PREFIX="${ORG_REGISTRY}/${APPL_ORG}/${APPL_NAME_SHORT}"
APPL_URL_PREFIX="${ORG_REGISTRY}/${APPL_ORG}"
HOST_NAME_PREFIX=${APPL_NAME_SHORT}${APPL_SUFFIX}
PORT_SV_INT=9001
PORT_SV_OFFSET=1000
NETWORK_NAME=${HOST_NAME_PREFIX}
NETWORK_IF_NAME=br-${APPL_NAME_SHORT}-${APPL_ENV}
DOCKER_TOOLS_DEBUG=FALSE
DOCKER_TOOLS_VOLUME=SINGLE
#DOCKER_TOOLS_VOLUME=MIXED
#DOCKER_TOOLS_VOLUME=MERGED
#DOCKER_TOOLS_VOLUME=SPLITED
#DOCKER_TOOLS_EXEPTION_LIBS="webapp:/var/www/data"
#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+----------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+
# | Variable | Service | Target Image | From Image | Module | Main Port | Admin Port | User | Group |
# | Prefix | Name | URL Prefix | Name | Name Full | Version | URL Prefix | Name | Version | Name | Version | Ext | Int | Ext | Int | Name / Id | Name / Id |
#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+----------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+
docker_service_add WA webapp ${APPL_URL_PREFIX} ${APPL_NAME} "${APPL_NAME_FULL}" ${APPL_VERSION}-mga9 ${ORG_URL_PREFIX} php-apache 1.7.0-mga9 - - 8069 80 - - ${APPL_USER} ${APPL_GROUP}
#-------------------------------------------------------------------------------
# Web App
#-------------------------------------------------------------------------------
SERVER_CROND_ENABLED="TRUE"
WA_MODULE_PATH=src
WA_DOC_ROOT="/var/www/html"
WA_APACHE_HTTPD_ENABLED="TRUE"
WA_PHP_MEMORY_LIMIT="512M"
WA_PHP_UPLOAD_LIMIT="32M"
WA_LOG_HTTPD_INT=/var/log/httpd
WA_LOG_HTTPD_EXT=./${WA_LOG_HTTPD_INT}
WA_CONF_INT=/etc/${APPL_NAME}
WA_CONF_EXT=./${WA_CONF_INT}
WA_WWW_INT=/var/www/${APPL_NAME}
WA_WWW_EXT=./${WA_WWW_INT}
WA_LMBROWSE_URL="/"

4
etc/lmbrowse/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@@ -1,3 +0,0 @@
This is the About text !
Bye Bye...

View File

@@ -0,0 +1,8 @@
# LMBrowse configuration
Alias /lmbrowse/ /usr/share/lmbrowse/
<Directory /usr/share/lmbrowse>
Require all granted
Options +FollowSymLinks
</Directory>

32
src/html/.htaccess Normal file
View File

@@ -0,0 +1,32 @@
# AddType TYPE/SUBTYPE EXTENSION
AddType audio/mpeg mp3
AddType audio/mp4 m4a
AddType audio/ogg ogg
AddType audio/ogg oga
AddType audio/webm webma
AddType audio/wav wav
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:
<files *.ttf>
SetOutputFilter DEFLATE
</files>
<files *.eot>
SetOutputFilter DEFLATE
</files>
<Files lmbrowse_config.inc>
order allow,deny
deny from all
</Files>

3
src/html/about.txt Normal file
View File

@@ -0,0 +1,3 @@
This is the About text!
Bye Bye...

View File

1
src/html/history.txt Normal file
View File

@@ -0,0 +1 @@
This is the History text!

1
src/html/index.php Symbolic link
View File

@@ -0,0 +1 @@
lmbrowse.php

View File

@@ -1,24 +1,27 @@
<?
/*
* LMBrowse - Langueur Monotone Browser
* Copyright (C) 2012-2026 Arnaud G. GIBERT
* mailto:arnaud@rx3.net
* http://www.rx3.org/dvp/lmbrowse
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/*--------------------------------------------------------------------------------------------------------------------------------*/
/* */
/* LMBrowse - Langueur Monotone Browser */
/* */
/* Copyright (C) 2012-2026 Arnaud G. GIBERT */
/* mailto:arnaud@rx3.net */
/* http://www.rx3.org/dvp/lmbrowse */
/* */
/* This is free software: you can redistribute it and/or modify it */
/* under the terms of the GNU Lesser General Public License as published */
/* by the Free Software Foundation, either version 3 of the License, or */
/* (at your option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */
/* */
/* You should have received a copy of the GNU Lesser General Public */
/* License along with this program; If not, see */
/* <https://www.gnu.org/licenses/>. */
/* */
/*--------------------------------------------------------------------------------------------------------------------------------*/
@@ -37,7 +40,7 @@ $time_start = microtime_float();
include "lmbrowse_config.inc";
$lmb_myname="LMBrowse";
$lmb_myver="1.9.0-1";
$lmb_myver="1.9.1-1";
@@ -166,7 +169,7 @@ function lmb_cookies_load()
lmb_cookie_load( "video_res", "1080p");
lmb_cookie_load( "jpsolution", "native");
// lmb_cookie_load( "jpsolution", "native");
lmb_cookie_load( "admin", "");
}
@@ -458,7 +461,7 @@ function lmb_make_tab( $tab_id, $css_id, $tab_side, $logo_path, $img_path, $data
if( $logo_path[0] == "/")
{
if( $img_path[0] == "/")
if( $img_path != "")
{
$logo_tag = "<td class=\"logo-{$logo_side}\" style=\"width: 20%;\"><img class=\"button-item\" src=\"{$logo_path}\" alt=\"\" onclick=\"openModal('{$img_path}')\" style=\"cursor:pointer\"/></td>";
}
@@ -666,7 +669,6 @@ function lmb_header( $page_id, $page_name, $page_title, $description, $keywords,
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>
<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"{$skin_path}/images/favicon.ico\"/>
<link rel=\"stylesheet\" type=\"text/css\" href=\"{$skin_path}/default.css\"/>
<link rel=\"stylesheet\" type=\"text/css\" href=\"/jplayer/skin/pink.flag/css/jplayer.pink.flag.css\"/>
<title>$page_name</title>
";
@@ -2372,7 +2374,7 @@ function lmb_video_file_tab_get( $play_type, $play_id, $play_priority, $video_id
$play_path = lmb_play_path_get( $play_type, $play_id, $play_priority);
$video_path = "{$play_path}/videos";
$cmd = "ls {$video_path}/{$video_id}* | sed -e 's/.*-//' -e 's/\..*$//' | grep -v icon | grep -v poster | sort -rnu";
$cmd = "ls {$video_path}/{$video_id}* 2>/dev/null | sed -e 's/.*-//' -e 's/\..*$//' | grep -v icon | grep -v poster | sort -rnu";
exec( $cmd, $video_format_tab);
$file_tab = array();
@@ -2470,7 +2472,7 @@ function lmb_videolist( $play_type, $play_id, $play_priority, $skin_path)
ob_start();
$cmd="ls {$video_path}/* | sed -e 's/.*\.//' | grep -v \"png\" | sort -u";
$cmd="ls {$video_path}/* 2>/dev/null | sed -e 's/.*\.//' | grep -v \"png\" | sort -u";
exec( $cmd, $codec_tab);
if( count( $codec_tab) == 0 || ( file_exists( "{$video_path}/.hide" ) && ! lmb_admin_is()))
@@ -2944,6 +2946,7 @@ function lmb_play_page( $play_type, $play_id, $play_priority)
$play_name = lmb_play_type_name_get( $play_type);
$skin_path = "{$play_path}/skin";
lmb_cache_test( $play_path);
lmb_header( 3, "Langueur Monotone - {$play_title} Page", "{$play_title}", "Langueur Monotone play page, giving all the information about {$play_info["name"]} {$play_name}", "{$play_type},{$play_info["name"]}", 0, "{$skin_path}");
lmb_play_body( $play_type, $play_id, $play_priority, $skin_path);
@@ -2958,7 +2961,7 @@ function lmb_play_page( $play_type, $play_id, $play_priority)
/*--------------------------------------------------------------------------------------------------------------------*/
/* Track List Page */
/* Track List Body */
/*--------------------------------------------------------------------------------------------------------------------*/
function lmb_tracklist_body( $skin_path)
@@ -3218,10 +3221,10 @@ function lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id)
/*--------------------------------------------------------------------------------------------------------------------*/
/* JPlayer Insert */
/* Player Insert */
/*--------------------------------------------------------------------------------------------------------------------*/
function lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix)
function lmb_player_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix)
{
global $lmb_cookie_tab;
global $lmb_url_pre;
@@ -3245,40 +3248,6 @@ function lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $t
$track_file_mp3 = "{$track_path}/mp3-192/{$track_file_base}.mp3";
$track_fulltitle = lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id);
$solution_cookie = "jpsolution";
$prefix_url = "{$lmb_url_post}?cookie_id={$solution_cookie}&cookie_value=";
$query_string = preg_replace( "/cookie_id={$solution_cookie}&cookie_value=[^&]*&/", "", "{$_SERVER['QUERY_STRING']}");
$solution_html_url = htmlentities( "{$prefix_url}html, flash&{$query_string}");
$solution_flash_url = htmlentities( "{$prefix_url}flash, html&{$query_string}");
$solution_native_url = htmlentities( "{$prefix_url}native&{$query_string}");
$solution_value = $lmb_cookie_tab[$solution_cookie];
if( "{$solution_value}" == "html, flash")
{
$html_class = "link-item-disabled";
$flash_class = "link-item";
$native_class = "link-item";
}
else
{
if( "{$solution_value}" == "flash, html")
{
$html_class = "link-item";
$flash_class = "link-item-disabled";
$native_class = "link-item";
}
else
{
$html_class = "link-item";
$flash_class = "link-item";
$native_class = "link-item-disabled";
}
}
if( "{$solution_value}" == "native")
{
echo "
<table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tbody>
@@ -3292,123 +3261,10 @@ Your browser does not support the audio element.
</audio>
</td>
</tr>
<tr style=\"background-color:#222222; height: 25px;\">
<td style=\"horizontal-align: left; vertical-align: middle;\">
<div style=\"font-size: 12px;\"><a rel=\"nofollow\" class=\"{$html_class}\" href=\"{$solution_html_url}\">JPlayer HTML</a>&nbsp;<a rel=\"nofollow\" class=\"{$flash_class}\" href=\"{$solution_flash_url}\">JPlayer Flash</a>&nbsp;<a rel=\"nofollow\" class=\"{$native_class}\" href=\"{$solution_native_url}\">Native</a></div>
</td>
</tr>
</tbody>
</table>
";
}
else
{
echo "
<table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tbody>
<tr>
<td style=\"background-color:#3a2a45; border-top:1px solid #554461; border-bottom:1px solid #180a1f; border-left:1px solid #554461;\">&nbsp;</td>
<td style=\"width: 1%;\">
<script type=\"text/javascript\" src=\"/jplayer/lib/jquery.min.js\"></script>
<script type=\"text/javascript\" src=\"/jplayer/jquery.jplayer.min.js\"></script>
<script type=\"text/javascript\" src=\"/jplayer/jquery.jplayer.inspector.js\"></script>
";
echo "
<script type=\"text/javascript\">
//<![CDATA[
$(document).ready(function(){
$(\"#jquery_jplayer_1\").jPlayer({
ready: function (event) {
$(this).jPlayer(\"setMedia\", {
title: \"{$track_fulltitle}\",
oga:\"{$track_file_ogg}\",
mp3:\"{$track_file_mp3}\"
}).jPlayer(\"play\");
},
swfPath: \"/jplayer\",
supplied: \"oga, mp3\",
wmode: \"window\",
useStateClassSkin: true,
autoBlur: true,
smoothPlayBar: false,
keyEnabled: true,
remainingDuration: true,
toggleDuration: true,
backgroundColor: \"#012345\"
});
$(\"#jplayer_inspector\").jPlayerInspector({jPlayer:$(\"#jquery_jplayer_1\")});
});
//]]>
</script>
";
echo "
<div id=\"jquery_jplayer_1\" class=\"jp-jplayer\"></div>
<div id=\"jp_container_1\" class=\"jp-audio\" role=\"application\" aria-label=\"media player\">
<div class=\"jp-type-single\">
<div class=\"jp-gui jp-interface\">
<div class=\"jp-volume-controls\">
<button class=\"jp-mute\" role=\"button\" tabindex=\"0\">mute</button>
<button class=\"jp-volume-max\" role=\"button\" tabindex=\"0\">max volume</button>
<div class=\"jp-volume-bar\">
<div class=\"jp-volume-bar-value\"></div>
</div>
</div>
<div class=\"jp-controls-holder\">
<div class=\"jp-controls\">
<button class=\"jp-play\" role=\"button\" tabindex=\"0\">play</button>
<button class=\"jp-stop\" role=\"button\" tabindex=\"0\">stop</button>
</div>
<div class=\"jp-progress\">
<div class=\"jp-seek-bar\">
<div class=\"jp-play-bar\"></div>
</div>
</div>
<div class=\"jp-current-time\" role=\"timer\" aria-label=\"time\">&nbsp;</div>
<div class=\"jp-duration\" role=\"timer\" aria-label=\"duration\">&nbsp;</div>
<div class=\"jp-toggles\">
<button class=\"jp-repeat\" role=\"button\" tabindex=\"0\">repeat</button>
</div>
</div>
</div>
<div class=\"jp-details\">
<div class=\"jp-title\" aria-label=\"title\">&nbsp;</div>
</div>
<div class=\"jp-no-solution\">
<span>Update Required</span>
To play the media you will need to either update your browser to a recent version or update your <div class=\"link-item\"><a href=\"http://get.adobe.com/flashplayer/\" target=\"_blank\">Flash plugin</a></div>.
</div>
<div>&nbsp;
</div>
<div style=\"font-size: 12px;\"><a rel=\"nofollow\" class=\"{$html_class}\" href=\"{$solution_html_url}\">JPlayer HTML</a>&nbsp;<a rel=\"nofollow\" class=\"{$flash_class}\" href=\"{$solution_flash_url}\">JPlayer Flash</a>&nbsp;<a rel=\"nofollow\" class=\"{$native_class}\" href=\"{$solution_native_url}\">Native</a></div>
</div>
</div>
";
echo " </td>
<td style=\"background-color:#3a2a45; border-top:1px solid #554461; border-bottom:1px solid #180a1f; border-right:1px solid #180a1f;\">&nbsp;</td>
</tr>
</tbody>
</table>
";
if( $lmb_jpi_enable == true)
{
echo "<div id=\"jplayer_inspector\"></div>";
}
}
}
@@ -3475,7 +3331,7 @@ function lmb_track_intro( $play_type, $play_id, $play_priority, $track_id, $trac
<td>
";
lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix);
lmb_player_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix);
echo " </td>
</tr>
@@ -3863,6 +3719,8 @@ function lmb_track_page( $play_type, $play_id, $play_priority, $track_id)
$track_title = lmb_title_get( $play_type, $play_id, $play_priority, $track_id);
$track_fulltitle = lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id);
lmb_cache_test( $play_path);
lmb_header( 4, "Langueur Monotone - {$track_fulltitle} - Track Page", "{$track_fulltitle} - Track", "Langueur Monotone track page, giving all the information about {$track_fulltitle} track", "track, {$track_title}, {$track_fulltitle}", 962, "{$skin_path}");
lmb_track_body( $play_type, $play_id, $play_priority, $track_id, $skin_path);
lmb_footer( $skin_path);
@@ -3875,6 +3733,26 @@ function lmb_track_page( $play_type, $play_id, $play_priority, $track_id)
/*--------------------------------------------------------------------------------------------------------------------*/
/* Cache Test */
/*--------------------------------------------------------------------------------------------------------------------*/
function lmb_cache_test( $directory)
{
$cache_dir = "{$directory}/cache";
// Check if any content file is newer than the cache directory
$count = (int)exec( "find {$directory} -newer {$cache_dir} -not -path '{$cache_dir}/*' | grep -c .");
if( $count > 0)
{
// Purge all caches, they are all potentially stale
array_map('unlink', glob("{$cache_dir}/*"));
}
}
/*--------------------------------------------------------------------------------------------------------------------*/
/* Download ZIP */
/*--------------------------------------------------------------------------------------------------------------------*/
@@ -3885,17 +3763,32 @@ function lmb_download_zip( $directory, $file_list, $mode)
{
case "SIZE":
{
return( exec( "cd {$directory}; du -cb ${file_list} | tail -1 | cut -f 1"));
$cache_dir = "{$directory}/cache";
$cache_file = "{$cache_dir}/size-" . md5($file_list);
// Ensure cache directory exists
if( !is_dir( $cache_dir))
{
mkdir( $cache_dir, 0755);
}
case "RSIZE":
if( file_exists( $cache_file))
{
return( exec( "cd {$directory}; zip -0 -j -p - ${file_list} | wc -c"));
$size = file_get_contents( $cache_file);
}
else
{
// Recompute and store — this updates cache dir mtime for next check
$size = exec( "cd {$directory}; zip -0 -j -p - {$file_list} 2>/dev/null | wc -c");
file_put_contents( $cache_file, $size);
}
return( (int)$size);
}
case "DUMP":
{
passthru( "cd {$directory}; zip -0 -j -p - ${file_list}");
passthru( "cd {$directory}; zip -0 -j -p - {$file_list} 2>/dev/null");
break;
}
}
@@ -3915,13 +3808,15 @@ function lmb_download_file( $play_dir, $file_list, $mode, $download_name)
}
else
{
$zip_size = lmb_download_zip( "{$play_dir}", $file_list, "RSIZE");
$zip_size = lmb_download_zip( "{$play_dir}", $file_list, "SIZE");
header( "Content-Description: Langueur Monotone - {$download_name}");
header( 'Content-Type: application/zip');
header( 'Content-Disposition: attachment; filename="'."langueur_monotone-{$download_name}.zip".'"');
header( 'Content-Length: ' . $zip_size);
flush();
$zip_size = lmb_download_zip( "{$play_dir}", $file_list, "DUMP");
}
}

1
src/html/skin Symbolic link
View File

@@ -0,0 +1 @@
skins/black

1
src/html/welcome.txt Normal file
View File

@@ -0,0 +1 @@
This is the Welcome text!

4
var/log/httpd/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

4
var/log/init/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

4
var/log/supervisor/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

4
var/www/lmbrowse/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore