بلاخره بعد از یک انتخابات با مشارکت بالا زمان شمارش رایها فرا رسیده و از دیشب تا حالا اخبار غیر رسمی راست و دروغ زیادی از نتایج پخش شده. سوال اصلی اینه که چرا نباید یک سیستم رایگیری مکانیزه داشته باشیم تا این همه کاغذ دور ریخته نشه و این همه وقت و نیروی انسانی هدر نره. البته شاید یک دلیلش نداشتن زیرساخت پایدار برای این کار باشه، یا شاید هم بر می گرده به ترسهای امنیتی دوستان که البته با نمونهکار هایی که بعضا ارائه کردن واقعا جای ترس هم داره وقتی در طراحی یک سایت ساده مشکلات بنیادین دارن که از یک آماتور هم بعیده. بگذریم.
بعد کلی آمار غیر رسمی و شایعهگونه بلاخره ستاد انتخابات کشور یک خبر منتشر کرد که نتایج قطعی و رسمی روی اون منتشر میشه و در واقع یک خبر هست که مدام آپدیت میشه. از اینکه چرا ارقام و عناوین بصورت plane text و غیرجدولی ارائه شده هم میگذریم. حالا برای اینکه بدونیم توی حوزه انتخابی ما چه کسایی رای آوردن باید هی بریم این لینک رو ریفرش کنیم و توی صفحه سرچ کنیم ببینیم خبری شده یا نه.
اما ما که لینوکس بلدیم از این کار های داغون نمیکنیم. دست به کد میشیم. یه فایل bash script ساده می نوسیم که هر بار که اجرا میشه آدرس اون لینک رو باز کنه و توش دنبال متنی که ما می گیم -که در اینجا قراره اسم شهر یا استان ما باشه- بگرده. اگر اون متن رو پیدا کرد دستور beep رو اجرا کنه تا سیستم بوق بزنه. برای اینکه اسپیکر سیستم رو فعال کنیم و در واقع ماژولش رو کرنل ما لود کنه دستور زیر رو اجرا میکنیم:
1 |
sudo modprobe pcspkr |
و حالا اسکریپتمون رو به این شکل مینویسیم و ذخیره میکنیم :
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash url='http://www.moi.ir/portal/Home/ShowPage.aspx?Object=NEWS&CategoryID=c2cf29ae-2e8e-4319-a926-1e311d44c6d1&WebPartID=9d7a37df-891a-4f74-8c73-ce5e63ef2d1f&ID=b2ddf84e-b2de-42ff-b6f4-5e9fe5f4800d'; result=$(curl $url | egrep "($1)"); if [ -z "$result" ] then echo 'Nothing yet' else beep beep beep fi |
حالا باید به فایلمون دسترسی اجرا شدن بدیم:
1 |
chmod u+x election.sh |
حالا باید طوری اجراش کنیم که توی یک بازهی زمانی مشخص مدام فایل اجرا بشه و اگر نتیجه اون چیزی بود که ما میخواستیم بهمون خبر بده. برای اینکار از دستور watch استفاده میکنیم:
1 |
watch -n10 "./election.sh 'مشهد|خراسان'" |
این دستور برنامه ما رو هر ده ثانیه اجرا می کنه و هر وقت به نتیجه برسه با سه تا بوق به ما اطلاع میده. نکته این که ورودی دستور رو به صورت regex دادیم تا بتونیم بصورت داینامیک دنبال هر چیزی توی خروجی بگردیم و دستمون باز باشه در اعمال فیلتر (البته فیلتر در کاربرد خوبش ، نه فیلترهای چرند فیلترچی).
امیدوارم افراد منتخب شما جزء انتخابات شدهها باشن و امیدوارم به لیست اصلاحات رای داده باشید D:
پینوشت:
من بشاسکریپت نویس خوبی نیستم و ممکنه راه حلهای معقولتری هم برای انجام این کار وجود داشته باشه. ولی خوبی لینوکس اینه که هر کسی با دانش خودش میتونه ازش بهره ببره.