php require_once lib mysql class php require_once lib funct php requir

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
require_once('lib/mysql.class.php');
require_once('lib/funct.php');
require_once('conf/config.php');
$song_id = (int) $_GET['song_id'];
$ch = curl_init();
// Получаем информацию о проксе
$addr = $db->QuerySingleRow('SELECT `addr`, `id` FROM `mp3_proxylist` WHERE `active`=1');
if (!$addr) // Ищем композицию с доступной проксей
{
die('Указанная композиция временно недоступна');
}
// Выбриаем информацию о треке
$select_str = 'SELECT `mp3_main`.`size`, `mp3_main`.`title`, `mp3_main`.`artist`, `mp3_proxyurl`.`url`
FROM `mp3_main`
INNER JOIN `mp3_proxyurl`
ON `mp3_main`.`id`=`mp3_proxyurl`.`song_id`
WHERE `mp3_proxyurl`.`song_id`='.$song_id.'
AND `proxy_id`='.$addr->id;
$song = $db->QuerySingleRow($select_str);
if ($song == false) // Если не нашли трек
{
die('Указан несуществующий id');
}
if ($song->size == 0) // Если у трека не указан размер
{
$size = getFileSize($song->url, $addr->addr); // Получаем размер файла
$db->Query('UPDATE `mp3_main` SET `size`='.$size.' WHERE `id`='.$song_id); // Добавляем информацию о размере файла
}
else
{
$size = $song->size;
}
// Проверяем, есть ли информация об ID3 тегах текущего файла
$id3_str = 'SELECT COUNT(`song_id`) FROM `mp3_id3` WHERE `song_id`='.$song_id;
$id3 = (int) $db->QuerySingleValue($id3_str);
if ($id3 === 0) // Если информации нет
{
$mp3_content = get125bytes($size, $song->url, $addr->addr);
$id3_arr = getID3($mp3_content);
$str_into = 'INSERT INTO `mp3_id3` (`song_id`, `genre`, `tag`, `title`, `artist`, `album`, `year`)
VALUES ('.$song_id.', '.$id3_arr['GENRENO'].', \''.$id3_arr['TAG'].'\', \''.$id3_arr['NAME'].'\', \''.$id3_arr['ARTISTS'].'\', \''.$id3_arr['ALBUM'].'\', \''.$id3_arr['YEAR'].'\')';
$db->Query($str_into);
}
$old_name = $song->artist.'_'.$song->title;
$new_name = imTranslite($old_name);
$new_name .= '.mp3';
$db->Query('INSERT INTO `mp3_users_songs` (`user_id`, `song_id`, `date`) VALUES ('.$_COOKIE['user_key'].', '.$song_id.', NOW())');
header('Content-Length: '.$size);
header('Content-Type: audio/x-mp3');
header('Content-Disposition: attachment; filename='.$new_name);
curl_setopt($ch, CURLOPT_URL, $song->url);
curl_setopt($ch, CURLOPT_PROXY, $addr->addr);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>