兼容 web 脚本 appkey,加入 mobi_app 参数

pull/39/head
david082321 2 years ago committed by GitHub
parent 75a24ebdc4
commit 765e4d741d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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);
}
}
}

@ -130,8 +130,9 @@ 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;
$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'];
@ -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);

@ -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];
}
// 从缓存获取用户信息

@ -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']);

Loading…
Cancel
Save