Вход Регистрация
Файл: z.php
Строк: 260
<?
function gettime()
 {
 
$part_time explode(' 'microtime());
 
$real_time $part_time[1].substr($part_time[0], 1);
 return 
$real_time;
 }
    
$mystart gettime();

header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);    
header("Pragma: no-cache");
header("Content-type:text/html; charset=utf-8");


define('BRAIN_FUCK','HlVMxcYgC'); // этой херней зайцы шифровали ключ =)
define ('SAVE_DATA_FILE','music/data.dat');// тут будем хранить данные

// статусы загрузки
define ('ERROR',-1);
define ('WAIT',0);
define ('PREPARE',1);
define ('DONE',2);
define ('TOO_LARGE',-2);

define ('TIME_OUT',time()-600); // тайм аут 10 минут
ini_set('user_agent''android'); // это браузер зайцев

// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

function d($str)
 { 
 echo 
'<pre>'.print_r($str,true).'</pre>'
 }
// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

function str_prepare ($str,$cut)
 { 
 return 
htmlspecialchars(mb_substr($str,0,$cut,'utf8')); 
 }

// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

function get_auth($forse=FALSE)
 {
 if (!
$forse && file_exists(SAVE_DATA_FILE))
  {
  
$a_auth unserialize(file_get_contents(SAVE_DATA_FILE));  
  if (isset(
$a_auth['token']))
   {
  
   return 
$a_auth['token']; 
   } 
  }  
 
 
$a_auth json_decodefile_get_contents('http://zaycev.net/external/hello')); //получаем токен 1 
 
 
if (isset($a_auth->token))
  {
  
$a_auth json_decodefile_get_contents('http://zaycev.net/external/auth?code='.$a_auth->token.'&hash='.md5($a_auth->token.BRAIN_FUCK))); //получаем токен 2
  
if (isset($a_auth->token))
   {
   
file_put_contents(SAVE_DATA_FILE,serialize(array('time'=>time(),'token' => $a_auth->token)));  
   return 
$a_auth->token;
 
   } else die (
'Fuck! Not found token 2');  
  } else die (
'Fuck! Not found token 1'); 
 } 
 
// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

function get_data($url)
 {
 
$a_data json_decode(file_get_contents($url)); 
 
 if (isset(
$a_data->error))
  {  
  echo 
'<div class="wr"">Ошибка!<br/>Обновите страницу</div>';
  
get_auth(TRUE); // принудительная авторизация
  

 return 
$a_data;
 }
 
// ------------------------------------------------------------------------------------------------------------------------------------------------------ //
 
function progress_bar($percent$title '')
 {
 if (
$title === ''){$title $percent.'%';}
 echo 
'<div style="background:#eee; overflow: auto;"><span style="float:right; color:#000; font-size:85%; line-height:10px; margin-right:5px;">';
 echo 
$title.'</span><div style="background:#00dd00; height:10px; width:'.$percent.'%; border-radius:4px;"></div></div>';
 }

// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

function my_navigate($total,$page,$url,$arg='p')
 {
 
 
$s'<div class="tools" align="center">';
 
 if (
$total 0
  {
  
$p $page;
  
$st $p-3;
  
$end $p+3;
  if (
$st 1$st=1;
  if (
$end $total$end=$total
  if (
$p 1$s.= '<a '.$cl.' href="'.$url.'&amp;'.$arg.'=1">&#171;</a> '

  for (
$i=$st$i<=$end$i++)
   {
   if (
$i==$p)
     
$s.='&nbsp;<b>'.$p.'</b>&nbsp;';
       else
         
$s.='[<a '.$cl.' href="'.$url.'&amp;'.$arg.'='.$i.'">'.$i.'</a>]'
   }  
  
  if (
$p $total$s.= ' <a '.$cl.' href="'.$url.'&amp;'.$arg.'='.$total.'">&#187;</a>'
  } else 
$s.='---';
   
 
$s.='</div>';
 return 
$s;
 }
 
// ------------------------------------------------------------------------------------------------------------------------------------------------------ //

echo "<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">n";
 
echo '<title>Your bunny wrote</title><link rel="
stylesheet" href="template/main.css" type="text/css"></head><body>'; 
 
$access_token = get_auth();


if (isset(
$_GET['load'])) //загружаем
 {
 
$load=intval($_GET['load']);  
 
$f = 'music/'.$load.'.dat'; 
 
$mp3 = 'music/'.$load.'.mp3'; 
 
 
 if (file_exists(
$f)) // временные данные
  {
  
$a_data=unserialize(file_get_contents($f));   
  
  switch (
$a_data['status']) {
   case TOO_LARGE:   
   echo '<div class="
wr">Слишком большой файл - Подготовлен не полностью</div>';
   case DONE: // готово
   echo '<div class="
head">Теперь можно скачать</div>'; 
?>
<object type="
application/x-shockwave-flash" data="template/ump3player.swf" height="60" width="400">
<param name="
wmode" value="transparent" /><param name="allowFullScreen" value="true" />
  <param name="
allowScriptAccess" value="always" />
  <param name="
movie" value="template/ump3player.swf" />
  <param name="
FlashVars" value="way=<?=$mp3?>&amp;swf=template/ump3player.swf&amp;w=400&amp;h=40&amp;time_seconds=0&amp;autoplay=1&amp;q=1&amp;skin=sky&amp;volume=80&amp;comment=" />
</object><br/>
<?
  
echo '<p align="center"><a class="t" href="'.$mp3.'">Скачать</a></p>';
   echo 
'<div class="tools">---</div>'
   echo 
'<p align="center"><a class="t" href="z.php">[ Назад ]</a></p>';
   break;
   case 
PREPARE//стартуем скачивание
 
   
$fp fsockopen($_SERVER['SERVER_NAME'],80);
   
fputs($fp,'GET '.dirname($_SERVER['PHP_SELF'])."/template/get.php?song=".$load." HTTP/1.0rnHost: ".$_SERVER['SERVER_NAME']."rnrn");
   
usleep(300); // чтобы не отключился сразу
   
fclose($fp);     
   
   
$a_data['status'] = WAIT;
   
file_put_contents($f,serialize($a_data));
   case 
WAIT// ожидание
   
echo '<div class="head">Подготовка файла к скачиванию</div>';   
   
   if (
file_exists($mp3)) // вывод статистики закачки
    
{    
    
$size filesize($mp3);    
    
$proc $size  round(($size 100) / ($a_data['size'] ), 1) : 0;                     
    
progress_bar($proc$proc.'%').'<br /><br />';    
    echo  
'<br/><b>'.round($size/1024,2).' Kb</b>'
    echo 
' из <b>'.round($a_data['size']/1024,2).' Kb</b><br/><br/>';     
    } else echo 
'<p align="center">Поиск зеркал для скачивания...</p>';  // для отвода глаз =)       
   
   
echo '<p align="center"><a class="t" href="z.php?load='.$load.'&amp;_='.time().'">Обновить</a></p>';
   echo 
'<div class="tools">---</div>'
   break;
   default: 
// ошибка попробуем получить новые данные 
   
   
   
echo '<div class="wr">Произошла ошибка</div>';   
   echo 
'<p align="center"><a class="t" href="z.php?load='.$load.'&amp;_='.time().'">Ок</a></p>';
   
//$a_data['status'] = PREPARE; // сбросим ошибку
   //file_put_contents($f,serialize($a_data));
   
unlink($f);
   break; 
   }
  }
 else
  {
  
$a_data json_decode(file_get_contents('http://zaycev.net/external/download?id='.$load.'&access_token='.$access_token));
 
  if (isset(
$a_data->url))
   {
   echo 
'<div class="head">Подготовка файла к скачиванию</div>';      
   echo 
'<p align="center"> Это может занять некоторое время.</p>';     
   
// создать временный файл данных
   
file_put_contents($f,serialize(array('time'=>time(),'url'=>$a_data->url,'status'=>PREPARE)));   
   echo 
'<p align="center"><a class="t" href="z.php?load='.$load.'&amp;_='.time().'">Обновить</a></p>';
   echo 
'<div class="tools">---</div>'
   } else echo 
'<p></p>Fuck! Not found url</p>';   
  } 
 }
elseif (isset(
$_GET['artist']))
 {
 
$artist=intval($_GET['artist']);
 
$mp3 'music/'.$song.'.mp3';  
 
$a_data json_decode(file_get_contents('http://zaycev.net/external/artist/'.$artist.'?access_token='.$access_token)); 
 if (isset( 
$a_data->artist))
  {  
  echo 
'<div class="head">'.$a_data->artist->name.'</div>';  
  echo 
'<div style="max-height:20em; overflow: auto;">';  
  if (!empty(
$a_data->artist->smallImageUri)) echo '<img style="float:left;margin: 5px 10px 2px 2px" src="'.$a_data->artist->smallImageUri.'" alt="Load">';
  if (!empty(
$a_data->artist->about)) echo  $a_data->artist->about.'<br/>'; else echo '<center>Нет описания</center>'
  echo 
'</div>'
  } else echo 
'<p></p>Fuck! Not found artist</p>';  
 
 echo 
'<div class="tools">---</div>'
 echo 
'<p align="center"><a class="t" href="z.php">[ Назад ]</a></p>';
 } 
elseif (isset(
$_GET['song']))
 {
 
$song=intval($_GET['song']);  
 echo 
'<div class="head">Player</div>';
 
$a_data json_decode(file_get_contents('http://zaycev.net/external/track/'.$song.'?access_token='.$access_token));

 if (isset(
$a_data->track))
  {
  if (!empty(
$a_data->track->name)) echo 'Название трека: <b>'.$a_data->track->name.'</b><br/>';
  if (!empty(
$a_data->track->artistName)) echo 'Исполнитель: <b>'.$a_data->track->artistName.'</b><br/>';
  if (!empty(
$a_data->track->duration)) echo 'Время звучания: <b>'.date('i:s',$a_data->track->duration).'</b><br/>'
  if (!empty(
$a_data->track->bitrate)) echo 'Качество: <b>'.$a_data->track->bitrate.' Kb/s</b><br/>';
  if (!empty(
$a_data->track->size)) echo 'Размер: <b>'.$a_data->track->size.' Mb</b><br/>';
  }
/*
  $a_data = json_decode(file_get_contents('http://zaycev.net/external/download?id='.$song.'&access_token='.$access_token));
 
  if (isset($a_data->url))
   {  
   // создать временный файл данных
   $f = 'music/'.$song.'.dat'; 
   file_put_contents($f,serialize(array('time'=>time(),'url'=>$a_data->url,'status'=>PREPARE)));   
   } else echo '<p></p>Fuck! Not found url</p>'; 
 

 
?>
<object type="application/x-shockwave-flash" data="template/ump3player.swf" height="60" width="400">
<param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" />
  <param name="allowScriptAccess" value="always" />
  <param name="movie" value="template/ump3player.swf" />
  <param name="FlashVars" value="way=<?=$mp3?>&amp;swf=template/ump3player.swf&amp;w=400&amp;h=40&amp;time_seconds=0&amp;autoplay=0&amp;q=1&amp;skin=sky&amp;volume=80&amp;comment=" />
</object><br/>
<?

  echo '<p align="center"><a class="t" href="'.$mp3.'">Скачать</a></p>';
*/
 
  
echo '<p align="center"><a class="t" href="z.php?load='.$song.'">СкачЯть</a></p>';
  echo 
'<div class="tools">---</div>';
 
 
  echo 
'<p align="center"><a class="t" href="z.php">[ Назад ]</a></p>';
 
 
 
 }
else
 {
 
$p = isset($_GET['p']) ? intval($_GET['p']) : 1;
 if (isset(
$_GET['query'])) // поиск
  

  
$query urlencode (str_prepare($_GET['query'],255));  
  
$type=0;
  
$sort=0;
  
$style='';
  
$a_data get_data('http://zaycev.net/external/search?query='.$query.'&page='.$p.'&type='.$type.'&sort='.$sort.'&style='.$style.'&access_token='.$access_token);

  } else 
$a_data get_data('http://zaycev.net/external/top?page='.$p.'&access_token='.$access_token); 
 
echo 
'<div class="head">Your bunny wrote</div>';  

?>
<form action="z.php" id="search-box" method="get"> 
    <input type="text" name="query"/>
    <input type="submit" value="Поиск" />
</form>
<? 
if (!empty($a_data->pagesCount))
 {
 
$total intval($a_data->pagesCount);
 
 foreach(
$a_data->tracks  as $k=> $v)
  { 
  echo 
'<div class="mess"><a href="z.php?song='.$v->id.'">'.$v->track.'</a> - ';
  echo 
'<a href="z.php?artist='.$v->artistId.'">'.$v->artistName.'</a><br/>';
  echo 
$v->duration.' / '.$v->size.'Мб'
  echo 
'</div>'
  }
  
 echo 
my_navigate($total,$p,'z.php?t=1&amp;'.(isset($query) ? 'query='.$query ''));
 }  else echo 
'<p></p>Fuck! Not found page</p>'

 echo 
' - <a href="z.php">ТОП</a><br/>';
 }
 
$end gettime();
echo 
'<p align="center">['.round(($end $mystart), 5).']<br/>'
echo 
'</p></body></html>';
 
 
 
 
 
// разные функции зайцев 
# варианты при вводе поискового запроса
//$a_data = json_decode(file_get_contents('http://zaycev.net/external/autocomplete/?query='.$query .'&access_token='.$access_token));;
 

 
 
?>
Онлайн: 0
Реклама