吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2206|回复: 15
收起左侧

[其他原创] 【PHP】全民K歌K歌花园 自动兑换+播种+收货

  [复制链接]
newClass 发表于 2023-9-6 15:52
应上午部分网友要求,现胡编乱造一个,仅有花园,试试能不能跑吧

cookie 获取方法:
1、打开 https://kg.qq.com/ 扫码登录
2、F12  >> 控制台输入“document.cookie” >> 回车即可获取

获取到的cookie填写到程序里,然后添加监控,1分钟一次应该够了吧

[PHP] 纯文本查看 复制代码
<?php
$kg = new Kg;
$kg->cookie = ''; // 填写您的cookie
$kg->cron();

Class Kg
{
    public $cookie = '';
    public $config = array(
        'cache_path' => __DIR__.'/kg_cache/',
        'cwxrobot' => 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=0d9b8dc4-46db-46e2-95b5-**************', // 企业微信通知
    );

    public function cron(){
        $this->comm_store(); // K歌花园兑换
        $this->garden();  // K歌花园播种
    }

    // K歌花园
    private function garden(){
        $cache = $this->cache('kg_garden_'.$this->uid());
        if($cache){return $cache;}
        $garden = $this->garden__webapp__info();
        if($garden['code'] == 0)
        {
            $landList = $garden['data']['garden.webapp.info']['garden']['landList'];
            $cron_garden = 60;
            foreach ($landList as $k => $v) {
                if($v['isActived'] == 1){ // 激活
                    $leftTime = $v['seed']['leftTime']; // 剩余时间
                    if($leftTime == 0){ // 一旦有空位/成熟  直接 一键收 + 一键播 
                        $this->garden__webapp__harvest(); // 一键收
                        $rs = $this->garden__webapp__plant(); // 一键播
                        if($rs['subcode'] == '-10003'){
                            $this->cache('kg_garden_'.$this->uid(), $landList, 43200); // 没种子啦  12小时内不执行
                        }
                        return $rs;
                    }
                    // 预估下次执行时间
                    $cron_garden = $leftTime > $cron_garden ? $leftTime : $cron_garden;
                }
            }
            $this->cache('kg_garden_'.$this->uid(), $landList, $cron_garden);
        }else{
            $this->send('error: '.$this->uid()." cookie Invalid !");
        }
    }

    private function comm_store(){
        $cache = $this->cache('kg_garden_comm_store_'.$this->uid());
        if($cache){return ['message'=>'今日不会再兑换了'];}
        $rs = $this->comm_store__webapp__list();
        if($rs['code'] == 0){
            $balance = $rs['data']['comm_store.webapp.list']['balance']; $leftNum = 0;
            $storeItemList = $rs['data']['comm_store.webapp.list']['storeItemList'];
            foreach ($storeItemList as $key => $v) {
                $leftNum += $v['leftNum'];
                if($v['leftNum'] > 0){
                    if($v['cost'] * $v['leftNum'] < $balance){
                        $res = $this->comm_store__webapp__exchange($v['itemId'], $v['leftNum']);
                        $balance = $balance - $v['cost'] * $v['leftNum'];
                    }else{
                        $this->cache('kg_garden_comm_store_'.$this->uid(), $storeItemList, strtotime(date('Y-m-d H:i:s')) + 86400 - time());
                        return false; // 意思是最少需要有2000金币  不然不会执行兑换  只能自己兑换
                    }  
                }
            }
            $leftNum == 0 ? $this->cache('kg_garden_comm_store_'.$this->uid(), $storeItemList, strtotime(date('Y-m-d H:i:s')) + 86400 - time()) : '';
        }
    }

    // 兑换种子
    private function comm_store__webapp__exchange($t_itemId, $t_num)
    {
        $url = 'https://node.kg.qq.com/webapp/proxy?t_storeId=8&t_uid=' . $this->uid() . '&t_itemId=' . $t_itemId . '&t_num=' . $t_num . '&ns=proto_comm_store_webapp&cmd=comm_store.webapp.exchange&ns_inbuf=&cmdPrefix=&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZjb21tX3N0b3JlJTJGcHJvdG9fY29tbV9zdG9yZV93ZWJhcHBfdjIuanMlMjIlMkMlMjJkZXBGaWxlUGF0aFJlbGF0aXZlT3V0cHV0JTIyJTNBJTVCJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMlN0b3JlRXhjaGFuZ2VSZXElMjIlMkMlMjJ3bnNEaXNwYXRjaGVyJTIyJTNBdHJ1ZSU3RA%3D%3D&g_tk=5381&g_tk_openkey=245581372';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true);
        return $rs;
    }

    // 查询剩余可兑换种子
    private function comm_store__webapp__list(){
        $url = 'https://node.kg.qq.com/webapp/proxy?t_storeId=8&t_uid=' . $this->uid() . '&t_num=20&t_typeId=1&t_passback=&ns=proto_comm_store_webapp&cmd=comm_store.webapp.list&ns_inbuf=&cmdPrefix=&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZjb21tX3N0b3JlJTJGcHJvdG9fY29tbV9zdG9yZV93ZWJhcHBfdjIuanMlMjIlMkMlMjJkZXBGaWxlUGF0aFJlbGF0aXZlT3V0cHV0JTIyJTNBJTVCJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMkNvbW1TdG9yZUxpc3RSZXElMjIlMkMlMjJ3bnNEaXNwYXRjaGVyJTIyJTNBdHJ1ZSU3RA%3D%3D&g_tk=5381&g_tk_openkey=245581372';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true);
        return $rs;
    }

    // K歌花园 获取种植信息
    private function garden__webapp__info(){
        $url = 'https://node.kg.qq.com/webapp/proxy';
        $url .= '?t_uid=' . $this->uid();
        $url .= '&ns=proto_garden_webapp&cmd=garden.webapp.info&g_tk=5381&g_tk_openkey=1469557487';
        $url .= '&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZnYXJkZW4lMkZwcm90b19nYXJkZW5fd2ViYXBwX3YyLmpzJTIyJTJDJTIyZGVwRmlsZVBhdGhSZWxhdGl2ZU91dHB1dCUyMiUzQSU1QiUyMmpjZV9uZXclMkZrZyUyRnVuaV9wYXlfcHJveHklMkZ1bmlfcGF5X3Byb3h5X3YyLmpzJTIyJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMkdhcmRlbkluZm9SZXElMjIlMkMlMjJ3bnNEaXNwYXRjaGVyJTIyJTNBdHJ1ZSU3RA=='; // 好大一个包
        //$url .= '&t_source=&t_deviceInfo=&ns_inbuf=&cmdPrefix=';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true); // ['data']['garden.webapp.info']['garden']['landList']
        return $rs;
    }

    // K歌花园 指定收获  多此一举...
    private function garden__webapp__timer_report($t_landId=''){
        $url = 'https://node.kg.qq.com/webapp/proxy?t_landId='.$t_landId.'&t_passback=&t_deviceInfo=&ns=proto_garden_webapp&cmd=garden.webapp.timer_report&ns_inbuf=&cmdPrefix=&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZnYXJkZW4lMkZwcm90b19nYXJkZW5fd2ViYXBwX3YyLmpzJTIyJTJDJTIyZGVwRmlsZVBhdGhSZWxhdGl2ZU91dHB1dCUyMiUzQSU1QiUyMmpjZV9uZXclMkZrZyUyRnVuaV9wYXlfcHJveHklMkZ1bmlfcGF5X3Byb3h5X3YyLmpzJTIyJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMlRpbWVyUmVwb3J0UmVxJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q%3D&g_tk=5381&g_tk_openkey=1469557487';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true);
        return $rs;
    }

    // K歌花园 一键收获
    private function garden__webapp__harvest(){
        $url = 'https://node.kg.qq.com/webapp/proxy?t_uid='.$this->uid().'&t_deviceInfo=&t_oneClick=1&ns=proto_garden_webapp&cmd=garden.webapp.harvest&ns_inbuf=&cmdPrefix=&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZnYXJkZW4lMkZwcm90b19nYXJkZW5fd2ViYXBwX3YyLmpzJTIyJTJDJTIyZGVwRmlsZVBhdGhSZWxhdGl2ZU91dHB1dCUyMiUzQSU1QiUyMmpjZV9uZXclMkZrZyUyRnVuaV9wYXlfcHJveHklMkZ1bmlfcGF5X3Byb3h5X3YyLmpzJTIyJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMkdhcmRlbkhhcnZlc3RSZXElMjIlMkMlMjJ3bnNEaXNwYXRjaGVyJTIyJTNBdHJ1ZSU3RA%3D%3D&g_tk=5381&g_tk_openkey=1469557487';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true);
        return $rs;
    }

    // K歌花园 一键播种
    private function garden__webapp__plant(){
        $url = 'https://node.kg.qq.com/webapp/proxy?t_uid='.$this->uid().'&t_seedId=0&t_landId=0&t_deviceInfo=&t_oneClick=1&ns=proto_garden_webapp&cmd=garden.webapp.plant&ns_inbuf=&cmdPrefix=&mapExt=JTdCJTIyZmlsZSUyMiUzQSU3QiUyMmZpbGVQYXRoUmVsYXRpdmVPdXRwdXQlMjIlM0ElMjJqY2VfbmV3JTJGa2clMkZnYXJkZW4lMkZwcm90b19nYXJkZW5fd2ViYXBwX3YyLmpzJTIyJTJDJTIyZGVwRmlsZVBhdGhSZWxhdGl2ZU91dHB1dCUyMiUzQSU1QiUyMmpjZV9uZXclMkZrZyUyRnVuaV9wYXlfcHJveHklMkZ1bmlfcGF5X3Byb3h5X3YyLmpzJTIyJTVEJTdEJTJDJTIyY21kTmFtZSUyMiUzQSUyMkdhcmRlblBsYW50UmVxJTIyJTJDJTIyd25zRGlzcGF0Y2hlciUyMiUzQXRydWUlN0Q%3D&g_tk=5381&g_tk_openkey=1469557487';
        $headers = array(
            'Host: node.kg.qq.com',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
            'Accept: application/json, text/plain, */*',
            'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://kg.qq.com/',
            'Origin: https://kg.qq.com',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'Connection: keep-alive',
            'Cookie: ' . $this->cookie,
        );
        $rs = json_decode($this->request($url, $headers),true);
        return $rs;
    }

    // 获取 uid  
    private function uid(){
        $cookie = explode("; ", $this->cookie); $cookie_array = array();
        foreach ($cookie as $key => $value) {
            $va = explode("=", $value);
            $cookie_array[$va[0]] = $va[1];
        }
        if(!isset($cookie_array['uid'])){exit("cookie is invalid");}
        return $cookie_array['uid'];
    }

    // 发送通知
    private function send($message){
        $mess = array(
            'msgtype' => 'text',
            'text' => array(
                'content' => $message,
            ),
        );
        $result = $this->request($this->config['cwxrobot'],['Content-Type: application/json'],json_encode($mess),"POST");
        return $result;
    }

    private function cache($name, $value ='', $expires_in='')
    {
        if(!is_dir($this->config['cache_path'])){mkdir($this->config['cache_path']);}
        $key = md5($name);
        $cache_file = $this->config['cache_path'].$key.'.txt';
        if($value == '' && $expires_in == ''){
            if(is_file($cache_file)){
                $cache = unserialize(file_get_contents($cache_file));
                if($cache['expires_in'] > time()){
                    return $cache['data'];
                }
            }
            return false;
        }elseif($value != '' && $value != null){
            $cache = array('data' => $value, 'expires_in' => time() + $expires_in);
            file_put_contents($cache_file, serialize($cache));
        }elseif($value == null){
            is_file($cache_file) ? unlink($cache_file) : '';
        }
    }

    private function request($Url, $Header = null, $Data = null, $Method = "GET"){
        $ch = curl_init();
        $Header = $Header ? $Header : array("Content-Type:application/json;charset=utf-8;","Accept:application/json");
        curl_setopt($ch, CURLOPT_URL, $Url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        if($Method == 'GET'){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
            curl_setopt($ch, CURLOPT_POST, false);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $Data);
        }
        if($Method == 'POST'){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $Data);
        }
        if($Method == 'PUT'){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($ch, CURLOPT_POSTFIELDS, $Data);
        }
        if($Method == 'DELETE'){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
            curl_setopt($ch, CURLOPT_POSTFIELDS, $Data);
        }
        if($Method == 'PATCH'){
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
            curl_setopt($ch, CURLOPT_POSTFIELDS, $Data);
        }
        curl_setopt($ch, CURLOPT_TIMEOUT, 3);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
}

?>

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Versior + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pjlt8 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lxzhtxh13 发表于 2023-9-6 19:46
[PHP] 纯文本查看 复制代码
'cwxrobot' => 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=0d9b8dc4-46db-46e2-95b5-**************', // 企业微信通知

这里需要写什么呀
luoyiqun 发表于 2023-9-6 17:20
不懂这个主要是用来做什么的呢,但是还是先给楼主点个赞吧!可以说说吗,我是新手,很好奇。能登陆,但是不知道用来做什么的。
Versior 发表于 2023-9-6 16:19
maoyexx 发表于 2023-9-6 16:35
Versior 发表于 2023-9-6 16:19
一直提示没种子

怎么运行!大佬
4899 发表于 2023-9-6 17:02
maoyexx 发表于 2023-9-6 16:35
怎么运行!大佬

放到支持 PHP的WEB网站服务器上。  或者自己电脑上装个小皮面板
zouni1990 发表于 2023-9-6 17:05
感谢大佬辛勤耕耘
 楼主| newClass 发表于 2023-9-6 17:08
Versior 发表于 2023-9-6 16:19
一直提示没种子

前期需要自己背包有种子,或者拥有大于2000的金币
 楼主| newClass 发表于 2023-9-6 17:10
咦,我的帖子又被删了,会不会这个帖子也要被删了
Versior 发表于 2023-9-6 17:21
newClass 发表于 2023-9-6 17:08
前期需要自己背包有种子,或者拥有大于2000的金币

有种子,金币可能不够,种子有但是还是不行
Versior 发表于 2023-9-6 17:21
maoyexx 发表于 2023-9-6 16:35
怎么运行!大佬

我丢青龙里面的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表