修复自定义在线机型
This commit is contained in:
@@ -211,6 +211,9 @@ class Auth extends Base
|
|||||||
case 'qqid':
|
case 'qqid':
|
||||||
return ['1','https://id.qq.com/index.html' ,'我的QQ中心'];
|
return ['1','https://id.qq.com/index.html' ,'我的QQ中心'];
|
||||||
break;
|
break;
|
||||||
|
case 'vip':
|
||||||
|
return ['18','https://club.vip.qq.com/onlinestatus/set' ,'QQ会员'];
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
break;
|
break;
|
||||||
|
|||||||
+10
-7
@@ -189,18 +189,21 @@ class QQTool{
|
|||||||
|
|
||||||
public function set_online_status($model, $desc, $imei){
|
public function set_online_status($model, $desc, $imei){
|
||||||
$pt4_token = getSubstr($this->cookie, 'pt4_token=', ';');
|
$pt4_token = getSubstr($this->cookie, 'pt4_token=', ';');
|
||||||
|
$referer = 'https://club.vip.qq.com/onlinestatus/set?_wv=67109895&_wvx=10&_proxy=1&src=2';
|
||||||
$ua = 'Mozilla/5.0 (Linux; Android 12; IN2010 Build/RKQ1.211119.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 V1_AND_SQ_8.8.68_2538_YYB_D A_8086800 QQ/8.8.88 NetType/4G';
|
$ua = 'Mozilla/5.0 (Linux; Android 12; IN2010 Build/RKQ1.211119.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36 V1_AND_SQ_8.8.68_2538_YYB_D A_8086800 QQ/8.8.88 NetType/4G';
|
||||||
$data = json_encode(['13031'=>['req'=>['sModel'=>$model, 'iAppType'=>3, 'sIMei'=>$imei, 'sVer'=>'8.8.88', 'sManu'=>'', 'lUin'=>intval($this->uin), 'bShowInfo'=>true, 'sDesc'=>$desc, 'sModelShow'=> $model]]]);
|
$param = ['servicesName'=>'VIP.CustomOnlineStatusServer.CustomOnlineStatusObj', 'cmd'=>'SetCustomOnlineStatus', 'args'=>[['sModel'=>$model, 'iAppType'=>3, 'sIMei'=>$imei, 'sVer'=>'8.8.88', 'sManu'=>'', 'lUin'=>intval($this->uin), 'bShowInfo'=>true, 'sDesc'=>$desc, 'sModelShow'=> $model]]];
|
||||||
$url = 'https://proxy.vac.qq.com/cgi-bin/srfentry.fcgi?ts='.time().'000&g_tk='.$this->gtk.'&data='.rawurlencode($data).'&pt4_token='.urlencode($pt4_token);
|
$url = 'https://club.vip.qq.com/srf-cgi-node?srfname=VIP.CustomOnlineStatusServer.CustomOnlineStatusObj.SetCustomOnlineStatus&ts='.time().'000&daid=18&g_tk='.$this->gtk.'&pt4_token='.urlencode($pt4_token);
|
||||||
$data = get_curl($url, 0, 'https://proxy.vac.qq.com/', $this->cookie, 0, $ua);
|
$data = get_curl($url, json_encode($param), $referer, $this->cookie, 0, $ua, 0, ['Content-Type: application/json']);
|
||||||
$arr = json_decode($data, true);
|
$arr = json_decode($data, true);
|
||||||
if(!$arr){
|
if(!$arr){
|
||||||
throw new Exception('修改在线状态失败');
|
throw new Exception('修改在线状态失败,返回数据解析失败');
|
||||||
}elseif(isset($arr['ecode']) && $arr['ecode']==0){
|
}elseif(isset($arr['ret']) && $arr['ret']==0){
|
||||||
if(isset($arr['13031']['ret']) && $arr['13031']['ret']==0){
|
if(isset($arr['data']['rsp']['iRet']) && $arr['data']['rsp']['iRet']==0){
|
||||||
return true;
|
return true;
|
||||||
|
}elseif(isset($arr['data']['rsp']['sMsg'])){
|
||||||
|
throw new Exception('修改在线状态失败,'.$arr['data']['rsp']['sMsg']);
|
||||||
}else{
|
}else{
|
||||||
throw new Exception('修改在线状态失败,'.$arr['13031']['msg']);
|
throw new Exception('修改在线状态失败,'.$data);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
throw new Exception('修改在线状态失败,'.$data);
|
throw new Exception('修改在线状态失败,'.$data);
|
||||||
|
|||||||
+1
-1
@@ -33,5 +33,5 @@ return [
|
|||||||
404 => \think\facade\App::getRootPath() . 'public/404.html',
|
404 => \think\facade\App::getRootPath() . 'public/404.html',
|
||||||
],
|
],
|
||||||
'version' => '1.9',
|
'version' => '1.9',
|
||||||
'ver' => 1090
|
'ver' => 1091
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ use plugin\utility\imghosting\api;
|
|||||||
class cdn58 implements api
|
class cdn58 implements api
|
||||||
{
|
{
|
||||||
public function upload($filepath, $filename){
|
public function upload($filepath, $filename){
|
||||||
$url = 'https://upload.58cdn.com.cn/json';
|
$url = 'https://upload.58cdn.com.cn/json/nowater/webim/big/';
|
||||||
$referer = 'https://ai.58.com/pc/';
|
$referer = 'https://ai.58.com/pc/';
|
||||||
$imgdata = base64_encode(file_get_contents($filepath));
|
$imgdata = base64_encode(file_get_contents($filepath));
|
||||||
$params = [
|
$params = [
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace plugin\utility\imghosting\api;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use plugin\utility\imghosting\api;
|
||||||
|
|
||||||
|
class ucloud implements api
|
||||||
|
{
|
||||||
|
public function upload($filepath, $filename){
|
||||||
|
$url = 'https://spt.ucloud.cn/im/client/upload';
|
||||||
|
$file = new \CURLFile($filepath);
|
||||||
|
$file->setPostFilename($filename);
|
||||||
|
$param = [
|
||||||
|
'file' => $file,
|
||||||
|
];
|
||||||
|
$data = get_curl($url,$param,$url,0,0,0,0,['Authorization: UCloud TOKEN_12134567890']);
|
||||||
|
$arr = json_decode($data,true);
|
||||||
|
if(isset($arr['Files']) && !empty($arr['Files'])){
|
||||||
|
return ['url'=>'https://uchat.cn-bj.ufileos.com/'.$arr['Files'][0]];
|
||||||
|
}elseif(isset($arr['Message'])){
|
||||||
|
throw new Exception('上传失败请重试('.$arr['Message'].')');
|
||||||
|
}else{
|
||||||
|
throw new Exception('上传失败!接口错误');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -97,8 +97,12 @@ textarea.form-control{min-height: auto;}
|
|||||||
data: {
|
data: {
|
||||||
apitypes: [
|
apitypes: [
|
||||||
{
|
{
|
||||||
title: '大众点评',
|
title: 'Ucloud',
|
||||||
key: 'dianping'
|
key: 'ucloud'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '58同城',
|
||||||
|
key: 'cdn58'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'LOCIMG',
|
title: 'LOCIMG',
|
||||||
@@ -141,7 +145,7 @@ textarea.form-control{min-height: auto;}
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
output: [],
|
output: [],
|
||||||
apitype: 'dianping',
|
apitype: 'ucloud',
|
||||||
imgurl: ''
|
imgurl: ''
|
||||||
},
|
},
|
||||||
progress: 0,
|
progress: 0,
|
||||||
|
|||||||
@@ -79,15 +79,15 @@ new Vue({
|
|||||||
data: {
|
data: {
|
||||||
query_disabled: true,
|
query_disabled: true,
|
||||||
input: '',
|
input: '',
|
||||||
apitype: 'amap',
|
apitype: 'ip138',
|
||||||
result_input: '',
|
result_input: '',
|
||||||
result_type: 'IP',
|
result_type: 'IP',
|
||||||
showresult: false,
|
showresult: false,
|
||||||
apitypes: [
|
apitypes: [
|
||||||
{
|
/*{
|
||||||
title: '高德地图',
|
title: '高德地图',
|
||||||
key: 'amap'
|
key: 'amap'
|
||||||
},
|
},*/
|
||||||
{
|
{
|
||||||
title: 'IP138',
|
title: 'IP138',
|
||||||
key: 'ip138'
|
key: 'ip138'
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class App extends Plugin
|
|||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$logininfo = session('qq_cookie_qzone');
|
$logininfo = session('qq_cookie_vip');
|
||||||
$error = null;
|
$error = null;
|
||||||
if($logininfo){
|
if($logininfo){
|
||||||
View::assign('isqqlogin', 1);
|
View::assign('isqqlogin', 1);
|
||||||
@@ -34,7 +34,7 @@ class App extends Plugin
|
|||||||
$imei = input('post.imei', null, 'trim');
|
$imei = input('post.imei', null, 'trim');
|
||||||
if(!$imei) return msg('error','IMEI不能为空');
|
if(!$imei) return msg('error','IMEI不能为空');
|
||||||
|
|
||||||
$logininfo = session('qq_cookie_qzone');
|
$logininfo = session('qq_cookie_vip');
|
||||||
if(!$logininfo){
|
if(!$logininfo){
|
||||||
return msg('error', '请先登录');
|
return msg('error', '请先登录');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="alert alert-info"><em class="icon ni ni-info"></em> 此工具可自定义QQ在线状态设备名,需要SVIP</div>
|
<div class="alert alert-info"><em class="icon ni ni-info"></em> 此工具可自定义QQ在线状态设备名,需要SVIP</div>
|
||||||
{if $isqqlogin==0}
|
{if $isqqlogin==0}
|
||||||
<p>当前登录的账号:<b>未登录</b> <a href="/qqlogin?type=qzone&redirect=/{$plugin.alias}" class="btn btn-sm btn-outline-success">立即登录</a></p>
|
<p>当前登录的账号:<b>未登录</b> <a href="/qqlogin?type=vip&redirect=/{$plugin.alias}" class="btn btn-sm btn-outline-success">立即登录</a></p>
|
||||||
{else}
|
{else}
|
||||||
<p>当前登录的账号:<b>{$logininfo.nickname|raw}({$logininfo.uin})</b> <a href="/qqlogin?type=qzone&redirect=/{$plugin.alias}" class="btn btn-sm btn-outline-success">更换账号</a></p>
|
<p>当前登录的账号:<b>{$logininfo.nickname|raw}({$logininfo.uin})</b> <a href="/qqlogin?type=vip&redirect=/{$plugin.alias}" class="btn btn-sm btn-outline-success">更换账号</a></p>
|
||||||
{/if}
|
{/if}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="input-group input-group-lg">
|
<div class="input-group input-group-lg">
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>手机QQ打开链接:<a href="https://1105583577.urlshare.cn" target="_blank">https://1105583577.urlshare.cn</a> <button type="button" class="btn btn-outline-light btn-xs copy-btn" data-clipboard-text="https://1105583577.urlshare.cn">点击复制</button></p>
|
<p>手机QQ打开链接:<a href="https://1105583577.urlshare.cn" target="_blank">https://1105583577.urlshare.cn</a> <button type="button" class="btn btn-outline-light btn-xs copy-btn" data-clipboard-text="https://1105583577.urlshare.cn">点击复制</button></p>
|
||||||
<p>点击“设备信息”</p>
|
<p>点击“设备信息”</p>
|
||||||
<p>【安卓】找到最后的msflmei参数后面的那一串字母数字。如果没有msflmei参数,则用 identifiera参数</p>
|
<p>【安卓】找到最后的msflmei参数后面的那一串字母数字。如果没有msflmei参数,则用 identifier参数</p>
|
||||||
<p>【苹果】找到msf_identifier参数后面的那一串字母数字(格式:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)</p>
|
<p>【苹果】找到msf_identifier参数后面的那一串字母数字(格式:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)</p>
|
||||||
<img style="width: 100%;" src="https://img.alicdn.com/imgextra/i3/905090405/O1CN01sypnNc1ErX9vUQpeQ_!!905090405.jpg">
|
<img style="width: 100%;" src="https://img.alicdn.com/imgextra/i3/905090405/O1CN01sypnNc1ErX9vUQpeQ_!!905090405.jpg">
|
||||||
</div>
|
</div>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
new Vue({
|
new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
data: {
|
data: {
|
||||||
model: 'iPhone 13 Pro Max',
|
model: 'iPhone 16 Pro Max',
|
||||||
desc: '',
|
desc: '',
|
||||||
imei: '',
|
imei: '',
|
||||||
showresult: false,
|
showresult: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user