لاستكشاف الأخطاء وإصلاحها وإخطارات الإصدار، انضم إلى الخلاف!
باي بال:
بيتكوين: bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
إيثريوم: 0x8c096710e3621fe5f8E384efBd17D8E3E798Dc0c (Cryptik.eth)
دوج: D6n2g2KGdqEwR4MhhT7uAdvZFaTwqwd6rS
فينمو: @dtcarls
يقوم هذا المستودع بتشغيل روبوت دردشة GroupMe أو Discord أو Slack لإرسال معلومات ESPN Fantasy Football إلى غرفة دردشة GroupMe أو Discord أو Slack.
ماذا يفعل هذا؟
رابط الجدول الزمني: https://www.gamedaybot.com/message-schedule/
يرسل الرسائل التالية في هذا الجدول الزمني:
النتائج القريبة - الإثنين - 18:30 بتوقيت الساحل الشرقي (المباريات التي تقع على مسافة 16 نقطة من بعضها البعض يجب مراقبتها خلال مباراة ليلة الإثنين)
لوحة النتائج - الإثنين، الثلاثاء، الجمعة - 7:30 بالتوقيت المحلي (لوحة النتائج الحالية لـ ESPN Fantasy)
الجوائز - الثلاثاء - 7:30 بالتوقيت المحلي (درجة عالية، درجة منخفضة، أكبر فوز، أقرب فوز)
تصنيفات القوة – الثلاثاء – 18:30 بالتوقيت المحلي
الترتيب الحالي – الأربعاء – 7:30 بالتوقيت المحلي
تقرير التنازل - الأربعاء - 7:30 بالتوقيت المحلي
المباريات - الخميس - 19:30 بتوقيت الساحل الشرقي (المواجهات القادمة)
تقرير اللاعبين الذين يجب مراقبتهم - الأحد - 7:30 بالتوقيت المحلي (اللاعبون في التشكيلة الأساسية المشكوك فيهم أو المشكوك فيهم أو الخارجون)
لوحة النتائج - الأحد - الساعة 16:00، 20:00 بتوقيت الساحل الشرقي (لوحة النتائج الحالية لـ ESPN Fantasy)
إعداد GroupMe أو Discord أو Slack ونشر التطبيق في Heroku
إعداد GroupMe
الإعداد الركود
إعداد الخلاف
إعداد هيروكو
الدوريات الخاصة
استكشاف الأخطاء وإصلاحها / الأسئلة الشائعة
البدء في التطوير والاختبار
التثبيت من أجل التطوير
متغيرات البيئة
التشغيل مع دوكر
يعمل بدون دوكر
تشغيل الاختبارات
كل هذا يبدو معقدا ومربكا للغاية؟ لا أعرف ما هو "هيروكو"؟ فكر في مراجعة https://www.GameDayBot.com/ حيث أقدم خدمة استضافة وأبذل قصارى جهدي لتقليل التعقيد.
لا تنشر 2 من نفس الروبوت في نفس الدردشة. بشكل عام، يجب أن تدع المفوض الخاص بك يقوم بالإعداد
انتقل إلى www.groupme.com وقم بالتسجيل أو تسجيل الدخول
إذا لم يكن لديك واحدة للدوري الخاص بك بالفعل، فقم بإنشاء "دردشة جماعية" جديدة
بعد ذلك، سنقوم بإعداد الروبوت لـ GroupMe
انتقل إلى https://dev.groupme.com/session/new وقم بتسجيل الدخول
انقر فوق "إنشاء بوت"
قم بإنشاء الروبوت الخاص بك. يقوم GroupMe بعمل جيد في شرح ماهية كل شيء.
بعد إنشاء الروبوت الخاص بك، سترى شيئًا مشابهًا لهذا. انقر فوق "تحرير"
هذه الصفحة مهمة لأنك ستحتاج إلى "معرف الروبوت" في هذه الصفحة. يمكنك أيضًا إرسال رسالة اختبارية مع مربع النص للتأكد من أنها متصلة بغرفة الدردشة الخاصة بك. ملاحظة جانبية: إذا استخدمت معرف الروبوت الموضح في الصفحة، فسوف تقوم بإرسال بريد عشوائي إلى غرفة دردشة فارغة، لذا لا يستحق كل هذا الجهد
انتقل إلى https://slack.com/signin وقم بتسجيل الدخول إلى مساحة العمل التي سيتواجد فيها الروبوت
إذا لم يكن لديك قناة للدوري الخاص بك بالفعل، فقم بإنشاء قناة دوري جديدة
بعد ذلك، سنقوم بإعداد الروبوت لـ Slack
انتقل إلى https://api.slack.com/apps/new
قم بتسمية التطبيق، واختر مساحة العمل المقصودة من القائمة المنسدلة.
حدد قسم Webhooks الوارد على الجانب.
قم بتغيير مفتاح التبديل من إيقاف إلى تشغيل.
حدد إضافة خطاف ويب جديد إلى مساحة العمل
في القائمة المنسدلة "النشر إلى"، حدد القناة التي تريد إرسال الرسائل إليها، ثم حدد "تفويض".
هذه الصفحة مهمة لأنك ستحتاج إلى "عنوان URL الخاص بالويب هوك" في هذه الصفحة.
تسجيل الدخول أو إنشاء حساب الخلاف
انتقل إلى خادم Discord أو أنشئه لتلقي الرسائل فيه
افتح إعدادات الخادم
انتقل إلى خطافات الويب
أنشئ خطافًا على الويب وأعطه اسمًا واختر القناة التي تريد تلقي الرسائل فيها
احفظ "عنوان URL الخاص بالويب هوك" في هذه الصفحة
"في 28 نوفمبر 2022، توقفت شركة Heroku عن تقديم خطط المنتجات المجانية"
أقدم خدمة استضافة أقل بكثير من تكاليف Heroku الجديدة على https://www.GameDayBot.com/
انتقل إلى https://id.heroku.com/login وقم بالتسجيل أو تسجيل الدخول
انقر فوق هذا الزر الأرجواني لنشر الكود تلقائيًا:
انتقل إلى لوحة التحكم الخاصة بك (https://dashboard.heroku.com/apps) ستحتاج الآن إلى إعداد متغيرات البيئة الخاصة بك بحيث تعمل مع الدوري الخاص بك. انقر فوق الإعدادات في لوحة التحكم الخاصة بك. ثم انقر فوق الزر "Reveal Config Vars" وسترى شيئًا كهذا.
سنحتاج الآن إلى تعديل هذه المتغيرات (انقر فوق القلم الرصاص الموجود على يمين المتغير لتعديله) ملاحظة: سيتم إعادة تشغيل التطبيق عند تغيير أي متغير، لذلك قد تكون غرفة الدردشة الخاصة بك شبه غير مرغوب فيها برسالة init "مرحبًا" يمكنك قم بتغيير المتغير INIT_MSG ليكون فارغًا بحيث لا يحتوي على رسالة init. تجدر الإشارة أيضًا إلى أن Heroku يبدو أنه يعيد تشغيل التطبيق مرة واحدة يوميًا
راجع قسم متغيرات البيئة للحصول على الوثائق
بعد الانتهاء من إعداد المتغيرات الخاصة بك، ستحتاج إلى تشغيلها. انتقل إلى علامة التبويب "الموارد" في لوحة معلومات تطبيق Heroku. يجب أن ترى شيئًا مثل أدناه. انقر فوق القلم الرصاص الموجود على اليمين وقم بتبديل الزر بحيث يصبح باللون الأزرق كما هو موضح وانقر فوق "تأكيد".
لقد انتهيت! لديك الآن روبوت دردشة GroupMe/Slack/Discord مميز بالكامل لدوريات ESPN! إذا كان لديك رسالة INIT_MSG، فستراها مصيحة في غرفة الدردشة GroupMe أو Discord أو Slack.
لسوء الحظ، لإجراء النشر التلقائي لأحدث إصدار، تحتاج إلى وصول المسؤول إلى المستودع الموجود على git. يمكنك التحقق من وجود تحديثات على صفحة github (https://github.com/dtcarls/fantasy_football_chat_bot/commits/master) والنقر فوق زر النشر مرة أخرى؛ ومع ذلك، سيؤدي هذا إلى نشر مثيل جديد وسيلزم تحرير المتغيرات مرة أخرى.
ستوفر لك هذه التعليمات نسخة من المشروع جاهزة للعمل على جهازك المحلي لأغراض التطوير والاختبار.
مع عامل الميناء:
استنساخ بوابة https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot عامل بناء -t Fantasy_football_chat_bot .
بدون دوكر:
استنساخ بوابة https://github.com/dtcarls/fantasy_football_chat_botcd Fantasy_football_chat_bot تثبيت النقطة -r require.txt# أو#python3 setup.py install
فار | يكتب | مطلوب | تقصير | وصف |
---|---|---|---|---|
BOT_ID | خيط | بالنسبة لمجموعة Me | لا أحد | هذا هو معرف الروبوت الخاص بك من صفحة مطوري GroupMe |
SLACK_WEBHOOK_URL | خيط | من أجل سلاك | لا أحد | هذا هو عنوان URL الخاص بـ Webhook من صفحة تطبيق Slack |
DISCORD_WEBHOOK_URL | خيط | للخلاف | لا أحد | هذا هو عنوان URL الخاص بـ Webhook من صفحة إعدادات Discord |
LEAGUE_ID | خيط | نعم | لا أحد | هذا هو معرف دوري ESPN الخاص بك |
تاريخ البدء | تاريخ | نعم | بداية الموسم الحالي (YYYY-MM-DD) | هذا هو الوقت الذي سيبدأ فيه الروبوت في الاهتمام وإرسال الرسائل إلى الدردشة الخاصة بك. |
END_DATE | تاريخ | نعم | نهاية الموسم الحالي (YYYY-MM-DD) | هذا هو الوقت الذي سيتوقف فيه الروبوت عن الاهتمام ويتوقف عن إرسال الرسائل إلى الدردشة الخاصة بك. |
LEAGUE_YEAR | خيط | نعم | السنة الحالية (YYYY) | عام دوري ESPN للنظر فيه |
المنطقة الزمنية | خيط | نعم | أمريكا/نيويورك | المنطقة الزمنية التي ستظهر فيها الرسائل لإرسالها. |
INIT_MSG | خيط | لا | لا أحد | الرسالة التي سيقولها الروبوت عند بدء تشغيله. |
TOP_HALF_SCORING | بول | لا | خطأ شنيع | إذا تم التعيين على True، فعند نشر الترتيب يوم الأربعاء، سيتضمن ذلك أيضًا وجودك في النصف العلوي من الدوري للحصول على نقاط وستتلقى "فوزًا" إضافيًا مقابل ذلك. |
RANDOM_PHRASE | بول | لا | خطأ شنيع | إذا تم التعيين على True، فعندما يتم نشر المطابقات يوم الثلاثاء، فإنها ستتضمن أيضًا عبارة عشوائية |
تقرير_المراقبة | بول | لا | خطأ شنيع | إذا تم التعيين على "صحيح"، فسيقدم تقريرًا عن اللاعبين في التشكيلة الأساسية المشكوك فيهم، أو المشكوك فيهم، أو الخارجين، أو المتوقع حصولهم على أقل من 4 نقاط |
التنازل_تقرير | بول | لا | خطأ شنيع | إذا تم التعيين على True، فسيتم تقديم تقرير تنازل عن الإضافة/الحذف. |
DAILY_WAIVER | بول | لا | خطأ شنيع | إذا تم التعيين على "صحيح"، فسيتم تقديم تقرير تنازل عن الإضافة/الحذف يوميًا. |
ESPN_S2 | خيط | للبطولات الخاصة | لا أحد | تستخدم للبطولات الخاصة. راجع قسم الدوريات الخاصة للتوثيق |
سويد | خيط | للبطولات الخاصة | لا أحد | تستخدم للبطولات الخاصة. (يمكن تعريفها باستخدام {} أو بدونها) راجع قسم الروابط الخاصة للحصول على التوثيق |
استخدم BOT_ID في حالة استخدام Groupme، وDISCORD_WEBHOOK_URL في حالة استخدام Discord، وSLACK_WEBHOOK_URL في حالة استخدام Slack (أو أكثر للحصول على الرسائل في أماكن متعددة)
>>> تصدير BOT_ID=[أدخل معرف GroupMe Bot الخاص بك] >>> تصدير WEBHOOK_URL=[أدخل عنوان URL لخطاف الويب الخاص بك] >>> تصدير LEAGUE_ID=[أدخل معرف دوري ESPN] >>> تصدير LEAGUE_YEAR=[أدخل سنة الدوري] >>> cd Fantasy_football_chat_bot >>> تشغيل عامل الإرساء --rm=True -e BOT_ID=$BOT_ID -e LEAGUE_ID=$LEAGUE_ID -e LEAGUE_YEAR=$LEAGUE_YEAR Fantasy_football_chat_bot
استخدم BOT_ID في حالة استخدام Groupme، وDISCORD_WEBHOOK_URL في حالة استخدام Discord، وSLACK_WEBHOOK_URL في حالة استخدام Slack (أو أكثر للحصول على الرسائل في أماكن متعددة)
>>> تصدير BOT_ID=[أدخل معرف GroupMe Bot الخاص بك] >>> تصدير WEBHOOK_URL=[أدخل عنوان URL لخطاف الويب الخاص بك] >>> تصدير LEAGUE_ID=[أدخل معرف دوري ESPN] >>> تصدير LEAGUE_YEAR=[أدخل سنة الدوري] >>> python3 gamedaybot/espn/espn_bot.py
يتم تضمين الاختبارات الآلية لهذه الحزمة في دليل tests
. بعد التثبيت، يمكنك إجراء هذه الاختبارات عن طريق تغيير الدليل إلى دليل gamedaybot
وتشغيل ما يلي:
تثبيت النقطة -r المتطلبات-test.txtpytest
بالنسبة للدوري الخاص، ستحتاج إلى الحصول على swid وespn_s2. يمكنك العثور على هاتين القيمتين بعد تسجيل الدخول إلى حساب ESPN Fantasy Football الخاص بك على موقع ESPN الإلكتروني. (متصفح Chrome) انقر بزر الماوس الأيمن في أي مكان على موقع الويب وانقر على خيار الفحص. من هناك انقر فوق "التطبيق" في الشريط العلوي. على اليسار ضمن قسم التخزين، انقر فوق ملفات تعريف الارتباط ثم http://fantasy.espn.com. من هناك يجب أن تكون قادرًا على العثور على متغيرات وقيم swid وespn_s2.
يجب أن يكون الدوري كاملا.
البوت لا يعمل
هل فاتتك خطوة في التعليمات؟ حاول القيام بذلك من الصفر مرة أخرى. إذا لم يحالفك الحظ، فافتح مشكلة (https://github.com/dtcarls/fantasy_football_chat_bot/issues) أو انتقل إلى الخلاف (الرابط الموجود أعلى الملف التمهيدي) حتى يمكن مشاركة الإجابة مع الآخرين.
كيف يتم حساب رتب القوة؟
يتم حسابها باستخدام الهيمنة بخطوتين، بالإضافة إلى مجموعة من النقاط المسجلة وهامش النصر. مرجح 80/15/5 على التوالي. لن أهتم كثيرًا بالعدد الفعلي، بل سأهتم أكثر بالفجوة بين الفرق. يمكن الاطلاع على المصدر الكامل للحسابات هنا: https://github.com/cwendt94/espn-api/pull/12/files. إذا كنت تريد برنامجًا تعليميًا حول مصفوفات الهيمنة: https://www.youtube.com/watch?v=784TmwaHPOw
هل هناك نسخة من هذا لـ Yahoo/CBS/NFL/[أدخل موقع آخر]؟
لا، هذا سيتطلب إعادة صياغة كبيرة للمواقع الأخرى.
كيف أقوم بتعيين منطقة زمنية أخرى؟
حدد المتغير الخاص بك https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
هل هناك نسخة من هذا لـ Messenger/WhatsApp/[أدخل دردشة أخرى]؟
لا، لكنني منفتح على قبول طلبات تنفيذ واجهة برمجة التطبيقات (API) الخاصة بهم للحصول على دعم إضافي عبر الأنظمة الأساسية.
ترتيبي يبدو خاطئا. لدي غريب (+1) فيه.
TOP_HALF_SCORING: إذا تم تعيينه على True، فعند نشر الترتيب يوم الأربعاء، سيتضمن أيضًا انتصارات النصف الأول من التهديف
انتصارات النصف العلوي هي أن تكون في النصف العلوي من الدوري الخاص بك للحصول على نقاط وستحصل على "فوز" إضافي مقابل ذلك. يخبرك الرقم الموجود بين قوسين (+1) بعدد الانتصارات المضافة خلال الموسم لانتصارات النصف الأول.