zoukankan      html  css  js  c++  java
  • 帝国cms最新主动推送插件(集市面上全部推送)

    帝国cms最新主动推送插件(集市面上全部推送)

    <?php
    class zhanzhangPush {
        private $dbhost = 'localhost:3306'; // mysql服务器主机地址
        private $dbuser = ''; // mysql用户名
        private $dbpass = ''; // mysql用户名密码
        private $domain = ''; //不带www的域名
        private $zhanzhangToken = ''; //站长token
        private $xiongToken = ''; //熊掌号token
        private $xiongAppid = ''; //熊掌号appid
        private $shenmaUserName = ''; //神马username
        private $shenmaToken = ''; //神马token
        private $http = "https"; //协议请求 http  https
        private $database = ''; //数据库名
        private $www = 'm'; //域名前缀  www m
        
        public function init() {
            $this->shenma_push($urls);
            // $this->baidu_push($urls);
            // $this->real_push($urls);
            // $this->batch_push($urls);
            $this->sogouPush($urls);
        }
        /**
         * 获取网站url
         */
        public function get_site_urls($artId, $vodId, $limit = 800) {
            $limit = $limit / 2;
            $conn = mysqli_connect($this->dbhost, $this->dbuser, $this->dbpass);
            if (!$conn) {
                die('连接失败: ' . mysqli_error($conn));
            }
            //var_dump($conn);die;
            mysqli_query($conn, "set names utf8");
            mysqli_select_db($conn, $this->database);
     
            //var_dump($artId);die;
            //var_dump($urls);die;
            //查找电影--------------------------------------------------
            $sql = "SELECT titleurl,id   FROM www_96kaifa_com_ecms_news where id > {$artId} limit $limit";
            $retval = mysqli_query($conn, $sql);
            if (!$retval) {
                die('无法读取数据: ' . mysqli_error($conn));
            }
            $urls = [];
            while ($row = mysqli_fetch_assoc($retval)) {
                $artId = $row['id'];
                // echo 'vod'.$vodId.'<br>';
                array_push($urls, $this->http . "://m." . $this->domain . $row['titleurl']);
            }
            $data = ['urls' => $urls, 'art_id' => $artId, 'vod_id' => $vodId];
            return $data;
        }
        /**
         * 获取api接口
         */
        public function get_api($zhanzhang) {
            switch ($zhanzhang) {
                case 'shenma':
                    return "http://data.zhanzhang.sm.cn/push?site=".$this->www."." . $this->domain . "&user_name=" . $this->shenmaUserName . "&resource_name=mip_add&token=" . $this->shenmaToken;
                case 'realtime':
                    return "http://data.zz.baidu.com/urls?appid=" . $this->xiongAppid . "&token=" . $this->xiongToken . "&type=realtime";
                case 'batch':
                    return "http://data.zz.baidu.com/urls?appid=" . $this->xiongAppid . "&token=" . $this->xiongToken . "&type=batch";
                case 'baidu':
                    return "http://data.zz.baidu.com/urls?site=".$this->www."." . $this->domain . "&token=" . $this->zhanzhangToken;
            }
        }
        /**
         * 推送
         */
        public function push($api, $urls) {
            // var_dump($urls);die;
            $ch = curl_init();
            $options = array(CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
            // CURLOPT_POSTFIELDS => implode("
    ", array_slice($urls,0,10)),
            CURLOPT_POSTFIELDS => implode("
    ", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),);
            curl_setopt_array($ch, $options);
            $res = curl_exec($ch);
            return $res;
        }
        /**
         * 神马站长推送
         */
        public function shenma_push($urls) {
            $configData = $this->get_config();
            $data = $this->get_site_urls($configData['shenma']['art_id'], $configData['shenma']['vod_id']);
            $urls = $data['urls'];
            $configData['shenma']['art_id'] = $data['art_id'];
            $configData['shenma']['vod_id'] = $data['vod_id'];
            //推送接口
            $api = $this->get_api('shenma');
            $res = $this->push($api, $urls);
            $jsonres = json_decode($res);
            if ($jsonres->errorMsg == '') {
                $this->log("神马站长成功推送" . count($urls) . "条");
                $this->update_config($configData);
            } else {
                $this->log("神马站长推送失败:" . $res);
            }
            // echo "<pre>";var_dump($configData);die;
            var_dump($res);
        }
        /**
         * 百度站长推送
         */
        public function baidu_push($urls) {
            $configData = $this->get_config();
            $data = $this->get_site_urls($configData['baidu']['art_id'], $configData['baidu']['vod_id']);
            $urls = $data['urls'];
            $configData['baidu']['art_id'] = $data['art_id'];
            $configData['baidu']['vod_id'] = $data['vod_id'];
            $api = $this->get_api('baidu');
            $res = $this->push($api, $urls);
            $jsonres = json_decode($res);
            if ($jsonres->error >= 400) {
                $this->log("百度站长推送失败:" . $res);
            } else {
                $this->log("百度站长成功推送" . $jsonres->success . "条,今日还可推送:" . $jsonres->remain . "条");
                $this->update_config($configData);
            }
            var_dump($urls);die;
            echo "<pre> 百度站长推送";
            var_dump($res);
        }
        /**
         * 熊掌号天级推送
         */
        public function real_push($urls) {
            $configData = $this->get_config();
            $data = $this->get_site_urls($configData['realtime']['art_id'], $configData['realtime']['vod_id'], 10);
            $urls = $data['urls'];
            $configData['realtime']['art_id'] = $data['art_id'];
            $configData['realtime']['vod_id'] = $data['vod_id'];
            $api = $this->get_api('realtime');
            $res = $this->push($api, $urls);
            $jsonres = json_decode($res);
            if ($jsonres->error >= 400) {
                $this->log("熊掌号天级推送失败:" . $res);
            } else {
                $this->log("熊掌号天级成功推送" . $jsonres->success . "条,今日还可推送:" . $jsonres->remain . "条");
                $this->update_config($configData);
            }
            // var_dump($urls);die;
            echo "<pre>";
            var_dump($res);
        }
        /**
         * 熊掌号周级推送
         */
        public function batch_push($urls) {
            $configData = $this->get_config();
            $data = $this->get_site_urls($configData['batch']['art_id'], $configData['batch']['vod_id']);
            $urls = $data['urls'];
            $configData['batch']['art_id'] = $data['art_id'];
            $configData['batch']['vod_id'] = $data['vod_id'];
            $api = $this->get_api('batch');
            $res = $this->push($api, array_slice($urls, 0, 1));
            $jsonres = json_decode($res);
            if ($jsonres->error >= 400) {
                $this->log("熊掌号周级推送失败:" . $res);
            } else {
                $this->log("熊掌号周级成功推送" . $jsonres->success . "条,今日还可推送:" . $jsonres->remain . "条");
                $this->update_config($configData);
            }
            // var_dump($urls);die;
            echo "<pre>";
            var_dump($res);
        }
        /**
         *搜狗推送
         */
        public function sogouPush($urls) {
            $configData = $this->get_config();
            $data = $this->get_site_urls($configData['sougou']['art_id'], $configData['sougou']['vod_id'], 10);
            $urls = $data['urls'];
            $configData['sougou']['art_id'] = $data['art_id'];
            $configData['sougou']['vod_id'] = $data['vod_id'];
            echo ("<pre>");
            // var_dump($data);die;
            for ($i = 0;$i < count($urls);$i++) {
                $postUrl = 'http://fankui.help.sogou.com/index.php/web/web/addShoulu';
                $postData = array("source" => "1", "site_type" => "1", "Shoulu" => array("webAdr" => $urls[$i], "email" => "103@qq.com", "reason" => ""));
                $postData = http_build_query($postData);
                $curl = curl_init();
                curl_setopt($curl, CURLOPT_URL, $postUrl);
                curl_setopt($curl, CURLOPT_USERAGENT, 'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl, CURLOPT_POST, true);
                curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
                curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
                curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
                $res = curl_exec($curl);
                curl_close($curl);
                $jsonres = json_decode($res);
                if ($jsonres->success == 'true') {
                    $this->log("搜狗推送成功:" . $urls[$i]);
                } else {
                    $this->log("搜狗推送失败:" . $urls[$i]);
                }
            }
            $this->update_config($configData);
        }
        /**
         * 获取配置信息
         */
        public function get_config() {
            $configPath = 'push_config.txt';
            if (file_exists($configPath)) {
                $data = file_get_contents($configPath);
                return unserialize($data);
            } else {
                $myfile = fopen($configPath, "w");
                 $configData = [
                	'shenma' => [
                		'art_id' => 0, 
                		'vod_id' => 0
                		], 
                	'baidu' => [
                		'art_id' => 0, 
                		'vod_id' => 0
                		], 
                	'realtime' => [
                		'art_id' => 0, 
                		'vod_id' => 0
                		], 
                	'batch' => [
                		'art_id' => 0, 
                		'vod_id' => 0
                		], 
                	'sougou' => [
                		'art_id' => 0, 
                		'vod_id' => 0
                		], 
                	];
                fwrite($myfile, serialize($configData));
                fclose($myfile);
                return $configData;
            }
        }
        /**
         * 修改配置信息
         */
        public function update_config($configData) {
            $configPath = 'push_config.txt';
            $myfile = fopen($configPath, "w");
            fwrite($myfile, serialize($configData));
            fclose($myfile);
        }
        public function log($data) {
            file_put_contents('zhanzhang_push.log', date('Y-m-d H:i:s') . " " . $data . PHP_EOL, FILE_APPEND);
        }
    }
    $obj = new zhanzhangPush();
    $obj->init();
    

      

  • 相关阅读:
    Android Studio 如何导入源码
    多版本 jdk 的切换方法
    Markdown的常用语法
    adb常用命令
    虚拟机怎样共享ubuntu中的文件
    adb的相关配置
    【Leetcode】2的幂(整数的二进制形式,与运算)
    【Leetcode】二叉树的最小深度
    【Leetcode】合并两个有序链表
    【Leetcode】国王挖金矿
  • 原文地址:https://www.cnblogs.com/68xi/p/13597516.html
Copyright © 2011-2022 走看看