X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=index.php;h=fa52b99e5b30c72291b88b73d7ec70885ca4db8e;hb=4df85024dd1e80d9239e8bd1cbbf4fcc4e37f28d;hp=2e1b5b116b37bd13b61d43c4bc7ab4c9fed93009;hpb=ca88871f4c51e904ec23305abf2fd1aa17226103;p=mirrors%2FJukeBox.git diff --git a/index.php b/index.php index 2e1b5b1..fa52b99 100755 --- a/index.php +++ b/index.php @@ -1,23 +1,32 @@ - 'http://google.com/search?q=', + 'Images' => 'http://google.com/images?q=', + 'Karaoke-Lyrics.net' => 'http://www.karaoke-lyrics.net/index.php?page=find&q=', + 'Jyxo.cz multimedia' => 'http://jyxo.cz/s?d=mm&q=', + 'Centrum.cz mp3' => 'http://search.centrum.cz/index.php?sec=mp3&q=', + 'YOUTube.com' => 'http://youtube.com/results?search_query=' +); + +//Flash MusicPlayer (info about settings: http://wpaudioplayer.com/standalone) +$flash_player_swf = $bonus_dir.'/player.swf'; //path to musicplayer +$flash_player_frame = 'playframe-show'; //FlashPlayer Target (playframe-show|playframe-hide) - usefull for compatibility with old music player +$flash_player_options = '?bg=000099&loader=000000&tracker=AAAAFF&skip=FFFFFF' //.'&leftbg=000077&rightbg=000077&righticon=999999' + .'&autostart=yes&initialvolume=100&soundFile='; //& arguments (urlencoded song url will be added) + //Security -error_reporting(0); +error_reporting(0); //This will disable error reporting, wich can pass sensitive data to users + +//External configuration file (overrides index.php configuration) +@include('./_config.php'); + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Init srand(time()); +@ini_set('magic_quotes_gpc' , 'off'); +if(get_magic_quotes_gpc()) die("Error: magic_quotes_gpc needs to be disabled!\n"); + +//Enable flash? +$useflash = is_file($flash_player_swf); + +//Little magic with directories ;o) $current_dir = ereg_replace('/+', '/', '/'.$_GET['dir'].'/'); +if(eregi('(/|\\\\)\\.\\.(/|\\\\)', $current_dir)) { //check for directory traversal ;) + header('Location: ?'); + die('Error - directory not found!'); +} $dir = $music_dir.$current_dir; $url = $music_dir_url.$current_dir; $parent_dir = dirname($current_dir); @@ -57,26 +99,54 @@ function serve_download($filename) { header('X-PHP-Application: Harvie\'s JuKe!Box'); } -function generate_m3u($dir, $prefix='', $recursive=0) { +$nchars_f = array('Á','Ä','Č','Ç','Ď','É','Ě','Ë','Í','Ň','Ó','Ö','Ř','Š','Ť','Ú','Ů','Ü','Ý','Ž','á','ä','č','ç','ď','é','ě','ë','í','ň','ó','ö','ř','š','ť','ú','ů','ü','ý','ž'); +$nchars_t = array('A','A','C','C','D','E','E','E','I','N','O','O','R','S','T','U','U','U','Y','Z','a','a','c','c','d','e','e','e','i','n','o','o','r','s','t','u','u','u','y','z'); + +function unational($text) { + if(!$GLOBALS['national_characters']) return $text; + return(str_replace($GLOBALS['nchars_f'], $GLOBALS['nchars_t'], $text)); +} + +function generate_m3u($dir, $prefix='', $recursive=0, $nl="\r\n", $doubleenc=0) { $dir = $dir . '/'; - $dd = opendir($dir); - while(($item = readdir($dd)) != false) { - if($item == '.' || $item == '..') continue; - if( is_file($dir.$item) && eregi(('\.('.$GLOBALS['m3u_exts'].')$'), $item) ) { - if($GLOBALS['sort'] > 0) { - $temp[] = $item; - } else { - echo($prefix.'/'.str_replace('%2F', '/', (rawurlencode($dir.$item)))."\r\n"); + if(isset($_GET['newline'])) $nl = $_GET['newline']; + if(!isset($_GET['search'])) { + $dd = opendir($dir); + while(($item = readdir($dd)) != false) { + if($item == '.' || $item == '..') continue; + if( is_file($dir.$item) && eregi(('\.('.$GLOBALS['m3u_exts'].')$'), $item) ) { + if($GLOBALS['sort'] > 0) { + $temp[] = $item; + } else { + $item=($prefix.'/'.str_replace('%2F', '/', (rawurlencode($dir.$item))).$nl); + if($doubleenc) $item = rawurlencode($item); + echo($item); + } + } + if($recursive && is_dir($dir.$item)) { + generate_m3u($dir.$item, $prefix, $recursive, $nl, $doubleenc); + } + } + } else { + if(!($searchfp = fopen($GLOBALS['search_cache'], 'r'))) + die("Cannot read cache from $outfile
Refresh cache or set permissions properly!
\n"); + while(!feof($searchfp)) { + $line = trim(fgets($searchfp)); + if(@eregi(str_replace(' ', '(.*)', unational($_GET['search'])), unational($line))) { + $line=(dirname($GLOBALS['music_dir_url']).'/'.str_replace('%2F', '/', (rawurlencode($line))).$nl); + if($doubleenc) $line = rawurlencode($line); + echo($line); } } - if($recursive && is_dir($dir.$item)) { - generate_m3u($dir.$item, $prefix); - } } + if($GLOBALS['sort'] > 0) { @sort($temp); - foreach($temp as $item) - echo($prefix.'/'.str_replace('%2F', '/', (rawurlencode($dir.$item)))."\r\n"); + foreach($temp as $item) { + $temp=($prefix.'/'.str_replace('%2F', '/', (rawurlencode($dir.$item))).$nl); + if($doubleenc) $temp = rawurlencode($temp); + echo($temp); + } } } @@ -117,35 +187,121 @@ function generate_search_cache($dir, $outfile) { } function render_file_line($dir, $item, $dir_url, $index, $filesize, $parent = false) { - $parclass=($index%2?"even":"odd"); $parcolor=($index%2?"lightblue":"white"); + $parclass=($index%2?'even':'odd'); $parcolor=($index%2?'lightblue':'white'); $temp=str_replace('&', '%26', dirname($dir_url)).'/'.str_replace('%2F', '/', (rawurlencode($dir.$item))); if(is_numeric($filesize)) $filesize = round($filesize/(1024*1024), 2); - echo("".''.$index.''); - echo('P'); + echo("".''.$index.''); + echo('P'); if($parent) { echo('/D'); + '" class="icon ifolder">D'); } - if(is_file($GLOBALS['flash_player']) && eregi(('\.('.$GLOBALS['m3u_exts'].')$'), $item)) { - /*echo('/');*/ - echo('/F/'. - 'S'); + if($GLOBALS['useflash'] && eregi(('\.('.$GLOBALS['m3u_exts'].')$'), $item)) { + echo('/F/'. + 'S'); } - echo(' '.str_replace('_', ' ', $item).''.$filesize." MiB \n"); + echo(' '.unxss(str_replace('-',' - ',str_replace('_', ' ', +$item))).''.$filesize." MiB \n"); +} + +function render_dir_line($current_dir, $item, $i) { + $parclass=($i%2?'even':'odd'); $parcolor=($i%2?'lightblue':'white'); + $temp=str_replace('%2F', '/', rawurlencode($current_dir)).rawurlencode($item); + echo("". + ''.$i.'P/'. + 'R'); + if($GLOBALS['useflash']) echo('/F'); + echo('[DIR] '.unxss(str_replace('_', ' ', $item)). + "\n"); +} + +function render_tr_playframe_show() { + if($GLOBALS['flash_player_frame'] == 'playframe-show' && $GLOBALS['useflash']) { ?> + +S + + + Harvie free of charge! Of course...', + 'Don\'t be looser, use GNU/Linux! ;P', + 'Make love and not war!', + 'Take your chance! Prove yourself!', + 'This software is free of charge. If you wan\'t to donate, please send some money to children in Africa/etc...', + 'Fork '.$GLOBALS['title'].' on GIThub :-)Fork me on GitHub' + ); + + echo(''.$quotes[rand(0,sizeof($quotes)-1)]."\n"); + echo('Page was generated in '.(round(microtime(true), 3) - $GLOBALS['exec_time']).' +seconds'); + @readfile($GLOBALS['footer_file']); + echo(''); } function unxss($string) { - return str_replace( - array('&', '"', '\'', '<', '>'), - array('&', '"', ''', '<', '>'), - $string); + return htmlspecialchars($string); +} + +function explode_path($dir) { + $dir = substr($dir, strlen($GLOBALS['music_dir'])+1); + $temp = split('/', ereg_replace('/+', '/', $dir)); + $out = ''; + for($j=sizeof($temp)-1;$j>0;$j--) { + $dir = ''; + for($i=0;$i<(sizeof($temp)-$j);$i++) { + $dir.=$temp[$i].'/'; + } + $out.=''.unxss($temp[$i-1]).'/'; + } + return('./'.$out); +} + +function flash_mp3_player() { + ?> +<?=$GLOBALS['title']?>: Flash Music Player Plugin + + + You need Adobe Flash enabled browser to play records directly in website. + +Refresh cache or set permissions properly!
\n"); - while(!feof($searchfp)) { - $line = trim(fgets($searchfp)); - if(@eregi(str_replace(' ', '(.*)', $_GET['search']), $line)) - echo(dirname($music_dir_url).'/'.str_replace('%2F', '/', (rawurlencode($line)))."\r\n"); - } - } - die("\n"); + generate_m3u($dir, dirname($music_dir_url), isset($_GET['recursive'])); + die(); } if(isset($_GET['random'])) { @@ -177,16 +323,35 @@ if(isset($_GET['random'])) { for($j=0; $j - - +if(isset($_GET['blank'])) { + ?> + +
Music player (click 'F' link next to the song name to start, 'S' to stop...)
+ - - < BACK | HOME () | ABOUT/HELP | LOGOUT +?> + + + + + + + + + + + +
+ + + < BACK + | HOME () + | ABOUT/HELP + | LOGOUT
'.$title.': '.$dir.''); - echo('

'.$title.'

Index of: '.$dir.'

'); + echo(''.$title.': '.unxss($dir).''); + echo('

'.$title.'

Index of: '.explode_path($dir).'

'); } else { echo(''.$title.': '.unxss($_GET['search']).''); - echo('

'.$title.'

Searching for: '.unxss($_GET['search']).'

'); -} + echo('

'.$title.'

Searching for: '.unxss($_GET['search']).'

'); ?> -
+ +
- +
-
-

'); +} else { -?>
-
- - -
-
- - -
-
- - - -
-
- - -
-

-
+?> +
- + +  
-
\n"); + +
+
+ $search_link) { + if(!$search_prefix) { + echo(unxss($_GET['search'])." @\n"); + $search_prefix = 1; + } + echo(''.$search_desc.";\n"); + } +?> +

+Search DB size: '.(filesize($search_cache)/1024)." kB
\n"); if(!($searchfp = fopen($search_cache, 'r'))) die("Cannot read cache from $outfile
Refresh cache or set permissions properly!
\n"); $i = 0; echo(''); -echo(''); +render_tr_playframe_show(); +echo(''); + while(!feof($searchfp)) { $line = trim(fgets($searchfp)); - $parclass=($i%2?"even":"odd"); $parcolor=($i%2?"lightblue":"white"); - if(@eregi(str_replace(' ', '(.*)', $_GET['search']), $line)) { + $parclass=($i%2?'even':'odd'); $parcolor=($i%2?'lightblue':'white'); + if(@eregi(str_replace(' ', '(.*)', unational($_GET['search'])), unational($line))) { $i++; - echo(""); $filesize = 0; if($i <= $access_limit) $filesize = filesize($line); else $filesize = 'n/a'; render_file_line('', $line, $music_dir_url, $i, $filesize, true); - echo("\n"); } } -echo("
SPSearch: '.unxss($_GET['search']).'
SP'); +if($GLOBALS['useflash']) echo('/F'); +echo('Search: '.unxss($_GET['search']).'
Total: $i results...
"); -die(); +echo('Total: '.$i.' results...'); +render_footer(); die(); } @readfile($header_file); @@ -276,11 +448,17 @@ foreach($indexlist as $index) @readfile($dir.$index); ?>
- - - - + + + + + + 1) { if(is_file($dir.$item)) { - if($sort > 1) { - $i--; - $items[] = $item; - } else { - render_file_line($dir, $item, $music_dir_url, $i, filesize($dir.$item)); - } + $i--; + $itemsf[] = $item; } if(is_dir($dir.$item)) { - $temp=str_replace('%2F', '/', rawurlencode($current_dir)).rawurlencode($item); - echo("". - ''. - '\n"); + $i--; + $itemsd[] = $item; } + } else { + if(is_file($dir.$item)) { + render_file_line($dir, $item, $music_dir_url, $i, filesize($dir.$item)); + } + if(is_dir($dir.$item)) { + render_dir_line($current_dir, $item, $i); + } + } } rewinddir($dd); } + if($sort > 1) { - @sort($items); - foreach($items as $item) { + @sort($itemsf); + @sort($itemsd); + foreach($itemsd as $item) { + $i++; + render_dir_line($current_dir, $item, $i); + } + foreach($itemsf as $item) { $i++; render_file_line($dir, $item, $music_dir_url, $i, filesize($dir.$item)); } @@ -317,18 +503,4 @@ if($sort > 1) { ?>
>P/R
^ [DIR] .. ()
>P/RF'); ?> +
^ [DIR] .. +()
'.$i.'P/'. - 'R[DIR] '.str_replace('_', ' ', $item)."
Harvie free of charge! Of course...', - 'Don\'t be looser, use GNU/Linux! ;P', - 'Make love and not war!', - 'Take your chance! Prove yourself!', - 'This software is free of charge. If you wan\'t to donate, please send some money to children in Africa/etc...' -); - -echo(''.$quotes[rand(0,sizeof($quotes)-1)]."\n"); -@readfile($footer_file); +render_footer();