每日备份 2026-06-10 12:57:13

This commit is contained in:
root-backup committed 2026-06-10 12:57:14 +08:00
1 parent fda2ccb8c2
commit 3d2e638c6a
244 files changed
+58890 -3

No files matched your search

+154
View File
@@ -0,0 +1,154 @@
#!/bin/bash
# ============================================
# GitHub Intelligence Monitor v1.0
# 功能:主动监控GitHub榜单,寻找进化机会
# 监控范围:Trending + AI/Agent + 自动化 + Skills
# ============================================
set -e
PROXY="http://192.168.0.66:7890"
OUT_DIR="/root/.openclaw/workspace/github-intel"
REPORT="$OUT_DIR/report-$(date '+%Y%m%d').md"
PREVIOUS="$OUT_DIR/previous-projects.txt"
CURRENT="$OUT_DIR/current-projects.txt"
# 颜色
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m'
log() { echo -e "${BLUE}[Intel]${NC} $(date '+%H:%M:%S') $1"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $(date '+%H:%M:%S') $1"; }
info() { echo -e "${GREEN}[INFO]${NC} $(date '+%H:%M:%S') $1"; }
mkdir -p "$OUT_DIR"
# 1. 获取Trending页面
fetch_trending() {
log "正在获取 GitHub Trending..."
local content=$(curl -s --proxy "$PROXY" -A "Mozilla/5.0" "https://github.com/trending" | grep -oP 'href="/[a-zA-Z0-9_-]+/[a-zA-Z0-9_.-]+"' | grep -oP '(?<="\/)[^"]+' | grep -v 'trending\|developers\|sponsors\|apps' | head -30)
echo "$content" > "$CURRENT"
}
# 2. 对比差异(新增项目)
find_new_projects() {
if [ ! -f "$PREVIOUS" ]; then
touch "$PREVIOUS"
log "首次运行,建立历史数据"
return
fi
# 找出新增项目
comm -13 <(sort "$PREVIOUS") <(sort "$CURRENT") > "$OUT_DIR/new-projects.txt" 2>/dev/null || true
local count=$(wc -l < "$OUT_DIR/new-projects.txt" 2>/dev/null | grep -oP '^\d+' || echo 0)
log "发现 $count 个新项目"
}
# 3. 获取项目详情
get_project_details() {
local project="$1"
local api_url="https://api.github.com/repos/$project"
curl -s --proxy "$PROXY" -A "Mozilla/5.0" "$api_url" 2>/dev/null || echo "{}"
}
# 4. 评估进化价值
evaluate_evolution() {
local project="$1"
local details=$(get_project_details "$project")
local stars=$(echo "$details" | grep -oP '"stargazers_count":\d+' | head -1 | grep -oP '\d+' || echo 0)
local desc=$(echo "$details" | grep -oP '"description":"[^"]*"' | head -1 | sed 's/"description":"//;s/"$//' || echo "")
local lang=$(echo "$details" | grep -oP '"language":"[^"]*"' | head -1 | sed 's/"language":"//;s/"$//' || echo "")
# 进化关键词
local keywords="agent|skill|automation|browser|playwright|puppeteer|cli|tool|openclaw|claude|gpt|llm|ai|copilot"
local is_evolution=$(echo "$project $desc" | grep -iE "$keywords" || echo "")
if [ -n "$is_evolution" ] && [ "$stars" -gt 500 ]; then
echo "⭐ EVOLUTION_CANDIDATE: $project (⭐$stars) - $desc"
echo " 语言: $lang"
echo " 链接: https://github.com/$project"
echo ""
fi
}
# 5. 生成报告
generate_report() {
local new_count=$(wc -l < "$OUT_DIR/new-projects.txt" | awk '{print $1}' 2>/dev/null || echo 0)
{
echo "# GitHub Intelligence Report"
echo "生成时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
echo "## 新增项目 ($new_count 个)"
echo ""
if [ -f "$OUT_DIR/new-projects.txt" ]; then
while IFS= read -r project; do
[ -z "$project" ] && continue
evaluate_evolution "$project"
done < "$OUT_DIR/new-projects.txt"
fi
echo ""
echo "## Trending Top 10"
echo ""
if [ -f "$CURRENT" ]; then
head -10 "$CURRENT" | while read -r project; do
[ -z "$project" ] && continue
evaluate_evolution "$project"
done
fi
echo ""
echo "## 进化建议"
echo ""
# 分析新增和热门项目中可能的进化机会
local candidates=$(grep -c "EVOLUTION_CANDIDATE" "$OUT_DIR/evolution-candidates.txt" 2>/dev/null || echo 0)
if [ "$candidates" -gt 0 ]; then
echo "发现 $candidates 个潜在进化目标,详见上方列表"
else
echo "本期无重大进化机会"
fi
} > "$REPORT"
info "报告已生成: $REPORT"
}
# 主流程
main() {
log "========== GitHub Intelligence Monitor =========="
fetch_trending
find_new_projects
# 生成候选列表
rm -f "$OUT_DIR/evolution-candidates.txt"
touch "$OUT_DIR/evolution-candidates.txt"
if [ -f "$CURRENT" ]; then
while IFS= read -r project; do
[ -z "$project" ] && continue
result=$(evaluate_evolution "$project")
if echo "$result" | grep -q "EVOLUTION_CANDIDATE"; then
echo "$result" >> "$OUT_DIR/evolution-candidates.txt"
fi
done < "$CURRENT"
fi
generate_report
# 更新历史
cp "$CURRENT" "$PREVIOUS"
log "========== 监控完成 =========="
# 输出摘要
local candidate_count=$(wc -l < "$OUT_DIR/evolution-candidates.txt" 2>/dev/null || echo 0)
if [ "$candidate_count" -gt 0 ]; then
echo ""
warn "发现 $candidate_count 个进化候选!"
cat "$OUT_DIR/evolution-candidates.txt"
fi
}
main "$@"