← 返回列表 config.php 8.1 KB · 2026-11-06 10:19
<?php
// ===== 源码查看保护 =====
// ⚠️ 本文件为公开可见的脱敏副本:数据库密码、AI API Key、百度推送 token
//    均已替换为占位符。真实配置只存在于服务器 /root/gk_auto/config.php。
// 本文件同时用于服务器运行(cron)和在线查看源码。
// 通过 Web 直接访问时,仅以纯文本输出自身源码,不执行任何业务逻辑。
// 注意:gk_auto.php 若被 Web 执行会真的触发发文,这层保护是必需的。
if (PHP_SAPI !== 'cli' && basename($_SERVER['SCRIPT_FILENAME'] ?? '') === basename(__FILE__)) {
    header('Content-Type: text/plain; charset=utf-8');
    echo file_get_contents(__FILE__);
    exit;
}
/**
 * gk_auto 配置
 * AI key 留空时脚本会安全跳过并写日志,不会报错刷屏。
 */

return [

    // ============ AI 提供商(按顺序尝试,第一个有 key 且成功的胜出) ============
    // 性价比:DeepSeek 输入约 ¥1/百万 tokens,三篇/天成本 ≈ ¥0.01/天;智谱 GLM-4-Flash 完全免费
    'ai' => [
        'providers' => [
            [
                'name'    => 'deepseek',
                'url'     => 'https://api.deepseek.com/chat/completions',
                'model'   => 'deepseek-chat',
                'key'     => 'YOUR_DEEPSEEK_API_KEY',
            ],
            [
                'name'    => 'zhipu',
                'url'     => 'https://open.bigmodel.cn/api/paas/v4/chat/completions',
                'model'   => 'glm-4-flash',  // ← 完全免费,无需付费
                'key'     => '',            // ← 填智谱 API Key(可选,兜底)
            ],
        ],
        'timeout'     => 200,
        'temperature' => 0.85,
        'max_tokens'  => 6000,      // 2000+ 字中文约需 3000+ tokens,留足余量
        'retry'       => 2,

        // ★ 初始阅读量(wp-postviews 存在 postmeta.views)
        // ⚠️ 这是人为构造的展示数据,不是真实访问量。
        //   若你更看重真实排名,建议设为 false 让浏览量从 0 真实起算。
        'seed_views'      => true,
        'seed_views_min'  => 1000,
        'seed_views_max'  => 2000,

        // 百度主动推送 token(三站同一账号)
        'baidu_token' => 'YOUR_BAIDU_PUSH_TOKEN',

        // 设为 true 可关闭热点抓取(排查用)
        'no_hotspots'  => false,

        // ============ 主题配图 ============
        // 每篇文章自动抓一张贴合主题的图,存入媒体库并插到正文最前面
        'enable_hero_image' => true,
        // 抓图失败时的行为:true=无图照发,false=放弃本篇(建议 true)
        'allow_publish_without_image' => true,

        // ============ 自动 / 手动 分开记账 ============
        // cron 每天 12:00 自动发布,每站几篇
        'auto_count'           => 2,
        // 手动执行未指定 --count 时的默认篇数(交互模式下会被询问覆盖)
        'manual_count_default' => 1,
        // 手动模式下,是否在「今日手动已达目标篇数」时跳过。
        // false(默认)= 手动随时可追加,符合「在线时想加就加」
        'manual_skip_done'     => false,
    ],

    // ============ 三站配置 ============
    'sites' => [

        // ---------- ① 博客主站 www.geekfei.cn ----------
        'main' => [
            'label'   => '博客主站 www.geekfei.cn',
            'db'      => ['127.0.0.1', 'DB_USER', 'DB_PASSWORD', 'DB_NAME'],
            'prefix'  => 'wp_',
            'dir'     => '/www/wwwroot/www.flyfei.net',
            'siteurl' => 'https://www.geekfei.cn',
            'fixed_category' => null,      // 不固定,由脚本轮转分配(见 rotate_categories)
            'categories' => [
                'wenshi'  => '文史纵横',
                'redian'  => '热点侃点',
                'jishu'   => '技术宅',
                'wenxue'  => '原创文学',
                'keji'    => '科学会',
                'zatan'   => '杂类',
                'yingping'=> '飞飞影评',
                'visual'  => '飞飞视觉',
            ],

            // ============ 栏目轮转(每天随机主题并分散到不同栏目) ============
            // 参与轮转的分类。脚本会自动挑「文章总数最少 + 最近最久没写」的,
            // 长期下来各栏目数量趋于均衡,不会全挤在热点/技术里。
            // yingping / visual 不参与(那两栏内容来自影评站/影像站,主站不主动写)
            'rotate_categories' => ['jishu', 'keji', 'redian', 'wenshi', 'wenxue', 'zatan'],

            // 每个栏目的选题方向池 —— AI 从对应池子里随机挑一个具体角度来写
            'topic_hints' => [
                'jishu'    => '编程与互联网原理、软件工程实践、系统与运维、网络安全、AI 与算法、开源生态、技术史',
                'keji'     => '物理、化学、生物与生态、天文与航天、数学、地质与气候、科学史与科学方法、自然观察(不写医疗医药健康类)',
                'redian'   => '近期社会新闻与公共话题的观察评论、行业动态、流行现象剖析',
                'wenshi'   => '历史事件与人物、文化变迁、典籍与思想史、地域民俗、语言文字源流',
                'wenxue'   => '文学与阅读、书评、写作技艺、作家与作品、文本细读',
                'zatan'    => '生活观察、日常经验、器物与消费、城市与旅行、教育、个人杂感',
            ],

            // [下限, 上限] 为随机区间的两个端点,实际每天在两者间随机取值,
            // 最终目标字数 = 随机下限 ~ 随机下限+300~900
            'words'   => [2000, 2400],
            // ★ 百度推送:site 参数必须是【百度平台验证过的站点】,纯域名不带协议
            //   geekfei.cn 与 www.geekfei.cn 在百度后台是【两个不同站点】,配额各自独立:
            //     - geekfei.cn    : 10 条/天(此前一直空闲)
            //     - www.geekfei.cn: 10 条/天(已被 /root/baidu_push_www.php 的 cron 占用)
            //   实测 site=geekfei.cn 推 www 的 URL 会返回 not_same_site,
            //   因此推送前要把 URL 的 host 换成不带 www(见 baidu_push_host)。
            'baidu_site'      => 'geekfei.cn',
            'baidu_push_host' => 'geekfei.cn',   // 推送时替换 URL 的 host;留空则用原 URL
        ],

        // ---------- ② 影评站 film.geekfei.cn ----------
        'film' => [
            'label'   => '影评站 film.geekfei.cn',
            'db'      => ['127.0.0.1', 'DB_USER', 'DB_PASSWORD', 'DB_NAME'],
            'prefix'  => 'wp_',
            'dir'     => '/www/wwwroot/www.feifeifilm.net',
            'siteurl' => 'https://film.geekfei.cn',
            'fixed_category' => null,      // 由 AI 自主选择(国内/国外/经典/剧集)
            'categories' => [
                'guowai'    => '国外影评',
                'guonei'    => '国内影评',
                'zhuanti'   => '经典专题',
                'dianshiju' => '电视剧评论',
                'meiti'     => '媒体评论',
            ],
            'words'   => [2000, 2400],
            'baidu_site' => 'film.geekfei.cn',  // ★ 纯域名,不带协议
            'baidu_push_host' => '',            // 与 siteurl 同域,无需替换
        ],

        // ---------- ③ 影像站 v.geekfei.cn(摄影博文) ----------
        'visual' => [
            'label'   => '影像站 v.geekfei.cn(摄影博文)',
            'db'      => ['127.0.0.1', 'DB_USER', 'DB_PASSWORD', 'DB_NAME'],
            'prefix'  => 'wp_',
            'dir'     => '/www/wwwroot/visual.flyfei.net',
            'siteurl' => 'https://v.geekfei.cn',
            'fixed_category' => 'zhaji',  // ← 固定:摄影博文
            'categories' => [
                'zhaji' => '摄影博文',
            ],
            'words'   => [2000, 2400],
            'baidu_site' => 'v.geekfei.cn',      // ★ 纯域名,不带协议
            'baidu_push_host' => '',             // 与 siteurl 同域,无需替换
        ],
    ],
];