问题 - 索引中该目录记为小写 `scripts/`,工作区实为 `Scripts/`。因 core.ignorecase=true, 本地 `git diff -- Scripts/bin/x.py` 会**静默返回空**(看似无改动), 且在大小写敏感环境(Linux CI / Docker 挂载)会检出 `scripts/`, 与全仓所有 `Scripts/...` 引用不匹配。 - 该目录此前 10 个脚本(check_python_version.py、perf_snapshot.py、 install_collector_launchd.py、mysql_toggle.sh 等)从未入库, 而 CI 第 31 行正调用 `Scripts/bin/check_python_version.py --strict` —— 全新检出必然失败。 改动 - 索引路径统一为 `Scripts/`(工作区文件未移动,仅索引改名)。 - 补齐上述 10 个未跟踪脚本及其测试。 影响 - 修正前索引 35 条(全为小写路径),修正后 45 条。
82 lines
2.9 KiB
Python
82 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
init_new_sources.py — 初始化新增数据源的 MySQL 表和 source 记录
|
|
运行一次即可: python3 init_new_sources.py
|
|
"""
|
|
import pymysql
|
|
|
|
from common import MYSQL_CFG
|
|
|
|
|
|
def init():
|
|
conn = pymysql.connect(**MYSQL_CFG)
|
|
cur = conn.cursor()
|
|
|
|
# 1. 插入 news_sources 记录(如不存在)
|
|
sources = [
|
|
("东方财富快讯", "eastmoney", "https://newsapi.eastmoney.com/", "财经", 2, 60),
|
|
("同花顺快讯", "10jqka", "https://news.10jqka.com.cn/", "财经", 3, 60),
|
|
]
|
|
|
|
for name, code, base_url, category, priority, interval in sources:
|
|
cur.execute(
|
|
"INSERT IGNORE INTO news_sources (name, code, base_url, category, priority, is_active, fetch_interval) VALUES (%s, %s, %s, %s, %s, 1, %s)",
|
|
(name, code, base_url, category, priority, interval),
|
|
)
|
|
print(f" [source] {code}: {name} — 已注册")
|
|
|
|
# 2. 创建 per-source 表(eastmoney 可能已存在于其他位置,这里确保有)
|
|
tables = {
|
|
"news_10jqka": """
|
|
CREATE TABLE IF NOT EXISTS news_10jqka (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
source_news_id VARCHAR(128) NOT NULL,
|
|
title VARCHAR(500) NOT NULL,
|
|
content TEXT,
|
|
url VARCHAR(500),
|
|
published_at BIGINT,
|
|
fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
importance INT DEFAULT 0,
|
|
is_dup TINYINT DEFAULT 0,
|
|
summary TEXT,
|
|
tags JSON,
|
|
category VARCHAR(50) DEFAULT 'general',
|
|
UNIQUE KEY uq_sid (source_news_id),
|
|
INDEX idx_pub (published_at),
|
|
INDEX idx_imp (importance)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
""",
|
|
"news_eastmoney": """
|
|
CREATE TABLE IF NOT EXISTS news_eastmoney (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
source_news_id VARCHAR(128) NOT NULL,
|
|
title VARCHAR(500) NOT NULL,
|
|
content TEXT,
|
|
url VARCHAR(500),
|
|
published_at BIGINT,
|
|
fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
importance INT DEFAULT 0,
|
|
is_dup TINYINT DEFAULT 0,
|
|
summary TEXT,
|
|
tags JSON,
|
|
category VARCHAR(50) DEFAULT 'general',
|
|
UNIQUE KEY uq_sid (source_news_id),
|
|
INDEX idx_pub (published_at),
|
|
INDEX idx_imp (importance)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
""",
|
|
}
|
|
|
|
for table_name, ddl in tables.items():
|
|
cur.execute(ddl)
|
|
print(f" [table] {table_name} — 已创建/确认")
|
|
|
|
conn.commit()
|
|
cur.close()
|
|
conn.close()
|
|
print("\n初始化完成!新增数据源已就绪。")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
init()
|