gfdg34fsd/newe
9688k
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