نظام الإخطار من وحدة التحكم إلى Telegram

غالبًا ما كانت هناك حالات في العمل السابق عندما كانت هناك مهمة شاقة تستغرق وقتًا طويلاً ، ولكن من المستحسن الاستجابة بسرعة في النهاية ، فماذا أفعل؟ بالطبع اكتب برنامج ...


استخدم الإصدار الأول ببساطة إعلام-إرسال ، لكن الوقت أظهر بعض الإزعاج للعملية. نظرًا لأن العمليات كانت صعبة للغاية على الجهاز ، فقد أصبحت الآلة غير مستقرة في تلك اللحظة وأردت الابتعاد وشرب القهوة. ولكن أعود عندما تكتمل العملية. لهذا السبب ظهرت فكرة البرنامج ، التي تم ربطها في خط أنابيب وحدة التحكم أو ملفوفة كبرنامج sudo وأرسلت إليك في النهاية إشعارًا للدردشة. وبالتالي ، سترى إشعارًا على كل من سطح المكتب والهاتف.


بالنسبة لأولئك الذين لا يريدون القراءة ، ولكن يريدون المحاولة. (Linux فقط)


  1. نسجل مع البوت ونحصل على الرمز المميز مع الأمر / config
  2. قم بتنزيل العميل
  3. انطلق!
    wget https://ice2heart.com/snitch chmod +x snitch SNITCH_USER_ID=<here_is_your_uuid> ./snitch sleep 10 

الخادم


كانت الفكرة بسيطة ، فنحن بحاجة إلى خادم بسيط سيتلقى الرسالة ويعيد توجيهها إلى المستخدم.


وبما أنني لم أرغب في الإزعاج عند تسجيل الحسابات وتخزينها وإدارتها ، فقد قررت أن أجعلها تبدو بسيطة بالنسبة لي (والآن يبدو ذلك ، لكنني لست متأكدًا مما إذا كان هذا جيدًا).


باستخدام الروبوت ، يتلقى الشخص uuid v4 الفريد ، والذي يذهب بعد ذلك إلى الخادم. التفويض في جانب محادثة العميل ، لكنني لا أخزن سوى اثنين من المعرّفات الداخلية الفريدة.


لذلك ، مع أخذ node.js كخادم وإضافة القليل من koa ، nedb ، node-telegram-bot-api ، جمعت جزء الخادم ، ضمنت الهندسة في البداية المزيد من البوابات في الدردشات ، ولكن لم تكن هناك حالات وبالتالي لم يكن هناك سوى برقية واحدة.


أيضا ، لم أكن أرغب في وضع تطبيق js على الإنترنت مباشرة ، لذلك باستخدام سحر عامل الميناء ، أضفت خادم وكيل صغير. لماذا هو؟ لأنني أحب تنسيق ملفات التكوين.


أصبح الخادم بسيطًا ، ولكنه كافٍ للتشغيل.


لذلك ، حصلنا على مثل هذا الملف البسيط لإنشاء الرصيف ، ونحتاج أيضًا إلى مفتاح للبوت ، والذي نضعه في ملف .env حتى لا نحفظ مفاتيحنا في github ، وهو أمر غير جيد.


لذا ، من أجل الإطلاق ، نحتاج إلى عامل إرساء ، وتكوين عامل ميناء ومفتاح لعربات البوت ، للحصول على سيارتك ، عليك أن تتجه إلى بوت بوتثير .
بعد ذلك ، يتم إنشاء عامل إرساء ويكون خادمنا جاهزًا للعمل.


الزبون


بالنسبة للعميل ، قررت أن أذهب لسبب بسيط هو أنه سيذهب إلى ملف ثنائي واحد ، والذي يمكن بعد ذلك توزيعه بسهولة.


كانت هناك فكرتان رئيسيتان حول العميل.


  1. نحن نندمج في خط الأنابيب ، وجمع السجل (لم يتم تنفيذه) ، وإرسال رسالة لإغلاق خط الأنابيب.
  2. نقوم بتغليف التطبيق ، على سبيل المثال sudo ، في النهاية نرسل سجلًا ورسالة برمز إرجاع.

أثناء التنفيذ ، لم تكن هناك طريقة سهلة لمعرفة رمز الإرجاع للبرنامج السابق في خط الأنابيب ، وهذا لسوء الحظ يقلل من متعة استخدام البرنامج في خط الأنابيب.
بالنسبة للتكوين ، اخترت متغيرات البيئة ، لأنها تجعل من السهل نسخ الإعدادات من جهاز لآخر ، بالإضافة إلى استبدالها بسهولة.


ونتيجة لذلك ، يصبح التثبيت بسيطًا قدر الإمكان.


  1. قم بتنزيل الملف الثنائي
  2. نسجل في PATH
  3. نكتب متغير SNITCH_USER_ID في تكوين الغلاف باستخدام uuid الخاص بك
  4. تم ، أنت عظيم!

الآن يمكنك تشغيل أوامر طويلة على شكل snitch make وعند استلامنا سوف نتلقى رسالة تفيد بأن التطبيق قد اكتمل وسنعرف حتى ما إذا كان ناجحًا أم لا.


للبناء ، صنعت نصًا صغيرًا ، والذي كان يسمى ببساطة r. سيجمع تطبيق go ويمرره عبر upx. وعند الإخراج نحصل على ثنائي جميل مرتبط بشكل ثابت.


يمكنك العثور على رمز المصدر هنا.


وعندما يكون كل شيء جاهزًا ، يمكنك الانتقال إلى برنامج التتبُّع باستخدام الأمر / config
وسوف يقوم بإنشاء سجل حول مستخدمنا وإرجاع uuid.
يمكنك دائمًا حذفها من قاعدة البيانات ، لأن هذا يوجد أمر / حذف


وبالتالي ، حصلنا على تطبيق بسيط إلى حد ما ولكنه فعال سيبلغنا بمهمة مكتملة ، بسهولة وطبيعية ، حتى عندما نشرب القهوة.

Source: https://habr.com/ru/post/ar425707/


All Articles