Files
my-project/config/openclaw/scripts/seo-evolution-absorb.sh
T

63 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# SEO进化知识吸收 v1.0
# 发现项目 → 分析 → 提取知识 → 优化自己的系统
CANDIDATES="/root/.openclaw/workspace/seo/evolution-candidates.md"
KNOWLEDGE="/root/.openclaw/workspace/seo/knowledge-absorbed.md"
LOG="/root/.openclaw/logs/evolution-absorb.log"
log() { echo "[$(date '%H:%M:%S')] $1" | tee -a "$LOG"; }
# 分析项目并提取知识
analyze_project() {
local url="$1"
local name="$2"
local proxy="http://192.168.0.31:7890"
local token="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"
log "分析: $name"
# 获取项目详情(带认证)
local content=$(curl -s --proxy "$proxy" --max-time 20 \
-H "Authorization: token $token" \
"https://api.github.com/repos/$name" 2>/dev/null)
[ -z "$content" ] && return
# 提取有用信息
local stars=$(echo "$content" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('stargazers_count','0')" 2>/dev/null || echo "0")
local desc=$(echo "$content" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('description','')" 2>/dev/null || echo "")
local lang=$(echo "$content" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('language','')" 2>/dev/null || echo "")
log "⭐$stars $name ($lang)"
log " $desc"
# 提取技术要点
case "$desc" in
*SEO*)
log " → SEO相关知识"
echo "## SEO知识: $name" >> "$KNOWLEDGE"
echo "⭐$stars $desc" >> "$KNOWLEDGE"
echo "链接: https://github.com/$name" >> "$KNOWLEDGE"
echo "" >> "$KNOWLEDGE"
;;
*keyword*|*crawl*|*scrap*)
log " → 爬虫技术"
echo "## 爬虫技术: $name" >> "$KNOWLEDGE"
echo "⭐$stars $desc" >> "$KNOWLEDGE"
echo "" >> "$KNOWLEDGE"
;;
esac
}
# 主流程
log "=== 知识吸收开始 ==="
# 读取候选项目并分析
if [ -f "$CANDIDATES" ]; then
while IFS= read -r line; do
[[ "$line" =~ github.com/([^/]+/[^\s]+) ]] && analyze_project "${BASH_REMATCH[1]}" "${BASH_REMATCH[1]}"
done < "$CANDIDATES"
fi
log "=== 知识吸收完成 ==="