修复自定义在线机型
This commit is contained in:
@@ -211,6 +211,9 @@ class Auth extends Base
|
||||
case 'qqid':
|
||||
return ['1','https://id.qq.com/index.html' ,'我的QQ中心'];
|
||||
break;
|
||||
case 'vip':
|
||||
return ['18','https://club.vip.qq.com/onlinestatus/set' ,'QQ会员'];
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
break;
|
||||
|
||||
+10
-7
@@ -189,18 +189,21 @@ class QQTool{
|
||||
|
||||
public function set_online_status($model, $desc, $imei){
|
||||
$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';
|
||||
$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]]]);
|
||||
$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);
|
||||
$data = get_curl($url, 0, 'https://proxy.vac.qq.com/', $this->cookie, 0, $ua);
|
||||
$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://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, json_encode($param), $referer, $this->cookie, 0, $ua, 0, ['Content-Type: application/json']);
|
||||
$arr = json_decode($data, true);
|
||||
if(!$arr){
|
||||
throw new Exception('修改在线状态失败');
|
||||
}elseif(isset($arr['ecode']) && $arr['ecode']==0){
|
||||
if(isset($arr['13031']['ret']) && $arr['13031']['ret']==0){
|
||||
throw new Exception('修改在线状态失败,返回数据解析失败');
|
||||
}elseif(isset($arr['ret']) && $arr['ret']==0){
|
||||
if(isset($arr['data']['rsp']['iRet']) && $arr['data']['rsp']['iRet']==0){
|
||||
return true;
|
||||
}elseif(isset($arr['data']['rsp']['sMsg'])){
|
||||
throw new Exception('修改在线状态失败,'.$arr['data']['rsp']['sMsg']);
|
||||
}else{
|
||||
throw new Exception('修改在线状态失败,'.$arr['13031']['msg']);
|
||||
throw new Exception('修改在线状态失败,'.$data);
|
||||
}
|
||||
}else{
|
||||
throw new Exception('修改在线状态失败,'.$data);
|
||||
|
||||
+1
-1
@@ -33,5 +33,5 @@ return [
|
||||
404 => \think\facade\App::getRootPath() . 'public/404.html',
|
||||
],
|
||||
'version' => '1.9',
|
||||
'ver' => 1090
|
||||
'ver' => 1091
|
||||
];
|
||||
|
||||
@@ -8,7 +8,7 @@ use plugin\utility\imghosting\api;
|
||||
class cdn58 implements api
|
||||
{
|
||||
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/';
|
||||
$imgdata = base64_encode(file_get_contents($filepath));
|
||||
$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: {
|
||||
apitypes: [
|
||||
{
|
||||
title: '大众点评',
|
||||
key: 'dianping'
|
||||
title: 'Ucloud',
|
||||
key: 'ucloud'
|
||||
},
|
||||
{
|
||||
title: '58同城',
|
||||
key: 'cdn58'
|
||||
},
|
||||
{
|
||||
title: 'LOCIMG',
|
||||
@@ -141,7 +145,7 @@ textarea.form-control{min-height: auto;}
|
||||
]
|
||||
},
|
||||
output: [],
|
||||
apitype: 'dianping',
|
||||
apitype: 'ucloud',
|
||||
imgurl: ''
|
||||
},
|
||||
progress: 0,
|
||||
|
||||
@@ -79,15 +79,15 @@ new Vue({
|
||||
data: {
|
||||
query_disabled: true,
|
||||
input: '',
|
||||
apitype: 'amap',
|
||||
apitype: 'ip138',
|
||||
result_input: '',
|
||||
result_type: 'IP',
|
||||
showresult: false,
|
||||
apitypes: [
|
||||
{
|
||||
/*{
|
||||
title: '高德地图',
|
||||
key: 'amap'
|
||||
},
|
||||
},*/
|
||||
{
|
||||
title: 'IP138',
|
||||
key: 'ip138'
|
||||
|
||||
@@ -14,7 +14,7 @@ class App extends Plugin
|
||||
|
||||
public function index()
|
||||
{
|
||||
$logininfo = session('qq_cookie_qzone');
|
||||
$logininfo = session('qq_cookie_vip');
|
||||
$error = null;
|
||||
if($logininfo){
|
||||
View::assign('isqqlogin', 1);
|
||||
@@ -34,7 +34,7 @@ class App extends Plugin
|
||||
$imei = input('post.imei', null, 'trim');
|
||||
if(!$imei) return msg('error','IMEI不能为空');
|
||||
|
||||
$logininfo = session('qq_cookie_qzone');
|
||||
$logininfo = session('qq_cookie_vip');
|
||||
if(!$logininfo){
|
||||
return msg('error', '请先登录');
|
||||
}
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
</div>
|
||||
<div class="alert alert-info"><em class="icon ni ni-info"></em> 此工具可自定义QQ在线状态设备名,需要SVIP</div>
|
||||
{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}
|
||||
<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}
|
||||
<div class="form-group">
|
||||
<div class="input-group input-group-lg">
|
||||
@@ -56,7 +56,7 @@
|
||||
<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>点击“设备信息”</p>
|
||||
<p>【安卓】找到最后的msflmei参数后面的那一串字母数字。如果没有msflmei参数,则用 identifiera参数</p>
|
||||
<p>【安卓】找到最后的msflmei参数后面的那一串字母数字。如果没有msflmei参数,则用 identifier参数</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">
|
||||
</div>
|
||||
@@ -75,7 +75,7 @@
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
model: 'iPhone 13 Pro Max',
|
||||
model: 'iPhone 16 Pro Max',
|
||||
desc: '',
|
||||
imei: '',
|
||||
showresult: false,
|
||||
|
||||
Reference in New Issue
Block a user