> CastBot هي أداة نشر آلي مفتوحة المصدر: رصد الأخبار → توليد بالذكاء الاصطناعي → فلترة الامتثال → النشر التلقائي.
> لقد تطورت من مجرد «سكريبت زاحف» ارتطبتُ بمتاعبه لمدة أشهرٍ طويلة.
> نقطة بدايتها: شخصٌ لا يحب المتاعب ويقوم بالنشر يدويًا… كيف وصل إلى طريق النشر الآلي بالكامل.
> ستتناول الأجزاء اللاحقة لحظاتٍ حالكةً كادت أن تجعلني أتخلى عن كل شيء.
> تجربة مجانية
بداية كل شيء: لم أكن أستطيع الاستمرار في النشر اليومي.
أدركتُ مبكرًا حقيقةً بسيطة: في باينانس بلازا، الظهور = الاتساق × الوقت. من يقدّم إخراجًا ثابتًا يوميًا يكون منحنى المتابعين لديه صاعدًا بسلاسة؛ أما من يصطاد يومًا ويغيب يومين فسيبقى دائمًا في مرحلة إعادة التشغيل.
أفهم المنطق كله، لكنني لا أستطيع تطبيقه. في النهار عليّ تشغيل اختبارات الرجوع، ومراقبة dry-run، وإصلاح الخوادم، والوقت المتاح لكتابة المنشورات يتفتت إلى أجزاء صغيرة جدًا. لفترةٍ ما أجبرت نفسي على كتابة 3 منشورات يوميًا بخط اليد، واستمررت أسبوعين، ثم انهرت تمامًا في الأسبوع الثالث — ليس لأنني بلا أفكار، بل لأنني بلا طاقة. وما إن يتوقف الحساب حتى تنحدر البيانات فورًا إلى الأسفل.
في ذلك الوقت كنت أسأل نفسي مرارًا سؤالًا واحدًا: في عملية النشر، ما الأجزاء التي يجب أن يقوم بها الإنسان؟
إذا فككنا العملية: اختيار الموضوع (مراجعة الأخبار) → تقييم القيمة (أي خبر يستحق الكتابة) → كتابة المحتوى → التنسيق والنشر. في الواقع، لديّ معايير حكم واضحة لكل خطوة. ومع وجود معايير، يمكن أتمتة ذلك.
الخطوة الأولى: كن مشاهدًا، لا كاتبًا
قبل أن أبدأ بكتابة الروبوت، كان أول ما فعلته على نحوٍ مفاجئ هو كتابة زاحف.
كنت أريد أن أفهم نمط الحركة في الساحة: في أي أوقات يكون نشر المنشورات ذا قراءة أعلى، وما نوع العناوين التي تحصل على نقرات، وما الفرق بين المنشورات الناجحة والمنشورات التي تفشل. استخدمت undetected-chromedriver لجمع بيانات حسابي وتحليلها — وهذا الزاحف نفسه أعطاني أول صفعة: متغيرات بيئة البروكسي النظامية كانت تجعل chromedriver يتجمّد بلا نهاية عند التهيئة، فتقوم العملية مباشرةً بإشارة SIGKILL. لم أكتشف السبب إلا بعد عدة أيام من البحث، وكان الإصلاح ببساطة حذف متغيرين بيئيين قبل import.
تذكرت هذا التفصيل حتى الآن، لأنه حدّد نبرة المشروع بأكمله: هذا الطريق بلا شروحات، وكل حفرة فيه حفرتك أنت.
من الزاحف إلى خط الإنتاج
بعد أن أصبح التحليل سلسًا، نما الطموح بشكل طبيعي. بما أنني أستطيع تحديد "أي المحتوى يستحق النشر"، فلماذا لا أربط السلسلة كاملة؟
وهكذا أصبح المعمار كالتالي: مراقبة مصادر الأخبار → التصفية بالدرجات → توليد مسودة أولية بالذكاء الاصطناعي → إعادة صياغة لإزالة نبرة الذكاء الاصطناعي → فلترة الامتثال (مستوى 3 من الكلمات المحظورة) → النشر التلقائي.
يبدو الأمر سلسًا، لكن في الواقع كل حلقة انهارت من قبل:
- كانت مصادر الأخبار أحيانًا تتصرف بشكل غريب، ويمكن لاستعلامات RSS أن تدخل في تكرار لا نهائي من المحاولات، لتحرق آلاف الاستدعاءات في ليلة واحدة
- إحدى مرات انحراف إعدادات أداة النشر، دخلت crash loop أكثر من 2000 مرة قبل أن أنتبه
- النشر المتواصل يحمل خطر حظر الحساب، ما دفع أخيرًا إلى ابتكار "آلية الفصل" — الإيقاف التلقائي عند الفشل المتكرر بدلًا من الاستمرار بالقوة
سأقوم بتفصيل هذه المطبات واحدًا تلو الآخر في السلسلة القادمة، وكلّها مستخرجة من سجلات حقيقية.
هذا ما يبدو عليه الآن
@Lilibtc هذا الحساب الاستعراضي، أرسل الروبوت أكثر من 3600 منشور، وفي أوقات الذروة كان ينشر 100 منشور يوميًا، مع 10 آلاف+ مشاهدة يوميًا، ويعمل باستقرار. المحتوى ليس من كتابتي، لكن كل منشور مرّ عبر معيار الجودة الذي وضعته.
والأهم من ذلك أنني حزمت النظام كاملًا في أمر castbot: تثبيت بنقرة واحدة عبر npm، وبمجرد ربط مفتاح API الخاص بساحة بينانس الخاصة بك يمكنه العمل. أنت تحدد النبرة، وهو يتكفل بالنشر اليومي.
تجربة
على الصفحة الرئيسية دليل تثبيت كامل وعرض توضيحي، ومن يرغب يمكنه التصفح: castbot.io
لا أضمن زيادة المتابعين، لكني أضمن أن حسابك سيودّع من الآن فصاعدًا عبارة "أريد النشر يوميًا لكنني لا أستطيع".
في المقالة القادمة: تلك اللحظات المظلمة التي أوقفت الروبوت بين عشية وضحاها. تابعوني كي لا تضيعوا.
