63 lines
2.2 KiB
Bash
Executable File
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 "=== 知识吸收完成 ==="
|