新版百度熊掌号推送


avatar
铭心 2021-06-01 1.94k

本插件经由原作者DYBOY的插件更改而来,由于百度搜索资源平台舍弃Appid参数、熊掌ID参数,且取消天级收录及周级收录并改为快速收录和普通收录导致原DYBOY大佬的插件已经不能再次进行提交推送,且原插件已经很久没有更新了,如果有新搭建的博客使用了原插件就会导致功能失效。所以做了一些更改,取消了Appid和熊掌ID,现在只需要设置需要推送的网站及Token即可进行推送并记录。

使用方法:
下载插件zip压缩包并手动安装激活使用,下载地址为:
http://file.mxin.co/baidu_xz.zip

插件目录结构为:

baidu_xz
    baidu_xz.php
    baidu_xz_config.php
    baidu_xz_setting.php
    img
        nolmgALL.jpg

插件文件代码为:

baidu_xz.php

<?php
/*
Plugin Name: 百度熊掌号集成+推送
Version: 2.0
Time: 2019-9-14 11:54:15
Plugin URL: https://blog.dyboy.cn/develop/115.html
Description: Emlog用户百度熊掌号自动推送,一键配置,无需大量修改代码,只需在模版中添加挂载点即可,方便所有站长使用!
ForEmlog:6.0+
Author: DYBOY
Author URL: https://blog.dyboy.cn
*/

!defined('EMLOG_ROOT') && exit('error');
define('BAIDU_XZ_ROOT',EMLOG_ROOT.'/content/plugins/baidu_xz/');
date_default_timezone_set('Asia/Shanghai'); 

/*
* 插入后台导航侧边栏
*/
function baidu_xz_menu(){
    echo '<div class="sidebarsubmenu"><a href="./plugin.php?plugin=baidu_xz">百度熊掌号</a></div>';
}

/*
* 判断是否为文章首页
*/
function isHomePage(){
    if (BLOG_URL . trim(Dispatcher::setPath(), '/') == BLOG_URL){  
        return true;
    } else { 
        return FALSE;
    }
}

/*
* 测试输出
*/
function test_echo(){
    echo "test_echo";
}

/*
* 文章自动摘要
*/
function logAbstract($content){
    $content = strip_tags($content);
    $pattern = '/\s/'; //去除空白
    $content = preg_replace($pattern, '', $content);  
    return mb_substr($content, 0, 108,"UTF-8");
}

/*
* 获取文章中所有图片链接,用于熊掌号,允许0,1,3张数量的图片
*/
function getAllImg($content){
    preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $imgs);
    if(!empty($imgs[1])) {
        $strArr = '';
        $imgNum = count($imgs[1]);
        if($imgNum >= 3){ $strArr = '"'.$imgs[1][0].'","'.$imgs[1][1].'","'.$imgs[1][2].'"'; }
        else{ $strArr = '"'.$imgs[1][0].'"'; }
        return $strArr;
    } else {
        // 没有图片
        return '"'.BLOG_URL.'content/plugins/baidu_xz/img/noImgAll.jpg"';
    }
}

/*
* 创建数据表如果不存在
*/
function createTable($db){
    $createsql = 'CREATE TABLE IF NOT EXISTS `emlog_xiongzhang` (
    `id`  int UNSIGNED NOT NULL AUTO_INCREMENT ,
    `link`  varchar(255) NOT NULL ,
    `uptime`  datetime NOT NULL ,
    `status`  varchar(255) NOT NULL ,
    `type`  varchar(255) NOT NULL ,
    PRIMARY KEY (`id`)
    )';
    $db->query($createsql);
}

/*
* 推送功能
*/
function sendBaidu($urls,$id, $token){
    $type = ($type==1)?'realtime':'batch';
    $api = 'http://data.zz.baidu.com/urls?site='.$id.'&token='.$token;
    $ch = curl_init();
    $options =  array(
        CURLOPT_URL => $api,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS =>  $urls,
        CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
    );
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    return $result;
}

/*
* 自动推送保存部分
*/
function baidu_xz_main($logid){
    include 'baidu_xz_config.php';
    $DB = MySqlii::getInstance();
    // createTable($DB);
    $log_model = new  Log_Model();
    $log = $log_model->getOneLogForAdmin($logid);
    $now_url = Url::log($logid);

    //检查是否存在
    $sql = 'SELECT * FROM emlog_xiongzhang WHERE link="'.$now_url.'" LIMIT 0,1';
    $result = mysqli_fetch_assoc($DB->query($sql));
    
    // 检查是否选择了分类
    $sql2 = "SELECT sortid from ". DB_PREFIX ."blog WHERE gid=$logid";
    $result2 = mysqli_fetch_assoc($DB->query($sql2));
    
    if($result['link']=='' && (intval($result2['sortid']) > -2)){
        $type = $config['X_Type'];
        if($config["X_Appid"] && $config["X_Token"]){
            // 如果结果为空,则执行上传操作,再插入数据
            $insertSql = ''; //插入执行的SQL语句
            if($config["X_Type"] == '1') {
                //普通收录
                $jsonData = json_decode(sendBaidu($now_url, $config["X_Appid"], $config["X_Token"]), true);
                $tipMsg = '提交成功';
                if($jsonData['message']){
                    //提交成功
                    $tipMsg = $jsonData['message'];
                }
                //插入数据库
                $insertSql = 'INSERT INTO emlog_xiongzhang (link, uptime, status, type) VALUES ("'.$now_url.'","'.date("Y-m-d H:i:s").'","'.$tipMsg.'","'.(($type=='1')?"普通收录":"快速收录").'")';
            }
            else{
                // 快速收录
                $jsonData = json_decode(sendBaidu($now_url, $config["X_Appid"], $config["X_Token"]), true);
                $tipMsg = '提交成功';
                if($jsonData['message']){
                    $tipMsg = $jsonData['message'];
                }
                $insertSql = 'INSERT INTO emlog_xiongzhang (link, uptime, status, type) VALUES ("'.$now_url.'","'.date("Y-m-d H:i:s").'","'.$tipMsg.'","'.(($type=='1')?"普通收录":"快速收录").'")';
            }
            $DB->query($insertSql);
        }
        else{
            $tipMsg = "配置信息错误";
            $errorSql = 'INSERT INTO emlog_xiongzhang (link, uptime, status, type) VALUES ("'.$now_url.'","'.date("Y-m-d H:i:s").'","'.$tipMsg.'","'.(($type=='1')?"天级收录":"周级收录").'")';
            $DB->query($errorSql);
        }
    }
}

addAction('adm_sidebar_ext', 'baidu_xz_menu'); // 插入导航侧边栏
addAction('save_log','baidu_xz_main'); // 保存文章时候发布

baidu_xz_config.php

<?php
!defined('EMLOG_ROOT') && exit('DYEXIT');
$config = [
    'X_Appid'=>'https://www.mxin.moe',
    'X_Token'=>'123456',
    'X_Type'=>'1', //普通推送
];

暂无评论

发表评论
OωO表情