修复自定义在线机型

This commit is contained in:
net909
2024-12-30 22:27:59 +08:00
parent 75348c27da
commit a449674739
9 changed files with 58 additions and 21 deletions
+3
View File
@@ -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
View File
@@ -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
View File
@@ -33,5 +33,5 @@ return [
404 => \think\facade\App::getRootPath() . 'public/404.html',
],
'version' => '1.9',
'ver' => 1090
'ver' => 1091
];
+1 -1
View File
@@ -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 = [
+27
View File
@@ -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('上传失败!接口错误');
}
}
}
+7 -3
View File
@@ -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,
+3 -3
View File
@@ -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'
+2 -2
View File
@@ -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', '请先登录');
}
+4 -4
View File
@@ -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>&nbsp;&nbsp;&nbsp;<a href="/qqlogin?type=qzone&redirect=/{$plugin.alias}" class="btn btn-sm btn-outline-success">立即登录</a></p>
<p>当前登录的账号:<b>未登录</b>&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;<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,