MetingApi一些小改动
书接上回
这次主要是折腾了一下获取专辑图片模糊的问题,还增加了一个调用次数获取
欢迎使用~
专辑图片获取
项目默认获取图片大小是90*90的,这就导致在播放器页面看到的专辑图是糊掉的
在 src/Meting.php 文件中,pic 方法用于获取专辑图片,它接受一个 $size 参数(默认值为90):
public function pic($id, $size = 90)
在 index.php 文件中,song2data 函数处理图片请求时调用了这个方法:
case 'pic':
$data = json_decode($api->pic($id, 90))->url;
break;可以看到,目前图片大小被设置为90。如果您想要更改专辑图片的大小,需要修改 index.php 文件中的这一行。
以下是修改方法:
打开
index.php文件找到
song2data函数中的case 'pic':部分修改
$data = json_decode($api->pic($id, 90))->url;这一行,将90更改为想要的尺寸
调用次数获取
关于这个加起来比较复杂
在 index.php 文件中添加的代码
在文件开头添加了 update_api_stats() 函数:
// API调用统计功能
function update_api_stats() {
$stats_file = __DIR__ . '/cache/stats.json';
// 初始化统计数据
$stats = array(
'total_calls' => 0,
'today_calls' => 0,
'last_call_date' => date('Y-m-d')
);
// 如果统计文件存在,读取现有数据
if (file_exists($stats_file)) {
$stats_data = json_decode(file_get_contents($stats_file), true);
if ($stats_data) {
$stats = $stats_data;
}
}
// 检查是否是新的一天
if ($stats['last_call_date'] != date('Y-m-d')) {
$stats['today_calls'] = 0;
$stats['last_call_date'] = date('Y-m-d');
}
// 更新统计计数
$stats['total_calls']++;
$stats['today_calls']++;
// 保存统计数据
file_put_contents($stats_file, json_encode($stats));
}调用统计函数的位置
将统计函数调用放在参数验证之后,确保只有API调用才会触发统计:
if (!isset($_GET['type']) || !isset($_GET['id'])) {
include __DIR__ . '/public/index.php';
exit;
}
// 只有在API调用时才更新统计
update_api_stats();在 public/index.php 文件中添加的代码
统计数据读取代码
在HTML内容中添加了PHP代码来读取统计数据:
<?php
// 读取API调用统计信息
$stats_file = __DIR__ . '/../cache/stats.json';
$total_calls = 0;
$today_calls = 0;
if (file_exists($stats_file)) {
$stats_data = json_decode(file_get_contents($stats_file), true);
if ($stats_data) {
$total_calls = isset($stats_data['total_calls']) ? $stats_data['total_calls'] : 0;
$today_calls = isset($stats_data['today_calls']) ? $stats_data['today_calls'] : 0;
// 检查是否是新的一天
if (isset($stats_data['last_call_date']) && $stats_data['last_call_date'] != date('Y-m-d')) {
$today_calls = 0;
}
}
}
?>统计数据显示代码
添加了HTML和CSS代码来显示统计信息:
<div style="background-color: #f0f8ff; padding: 10px; border-radius: 5px; margin-bottom: 20px; font-size: 14px; width: 300px;">
<h4 style="margin: 0 0 5px 0;">API调用统计</h4>
<p style="margin: 3px 0;">累计调用: <strong><?php echo $total_calls; ?></strong></p>
<p style="margin: 3px 0;">今日调用: <strong><?php echo $today_calls; ?></strong></p>
</div>数据存储
统计数据存储在 cache/stats.json 文件中,包含以下信息:
total_calls: 累计调用次数today_calls: 今日调用次数last_call_date: 最后调用日期
关于调用次数的总结
实现API调用次数统计功能主要涉及以下改动:
在
index.php中添加统计函数和调用逻辑在
public/index.php中添加统计数据读取和显示代码使用
cache/stats.json文件存储统计数据
这些改动确保了:
只有API调用会被统计,访问首页不会计入
统计数据显示在网站首页
数据持久化存储在缓存目录中
每日统计数据会自动重置
收工
关于MetingApi的修改就结束了,我晚点会上传到github,我当前项目是修改于injahow/meting-api: Meting API for APlayer
该项目基于metowolf/Meting: :cake: Wow, such a powerful music API framework构建的
又水了一篇文章~,吃饭去了
- 感谢你赐予我前进的力量

