<?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 同域,无需替换
],
],
];