初始化

This commit is contained in:
muzihuaner
2026-03-14 23:26:53 +08:00
parent 30348c6dba
commit 6c5e43ae2d
59 changed files with 13770 additions and 0 deletions

203
api/wyy/index.php Normal file
View File

@@ -0,0 +1,203 @@
<?php
$counter = intval(file_get_contents("counter.dat"));
$_SESSION['#'] = true;
$counter++;
$fp = fopen("counter.dat","w");
fwrite($fp, $counter);
fclose($fp);
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
// 辅助类 - HTTP请求和数据处理
class NetEaseHelper {
/**
* 执行CURL请求
*/
public static function curl($url, $options = []) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
// 默认User-Agent
$ua = isset($options['ua']) ? $options['ua'] : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36';
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
// POST数据
if (!empty($options['post'])) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $options['post']);
}
// 自定义Headers
if (!empty($options['Header'])) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $options['Header']);
}
// SSL验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
/**
* 发送数据
*/
public static function send($data, $type = 'json') {
if ($type === 'json') {
if (is_array($data)) {
echo json_encode($data, JSON_UNESCAPED_UNICODE);
} else {
echo $data;
}
} else {
echo $data;
}
exit;
}
}
class Music_163_Rand {
protected $info = [];
protected $Array = [];
protected $Msg;
protected $id;
protected $header = [
'Host: music.163.com',
'Origin: http://music.163.com',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Content-Type: application/x-www-form-urlencoded',
'Referer: http://music.163.com/search/',
];
public function __construct(Array $Array) {
foreach ($Array as $k => $v) {
$this->info[$k] = $v;
}
$this->ParameterException();
}
protected function ParameterException() {
$id = $this->info['id'];
if (!is_numeric($id)) {
$this->Array = ['code' => -1, 'msg' => '请输入正确的歌单id'];
$this->returns();
return;
}
$this->getPlaylistSongs();
}
protected function getPlaylistSongs() {
$id = $this->info['id'];
$post_data = http_build_query(['s' => '100', 'id' => $id, 'n' => '100', 't' => '100']);
$url = 'http://music.163.com/api/v6/playlist/detail';
$data = NetEaseHelper::curl($url, [
'post' => $post_data,
'ua' => 'NeteaseMusic/8.6.31.211201171945(8006031);Dalvik/2.1.0 (Linux; U; Android 11; PCLM10 Build/RKQ1.200928.002)',
'Header' => $this->header
]);
$decoded = json_decode($data, true);
if (empty($decoded['playlist']['trackIds'])) {
$this->Array = ['code' => -1, 'msg' => '无法获取歌单信息'];
$this->returns();
return;
}
$array = $decoded['playlist']['trackIds'];
$rand_song = $array[array_rand($array, 1)];
$this->id = $rand_song['id'];
$this->getSongDetail();
}
protected function getSongDetail() {
$id = $this->id;
$url = 'http://music.163.com/api/song/detail/?id=' . $id . '&ids=%5B' . $id . '%5D&csrf_token=';
$data = json_decode(NetEaseHelper::curl($url), true);
if (empty($data['songs'][0])) {
$this->Array = ['code' => -1, 'msg' => '无法获取歌曲信息'];
$this->returns();
return;
}
$song = $data['songs'][0];
$song_name = $song['name'] ?? '未知';
$artist_name = $song['artists'][0]['name'] ?? '未知';
$cover = $song['album']['picUrl'] ?? '';
$music_url = 'http://music.163.com/song/media/outer/url?id=' . $id;
$tail = $this->info['tail'] ?? '网易云音乐';
$this->Array = [
'code' => 200,
'msg' => '获取成功',
'data' => [
'id' => $id,
'song' => $song_name,
'singer' => $artist_name,
'cover' => $cover,
'music_url' => $music_url,
'tail' => $tail
]
];
$this->returns();
}
protected function returns() {
$type = $this->info['type'] ?? 'json';
switch ($type) {
case 'text':
if (isset($this->Array['data'])) {
$text = "歌曲:" . $this->Array['data']['song'] . "\n";
$text .= "歌手:" . $this->Array['data']['singer'];
echo $text;
} else {
echo $this->Array['msg'];
}
break;
case 'url':
if (isset($this->Array['data']['music_url'])) {
header('Location: ' . $this->Array['data']['music_url']);
} else {
echo json_encode($this->Array, JSON_UNESCAPED_UNICODE);
}
break;
default:
echo json_encode($this->Array, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
break;
}
exit;
}
}
// 获取参数
$songId = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0;
$tail = isset($_REQUEST['tail']) ? $_REQUEST['tail'] : '网易云音乐';
$type = isset($_REQUEST['type']) ? $_REQUEST['type'] : 'json';
// 如果没提供歌单ID使用默认热门歌单
if (empty($songId) || $songId <= 0) {
$playlists = [71385702, 2884035, 3778678, 3779629, 19723756];
$songId = $playlists[array_rand($playlists, 1)];
}
// 执行查询
new Music_163_Rand([
'id' => $songId,
'type' => $type,
'tail' => $tail
]);
?>