Borna66
06-16-2009, 01:10 PM
RoYa (Robot Yahoo) ، کار کسانی که میخواهند در Yahoo Messenger روبات طراحی کنند را آسان میکند ، از RoYa میتوانید برای کنترل از راه دور ، ساختن روباتهای هوشمند ، ساختن سرویس های عمومی و تفریحی ، ساختن سرویسهای ویژه (برای SMS و ISP ها) و غیره استفاده کرد . کار با RoYa بسیار آسان است و تنها با نوشتن Script و یا Plugin قادر خواهید بود امکانات مختلفی به روبات اضافه کنید. و قدرت RoYa در "قابل برنامه ریزی" بودن آن است و به برنامه نویس این امکان را میدهد که بدون توجه به جزئیات اتصال به Yahoo ایده های خود را پیاده سازی کنند.
توضیح امکانات برنامه
مکان پاسخ گویی به پیامهای شخصی PM .
<LI dir=rtl>امکال اتصال و پاسخگویی در محیطهای گفتگو (ChatRoom) .
<LI dir=rtl>قابل برنامه ریزی به وسیله VBScript , JavaScript , DelphiScript .
<LI dir=rtl>قابل برنامه ریزی به وسیله Plug-in با زبانهای برنامه نویسی رایج . ( Delphi , VB , VC++ )
<LI dir=rtl>کنترل برنامه از راه دور به وسیله دستورات مدیریتی.
<LI dir=rtl>امکان فرستادن بیش از یک پیغام به هر کاربر .
<LI dir=rtl>امکان استفاده از ID های Profile برای استفاده از روباتهای چند منظوره .
<LI dir=rtl>امکان عوض کردن Status و پشتیبانی از پیش فرضهای Yahoo.
سرعت بالا در دریافت و ارسال پیغامها .
تنظیمات و اتصال
بخش تنظیمات شامل پنجره Setting میشود که برای تنظیم اولیه RoYa است ، و قبل از هر کاری اطلاعات آن باید تکمیل شود . این اطلاعات به شرح زیر است :
<LI dir=rtl>تب Connection
*Hostآدرس Yahoo Messenger به طور پیش فرض scsc.msg.yahoo.com است.
*Port پورت ارتباطی که به طور پپش فرض 5050 است ولی متوانید از پورتهای 21 و 23 هم استفاده کنید.
در مورد Http ***** و SOCKS ***** هم به صورت استاندارد هست و با دادن اطلاعات سرور و پورت میتوانید متصل شوید.
تب Login
*Username اسم ID است که قرار است روبات شود .
*Password پسورد ID روبات است.
*Owner اسم یک ID در Yahoo هست که این ID میتواند از راه دور روبات را کنترل کند میتواند اسم ID اصلی خود شما باشد.
Status هر کلمه که در اینجا نوشته شود ، در لحظه اول در Status روبات نمایش داده خواهد شد . و اگر Busy فعال باشد علامت busy در کنار اسم روبات نمایش داده میشود ، البته همه مواردی که در مورد سوئیچ /Status بیان شده در اینجا صدق میکند.
Login under Invisible Mode دقیقا مشابه خود Client Yahoo به صورت پنهانی Login میکند و در لیست نمایش داده نمیشود.
Automatically start RoYa on Windows startup با اینتخاب این گزینه برنامه در اول Windows اجرا خواهد شد .
Minimize on tray icon با انتخاب این گزینه وقتی Minimize کنید به قسمت Tray میرود.
Automatically connect on RoYa startup با انتخاب این گزینه با شروع کار برنامه به Yahoo متصل میشود .
Priority در این قسمت میتوانید پردازش Plugins و Scripts را فعال و یا غیر فعال کنید و همچنین میتوانید مشخص کرد که کدام یک اول اجرا شوند در کنار هر یک از دو گزینه Check box وجود دارد که با علامت زدن آن فعال میشود ، و هر کدام از آیتمها که انتخاب شده باشد پردازش آن اول انجام میشود . لازم به ذکر است که این فقط پردازش کل Plugin و Script را کنترل میکند و برای تک تک Plugin ها و Script ها در قسمتهای بعدی توضیح داده شده !
به صورت پیش فرض هر دو فعال هستند و اولویت با Plugins است.
مواردی که با "*" مشخص شدند ، باید پر شوند.
بعد از وارد کردن اطلاعات خواسته شده در بخش Setting در صورت کامل بودن مشخصات در Log نمایش داده میشود . و از این به بعد هر بار برنامه را اجرا کنید این مشخصات برای نشان دادن کامل بودن اطلاعات نمایش داده میشود . و در این لحظه برنامه آماده است و با زدن دکمه Connect به Yahoo متصل شود. در صورتی که برنامه نتواند به Yahoo متصل شود هر 2 ثانیه سعی میکند این ارتباط را برقرار کند.
For Owner : RoYa loaded.
Date : 24/02/2004 01http://pnu-club.com/images/smilies/29.gif46
بخش Diagnostic
<LI dir=rtl>تب Test ، در این بخش شما میتوانید بدون اتصال به اینترنت Script ها و Plugin ها را بررسی کنید ، و در صورتی اشکالی در Script وجود داشته باشد ، شماره خطی که مشکل دارد نمایش داده میشود.
تب Editor برای ساختن و ویرایش Script ها می باشد ، که استاندارهای در آن رعایت شده ، از جمله میتوان به وجود Find (Ctrl + F) ، Replace (Ctrl + T) ، Bookmark اشاره کرد.
عملکرد برنامه (Log)
RoYa با اولین اجرای خود پوشه در محل نصب خود ایجاد میکند به نام Logs که در این پوشه همه اطلاعاتی که وارد و یا خارج میشود با ذکر زمان دریافت به طور روزانه در فایلهای جداگانه ذخیره میکند ، نام این فایلهای به گونه میباشد که در آن تاریخ ساخت Log ذکر شده بدین صورت : 2003-11-20#RoYa.log و هنگامی که برنامه در حال اجرا باشد و تاریخ سیستم تغییر کند برنامه فایل جدید با تاریخ جدید میسازد و اطلاعات را در آن ذخیره میکند .
[0]2004-02-24 01:28.16 Log system started.
[0]2004-02-24 01:28.18 Plugin , "Math.dll" Initialization
[0]2004-02-24 01:28.19 Script , "Sample.inc" Initialization
[0]2004-02-24 01:28.19
[0]2004-02-24 01:28.19 == Information ========
[0]2004-02-24 01:28.19 Host: scsa.msg.yahoo.com
[0]2004-02-24 01:28.19 Port: 5050
[0]2004-02-24 01:28.19 Username: pzbot
[0]2004-02-24 01:28.19 Owner: ali_mashatan
[0]2004-02-24 01:28.19 Status:
[0]2004-02-24 01:28.19 Busy: False
[0]2004-02-24 01:28.19 Invisible: True
[0]2004-02-24 01:28.19 ==================
[0]2004-02-24 01:29.36 Connecting to Yahoo! ...
[0]2004-02-24 01:29.46 Welcom to Yahoo Messenger !
[0]2004-02-24 01:30.02 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: Salam :) ] [Send: salam aziz ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: salam ] [Send: salam mage doktori?;) ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: chetoori ? :> ] [Send: Khoobam mer30 , too chetoori ? ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: chetoori ? :> ] [Send: Ads -> DelphiArea . Http://www.delaphiarea.com (http://forum.patoghu.com/redirector.php?url=Http%3A%2F%2Fwww.delaphiarea.co m) ]
[0]2004-02-24 01:35.46 Ping YM!
[0]2004-02-24 01:41.46 Ping YM!
[0]2004-02-24 01:47.46 Ping YM!
[0]2004-02-24 01:53.46 Ping YM!
[0]2004-02-24 01:59.46 Ping YM!
[0]2004-02-24 02:01.56 Socket disconnected !
[0]2004-02-24 02:01.58 Plugin , "Math.dll" Finalization
[0]2004-02-24 02:01.58 Script , "Sample.inc" Finalization
[0]2004-02-24 02:01.58 Log system closed.
دستورات مدیریتی
RoYa بگونه ای طراحی شده که میتوانید از راه دور آن را کنترل کنید. برای این منظور دستوراتی وجود دارد که فقط Owner مجاز به وارد کردن آنها میباشد . که در زیر به بیان این دستورات میپردازیم :
تمامی فرامین با یک "/" شروع میشود .
<LI dir=rtl>/Help نمایش فرامین که در این قسمت وجود دارد.
<LI dir=rtl>/Reset در مورادی که احتیاج به بستن و اجرای مجدد برنامه است .
<LI dir=rtl>/Send برای فرستادن پیغام از طرف Robot به یک User ، فقط کافیست در پارامتر اول Username و در پارامتر های بعدی پیغامتان را قرار دهید .
/Status برای تغییر محتوای Status بکار میرود. بعد از نوشتن دستور هر جمله نوشته شود در Status نمایش داده میشود. برای Busy کردن جمله ، از عبارت و برای Idle از عبارت [i] ، در جمله استفاده کنید.
همچنین میتوانید از حالتهای پیش فرض Yahoo Messenger استفاده کنید و با دادن کلمات زیر در جلوی دستور حالت مورد نظر نمایش داده میشود. مثلا با قرار دادن #i# حالت Idle نمایش داده میشود. توجه داشته باشید که این قوانین عینا در VarsRoYa.Status هم قابل اجرا است.
#a# I'm Available
#r# Be Right Back
#b# Busy
#h# Not at Home
#d# Not at my Desk
#o# Not in the Office
#p# On the Phone
#v# On Vacation
#l# Out to Lunch
#s# Stepped Out
#n# Invisible
#i# Idle
/Script برای انجام عملیات بر روی Script است با پارامترهای زیر میتوانید دستورات لازم را بدهید :
<LI dir=rtl>Init برایInitialization کردن Script
<LI dir=rtl>Final برای Finalization کردن Script
<LI dir=rtl>Pri اول Script ها پردازش میشوند
<LI dir=rtl>ON فعال شدن Script
OFF غیر فعال شدن Script
/Plugin برای انجام عملیات بر روی Plugin است با پارامترهای زیر میتوانید دستورات لازم را بدهید :
<LI dir=rtl>Init برایInitialization کردن Plugin
<LI dir=rtl>Final برای Finalization کردن Plugin
<LI dir=rtl>Pri اول Plugin ها پردازش میشوند
<LI dir=rtl>ON فعال شدن Plugin
OFF غیر فعال شدن Plugin
<LI dir=rtl>/Suspend این دستور همانطوری که از اسمش پیداست باعث معلق شدن کار برنامه میشود و به طور موقت هیچ پردازشی انجام نمیدهد . و هر پیغامی را Reject میکند . و برای برگشت به حالت عادی باید از دستور Resume استفاده کنید.
<LI dir=rtl>/Monitor هر پیغامی که توسط RoYa رد و بدل میشود یک نمونه آن برای Owner ارسال میشود و توصیه میکنم بجز موارد خاص از آن استفاده نکنید. با پارامترهای ON و OFF میتوانید فعال و غیر فعال کنید.
<LI dir=rtl>/Uptime این دستور مدت زمان بالا بودن RoYa را نمایش میدهد.
<LI dir=rtl>/Sysinfo این دستور مشخصات کامپیوتری که RoYa روی آن نصب است را نمایش میدهد.
<LI dir=rtl>/Join برای اتصال به یک ChatRoom با دادن نام Chat Room به عنوان پارامتر میتوانید متصل شوید. در ضمن با اتصال به Chat Room لیست Userها در ListUser قرار میگیرد.
<LI dir=rtl>/Left ترک کردن Chat Room
<LI dir=rtl>/Speech ارسال یک پیام به Chat Room
<LI dir=rtl>/Timer برای تنظیم Timer با پارامترهای ON و OFF میتوانید فعال یا غیر فعال کنید و همچنین با دادن عدد میتوانید مدت زمان Timer را مشخص کنید.
<LI dir=rtl>/Sendtime برای تنظیم زمان ارسال پیغامها ، این بدین خاطر است که یاهو محدودیت 4 پیام در یک ثانیه دارد (به طور پیش فرض 300 میلی ثانیه و سعی کنید از این دستور کمتر استفاده کنید)
<LI dir=rtl>/Pingtime برای تنظیم زمان Ping به سرور یاهو ، لازم به ذکر است که تمام Client ها که به YM! متصل میشوند باید در زمان مشخصی به سرور یک ping ی را ارسال کنند در غیر این صورت Yahoo آنها را قطع خواهد کرد. (به طور پیش فرض هر 6 دقیقه هست و سعی کنید از این دستور کمتر استفاده کنید)
<LI dir=rtl>/Cat برای دریافت لیست Chat Room های یک بخش بکار میرود . با دادن شماره هر بخش به عنوان پارامتر و سعی میکند از یاهو لیست را دریافت کند و بعد از دریافت لیست Chat Room های فعال در ListChat قرار میگیرد و در پارامتر بعد میتوانید مشخص کنید که فقط Chat Room های را دریافت کند که توسط User مشخص شده را انتخاب کند و یا فقط پیش فرض های Yahoo و یا هر دو . به صورت زیر عمل میشود :
User فقط Chat Room های که توسط User ها درست شدند
Yahoo فقط پیش فرض های خود Yahoo
ALL همه موراد را دریافت میکند
در صورت قرار ندادن در پارامتر به صورت پیش فرض User در نظر گرفته میشود.
مثلا : برای اتصال به Asia و لیست شدن Chat Room های که User ها ساختند باید بدین صورت عمل کنید ، /Cat 1600043929 user
علاوه بر موارد فوق این Switch قادر است که شماره یک Category را بدست آورد فقط کافیست در پارامتر به جای شماره از اسم Category و یا قسمتی از اسم آن استفاده شود.
مثلا : /Cat Asia
<LI dir=rtl>/Contact برای ارتباط کاربران با Owner از این Switch استفاده میشود . این Switch برای همه قابل دسترس می باشد و میتوانند پیغامهای خود را برای Owner ارسال کنند فقط Owner میتواند با ON یا OFF کردن این امکان را فعال و یا غیر فعال کنند .
/RoYa نمایش About برنامه ! (در سرویس Gold این امکان برداشته میشود)
برنامه نویسی با Script
تمام Script ها در پوشه Scripts در محلی که برنامه نصب شده است قرار میگیرد و باید پسوند فایل آن Inc باشد . برای برنامه نویسی باید ساختار مشخصی در Script رعایت شود .
<LI dir=rtl>خط اول Script نوع زبان برنامه نویسی قرار دارد .مثلا DelphiScript یا VBScript یا JavaScript
3 تابع SInit , SFina , ProcMessage در Script باید وجود داشته باشد .
در همین پوشه (Scripts) فایلی به اسم Sample.Inc وجود دارد که یک نمونه عملی که با DelphiScript نوشته شده ، میتوانید با مشاهد آن از چندوچون کار مطلع شوید.
<LI dir=rtl>تابع Sinit در هنگام Initialization شدن Script صدا زده میشود و یک بار در هنگام بالا آمدن برنامه و یا وقتی که دستور Init صادر شود ، صدا زده میشود . در خروجی تابع (Result) با دادن عدد میتوانید اولویت های Script را مشخص کنید. و هر چه عدد کوچیکتر باشد اولویت آن بیشتر است.
در این تابع معمولا میتوانید Database ی که در Script مورد استفاده قرار میگیرد ، را بار کنید .
<LI dir=rtl>تابع SFina برای Finalization کردن Script بکار میرود ، و یک بار در هنگام بستن برنامه و یا وقتی که دستور Final صادر میشود ، از طرف برنامه صدا زده میشود . مثلا میتوانید برای بستن Database که قبلا باز کردید استفاده کنید .
تابع ProcMessage تمام عملیاتهای که در مورد ، یک بار این تابع از طرف برنامه صدا زده میشود و با اطلاعاتی که در کلاس VarsRoYa قرار دارد .
اطلاعاتی که در کلاس VarsRoYa به شرح زیر است :
عملیاتی
این تابع ها بصورت متغییر هستند یعنی با وارد کردن رشته در متغییر ، در همان متغییر جواب قرار میگیرد.
<LI dir=rtl>FindEmotSing برای در آوردن شکلکها از درون رشته
DelEmotSing حدف همه شکلکهای موجود در رشته
ورودی
<LI dir=rtl>
Mode متغییری است که نشان میدهد برنامه چه نوع عملیاتی انجام میدهد و Script با توجه به هر یک از وضعیتهای زیر تصمیم گیری میکند :
IS_ERROR در صورت بروز خطا در روند اتصال به Chat و همچنین دریافت Category
IS_START وقتی برنامه به طور کامل به Yahoo متصل میشود.
IS_PM وقتی یک پیام شخصی فرستاده میشود.
IS_CHAT وقتی از طرف Chat Room پیامی ارسال میشود.
IS_ADD وقتی که ID روبات را ADD میکند.
IS_JOINROBOT وقتی که روبات وارد یک Chat Room میشود
IS_JOIN وقتی یک نفر وارد Chat Room میشود
IS_LEFT وقتی یک نفر Chat Room را ترک میکند
IS_TIMER وقتی Timer فعال باشد در مدت زمانی که قبلا مشخص شد ، این حالت را فراخوانی میکند. مثلا هر 30 ثانیه یک بار این وضعیت به Script ارسال میشود.
IS_CATEGORY وقتی لیست Chat Room ها آماده باشد.
<LI dir=rtl>ListParam برنامه پیغامهای کاربر را با توجه به Space که بین کلمات وجود دارد تفکیک میکند و در ListParam قرار میدهد و این قابلیت وجود دارد که مطالب که بین گیومه قرار میگیرد به عنوان یک عبارت قرار دهد . تعداد پارامترها در اینجا ListParam.Count قرار دارد.
مثلا اگر عبارت /Learn hi "Hi , How are you ?" را کاربر وارد کند برنامه در ListParam بدین صورت قرار میدهد. (در ListParam.Count مقدار 3 هست )
ListParam.String[0]= /Learn
ListParam.String[1]=Hi
ListParam.String[2]= Hi , How are you ?
<LI dir=rtl>PathPRG مسیر اجرای برنامه
<LI dir=rtl>Owner نام Owner
<LI dir=rtl>IDRobot مشخص میشود که کاربر از کدام ID روبات پیام را ارسال کرده است ، در رویا این امکان وجود دارد که از ID های Profile برای روباتهای چند منظوره استفاده کنید.
<LI dir=rtl>UserPM نام کاربری که پیغام را ارسال کرده
<LI dir=rtl>StrMsgHTML متن پیغام کاربر به صورت HTML
StrMsgNOHTML متن پیغام کاربر به صورت Text
خروجی
<LI dir=rtl>Status در صورت وارد کردن رشته ای در این متغییر Status عوض میشود .
<LI dir=rtl>Ban با True شدن ، پیغام برای کاربر ارسال نمیشود .
<LI dir=rtl>Category برای دریافت لیست Chat Room های Yahoo با دادن شماره هر قسمت.
SendStr متنی که قرار است بعنوان جواب برای کاربر ارسال شود در این متغییر قرار میگیرد.
در RoYa سه Object وجود دارد به نامهای ADOConnection1 و ADOQuery1 , ADOQuery2 که به وسیله این سه Object میتوانید از طریق ADO به بانک اطلاعاتی(Database) متصل شوید ، مثل (Access ، SQL Server , Oracle) دومین مورد متغییرهای برای استفاده برنامه نویسان در Script در نظر گرفته شده که VarInt01 تا VarInt05 برای متغییر های عددی و از VarStr01 تا VarStr05 برای String است .
در Sample که در پوشه Script قرار دارد تمام موارد به صورت مثال توضیح داده شده است و در این مثال از بانک اطلاعاتی MS-ACCESS استفاده شده که فایل آن در پوشه Data قرار دارد ( فایلی به نام Sample.mdb). در این Sample علاوه بر جواب دادن به پیامها PM و Chat چند مورد جالب قرار گرفته :
<LI dir=rtl>Link Dump با وارد کردن/Link لیست لینکهای که قبلا اضافه کردید نمایش داده میشود . Owner میتواند با دادن /Link add "Name" "Link" لینک اضافه کند و با /Link del <Number> لینک را با توجه به شماره ای که در لیست شدن قرار میگیرد ، حذف کند. تمام اطلاعات در Table:ADS قرار میگیرد.
<LI dir=rtl>تبلیغات ، این امکان وجود دارد که بین مطالبی که Script جواب میدهد به صورت تصادفی لینکهای که قبلا قرار داده ایم به عنوان تبلیغات ، نمایش داده شود. اطلاعات این قسمت در Table:ADS قرار دارد.
<LI dir=rtl>ثبت User ها هر کسی که به روبات پیغامی ارسال کند Username آن در Table:User ثبت میشود. (فقط یک بار)
<LI dir=rtl>تغییر Status با استفاده از Timer داخلی که در برنامه برای برنامه نویس در نظر گرفته شده جوری برنامه نویسی شده که در مدت زمان مشخص Status را تغییر یابد.
برای اتصال به ChatRoom کافیست Owner مثلا [B]/Cat 1600043929 user وارد کند ، Script به گونه طراحی شده که به طور اتوماتیک با توجه به لیست کل ChatRoom های Asia داخل هر یک از ChatRoom ها میشود و به پیامها جواب میدهد
برنامه نویسی با Plug-in
Plug-in راه دیگری هست برای توسعه برنامه که میتوانید به وسیله یک DLL کارهای را که با Script انجام میدادید را انجام دهید ، تمام Plugin ها در پوشه Plugins در محلی که برنامه نصب شده قرار دارند و باید پسوند فایل آنها DLL باشد . در صورتی که با Delphi برنامه مینویسید باید یونیت PluginsTyp را در DLL اضافه کنید.
در همین پوشه (Plugins) فایلی به اسم Math.DLL وجود دارد (سورس این برنامه با Delphi نوشته شده و در فایل Math.Dpr قرار دارد ) که نمونه عملی از یک ماشین حساب قدرتمند که استفاده از Plugin را نشان میدهد ، با دستور /mathو دادن فرمول ریاضی به صورت پارامتر میتوانید جواب را مشاهد کنید .
مثلا/math 2+3*(sin(67)/23*89)^(125/5)
تمام مواردی که در مورد Script ذکر شده دقیقا در مورد Plugin هم وجود دارد . فقط باید در نظر داشته باشید که در Plugin از کلاس استفاده نشده است و فقط یک Record است. و متغییر ها ورودی و خروجی به صورت پارامتر جابجا میشوند.
در ضمن در Plug-in نمی توانید از ADOConnection1 و ADOQuery1 , ADOQuery2 استفاده کنید.
توضیح امکانات برنامه
مکان پاسخ گویی به پیامهای شخصی PM .
<LI dir=rtl>امکال اتصال و پاسخگویی در محیطهای گفتگو (ChatRoom) .
<LI dir=rtl>قابل برنامه ریزی به وسیله VBScript , JavaScript , DelphiScript .
<LI dir=rtl>قابل برنامه ریزی به وسیله Plug-in با زبانهای برنامه نویسی رایج . ( Delphi , VB , VC++ )
<LI dir=rtl>کنترل برنامه از راه دور به وسیله دستورات مدیریتی.
<LI dir=rtl>امکان فرستادن بیش از یک پیغام به هر کاربر .
<LI dir=rtl>امکان استفاده از ID های Profile برای استفاده از روباتهای چند منظوره .
<LI dir=rtl>امکان عوض کردن Status و پشتیبانی از پیش فرضهای Yahoo.
سرعت بالا در دریافت و ارسال پیغامها .
تنظیمات و اتصال
بخش تنظیمات شامل پنجره Setting میشود که برای تنظیم اولیه RoYa است ، و قبل از هر کاری اطلاعات آن باید تکمیل شود . این اطلاعات به شرح زیر است :
<LI dir=rtl>تب Connection
*Hostآدرس Yahoo Messenger به طور پیش فرض scsc.msg.yahoo.com است.
*Port پورت ارتباطی که به طور پپش فرض 5050 است ولی متوانید از پورتهای 21 و 23 هم استفاده کنید.
در مورد Http ***** و SOCKS ***** هم به صورت استاندارد هست و با دادن اطلاعات سرور و پورت میتوانید متصل شوید.
تب Login
*Username اسم ID است که قرار است روبات شود .
*Password پسورد ID روبات است.
*Owner اسم یک ID در Yahoo هست که این ID میتواند از راه دور روبات را کنترل کند میتواند اسم ID اصلی خود شما باشد.
Status هر کلمه که در اینجا نوشته شود ، در لحظه اول در Status روبات نمایش داده خواهد شد . و اگر Busy فعال باشد علامت busy در کنار اسم روبات نمایش داده میشود ، البته همه مواردی که در مورد سوئیچ /Status بیان شده در اینجا صدق میکند.
Login under Invisible Mode دقیقا مشابه خود Client Yahoo به صورت پنهانی Login میکند و در لیست نمایش داده نمیشود.
Automatically start RoYa on Windows startup با اینتخاب این گزینه برنامه در اول Windows اجرا خواهد شد .
Minimize on tray icon با انتخاب این گزینه وقتی Minimize کنید به قسمت Tray میرود.
Automatically connect on RoYa startup با انتخاب این گزینه با شروع کار برنامه به Yahoo متصل میشود .
Priority در این قسمت میتوانید پردازش Plugins و Scripts را فعال و یا غیر فعال کنید و همچنین میتوانید مشخص کرد که کدام یک اول اجرا شوند در کنار هر یک از دو گزینه Check box وجود دارد که با علامت زدن آن فعال میشود ، و هر کدام از آیتمها که انتخاب شده باشد پردازش آن اول انجام میشود . لازم به ذکر است که این فقط پردازش کل Plugin و Script را کنترل میکند و برای تک تک Plugin ها و Script ها در قسمتهای بعدی توضیح داده شده !
به صورت پیش فرض هر دو فعال هستند و اولویت با Plugins است.
مواردی که با "*" مشخص شدند ، باید پر شوند.
بعد از وارد کردن اطلاعات خواسته شده در بخش Setting در صورت کامل بودن مشخصات در Log نمایش داده میشود . و از این به بعد هر بار برنامه را اجرا کنید این مشخصات برای نشان دادن کامل بودن اطلاعات نمایش داده میشود . و در این لحظه برنامه آماده است و با زدن دکمه Connect به Yahoo متصل شود. در صورتی که برنامه نتواند به Yahoo متصل شود هر 2 ثانیه سعی میکند این ارتباط را برقرار کند.
For Owner : RoYa loaded.
Date : 24/02/2004 01http://pnu-club.com/images/smilies/29.gif46
بخش Diagnostic
<LI dir=rtl>تب Test ، در این بخش شما میتوانید بدون اتصال به اینترنت Script ها و Plugin ها را بررسی کنید ، و در صورتی اشکالی در Script وجود داشته باشد ، شماره خطی که مشکل دارد نمایش داده میشود.
تب Editor برای ساختن و ویرایش Script ها می باشد ، که استاندارهای در آن رعایت شده ، از جمله میتوان به وجود Find (Ctrl + F) ، Replace (Ctrl + T) ، Bookmark اشاره کرد.
عملکرد برنامه (Log)
RoYa با اولین اجرای خود پوشه در محل نصب خود ایجاد میکند به نام Logs که در این پوشه همه اطلاعاتی که وارد و یا خارج میشود با ذکر زمان دریافت به طور روزانه در فایلهای جداگانه ذخیره میکند ، نام این فایلهای به گونه میباشد که در آن تاریخ ساخت Log ذکر شده بدین صورت : 2003-11-20#RoYa.log و هنگامی که برنامه در حال اجرا باشد و تاریخ سیستم تغییر کند برنامه فایل جدید با تاریخ جدید میسازد و اطلاعات را در آن ذخیره میکند .
[0]2004-02-24 01:28.16 Log system started.
[0]2004-02-24 01:28.18 Plugin , "Math.dll" Initialization
[0]2004-02-24 01:28.19 Script , "Sample.inc" Initialization
[0]2004-02-24 01:28.19
[0]2004-02-24 01:28.19 == Information ========
[0]2004-02-24 01:28.19 Host: scsa.msg.yahoo.com
[0]2004-02-24 01:28.19 Port: 5050
[0]2004-02-24 01:28.19 Username: pzbot
[0]2004-02-24 01:28.19 Owner: ali_mashatan
[0]2004-02-24 01:28.19 Status:
[0]2004-02-24 01:28.19 Busy: False
[0]2004-02-24 01:28.19 Invisible: True
[0]2004-02-24 01:28.19 ==================
[0]2004-02-24 01:29.36 Connecting to Yahoo! ...
[0]2004-02-24 01:29.46 Welcom to Yahoo Messenger !
[0]2004-02-24 01:30.02 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: Salam :) ] [Send: salam aziz ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: salam ] [Send: salam mage doktori?;) ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: chetoori ? :> ] [Send: Khoobam mer30 , too chetoori ? ]
[0]2004-02-24 01:31.15 [P][Robot: pzbot ] [User: ali_mashatan ] [Receive: chetoori ? :> ] [Send: Ads -> DelphiArea . Http://www.delaphiarea.com (http://forum.patoghu.com/redirector.php?url=Http%3A%2F%2Fwww.delaphiarea.co m) ]
[0]2004-02-24 01:35.46 Ping YM!
[0]2004-02-24 01:41.46 Ping YM!
[0]2004-02-24 01:47.46 Ping YM!
[0]2004-02-24 01:53.46 Ping YM!
[0]2004-02-24 01:59.46 Ping YM!
[0]2004-02-24 02:01.56 Socket disconnected !
[0]2004-02-24 02:01.58 Plugin , "Math.dll" Finalization
[0]2004-02-24 02:01.58 Script , "Sample.inc" Finalization
[0]2004-02-24 02:01.58 Log system closed.
دستورات مدیریتی
RoYa بگونه ای طراحی شده که میتوانید از راه دور آن را کنترل کنید. برای این منظور دستوراتی وجود دارد که فقط Owner مجاز به وارد کردن آنها میباشد . که در زیر به بیان این دستورات میپردازیم :
تمامی فرامین با یک "/" شروع میشود .
<LI dir=rtl>/Help نمایش فرامین که در این قسمت وجود دارد.
<LI dir=rtl>/Reset در مورادی که احتیاج به بستن و اجرای مجدد برنامه است .
<LI dir=rtl>/Send برای فرستادن پیغام از طرف Robot به یک User ، فقط کافیست در پارامتر اول Username و در پارامتر های بعدی پیغامتان را قرار دهید .
/Status برای تغییر محتوای Status بکار میرود. بعد از نوشتن دستور هر جمله نوشته شود در Status نمایش داده میشود. برای Busy کردن جمله ، از عبارت و برای Idle از عبارت [i] ، در جمله استفاده کنید.
همچنین میتوانید از حالتهای پیش فرض Yahoo Messenger استفاده کنید و با دادن کلمات زیر در جلوی دستور حالت مورد نظر نمایش داده میشود. مثلا با قرار دادن #i# حالت Idle نمایش داده میشود. توجه داشته باشید که این قوانین عینا در VarsRoYa.Status هم قابل اجرا است.
#a# I'm Available
#r# Be Right Back
#b# Busy
#h# Not at Home
#d# Not at my Desk
#o# Not in the Office
#p# On the Phone
#v# On Vacation
#l# Out to Lunch
#s# Stepped Out
#n# Invisible
#i# Idle
/Script برای انجام عملیات بر روی Script است با پارامترهای زیر میتوانید دستورات لازم را بدهید :
<LI dir=rtl>Init برایInitialization کردن Script
<LI dir=rtl>Final برای Finalization کردن Script
<LI dir=rtl>Pri اول Script ها پردازش میشوند
<LI dir=rtl>ON فعال شدن Script
OFF غیر فعال شدن Script
/Plugin برای انجام عملیات بر روی Plugin است با پارامترهای زیر میتوانید دستورات لازم را بدهید :
<LI dir=rtl>Init برایInitialization کردن Plugin
<LI dir=rtl>Final برای Finalization کردن Plugin
<LI dir=rtl>Pri اول Plugin ها پردازش میشوند
<LI dir=rtl>ON فعال شدن Plugin
OFF غیر فعال شدن Plugin
<LI dir=rtl>/Suspend این دستور همانطوری که از اسمش پیداست باعث معلق شدن کار برنامه میشود و به طور موقت هیچ پردازشی انجام نمیدهد . و هر پیغامی را Reject میکند . و برای برگشت به حالت عادی باید از دستور Resume استفاده کنید.
<LI dir=rtl>/Monitor هر پیغامی که توسط RoYa رد و بدل میشود یک نمونه آن برای Owner ارسال میشود و توصیه میکنم بجز موارد خاص از آن استفاده نکنید. با پارامترهای ON و OFF میتوانید فعال و غیر فعال کنید.
<LI dir=rtl>/Uptime این دستور مدت زمان بالا بودن RoYa را نمایش میدهد.
<LI dir=rtl>/Sysinfo این دستور مشخصات کامپیوتری که RoYa روی آن نصب است را نمایش میدهد.
<LI dir=rtl>/Join برای اتصال به یک ChatRoom با دادن نام Chat Room به عنوان پارامتر میتوانید متصل شوید. در ضمن با اتصال به Chat Room لیست Userها در ListUser قرار میگیرد.
<LI dir=rtl>/Left ترک کردن Chat Room
<LI dir=rtl>/Speech ارسال یک پیام به Chat Room
<LI dir=rtl>/Timer برای تنظیم Timer با پارامترهای ON و OFF میتوانید فعال یا غیر فعال کنید و همچنین با دادن عدد میتوانید مدت زمان Timer را مشخص کنید.
<LI dir=rtl>/Sendtime برای تنظیم زمان ارسال پیغامها ، این بدین خاطر است که یاهو محدودیت 4 پیام در یک ثانیه دارد (به طور پیش فرض 300 میلی ثانیه و سعی کنید از این دستور کمتر استفاده کنید)
<LI dir=rtl>/Pingtime برای تنظیم زمان Ping به سرور یاهو ، لازم به ذکر است که تمام Client ها که به YM! متصل میشوند باید در زمان مشخصی به سرور یک ping ی را ارسال کنند در غیر این صورت Yahoo آنها را قطع خواهد کرد. (به طور پیش فرض هر 6 دقیقه هست و سعی کنید از این دستور کمتر استفاده کنید)
<LI dir=rtl>/Cat برای دریافت لیست Chat Room های یک بخش بکار میرود . با دادن شماره هر بخش به عنوان پارامتر و سعی میکند از یاهو لیست را دریافت کند و بعد از دریافت لیست Chat Room های فعال در ListChat قرار میگیرد و در پارامتر بعد میتوانید مشخص کنید که فقط Chat Room های را دریافت کند که توسط User مشخص شده را انتخاب کند و یا فقط پیش فرض های Yahoo و یا هر دو . به صورت زیر عمل میشود :
User فقط Chat Room های که توسط User ها درست شدند
Yahoo فقط پیش فرض های خود Yahoo
ALL همه موراد را دریافت میکند
در صورت قرار ندادن در پارامتر به صورت پیش فرض User در نظر گرفته میشود.
مثلا : برای اتصال به Asia و لیست شدن Chat Room های که User ها ساختند باید بدین صورت عمل کنید ، /Cat 1600043929 user
علاوه بر موارد فوق این Switch قادر است که شماره یک Category را بدست آورد فقط کافیست در پارامتر به جای شماره از اسم Category و یا قسمتی از اسم آن استفاده شود.
مثلا : /Cat Asia
<LI dir=rtl>/Contact برای ارتباط کاربران با Owner از این Switch استفاده میشود . این Switch برای همه قابل دسترس می باشد و میتوانند پیغامهای خود را برای Owner ارسال کنند فقط Owner میتواند با ON یا OFF کردن این امکان را فعال و یا غیر فعال کنند .
/RoYa نمایش About برنامه ! (در سرویس Gold این امکان برداشته میشود)
برنامه نویسی با Script
تمام Script ها در پوشه Scripts در محلی که برنامه نصب شده است قرار میگیرد و باید پسوند فایل آن Inc باشد . برای برنامه نویسی باید ساختار مشخصی در Script رعایت شود .
<LI dir=rtl>خط اول Script نوع زبان برنامه نویسی قرار دارد .مثلا DelphiScript یا VBScript یا JavaScript
3 تابع SInit , SFina , ProcMessage در Script باید وجود داشته باشد .
در همین پوشه (Scripts) فایلی به اسم Sample.Inc وجود دارد که یک نمونه عملی که با DelphiScript نوشته شده ، میتوانید با مشاهد آن از چندوچون کار مطلع شوید.
<LI dir=rtl>تابع Sinit در هنگام Initialization شدن Script صدا زده میشود و یک بار در هنگام بالا آمدن برنامه و یا وقتی که دستور Init صادر شود ، صدا زده میشود . در خروجی تابع (Result) با دادن عدد میتوانید اولویت های Script را مشخص کنید. و هر چه عدد کوچیکتر باشد اولویت آن بیشتر است.
در این تابع معمولا میتوانید Database ی که در Script مورد استفاده قرار میگیرد ، را بار کنید .
<LI dir=rtl>تابع SFina برای Finalization کردن Script بکار میرود ، و یک بار در هنگام بستن برنامه و یا وقتی که دستور Final صادر میشود ، از طرف برنامه صدا زده میشود . مثلا میتوانید برای بستن Database که قبلا باز کردید استفاده کنید .
تابع ProcMessage تمام عملیاتهای که در مورد ، یک بار این تابع از طرف برنامه صدا زده میشود و با اطلاعاتی که در کلاس VarsRoYa قرار دارد .
اطلاعاتی که در کلاس VarsRoYa به شرح زیر است :
عملیاتی
این تابع ها بصورت متغییر هستند یعنی با وارد کردن رشته در متغییر ، در همان متغییر جواب قرار میگیرد.
<LI dir=rtl>FindEmotSing برای در آوردن شکلکها از درون رشته
DelEmotSing حدف همه شکلکهای موجود در رشته
ورودی
<LI dir=rtl>
Mode متغییری است که نشان میدهد برنامه چه نوع عملیاتی انجام میدهد و Script با توجه به هر یک از وضعیتهای زیر تصمیم گیری میکند :
IS_ERROR در صورت بروز خطا در روند اتصال به Chat و همچنین دریافت Category
IS_START وقتی برنامه به طور کامل به Yahoo متصل میشود.
IS_PM وقتی یک پیام شخصی فرستاده میشود.
IS_CHAT وقتی از طرف Chat Room پیامی ارسال میشود.
IS_ADD وقتی که ID روبات را ADD میکند.
IS_JOINROBOT وقتی که روبات وارد یک Chat Room میشود
IS_JOIN وقتی یک نفر وارد Chat Room میشود
IS_LEFT وقتی یک نفر Chat Room را ترک میکند
IS_TIMER وقتی Timer فعال باشد در مدت زمانی که قبلا مشخص شد ، این حالت را فراخوانی میکند. مثلا هر 30 ثانیه یک بار این وضعیت به Script ارسال میشود.
IS_CATEGORY وقتی لیست Chat Room ها آماده باشد.
<LI dir=rtl>ListParam برنامه پیغامهای کاربر را با توجه به Space که بین کلمات وجود دارد تفکیک میکند و در ListParam قرار میدهد و این قابلیت وجود دارد که مطالب که بین گیومه قرار میگیرد به عنوان یک عبارت قرار دهد . تعداد پارامترها در اینجا ListParam.Count قرار دارد.
مثلا اگر عبارت /Learn hi "Hi , How are you ?" را کاربر وارد کند برنامه در ListParam بدین صورت قرار میدهد. (در ListParam.Count مقدار 3 هست )
ListParam.String[0]= /Learn
ListParam.String[1]=Hi
ListParam.String[2]= Hi , How are you ?
<LI dir=rtl>PathPRG مسیر اجرای برنامه
<LI dir=rtl>Owner نام Owner
<LI dir=rtl>IDRobot مشخص میشود که کاربر از کدام ID روبات پیام را ارسال کرده است ، در رویا این امکان وجود دارد که از ID های Profile برای روباتهای چند منظوره استفاده کنید.
<LI dir=rtl>UserPM نام کاربری که پیغام را ارسال کرده
<LI dir=rtl>StrMsgHTML متن پیغام کاربر به صورت HTML
StrMsgNOHTML متن پیغام کاربر به صورت Text
خروجی
<LI dir=rtl>Status در صورت وارد کردن رشته ای در این متغییر Status عوض میشود .
<LI dir=rtl>Ban با True شدن ، پیغام برای کاربر ارسال نمیشود .
<LI dir=rtl>Category برای دریافت لیست Chat Room های Yahoo با دادن شماره هر قسمت.
SendStr متنی که قرار است بعنوان جواب برای کاربر ارسال شود در این متغییر قرار میگیرد.
در RoYa سه Object وجود دارد به نامهای ADOConnection1 و ADOQuery1 , ADOQuery2 که به وسیله این سه Object میتوانید از طریق ADO به بانک اطلاعاتی(Database) متصل شوید ، مثل (Access ، SQL Server , Oracle) دومین مورد متغییرهای برای استفاده برنامه نویسان در Script در نظر گرفته شده که VarInt01 تا VarInt05 برای متغییر های عددی و از VarStr01 تا VarStr05 برای String است .
در Sample که در پوشه Script قرار دارد تمام موارد به صورت مثال توضیح داده شده است و در این مثال از بانک اطلاعاتی MS-ACCESS استفاده شده که فایل آن در پوشه Data قرار دارد ( فایلی به نام Sample.mdb). در این Sample علاوه بر جواب دادن به پیامها PM و Chat چند مورد جالب قرار گرفته :
<LI dir=rtl>Link Dump با وارد کردن/Link لیست لینکهای که قبلا اضافه کردید نمایش داده میشود . Owner میتواند با دادن /Link add "Name" "Link" لینک اضافه کند و با /Link del <Number> لینک را با توجه به شماره ای که در لیست شدن قرار میگیرد ، حذف کند. تمام اطلاعات در Table:ADS قرار میگیرد.
<LI dir=rtl>تبلیغات ، این امکان وجود دارد که بین مطالبی که Script جواب میدهد به صورت تصادفی لینکهای که قبلا قرار داده ایم به عنوان تبلیغات ، نمایش داده شود. اطلاعات این قسمت در Table:ADS قرار دارد.
<LI dir=rtl>ثبت User ها هر کسی که به روبات پیغامی ارسال کند Username آن در Table:User ثبت میشود. (فقط یک بار)
<LI dir=rtl>تغییر Status با استفاده از Timer داخلی که در برنامه برای برنامه نویس در نظر گرفته شده جوری برنامه نویسی شده که در مدت زمان مشخص Status را تغییر یابد.
برای اتصال به ChatRoom کافیست Owner مثلا [B]/Cat 1600043929 user وارد کند ، Script به گونه طراحی شده که به طور اتوماتیک با توجه به لیست کل ChatRoom های Asia داخل هر یک از ChatRoom ها میشود و به پیامها جواب میدهد
برنامه نویسی با Plug-in
Plug-in راه دیگری هست برای توسعه برنامه که میتوانید به وسیله یک DLL کارهای را که با Script انجام میدادید را انجام دهید ، تمام Plugin ها در پوشه Plugins در محلی که برنامه نصب شده قرار دارند و باید پسوند فایل آنها DLL باشد . در صورتی که با Delphi برنامه مینویسید باید یونیت PluginsTyp را در DLL اضافه کنید.
در همین پوشه (Plugins) فایلی به اسم Math.DLL وجود دارد (سورس این برنامه با Delphi نوشته شده و در فایل Math.Dpr قرار دارد ) که نمونه عملی از یک ماشین حساب قدرتمند که استفاده از Plugin را نشان میدهد ، با دستور /mathو دادن فرمول ریاضی به صورت پارامتر میتوانید جواب را مشاهد کنید .
مثلا/math 2+3*(sin(67)/23*89)^(125/5)
تمام مواردی که در مورد Script ذکر شده دقیقا در مورد Plugin هم وجود دارد . فقط باید در نظر داشته باشید که در Plugin از کلاس استفاده نشده است و فقط یک Record است. و متغییر ها ورودی و خروجی به صورت پارامتر جابجا میشوند.
در ضمن در Plug-in نمی توانید از ADOConnection1 و ADOQuery1 , ADOQuery2 استفاده کنید.