CoolFace
Datasetpublic

gfdg34fsd/newe

sourceHugging Faceupdated 3d agoView on Hugging Face
9likes688kdownloads
smart_click.sh175 linesDownload Raw Back to root
1cat << 'EOF' > smart_click.sh2#!/bin/bash3 4# ============ الإعدادات ============5MAX_RETRIES=5          # عدد المحاولات الكلية6WAIT_AFTER_CLICK=15    # ثواني انتظار بعد النقر قبل فحص IP7RETRY_DELAY=5          # ثواني بين المحاولات8# ===================================9 10# ---------- دوال مساعدة ----------11 12get_ip() {13    local ip14    ip=$(curl -s --max-time 8 https://api.ipify.org 2>/dev/null)15    [ -z "$ip" ] && ip=$(curl -s --max-time 8 https://ifconfig.me 2>/dev/null)16    [ -z "$ip" ] && ip=$(curl -s --max-time 8 https://icanhazip.com 2>/dev/null | tr -d '\n')17    echo "$ip"18}19 20kill_vpn() {21    local count22    count=$(pgrep -f riseup-vpn | wc -l)23    if [ "$count" -gt 0 ]; then24        echo "🔪 إنهاء $count عملية RiseupVPN سابقة..."25        pkill -f riseup-vpn 2>/dev/null26        sleep 227        pkill -9 -f riseup-vpn 2>/dev/null28        sleep 229        return 030    fi31    return 132}33 34find_window() {35    local wid36    for i in {1..30}; do37        local candidates38        candidates=$(39            {40                xdotool search --class "riseup"   2>/dev/null41                xdotool search --class "Riseup"   2>/dev/null42                xdotool search --name -i "riseup" 2>/dev/null43            } | sort -u44        )45        for wid in $candidates; do46            xdotool getwindowgeometry "$wid" >/dev/null 2>&1 || continue47            eval "$(xdotool getwindowgeometry --shell "$wid" 2>/dev/null)"48            if [ "${WIDTH:-0}" -gt 100 ] && [ "${HEIGHT:-0}" -gt 100 ]; then49                echo "$wid"50                return 051            fi52        done53        sleep 154    done55    return 156}57 58do_clicks() {59    local WIN_ID=$1 WIDTH=$2 HEIGHT=$360    local i X_POS Y_POS61 62    # المرحلة 1: أعلى اليمين63    for i in {1..10}; do64        X_POS=$(( (WIDTH * (65 + i * 2)) / 100 ))65        Y_POS=3566        xdotool mousemove -w "$WIN_ID" "$X_POS" "$Y_POS" click 167        sleep 0.168    done69    sleep 170 71    # المرحلة 2: أسفل المنتصف72    local Y_START=$(( (HEIGHT * 55) / 100 ))73    local Y_STEP=$(( (HEIGHT * 20) / 1000 ))74    local X_CENTER=$(( WIDTH / 2 ))75    for i in {1..10}; do76        local X_OFFSET=$(( (i % 3) * 15 ))77        X_POS=$(( X_CENTER - 15 + X_OFFSET ))78        Y_POS=$(( Y_START + (i * Y_STEP) ))79        xdotool mousemove -w "$WIN_ID" "$X_POS" "$Y_POS" click 180        sleep 0.181    done82}83 84# ---------- البرنامج الرئيسي ----------85 86echo "════════════════════════════════════════"87echo "   بدء تشغيل RiseupVPN مع إعادة محاولة"88echo "════════════════════════════════════════"89 90# 1) إنهاء أي عمليات سابقة أولاً (خارج المحاولات)91kill_vpn || true92 93# الانتظار قليلاً حتى تستقر الشبكة بعد إغلاق VPN القديم94sleep 395 96for attempt in $(seq 1 $MAX_RETRIES); do97    echo ""98    echo "───────── المحاولة $attempt من $MAX_RETRIES ─────────"99 100    # 2) جلب IP قبل التشغيل101    echo "🌐 جلب IP قبل التشغيل..."102    IP_BEFORE=$(get_ip)103    if [ -z "$IP_BEFORE" ]; then104        echo "⚠️  تعذر جلب IP قبل التشغيل — سيتم إعادة المحاولة."105        sleep "$RETRY_DELAY"106        continue107    fi108    echo "📡 IP قبل التشغيل: $IP_BEFORE"109 110    # 3) تنظيف أي عملية متبقية من المحاولة السابقة111    if [ "$attempt" -gt 1 ]; then112        kill_vpn || true113        sleep 3114    fi115 116    # 4) تشغيل RiseupVPN117    riseup-vpn > /dev/null 2>&1 &118    echo "⌛ جاري تشغيل RiseupVPN..."119 120    # 5) البحث عن النافذة121    WIN_ID=$(find_window)122    if [ -z "$WIN_ID" ]; then123        echo "❌ تعذر العثور على النافذة — إعادة المحاولة."124        continue125    fi126 127    xdotool windowmap  "$WIN_ID" 2>/dev/null128    xdotool windowraise "$WIN_ID" 2>/dev/null129    xdotool windowactivate --sync "$WIN_ID" 2>/dev/null130    sleep 0.5131 132    eval "$(xdotool getwindowgeometry --shell "$WIN_ID")"133    echo "✅ النافذة: $WIN_ID | الأبعاد: ${WIDTH}x${HEIGHT}"134 135    # 6) النقرات136    echo "🎯 تنفيذ النقرات..."137    do_clicks "$WIN_ID" "$WIDTH" "$HEIGHT"138    echo "✅ تم تنفيذ النقرات."139 140    # 7) انتظار الاتصال141    echo "⏳ انتظار $WAIT_AFTER_CLICK ثانية حتى يتم الاتصال..."142    sleep "$WAIT_AFTER_CLICK"143 144    # 8) جلب IP بعد التشغيل145    IP_AFTER=$(get_ip)146    echo "📡 IP بعد التشغيل: ${IP_AFTER:-<فارغ>}"147 148    if [ -z "$IP_AFTER" ]; then149        echo "⚠️  تعذر جلب IP بعد التشغيل — إعادة المحاولة."150        sleep "$RETRY_DELAY"151        continue152    fi153 154    # 9) المقارنة155    if [ "$IP_BEFORE" != "$IP_AFTER" ]; then156        echo ""157        echo "🎉 نجح الاتصال!"158        echo "   IP قبل: $IP_BEFORE"159        echo "   IP بعد: $IP_AFTER"160        exit 0161    else162        echo "❌ لم يتغيّر IP — VPN لم يتصل. إعادة المحاولة..."163        sleep "$RETRY_DELAY"164    fi165done166 167echo ""168echo "════════════════════════════════════════"169echo "❌ فشلت جميع المحاولات ($MAX_RETRIES)"170echo "════════════════════════════════════════"171exit 1172EOF173 174chmod +x smart_click.sh175./smart_click.sh