diff --git a/utils/auth.php b/utils/auth.php index eb50c4c..8323e38 100644 --- a/utils/auth.php +++ b/utils/auth.php @@ -10,6 +10,7 @@ if (ACCESS_KEY != "" && SAVE_CACHE == 1) { $add_time = $out[1]; $due = $out[2]; $expired = $out[3]; + $msg = ""; // 判断是否不在数据库里 $insert = 0; if ($add_time == "0") { @@ -31,10 +32,11 @@ if (ACCESS_KEY != "" && SAVE_CACHE == 1) { $uid = $out[0]; $due = $out[1]; $expired = $out[2]; + $msg = $out[3]; } // key已过期 或 服务器不允许未登录用户 if ($uid == "0" && (NEED_LOGIN == 1 || $expired == "1")) { - block(20, "访问密钥已过期或不存在(脚本设置左下角重新授权)"); + block(20, "访问密钥已过期或不存在(脚本设置左下角重新授权),上游提示:".$msg); } } elseif (ACCESS_KEY != "") { // 有 access_key 但没开缓存,只会在需要时检查用户 @@ -42,8 +44,9 @@ if (ACCESS_KEY != "" && SAVE_CACHE == 1) { $out = get_userinfo(); $uid = $out[0]; $due = $out[1]; + $msg = $out[2]; if ($uid == "0") { - block(20, "访问密钥已过期或不存在(脚本设置左下角重新授权)"); + block(20, "访问密钥已过期或不存在(脚本设置左下角重新授权),上游提示:".$msg); } } } diff --git a/utils/functions.php b/utils/functions.php index b8c310a..753692d 100644 --- a/utils/functions.php +++ b/utils/functions.php @@ -130,9 +130,10 @@ function get_host($type,$cache_type) { // 获取用户信息 function get_userinfo() { global $member_type; - $sign = md5("access_key=".ACCESS_KEY."&appkey=".APPKEY."&ts=".TS.APPSEC); - $url = "https://app.bilibili.com/x/v2/account/myinfo?access_key=".ACCESS_KEY."&appkey=".APPKEY."&ts=".TS."&sign=".$sign; - $output = get_webpage($url); + $param = "access_key=".ACCESS_KEY."&appkey=".APPKEY."&build=7000300&channel=master&mobi_app=".MOBI_APP."&ts=".TS; + $sign = md5($param.APPSEC); + $url = "https://app.bilibili.com/x/v2/account/myinfo?".$param."&sign=".$sign; + $output = get_webpage($url); $array = json_decode($output, true); $code = $array['code']; if ($code == "0") { @@ -147,6 +148,7 @@ function get_userinfo() { $out[0] = "0"; $out[1] = "0"; $member_type = 0; //未登录 + $out[2] = $array['message']; } return $out; } @@ -208,7 +210,6 @@ function appkey2sec($appkey) { "4c6e1021617d40d9" => "e559a59044eb2701b7a8628c86aa12ae", // AndroidMallTicket "c034e8b74130a886" => "e4e8966b1e71847dc4a3830f2d078523", // AndroidOttSdk "9a75abf7de2d8947" => "35ca1c82be6c2c242ecc04d88c735f31", // BiliScan - "7d089525d3611b1c" => "acd495b248ec528c2eed1e862d393126", // 安卓 東南亞版 "4ebafd7c4951b366" => "8cb98205e9b2ad3669aad0fce12a4c13", // iPhone "27eb53fc9058f8c3" => "c2ed53a74eeefe3cf99fbd01d8c9c375", // ios 客户端 "aae92bc66f3edfab" => "af125a0d5279fd576c1b4418a3e8276d", // PC 投稿工具 @@ -218,6 +219,40 @@ function appkey2sec($appkey) { return $appkey2sec[$appkey]; } +// mobi_app 查表 +function appkey2mobi($appkey) { + if ($appkey == "") {return "";} + $appkey2mobi = array("9d5889cf67e615cd" => "android", // Ai4cCreatorAndroid + "1d8b6e7d45233436" => "android", // 安卓 客户端 + "57263273bc6b67f6" => "android", // 安卓 客户端 + "bca7e84c2d947ac6" => "android", // 安卓 客户端 登录专用 + "07da50c9a0bf829f" => "android_b", // 安卓 概念版 + "178cf125136ca8ea" => "android_b", // 安卓 概念版 + "7d336ec01856996b" => "android_b", // 安卓 概念版 + "dfca71928277209b" => "android_hd", // 安卓 HD版 + "37207f2beaebf8d7" => "", // 安卓 BiliLink + "8d23902c1688a798" => "", // 安卓 车机版 + "bb3101000e232e27" => "android_i", // 安卓 国际版 + "8e16697a1b4f8121" => "android_i", // 安卓 国际版 + "ae57252b0c09105d" => "android_i", // 安卓 国际版 + "7d089525d3611b1c" => "bstar_a", // 安卓 東南亞版 + "cc578d267072c94d" => "", // 安卓 轻视频 + "4409e2ce8ffd12b8" => "", // 安卓 TV版 + "cc8617fd6961e070" => "", // 安卓 漫画 + "5dce947fe22167f9" => "", // 安卓 必剪 + "4c6e1021617d40d9" => "", // AndroidMallTicket + "c034e8b74130a886" => "", // AndroidOttSdk + "9a75abf7de2d8947" => "", // BiliScan + "4ebafd7c4951b366" => "ios", // iPhone + "27eb53fc9058f8c3" => "ios", // ios 客户端 + "aae92bc66f3edfab" => "", // PC 投稿工具 + "84956560bc028eb7" => "", // 未知 + "85eb6835b0a1034e" => "", // 未知 + ); + $mobi_app = $appkey2mobi[$appkey]; + return $mobi_app; +} + // 强制添加参数 function add_query($appkey, $query, $add_query) { parse_str($query, $query_arr); @@ -229,6 +264,10 @@ function add_query($appkey, $query, $add_query) { } unset($query_arr["sign"]); $query_arr["appkey"] = $appkey; + $mobi_app = appkey2mobi($appkey); + if ($mobi_app != "") { + $query_arr["mobi_app"] = $mobi_app; + } ksort($query_arr); $query_new = http_build_query($query_arr); $appsec = appkey2sec($appkey); diff --git a/utils/functions_cache.php b/utils/functions_cache.php index bf08d49..563f347 100644 --- a/utils/functions_cache.php +++ b/utils/functions_cache.php @@ -37,6 +37,7 @@ function refresh_userinfo() { $out = get_userinfo(); $uid = $out[0]; $due = $out[1]; + $msg = $out[2]; if ($uid != "0") { $sql = " UPDATE `keys` SET `add_time` = now(), `uid` = '".$uid."', `due_date` = '".$due."', `expired` = '0' WHERE `keys`.`access_key` = '".ACCESS_KEY."';"; $dbh -> exec($sql); @@ -46,6 +47,7 @@ function refresh_userinfo() { $member_type = 1; // 不是大会员 } $expired = 0; + $msg = ""; } else { $sql = " UPDATE `keys` SET `expired` = '1' WHERE `keys`.`access_key` = '".ACCESS_KEY."';"; $dbh -> exec($sql); @@ -54,7 +56,7 @@ function refresh_userinfo() { $due = 0; $expired = 1; } - return [$uid, $due, $expired]; + return [$uid, $due, $expired, $msg]; } // 从缓存获取用户信息 diff --git a/utils/process.php b/utils/process.php index 43d8dbc..7cf1e9c 100644 --- a/utils/process.php +++ b/utils/process.php @@ -16,19 +16,18 @@ if (SAVE_LOG == 1) { } if (@$_GET['appkey'] == "") { - define('APPKEY', "1d8b6e7d45233436"); // 兼容web脚本 - define('APPSEC', "560c52ccd288fed045859ed18bffd973"); + define('APPKEY', "27eb53fc9058f8c3"); // 兼容web脚本 } else { // 检查是否存在对应的 APPSEC $appsec = appkey2sec(@$_GET['appkey']); if ($appsec == "") { define('APPKEY', "1d8b6e7d45233436"); - define('APPSEC', "560c52ccd288fed045859ed18bffd973"); } else { define('APPKEY', @$_GET['appkey']); - define('APPSEC', $appsec); } } +define('APPSEC', appkey2sec(APPKEY)); +define('MOBI_APP', appkey2mobi(APPKEY)); define('ACCESS_KEY', @$_GET['access_key']); define('CID', @$_GET['cid']); define('EP_ID', @$_GET['ep_id']);