feat: 添加热点股追踪数据导出/导入脚本

This commit is contained in:
Sakurasan
2026-08-21 19:03:44 +08:00
parent bb2be17ae2
commit 1f9931da77
4 changed files with 711 additions and 0 deletions
+110
View File
@@ -0,0 +1,110 @@
#!/bin/bash
# 热点股追踪数据导出/导入快捷脚本
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
PYTHON_SCRIPT="$SCRIPT_DIR/export_hotspot_data.py"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
show_help() {
echo "用法:"
echo " $0 export [日期] - 导出指定日期的数据(默认:2026-08-20)"
echo " $0 import <文件> - 导入数据文件"
echo " $0 list - 列出所有有数据的日期"
echo " $0 backup - 备份整个数据库"
echo ""
echo "示例:"
echo " $0 export 2026-08-20"
echo " $0 import hotspot_2026-08-20.json"
echo " $0 backup"
}
export_data() {
local date="${1:-2026-08-20}"
local output_file="hotspot_${date}.json"
echo -e "${YELLOW}📤 导出 $date 的热点股数据...${NC}"
python3 "$PYTHON_SCRIPT" export --date "$date" --output "$output_file"
if [ -f "$output_file" ]; then
echo -e "${GREEN}✅ 导出完成:$output_file${NC}"
echo "文件大小:$(du -h "$output_file" | cut -f1)"
else
echo -e "${RED}❌ 导出失败${NC}"
exit 1
fi
}
import_data() {
local file="$1"
if [ -z "$file" ]; then
echo -e "${RED}❌ 请指定要导入的文件${NC}"
exit 1
fi
if [ ! -f "$file" ]; then
echo -e "${RED}❌ 文件不存在:$file${NC}"
exit 1
fi
echo -e "${YELLOW}📥 导入数据:$file${NC}"
python3 "$PYTHON_SCRIPT" import --file "$file"
}
list_dates() {
echo -e "${YELLOW}📅 列出数据库中的日期...${NC}"
python3 "$PYTHON_SCRIPT" list
}
backup_database() {
local db_path="$PROJECT_DIR/backend/data/stock_data.db"
local backup_dir="$PROJECT_DIR/backups"
local timestamp=$(date +%Y%m%d_%H%M%S)
local backup_file="$backup_dir/stock_data_${timestamp}.db"
if [ ! -f "$db_path" ]; then
echo -e "${RED}❌ 数据库文件不存在:$db_path${NC}"
exit 1
fi
# 创建备份目录
mkdir -p "$backup_dir"
# 复制数据库
cp "$db_path" "$backup_file"
if [ -f "$backup_file" ]; then
echo -e "${GREEN}✅ 数据库备份完成:$backup_file${NC}"
echo "文件大小:$(du -h "$backup_file" | cut -f1)"
else
echo -e "${RED}❌ 备份失败${NC}"
exit 1
fi
}
# 主逻辑
case "${1:-help}" in
export)
export_data "$2"
;;
import)
import_data "$2"
;;
list)
list_dates
;;
backup)
backup_database
;;
*)
show_help
;;
esac