اطلاعیه

Collapse
No announcement yet.

بودن یا نبودن! مساله این است

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    بودن یا نبودن! مساله این است

    این اسکریپت برای اینه که وقتی شخص خاصی توی انجمن اومد ، بهتون اطلاع بده

    نحوه عملکرد
    اگر توجه کرده باشین پایین صفحه اول انجمن یه بخشی هست بنام کاربران آنلاین


    تنها کاری که باید انجام بشه اینه که بجای اینکه شما با چشماتون ببینید شخص مورد نظر آنلاین شده یا نه ، این وظیفه رو به یه اسکریپت ساده بسپارید !

    به این صورت که
    ۱ - دریافت صفحه اول انجمن ( دانلود )
    ۲ - جستجوی اسم شخص مورد نظر
    ۳ - اگر پیدا شد ، دادن اخطار
    ۴ - پاک کردن صفحه دانلود شده
    ۵ - پرش به پلهً اول

    ببینید :
    کد:
    #!/bin/bash
    
    name=whatever
    url="http://www.eca.ir/forum2/index.php"
    
    while [ 1 ] ; do
    	echo "Fetching url..."
    	wget $url
    	cat index.php | grep $name > /dev/null
    	
    	if [ $? = 0 ] ; then
    		zenity --info --text "hoooooooy , $name Found !"
    	else
    		echo "Not found"
    	fi
    	
    	rm index.php
    	sleep 30s
    done


    متغیر name اسم شخص مورد نظر هست و url هم آدرس صفحه اول انجمن
    فقط متاسفانه اسامی فارسی درست جواب نمیدن !

    آهان اینم بگم .
    ایدهً اولیه رو از اینجا گرفتما ، فکر نکنید مال خودم بود

    ( از اسکریپت نویسی خوشم اومده ! برای چند لحظه هم که شده آدم غم و غصهآ‌هاش یادش میره )
    چگونه هوشمندانه بپرسیم

    #2
    پاسخ : بودن یا نبودن! مساله این است

    با سلام
    حمید جان داری یه پا اسکریپت نویس حرفهآ‌ای میآ‌شیآ‌ها!
    راستی به نظرم بهتر است که zenity رو از info تبدیل کن به notification این جوری خیلی بهتره اون بالا توی panel گنوم نشون بده!
    من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

    دیدگاه


      #3
      پاسخ : بودن یا نبودن! مساله این است

      نوشته اصلی توسط manian
      با سلام
      حمید جان داری یه پا اسکریپت نویس حرفهآ‌ای میآ‌شیآ‌ ها!
      راست به نظرم بهتر است که zenity رو از info تبدیل کن به notification این جوری خیلی بهتره اون بالا توی panel گنوم نشون بده!
      نه بابا ، ما هنوز کوچیکیم !

      notification هم چیز جالبی بود ، مرسی عزیز :smile:
      چگونه هوشمندانه بپرسیم

      دیدگاه


        #4
        اسکریپتی برای پیدا کردن کاربر مورد نظر در انجمن (بودن یا نبودن! مساله این است)

        با سلام
        من کدآ‌های آقای رستمی را قدری تغییر دادم تا هم فارسی رو پشتیبانی کنه و هم بتونه فقط قسمت کاربران آنلاین رو بگرده.
        کد:
        #!/bin/bash
        NAME="امیرعلی بلورچیان"
        URL="http://www.eca.ir/forum2"
        KEY="کاربران آنلاین"
        while [ 1 ] ; do
        	wget "$URL" -O - |iconv -f WINDOWS-1256 -t UTF-8|grep -A 500 "$KEY"|grep -q "$NAME"
        	if [ $? = 0 ] ; then
        		zenity --notification --text="$NAME is online in ECA"
        	fi
        	sleep 120s
        done


        این هم توضیحاتی کوتاه برای این اسکریپت:

        while [ 1 ] ; do

        کل برنامه در یک حلقه دائمی است.

        wget "$URL" -O - |iconv -f WINDOWS-1256 -t UTF-8|grep -A 500 "$KEY"|grep -q "$NAME"

        قسمت اصلی اسکریپت از چند دستور تشکیل شده که به شکل pipe کار میآ‌کند و هر دستور خروجی خود را به ورودی دستور بعدی میآ‌فرستد (با عبارت "|" )

        wget "$URL" -O -

        آدرس مورد نظر را دانلود کن و به جای نوشتن در فایل مستقیم در خروجی بنویس (سوئیچ -O -)

        iconv -f WINDOWS-1256 -t UTF-8

        سایت eca از windows-1256 به عنوان encoding استفاده میآ‌کند ولی ابزارآ‌های ما با UTF-8 کار میآ‌کنند. به همین دلیل باید encoding فایل را تغییر دهیم.


        grep -A 500 "$KEY"

        در محتویات HTML دریافت شده به دنبال عبارت کاربران آنلاین بگرد و تا ۵۰۰ خط بعد از آن را چاپ کن (اسامی کاربران بعد از این قسمت قرار دارد).

        grep -q "$NAME"

        در آخرین مرحله به دنبال اسم مورد نظر ما بگرد. در این قسمت -q به این معنی است که قسمت پیدا شده را در خروجی چاپ نکن فقط در صورت پیدا شدن اسم مورد نظر خروجی دستور را ۰ قرار بده. این خروجی در متغیری به نام ?$ ذخیره میآ‌شود.

        if [ $? = 0 ] ; then

        در این مرحله خروجی را باید چک کنیم که اگر صفر شد به این معنی است اسم مورد نظر را پیدا کرده است.

        zenity --notification --text="$NAME is online in ECA"

        این دستور یک ایکون ایجاد میآ‌کند و در آن خبر میآ‌دهد که اسم مورد نظر را پیدا کرده است.

        sleep 120s

        در آخر کار ۲ دقیقه صبر کن و دوباره جستجو را انجام بده.
        من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

        دیدگاه


          #5
          پاسخ : بودن یا نبودن! مساله این است

          خیلی عالی شد ، دستت درد نکنه :smile:
          واقعا بازی کردن با shell لذت بخشه !
          چگونه هوشمندانه بپرسیم

          دیدگاه


            #6
            اهمیت اسکریپت نویسی در کار با EDA-Tools (بودن یا نبودن! مساله این است)

            نوشته اصلی توسط حمید رستمی
            خیلی عالی شد ، دستت درد نکنه :smile:
            واقعا بازی کردن با shell لذت بخشه !
            با سلام
            واقعا لذت بخشه و همچنین خیلی حیاتی به خصوص در رشته ما که تمام EDA-Toolsها تحت سیستمآ‌ عاملآ‌های Unix-based کار میآ‌کنند و نوشتن shell-script برای آنها از اهمیت فوقآ‌العاده بر خورداره.
            مثلا یه نمونه واقعی را برای دوستان مثال بزنم. کدآ‌ها و environment پردازنده OpenSparc ساخت SUN کاملا از اسکریپتآ‌ها استفاده میآ‌کند. این پردازنده توسط سان ساخته و طراحی شده ولی کدآ‌ها و طراحی آن به صورت کدباز منتشر شده است. دوستان اگر کدآ‌های این پردازنده رو از سایتش دانلود کنند و نگاهی بیندازند میآ‌بینند که قسمت خیلی مهمی از کار بر عهده کدهایآ‌ اسکریپتی است که یا به زبان perl نوشته شده است و یا bash-script هستند. وظیفه اصلی این کدآ‌ها هم کامپایل و شبیهآ‌سازی کدآ‌های veirlog و اجرای شبیهآ‌سازهای مرتبط با verification پروسسور است و قابلیت کار با چند نوع کامپایلر verilog معروف را نیز دارند. چون شبیهآ‌سازی در چند مرحله میآ‌تواند صورت گیرد، این اسکریپتآ‌ها ورودیآ‌هایی برای مشخص شدن محدوده شبیهآ‌سازی نیز دریافت میآ‌کنند ( شبیهآ‌سازی در سطح یک thread تا شبیهآ‌سازی کامل چیپ با ۸ هسته به همراه کنترلآ‌کنندهآ‌های DDR و غیره....). علاوه بر این، اسکریپتآ‌ها اجرای ابزارآ‌های سنتز (فقط پیادهآ‌سازی تک هستهآ‌ای) بر روی FPGA را نیز به عهده دارند (یا با ابزار سنتز xst و یا synplify).
            واقعا بدون استفاده از اسکریپت انجام این کارآ‌ها به صورت اتوماتیک تقریبا غیر ممکنه.
            من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

            دیدگاه

            لطفا صبر کنید...
            X