استخدم مهارة Agent Browser لأتمتة تسجيل الدخول إلى GitHub وجلب المستودعات التي ميّزها المستخدم الحالي بنجمة، مرتبة حسب عدد النجوم، مع خطوات التنفيذ والملاحظات المهمة وحلول المشاكل الشائعة.
View original English source# استخدام Agent Browser لجلب مستودعات GitHub المميّزة بنجمة
## الهدف
استخدم مهارة Agent Browser لتسجيل الدخول إلى GitHub وجلب المستودعات التي ميّزها المستخدم الحالي بنجمة، مرتبة حسب عدد النجوم.
## خطوات التنفيذ (اتبعها بالترتيب)
1. **تشغيل المتصفح وفتح صفحة GitHub الرئيسية**
```bash
agent-browser --headed --profile "%HOMEPATH%\.agent-browser\chrome-win64\chrome-profiles\github" open https://github.com && agent-browser wait --load networkidle
```
2. **الحصول على معلومات المستخدم المسجّل دخوله حاليًا**
```bash
agent-browser snapshot -i
# ابحث عن صورة المستخدم أو رابط اسم المستخدم في أعلى يمين الصفحة للتأكد من حالة تسجيل الدخول
# استخرج اسم المستخدم للمستخدم المسجّل دخوله حاليًا من الصفحة
```
3. **الانتقال إلى تبويب النجوم للمستخدم الحالي**
```bash
# أنشئ الرابط: https://github.com/{username}?tab=stars
agent-browser open https://github.com/{username}?tab=stars && agent-browser wait --load networkidle
```
4. **الفرز حسب عدد النجوم (الأكثر نجومًا أولًا)**
```bash
agent-browser snapshot -i # خذ أولًا أحدث لقطة للعثور على زر الفرز
agent-browser click @e_sort_button # اضغط زر الفرز
agent-browser wait --load networkidle
# اختر "Most stars" من خيارات القائمة المنسدلة
```
5. **جلب معلومات المستودعات وتسجيلها**
```bash
agent-browser snapshot -i
# استخرج اسم المستودع، الوصف، عدد النجوم، وعدد التفريعات (forks)
```
## ملاحظات مهمة
### 1. مشاكل عملية daemon
- إذا ظهرت لك رسالة "daemon already running"، فهذا يعني أن المتصفح يعمل بالفعل
- **مهم:** عند وجود عملية daemon عاملة مسبقًا، يتم تجاهل معاملي `--headed` و`--profile`، ويستمر المتصفح بوضع التشغيل الحالي
- يمكنك متابعة تنفيذ الأوامر اللاحقة بدون إعادة فتح المتصفح
- لإعادة التشغيل بوضع headed، نفّذ أولًا: `agent-browser close`، ثم استخدم معامل `--headed` عند الفتح مرة أخرى
### 2. طبيعة مراجع العناصر المتغيّرة
- مراجع العناصر مثل (@e1, @e2، وغيرها) تتغيّر بعد كل تغيير في الصفحة
- يجب تنفيذ `snapshot -i` قبل كل تفاعل للحصول على أحدث المراجع
- لا تفترض أبدًا أن المراجع ثابتة
### 3. نمط تنفيذ الأوامر
- استخدم `&&` لربط عدة أوامر وتجنّب تشغيل العملية بشكل متكرر
- انتظر تحميل الصفحة بعد كل أمر باستخدام: `wait --load networkidle`
### 4. حالة تسجيل الدخول
- استخدم معامل `--profile` لتحديد مجلد ملف التعريف والحفاظ على حالة تسجيل الدخول
- إذا انتهت صلاحية الجلسة، سجّل الدخول يدويًا مرة واحدة لحفظ الحالة
### 5. توسيع متغيرات البيئة في Windows
- **مهم:** في Windows، يجب توسيع متغيرات البيئة مثل `%HOMEPATH%` إلى المسار الفعلي قبل استخدامها
- **غير صحيح:** `agent-browser --profile "%HOMEPATH%\.agent-browser\chrome-win64\chrome-profiles\github"`
- **صحيح:** نفّذ أولًا `echo $HOME` للحصول على المسار الفعلي، ثم استخدم المسار الكامل بعد التوسيع
```bash
# احصل على مسار HOME (مثال: /c/Users/xxx)
echo $HOME
# استخدم المسار المطلق بعد التوسيع
agent-browser --profile "/c/Users/xxx/.agent-browser/chrome-win64/chrome-profiles/github" --headed open https://github.com
```
- إذا لم توسّع متغيرات البيئة، قد تواجه أخطاء اتصال مثل: `os error 10060`
### 6. إعداد الفرز
- اضغط زر "Sort by: Recently starred" (عادةً يكون مرجعه e44)
- اختر خيار "Most stars"
- اجلب محتوى الصفحة مرة أخرى
## حلول المشاكل الشائعة
| المشكلة | الحل |
|-------|----------|
| daemon already running | نفّذ الأوامر اللاحقة مباشرة، أو أغلق المتصفح ثم افتحه مرة أخرى |
| Invalid element reference | نفّذ `snapshot -i` للحصول على أحدث المراجع |
| Page not fully loaded | أضف `wait --load networkidle` |
| Need to re-login | استخدم وضع `--headed` وسجّل الدخول يدويًا مرة واحدة لحفظ الحالة |
| Sorting not applied | تأكّد من اختيار خيار الفرز الصحيح |
## صيغة المخرجات المطلوبة
- اسم المستودع ورابطه
- عدد النجوم (مع ترتيب النتائج تنازليًا)
- عدد التفريعات (forks)
- وصف المستودع (إن وجد)