کلشوگرام

من هر از گاهی به همراه دوستانم در کلنی که داریم کلش بازی می‌کنم. دوست داشتیم که بتوانیم بدون باز کردن بازی جزئیات وارها را دنبال بکنیم. من هم کلشوگرام را نوشتم که با استفاده از API کلش آو کلنز آخرین اخبار وار را از سرورهای سوپرسل بخواند و روی یک کانال تلگرامی (یا هرجای دیگر) ارسال کند.

هدف از بکارگیری برنامه اینست که بدون باز کردن بازی بتوان اخبار وار را دنبال کرد. خوشبختانه شرکت سوپرسل، تولید کننده بازی کلش آو کلنز، مدتی است دسترسی به بخشی از امکانات بازی را از طریق وب فراهم کرده است. یعنی می‌شود اطلاعات مختلفی را از سرورهای بازی از طریق برنامه‌نویسی دریافت کرد. یکی از این موارد وارلاگ یک کلن است، البته به شرط آنکه وارلاگ را عمومی کرده باشید. کلن ما (YVL0C8UY) وارلاگش معمولا باز است. بنابراین کافیست برنامه‌ای بنویسیم که این سرویس را به طور مرتب مانیتور کند و تغییرات را گزارش کند.

من برنامه‌ای با پایتون نوشتم که هر چند دقیقه سرویس وارلاگ را صدا می‌کند و اگر حمله‌ی جدیدی انجام شده باشد یک پیام از طریق تلگرام به یک کانال ارسال می‌کند. البته لازم نیست لزوما تلگرام باشد. می‌تواند پیام را به هرجای دیگری هم بفرستد.

نحوه بکارگیری ولی قدری زحمت دارد. اول باید مقدمات زیر را فراهم کرد:

  • اول باید یک اکانت دولوپر در ‬پورتال توسعه‌دهندگان ساخت.
  • بعد یک توکن در همان سایت بسازید. برای اینکار باید آپی پی معتبر خودتان را بدانید.
  • گام بعدی ساخت یک بات تلگرام به کمک بات‌فادر است.
  • بعد باید بات تلگرامی که ساختیم را به یک گروه تلگرامی که قصد داریم پیامها را به آنجا بفرستیم به عنوان مدیر اضافه کنیم.
  • لاگ کلن خودتان را باز کنید.
  • تگ کلن را یادداشت کنید.

توضیح کوتاهی هم در مورد موارد بالا بدهم. آی پی باید ثابت باشد چون برای ساخت توکن باید یک آی پی وارد کنید و سرور سوپرسل فقط به درخواستهایی که از آن آی‌پی بیایند جواب خواهد داد. ناگفته پیداست که اگر قصد اجرای برنامه در خانه را دارید احتمالا باید چند روز یکبار توکن را مجددا بسازید چون آی‌پی‌های خانگی معمولا متغیر هستند. علت ادمین کردن بات در کانال هم به این خاطر است که فقط باتهای ادمین قادر به ارسال پیام هستند.

با این توضیحات می‌توان برنامه را نصب و اجرا کرد. اگر با پایتون آشنا هستید که خیلی راحت است. باید پایتون ۳ را نصب داشته باشید:

$ pip install clashogram

بعد از نصب می‌توانیم برنامه را با وارد کردن اطلاعاتی که پیشتر جمع‌آوری کرده‌ایم اجرا کنیم:

$ LANGUAGE=fa_IR clashogram --coc-token <COC_TOKEN> --clan-tag <CLAN_TAG> --bot-token <TELEGRAM_BOT_TOKEN> --channel-name <TELEGRAM_CHANNEL_NAME>

برای نمونه پیامهای کانال کلن ایران را ببینید.

کد برنامه را سعی کردم تمیز بنویسم و تعداد قابل توجهی هم تست ضمیمه برنامه کرده‌ام. هدفم این بود که کد خوانا و ساده باشد تا اگر کسی دوست داشت بتواند آنرا توسعه بدهد. به روال همیشه کد برنامه را در گیت‌هاب منتشر کرده‌ام.