前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >主题收录检测的问题

主题收录检测的问题

作者头像
oscool资源分享
发布2024-08-24 08:40:44
850
发布2024-08-24 08:40:44
举报
文章被收录于专栏:oscool资源分享

前言

现在的问题就是收录检测的问题,有时候它提示已经收录,我连收录的秘钥都没有填写就直接判断为已经收录了,所以我在网上寻找到这个问题的解决方法

代码和放置位置

themes/Joe-master/core/route.php ,打开后找到143,然后在143行内容后面回车,然后插入代码。

代码语言:javascript
复制
 $header[] = "X-FORWARDED-FOR:" . $ip;
    $header[] = "Host: www.baidu.com";
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
    $ch = curl_init();

添加完以上代码后把这个代码:

代码语言:javascript
复制
 $baiduSite = "https://www.baidu.com/s?ie=utf-8&newi=1&mod=1&isid={$encryption}&wd={$site}&rsv_spt=1&rsv_iqid={$encryption}&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=ib&rsv_sug3=2&rsv_sug1=1&rsv_sug7=001&rsv_n=2&rsv_btype=i&inputT=3083&rsv_sug4=3220&rsv_sug=9&rsv_sid=32818_1460_33042_33060_31660_33099_33101_32961_26350_22159&_ss=1&clist=&hsug=&f4s=1&csor=38&_cr1=32951";

替换成:

代码语言:javascript
复制
$baiduSite = "http://www.baidu.com/s?ie=utf-8&wd={$site}";

其他的代码不要动,然后就可以看到未收录的文章提示推送中了。

直接修改route.php内容

代码语言:javascript
复制
response->setStatus(200);

    $page = $self->request->page;
    $pageSize = $self->request->pageSize;
    $type = $self->request->type;

    /* sql注入校验 */
    if (!preg_match('/^\d+$/', $page)) {
        return $self->response->throwJson(array("data" => "非法请求!已屏蔽!"));
    }
    if (!preg_match('/^\d+$/', $pageSize)) {
        return $self->response->throwJson(array("data" => "非法请求!已屏蔽!"));
    }
    if (!preg_match('/^[created|views|commentsNum|agree]+$/', $type)) {
        return $self->response->throwJson(array("data" => "非法请求!已屏蔽!"));
    }

    /* 如果传入0,强制赋值1 */
    if ($page == 0) $page = 1;
    $result = [];
    /* 增加置顶文章功能,通过JS判断(如果你想添加其他标签的话,请先看置顶如何实现的) */
    $sticky_text = Helper::options()->JIndexSticky;
    if ($sticky_text && $page == 1) {
        $sticky_arr = explode("||", $sticky_text);
        foreach ($sticky_arr as $cid) {
            $self->widget('Widget_Contents_Post@' . $cid, 'cid=' . $cid)->to($item);
            if ($item->next()) {
                $result[] = array(
                    "mode" => $item->fields->mode ? $item->fields->mode : 'default',
                    "image" => _getThumbnails($item),
                    "time" => date('Y-m-d', $item->created),
                    "created" => date('Y年m月d日', $item->created),
                    "title" => $item->title,
                    "abstract" => _getAbstract($item, false),
                    "category" => $item->categories,
                    "views" => _getViews($item, false),
                    "commentsNum" => number_format($item->commentsNum),
                    "agree" => _getAgree($item, false),
                    "permalink" => $item->permalink,
                    "lazyload" => _getLazyload(false),
                    "type" => "sticky",
                );
            }
        }
    }
    $self->widget('Widget_Contents_Sort', 'page=' . $page . '&pageSize=' . $pageSize . '&type=' . $type)->to($item);
    while ($item->next()) {
        $result[] = array(
            "mode" => $item->fields->mode ? $item->fields->mode : 'default',
            "image" => _getThumbnails($item),
            "time" => date('Y-m-d', $item->created),
            "created" => date('Y年m月d日', $item->created),
            "title" => $item->title,
            "abstract" => _getAbstract($item, false),
            "category" => $item->categories,
            "views" => number_format($item->views),
            "commentsNum" => number_format($item->commentsNum),
            "agree" => number_format($item->agree),
            "permalink" => $item->permalink,
            "lazyload" => _getLazyload(false),
            "type" => "normal"
        );
    };

    $self->response->throwJson(array("data" => $result));
}

/* 增加浏览量 已测试 √ */
function _handleViews($self)
{
    $self->response->setStatus(200);

    $cid = $self->request->cid;

    /* sql注入校验 */
    if (!preg_match('/^\d+$/',  $cid)) {
        return $self->response->throwJson(array("code" => 0, "data" => "非法请求!已屏蔽!"));
    }
    $db = Typecho_Db::get();
    $row = $db->fetchRow($db->select('views')->from('table.contents')->where('cid = ?', $cid));
    if (sizeof($row) > 0) {
        $db->query($db->update('table.contents')->rows(array('views' => (int)$row['views'] + 1))->where('cid = ?', $cid));
        $self->response->throwJson(array(
            "code" => 1,
            "data" => array('views' => number_format($db->fetchRow($db->select('views')->from('table.contents')->where('cid = ?', $cid))['views']))
        ));
    } else {
        $self->response->throwJson(array("code" => 0, "data" => null));
    }
}

/* 点赞和取消点赞 已测试 √ */
function _handleAgree($self)
{
    $self->response->setStatus(200);

    $cid = $self->request->cid;
    $type = $self->request->type;

    /* sql注入校验 */
    if (!preg_match('/^\d+$/',  $cid)) {
        return $self->response->throwJson(array("code" => 0, "data" => "非法请求!已屏蔽!"));
    }
    /* sql注入校验 */
    if (!preg_match('/^[agree|disagree]+$/', $type)) {
        return $self->response->throwJson(array("code" => 0, "data" => "非法请求!已屏蔽!"));
    }
    $db = Typecho_Db::get();
    $row = $db->fetchRow($db->select('agree')->from('table.contents')->where('cid = ?', $cid));
    if (sizeof($row) > 0) {
        if ($type === "agree") {
            $db->query($db->update('table.contents')->rows(array('agree' => (int)$row['agree'] + 1))->where('cid = ?', $cid));
        } else {
            $db->query($db->update('table.contents')->rows(array('agree' => (int)$row['agree'] - 1))->where('cid = ?', $cid));
        }
        $self->response->throwJson(array(
            "code" => 1,
            "data" => array('agree' => number_format($db->fetchRow($db->select('agree')->from('table.contents')->where('cid = ?', $cid))['agree']))
        ));
    } else {
        $self->response->throwJson(array("code" => 0, "data" => null));
    }
}

/* 查询是否收录 已测试 √ */
function _getRecord($self)
{
    $self->response->setStatus(200);

$site = urlencode($self->request->site);
$baiduSite = "http://www.baidu.com/s?ie=utf-8&wd={$site}";
    $ip = mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255);
    $header[] = "accept-encoding: gzip, deflate";
    $header[] = "accept-language: en-US,en;q=0.8";
    $header[] = "CLIENT-IP:" . $ip;
    $header[] = "X-FORWARDED-FOR:" . $ip;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $baiduSite);
curl_setopt($ch, CURLOPT_REFERER, "https://www.baidu.com/s?ie=utf-8&wd={$site}");
    curl_setopt($ch, CURLOPT_REFERER, "https://www.baidu.com/s?ie=UTF-8&wd={$site}");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    $output = curl_exec($ch);
    curl_close($ch);
    $res = str_replace([' ', "\n", "\r"], '', $output);
    if (strpos($res, "抱歉,没有找到与") || strpos($res, "找到相关结果约0个") || strpos($res, "没有找到该URL") || strpos($res, "抱歉没有找到")) {
        $self->response->throwJson(array("data" => "未收录"));
    } else {
        $self->response->throwJson(array("data" => "已收录"));
    }
}

/* 主动推送到百度收录 已测试 √ */
function _pushRecord($self)
{
    $self->response->setStatus(200);

    $token = Helper::options()->JBaiduToken;
    $domain = $self->request->domain;
    $url = $self->request->url;
    $urls = explode(",", $url);
    $api = "http://data.zz.baidu.com/urls?site={$domain}&token={$token}";
    $ch = curl_init();
    $options =  array(
        CURLOPT_URL => $api,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => implode("\n", $urls),
        CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
    );
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    curl_close($ch);
    $self->response->throwJson(array(
        'domain' => $domain,
        'url' => $url,
        'data' => json_decode($result, TRUE)
    ));
}

/* 获取壁纸分类 已测试 √ */
function _getWallpaperType($self)
{
    $self->response->setStatus(200);

    $json = _curl("http://cdn.apc.360.cn/index.php?c=WallPaper&a=getAllCategoriesV2&from=360chrome");
    $res = json_decode($json, TRUE);
    if ($res['errno'] == 0) {
        $self->response->throwJson([
            "code" => 1,
            "data" => $res['data']
        ]);
    } else {
        $self->response->throwJson([
            "code" => 0,
            "data" => null
        ]);
    }
}

/* 获取壁纸列表 已测试 √ */
function _getWallpaperList($self)
{
    $self->response->setStatus(200);

    $cid = $self->request->cid;
    $start = $self->request->start;
    $count = $self->request->count;
    $json = _curl("http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByCategory&cid={$cid}&start={$start}&count={$count}&from=360chrome");
    $res = json_decode($json, TRUE);
    if ($res['errno'] == 0) {
        $self->response->throwJson([
            "code" => 1,
            "data" => $res['data'],
            "total" => $res['total']
        ]);
    } else {
        $self->response->throwJson([
            "code" => 0,
            "data" => null
        ]);
    }
}

/* 抓取苹果CMS视频分类 已测试 √ */
function _getMaccmsList($self)
{
    $self->response->setStatus(200);

    $cms_api = Helper::options()->JMaccmsAPI;
    $ac = $self->request->ac ? $self->request->ac : '';
    $ids = $self->request->ids ? $self->request->ids : '';
    $t = $self->request->t ? $self->request->t : '';
    $pg = $self->request->pg ? $self->request->pg : '';
    $wd = $self->request->wd ? $self->request->wd : '';
    if ($cms_api) {
        $json = _curl("{$cms_api}?ac={$ac}&ids={$ids}&t={$t}&pg={$pg}&wd={$wd}");
        $res = json_decode($json, TRUE);
        if ($res['code'] === 1) {
            $self->response->throwJson([
                "code" => 1,
                "data" => $res,
            ]);
        } else {
            $self->response->throwJson([
                "code" => 0,
                "data" => "抓取失败!请联系作者!"
            ]);
        }
    } else {
        $self->response->throwJson([
            "code" => 0,
            "data" => "后台苹果CMS API未填写!"
        ]);
    }
}

/* 获取虎牙视频列表 已测试 √ */
function _getHuyaList($self)
{
    $self->response->setStatus(200);

    $gameId = $self->request->gameId;
    $page = $self->request->page;
    $json = _curl("https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId={$gameId}&tagAll=0&page={$page}");
    $res = json_decode($json, TRUE);
    if ($res['status'] === 200) {
        $self->response->throwJson([
            "code" => 1,
            "data" => $res['data'],
        ]);
    } else {
        $self->response->throwJson([
            "code" => 0,
            "data" => "抓取失败!请联系作者!"
        ]);
    }
}

/* 获取服务器状态 */
function _getServerStatus($self)
{
    $self->response->setStatus(200);

    $api_panel = Helper::options()->JBTPanel;
    $api_sk = Helper::options()->JBTKey;
    if (!$api_panel) return $self->response->throwJson([
        "code" => 0,
        "data" => "宝塔面板地址未填写!"
    ]);
    if (!$api_sk) return $self->response->throwJson([
        "code" => 0,
        "data" => "宝塔接口密钥未填写!"
    ]);
    $request_time = time();
    $request_token = md5($request_time . '' . md5($api_sk));
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_panel . '/system?action=GetNetWork');
    curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 3000);
    curl_setopt($ch, CURLOPT_TIMEOUT_MS, 3000);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  array("request_time" => $request_time, "request_token" => $request_token));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response  = json_decode(curl_exec($ch), true);
    curl_close($ch);
    $self->response->throwJson(array(
        /* 状态 */
        "status" => $response ? true : false,
        /* 信息提示 */
        "message" => $response['msg'],
        /* 上行流量KB */
        "up" => $response["up"] ? $response["up"] : 0,
        /* 下行流量KB */
        "down" => $response["down"] ? $response["down"] : 0,
        /* 总发送(字节数) */
        "upTotal" => $response["upTotal"] ? $response["upTotal"] : 0,
        /* 总接收(字节数) */
        "downTotal" => $response["downTotal"] ? $response["downTotal"] : 0,
        /* 内存占用 */
        "memory" => $response["mem"] ? $response["mem"] : ["memBuffers" => 0, "memCached" => 0, "memFree" => 0, "memRealUsed" => 0, "memTotal" => 0],
        /* CPU */
        "cpu" => $response["cpu"] ? $response["cpu"] : [0, 0, [0], 0, 0, 0],
        /* 系统负载 */
        "load" => $response["load"] ? $response["load"] : ["fifteen" => 0, "five" => 0, "limit" => 0, "max" => 0, "one" => 0, "safe" => 0],
    ));
}

/* 获取最近评论 */
function _getCommentLately($self)
{
    $self->response->setStatus(200);

    $time = time();
    $num = 7;
    $categories = [];
    $series = [];
    $db = Typecho_Db::get();
    $prefix = $db->getPrefix();
    for ($i = ($num - 1); $i >= 0; $i--) {
        $date = date("Y/m/d", $time - ($i * 24 * 60 * 60));
        $sql = "SELECT coid FROM `{$prefix}comments` WHERE FROM_UNIXTIME(created, '%Y/%m/%d') = '{$date}' limit 100";
        $count = count($db->fetchAll($sql));
        $categories[] = $date;
        $series[] = $count;
    }
    $self->response->throwJson([
        "categories" => $categories,
        "series" => $series,
    ]);
}

/* 获取文章归档 */
function _getArticleFiling($self)
{
    $self->response->setStatus(200);

    $page = $self->request->page;
    $pageSize = 8;
    if (!preg_match('/^\d+$/', $page)) return $self->response->throwJson(array("data" => "非法请求!已屏蔽!"));
    if ($page == 0) $page = 1;
    $offset = $pageSize * ($page - 1);
    $time = time();
    $db = Typecho_Db::get();
    $prefix = $db->getPrefix();
    $result = [];
    $sql = "SELECT FROM_UNIXTIME(created, '%Y 年 %m 月') as date FROM `{$prefix}contents` WHERE created < {$time} AND (password is NULL or password = '') AND status = 'publish' AND type = 'post' GROUP BY FROM_UNIXTIME(created, '%Y 年 %m 月') DESC LIMIT {$pageSize} OFFSET {$offset}";
    $temp = $db->fetchAll($sql);
    $options = Typecho_Widget::widget('Widget_Options');
    foreach ($temp as $item) {
        $date = $item['date'];
        $list = [];
        $sql = "SELECT * FROM `{$prefix}contents` WHERE created < {$time} AND (password is NULL or password = '') AND status = 'publish' AND type = 'post' AND FROM_UNIXTIME(created, '%Y 年 %m 月') = '{$date}' ORDER BY created DESC LIMIT 100";
        $_list = $db->fetchAll($sql);
        foreach ($_list as $_item) {
            $type = $_item['type'];
            $_item['categories'] = $db->fetchAll($db->select()->from('table.metas')
                ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
                ->where('table.relationships.cid = ?', $_item['cid'])
                ->where('table.metas.type = ?', 'category')
                ->order('table.metas.order', Typecho_Db::SORT_ASC));
            $_item['category'] = urlencode(current(Typecho_Common::arrayFlatten($_item['categories'], 'slug')));
            $_item['slug'] = urlencode($_item['slug']);
            $_item['date'] = new Typecho_Date($_item['created']);
            $_item['year'] = $_item['date']->year;
            $_item['month'] = $_item['date']->month;
            $_item['day'] = $_item['date']->day;
            $routeExists = (NULL != Typecho_Router::get($type));
            $_item['pathinfo'] = $routeExists ? Typecho_Router::url($type, $_item) : '#';
            $_item['permalink'] = Typecho_Common::url($_item['pathinfo'], $options->index);
            $list[] = array(
                "title" => date('m/d', $_item['created']) . ':' . $_item['title'],
                "permalink" => $_item['permalink'],
            );
        }
        $result[] = array("date" => $date, "list" => $list);
    }
    $self->response->throwJson($result);
}

修改后即可保存,然后打开你的文章,你就会发现没有收录的文章它检测出来的就是显示未收录的状态,快去试试吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024年07月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 代码和放置位置
      • 直接修改route.php内容
      相关产品与服务
      腾讯云服务器利旧
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档