View Full Version : سایفر روبات (Cypher Robot)
Siavash
۰۲-۶-۱۳۸۷, ۰۲:۵۴ بعد از ظهر
سایفر روبات اولین روبات پاسخ گوی فارسی زبان است.
نکته ی جالب این است که سایفر دارای شخصیت می باشد، به عنوان مثال اگر طرف مقابل بد حرف بزند ناراحت می شود یا حتی ممکن است قهر کند، و از طرف دیگر ممکن است عاشق شود! سایفر فقط یک پاسخ گو نیست بلکه بعضی اوقات سوال می پرسد و با توجه به جوابی که می گیرد به اطلاعات خود می افزاید. نکته ی جالب دیگر اطلاعات کامل این روبات در زمینه ی فیلم و آهنگ و استعداد قابل توجهش در ریاضی است! سایفر می تواند نوع شخصیت طرف مقابل خود را تا حدودی از جواب هایش حدس بزند! شما می توانید با اضافه کردن آی دی "neol3ot" در یاهو! مسنجر با سایفر حرف بزنید، اگر دیدید سایفر اسم یا سنتان را حدس زد تعجب نکنید چون کاملا عادی است!
در صورتی که سوال خاصی در باره ی نحوه ی عملکرد این روبات دارید می توانید همین جا آنرا مطرح کنید.
r-co
۰۲-۶-۱۳۸۷, ۰۶:۰۵ بعد از ظهر
salam Man Mohsen 20 Az Bandar Abbas. mikhastam Darbareye Barnameye Sazandeye in ROBOT Az Shoma Soal beporsam. q3wp@yahoo.com
Siavash
۰۲-۶-۱۳۸۷, ۰۶:۲۴ بعد از ظهر
دوست عزیز از اونجایی که زبان این فروم فارسی هست، فارسی تایپ کنید.
ورژن آخر این برنامه با زبان برنامه نویسی Java نوشته شده و از بانک اطلاعاتی mySql استفاده می کنه.
برای وصل شدن به سرور مسنجر یاهو! هم از jYMSG استفاده شده.
اگر اطلاعات دیگری لازم دارید بگید...
ميثم
۰۲-۶-۱۳۸۷, ۰۷:۲۰ بعد از ظهر
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه !
اما دو تا سوال دارم :
1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟!
2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟!
Siavash
۰۲-۶-۱۳۸۷, ۰۹:۴۳ بعد از ظهر
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه !
اما دو تا سوال دارم :
1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟!
2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟!
دوست عزیز،
در مورد سوال اول: چرت و پرت تایپ کردن یا بهتره بگیم تصادفی تایپ کردن حروف توسط کاربر بر حسب یک سری کارهای آماری در آورده شده. حدود صد بار خودم و دوستام دستمون رو روی کیبورد گذاشتیم و الکی یک سری دکمه زدیم مثل "asdas" یا "dfgdfg"... بعد از روی اون ها یک سری پترن (Pattern) در آوردم که در صورتی که اون پترن ها به روبات داده شدن، روبات حدس بزنه که طرف مقابل منظور خاصی نداشته و فقط بصورت تصادفی دکمه زده.
درباره ی سوال دوم: بستگی داره تعریف ما از هوش مصنوعی چی باشه... هر وقت روبات هر تصمیمی بگیره می تونیم بگیم از یک نوع هوش مصنوعی استفاده کرده. با این تعریف حتی یک if ساده هم یک نوع هوش مصنوعی حساب می شه ولی در سطح بسیار پایین.
من برای ساخت این روبات از AIML الهام گرفتم و کمی اون رو تغییر دادم. می تونید با یک سرچ ساده توی Wikipedia ببینید که ساختار AIML به چه صورت هست. من اول اومدم و یه زبان ساده طراحی کردم و یک پارسر برای اون زبان درست کردم. یک بانک اطلاعاتی داریم که داخل اون بانک از این زبان استفاده شده. به عنوان مثال در بخش جواب می تونیم داشته باشیم:
<random>Khoobi?<or>Chetori"?</random>
مفهوم این عبارت این هست که بین دو عبارت Chetori? و Khoobi? یکی رو با تصادف جواب بده.
تو این زبان متغیر تعریف شده. که اطلاعاتی که پرسیده می شه داخل متغیر ها ذخیره میشه و در انتهای Session یک سری از اطلاعات داخل بانک اطلاعاتی هم ذخیره میشند.
همینطور شرط تعریف کردم. مثلا به کسی که با اون صمیمی تر هست بعضی اوقات جواب متفاوتی می ده یا به کسی که بی ادب هست نوع دیگه ای جواب میده.
علاوه بر این ها موضوع تعریف شده. مثلا اگر کاربر در اول صحبتش بگه Na هیچ مفهومی برای روبات نداره اما اگر بعد از یک سوال روبات Na گفته بشه مفهوم داره. پس یک کلمه در موضوع های مختلف مفهوم های مختلف داره.
همچنین یک تابع هر چند دقیقه در صورتی که طرف مقابل حرفی نزنه صدا زده میشه و سوال هایی که تعریف شده براش از شخص مقابل می پرسه.
متاسفانه نوشتن کل ساختار این روبات در اینجا مقداری وقت می گیره، اگر در رابطه با بخش خاصی از اون سوال دارید خوشحال می شم بپرسید.
soroosh-ab
۰۲-۷-۱۳۸۷, ۰۷:۰۴ قبل از ظهر
سلام .
دقیقآ منم برای روباتم همچین چیزایی رو تعریف کرده بودم !
روبات من با برنامه ی رویا که توسط یک ایرانی نوشته شده بود اجرا می شد و اسکریپت و دیتابیسش رو با تلاش و جون کندن نوشته بودم !
روبات من هم بسیار معروف شده بود و حدود 3 هزار نفر ادد لیست داشت و مرتب بهش پی ام می دادن !
اما به خاطر اینکه رویا با پروتوکل 5.5 و 5.6 یاهو کار میکرد ( یاهو 2 آپریل 2008 این پروتوکل رو بست ) از کار افتاد !
البته قبلش یاهو ایمیل زده بود که میخواد ببنده !
ایمیل یاهو :
Dear Yahoo! Messenger Version 5.5/5.6 user,
To provide you with a higher level of security, the version of Yahoo! Messenger you are currently using will be retired on April 2, 2008. You must upgrade to our latest supported version in order to continue using Messenger. Don't worry – it's still free, and we'll transfer your Messenger List for you.
Download the latest version of Yahoo! Messenger.
In addition to improved security features and advanced spam protection, the latest version of Messenger includes new emoticons and customization options, voice and video capabilities, and the ability to IM with Windows Live™ Messenger users.
If you have any questions or would like to learn more, click here.
Thanks for using Yahoo! Messenger!
The Yahoo! Messenger team
سیاوش جان میتونی کمکم کنی که این روبات رو دوباره راه بندازم ؟
Siavash
۰۲-۷-۱۳۸۷, ۰۹:۲۶ قبل از ظهر
دوست خوب سلام...
متاسفانه من با رویا کار نکردم... ولی کلا یاهو چند نوع پروتوکل ارتباتی داره که معروف ترین اونها YMSG هست که الان تا جایی که میدونم آخرین ورژنش YMSG13 هست. یک نوع پروتوکل دیگه داشتیم به نام YCHT که یاهو دیگه اون رو ساپورت نمی کنه! و یک پروتوکل هم به نام YChat یا Chat2 داشتیم که در حال حاضر به جای اونا از یک مدل پروتوکل با استفاده از XML استفاده می شه (توی وب مسنجر یاهو!) اول باید ببینیم رویا از کدوم نوع پروتوکل استفاده می کرده.
در هر صورت اگر زبان برنامه نویسی خاصی بلدید بگید شاید بتونم کمک کنم...
soroosh-ab
۰۲-۷-۱۳۸۷, ۱۰:۱۴ قبل از ظهر
سلام
من تا حدی با دلفی و ویژوال بیسیک آشنایی دارم .
برنامه ی رویا هم با دلفی نوشته شده .
من یک اسکریپت ساده و دیتابیس خام رو همراه با برنامه ی رویا ضمیمه کردم .
لطفآ یه نگاه بنداز .
من با پروتوکل های یاهو آشنایی ندارم مشکلم اینه !
یه سوال دیگه , امکان تغییر پروتوکل بدون دستکاری برنامه وجود داره ؟
من به سورس برنامه هم میتونم دسترسی پیدا کنم . یعنی Unpack و Decompile کنم !
مرسی از کمکت ;)
r-co
۰۲-۷-۱۳۸۷, ۰۹:۲۷ بعد از ظهر
میشه این برنامه رو توی سایتت بزاریش اگه همراه با آموزش ابتدایی هم باشه ممنون میشیم. محسن از بندرعباس e.mail: q3wp@yahoo.com
Siavash
۰۲-۷-۱۳۸۷, ۱۰:۴۲ بعد از ظهر
دی کمپایل کردن کار دوستمون چه از نظر اخلاقی چه از نظر قانونی کار درستی نیست...
اما از اونجایی که با ویژوال بیسیک آشنایی دارید فکر کنم این سورس کد بدرد شما بخوره.
این کد رو من 2 سال پیش نوشتم و با پروتوکل YMSG ورژن 12 کار می کنه که خوشبختانه در حال حاضر توی بخش لاگین و فرستادن و دریافت پیام هیچ فرقی با جدید ترین نسخه ی پروتکل یاهو نداره!
در واقع این سورس کد کار بخشی که رویا برای شما انجام می داد رو انجام می ده و برای داشتن یک روبات ساده کافیه به یک بانک اطلاعاتی اکسس وصل شید و با توجه به سوال جواب رو از داخل بانک اطلاعاتی بیرون بکشید.
متاسفانه این کد خوب کامنت گذاری نشده، در صورتی که هر جایی سوال داشتید همینجا می تونید سوالتون رو بپرسید.
پسورد فایل:
www.artificial.ir
Ashkan_yazdgroup
۰۲-۸-۱۳۸۷, ۰۱:۰۷ قبل از ظهر
با سلام و خسته نباشيد من با اشتياق كامل اين بحثها رو دنبال كردم
من از زبان برنامه نويسي سر رشته اي ندارم اما ياهو روبوت من با برنامه دلفي كار ميكرد كه من قصد ويرايشش رو داشتم كه از كار افتاد
اما در حال حاظر دارم دوره java مي بينم
سياوش جان من خيلي دوست دارم كه آموزش طراحي يك روبوت عين cyfer رو توسط شما ببينم تا بتوانم يك روبت مثل اون را بسازم
يا اينكه سورس و برنامه نوشته شده ي يك روبوت را به من بدهيد و من خود بر روي اون كنكاش مي كنمو ياد ميگيرم ،چون ياد ندارم كه در زمينه اي آموزشي فرا گرفته باشم و همه از تلاش خودم بوده خوشحال ميشم به اين دوستت كه از چندين ماه پيش پيگير اين كار بوده از طريق سايت ،ميل و حالا اين انجمن كمك كني منتظر راهنماييت هستم
با تشكر
اشكان
r-co
۰۲-۸-۱۳۸۷, ۰۹:۵۴ قبل از ظهر
من برنامه jymsg test client v2 رو گرفتم جای آیدی و پس که معلومه جای کانکت چی باید نوشته شه. آیا همین برنامه برای ساخت روبوته یا نه این نیست. متشکر محسن از بندرعباس e.mail: q3wp@yahoo.com
Siavash
۰۲-۸-۱۳۸۷, ۰۵:۳۷ بعد از ظهر
دوست عزیز، برای کانکت شدن به یاهو توسط jYMSG می تونید از چند خط زیر استفاده کنید!
yahooSession = new Session();
sessionListener = new = YourSessionListener(this);
yahooSession.addSessionListener(sessionListener);
System.out.println("Starting Yahoo Client!");
try {
YahooSession.login("Username", "Password");
} catch (AccountLockedException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (LoginRefusedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Connected to Yahoo Server");
که YourSessionListener یک Implement از SessionListener هست:
public class YourSessionListener implements SessionListener {
}
داخل YourSessionListener می تونید تعریف کنید که مثلا اگر کسی PM داد روبات چکاری انجام بده و ... مسلما باید تمام توابع SessionListener رو توی اون تعریف کنید و برای بعضی از اون ها مثل دریافت پیغام یا Add شدن یا ... Action تعریف کنید.
soroosh-ab
۰۲-۹-۱۳۸۷, ۰۴:۰۱ بعد از ظهر
واقعآ ممنون سیاوش جان در حال نوشتن برنامه جدید واسه روبات هستم !
خیلی لطف کردی ! فقط یه چیز ....... من هر بار می خوام با برنامه VB که گذاشتی لوگین کنم ارور Invalid Login میده و یعنی پسورد اشتباه ولی پسورد کاملآ درسته !
مشکل از کجاست ؟
Siavash
۰۲-۹-۱۳۸۷, ۰۴:۴۰ بعد از ظهر
فایل YCrypt.dll که برای encode کردن پسوورد هست باید حتما توی پوشه ی فایل اجرایی شما باشه. یا اگر دارید توی VB کمپایل می کنید باید توی پوشه ی سورس کد قرار داشته باشه!...
soroosh-ab
۰۲-۹-۱۳۸۷, ۰۷:۱۰ بعد از ظهر
باز هم ممنون !
فقط یه چیز ! واسه فروم هک تشکر هم بذار ! اینطوری با یه دکمه میشه تشکر کرد !
Siavash
۰۲-۹-۱۳۸۷, ۰۸:۴۷ بعد از ظهر
هک تشکر نصبه! باید توی این استایل بقل دکمه ها اضافه کنم...
Ashkan_yazdgroup
۰۲-۱۱-۱۳۸۷, ۰۳:۱۵ بعد از ظهر
من برنامه jymsg test client v2 رو گرفتم جای آیدی و پس که معلومه جای کانکت چی باید نوشته شه. آیا همین برنامه برای ساخت روبوته یا نه این نیست. متشکر محسن از بندرعباس e.mail: q3wp@yahoo.com
سلام متاسفانه من به علت محدوديت هايي كه داشتم نتونستم اين نرم افزار رو دانلود كنم و حالا لينك سايتش خرابه اگه لطف كنيد و اين نرم افزار را براي من ارسال كنيد تا از آن استفاده كنم با تشكر
ID : Ashkan_yazdgroup
soroosh-ab
۰۲-۱۱-۱۳۸۷, ۰۳:۲۷ بعد از ظهر
باز هم سئوال ! ! !
سلام . تا حد زیادی پیشرفتم ........
موفق شدم پی ام های روبوت رو جدا کنم مثلآ به این پی ام این جواب و بده و یا با این پی ام Status رو عوض کن و به این آیدی جواب نده و ......
فقط چند تا مشکل با VB دارم .....
1 ) اگه دقت کرده باشی برای مشخص کردن فونت خواص مثلآ از کد : <font face="Tahoma"> استفاده می کنیم ولی توی VB اگه بخوای پی ام بگی یفرسته از " و " در اول و آخر استفاده میشه که با " قبل و بعد از فونت قاطی میشه ! این مشکل و چه طوری میشه حل کرد ؟
2 ) من قبلآ یه Pocket sniffer از سایت گرفته بودم ولی متآسفانه گم کردم اگه میشه دوباره بذار همینجا
3 ) چه طوری میشه برای VB مشخص کرد که پاکت مخصوصی رو بفرسته و اگه جواب مثلآ این (هرچی ) بود کار خاصی ( هرکاری که مشخص کنم ) انجام بده و اگه جواب یه چیز دیگه بود اون کار و ( یه کاره دیگه که اونم خودم مشخص کردم ) انجام بده !
Siavash
۰۲-۱۱-۱۳۸۷, ۰۷:۲۵ بعد از ظهر
سلام متاسفانه من به علت محدوديت هايي كه داشتم نتونستم اين نرم افزار رو دانلود كنم و حالا لينك سايتش خرابه اگه لطف كنيد و اين نرم افزار را براي من ارسال كنيد تا از آن استفاده كنم با تشكر
آخرین ورژن سورس کد jYMSG در ضمیمه قابل دریافت هست...
اگه دقت کرده باشی برای مشخص کردن فونت خواص مثلآ از کد :
<font face="Tahoma">
استفاده می کنیم ولی توی VB اگه بخوای پی ام بگی یفرسته از " و " در اول و آخر استفاده میشه که با " قبل و بعد از فونت قاطی میشه ! این مشکل و چه طوری میشه حل کرد ؟به سادگی می تونید به جای " از "" یا دو عدد " استفاده کنید، به عنوان مثال:
<font face=""Tahoma"">من قبلآ یه Pocket sniffer از سایت گرفته بودم ولی متآسفانه گم کردم اگه میشه دوباره بذار همینجا یک پکت اسنیفر داخل ضمیمه قرار دادم، توجه داشته باشید که بعضی آنتی ویروس ها این برنامرو به عنوان ویروس میشناسن، چون پکت اسنیفر هم یک نوع ویروس حساب می شه! می تونید از برنامه ی CommView هم استفاده کنید که هم ورژن ویندوزش موجود هست هم لینوکس...
چه طوری میشه برای VB مشخص کرد که پاکت مخصوصی رو بفرسته و اگه جواب مثلآ این (هرچی ) بود کار خاصی ( هرکاری که مشخص کنم ) انجام بده و اگه جواب یه چیز دیگه بود اون کار و ( یه کاره دیگه که اونم خودم مشخص کردم ) انجام بده !اگر از سورس کد VB استفاده می کنید، می تونید برای فرستادن هر پکتی از
sckYahoo.sendPacket "Packet data"استفاده کنید.
هر پکتی که از سرور یاهو به شما فرستاده بشه در ساب sckYahoo_DataArrival داخل متغیر buffer ریخته میشه.
اگر از کد دیگه ای استفاده می کنید لطفا کد رو در ضمیمه قرار بدید تا بتونم کمک کنم...
soroosh-ab
۰۲-۱۳-۱۳۸۷, ۱۰:۲۴ قبل از ظهر
واقعآ ممنون بخاطر کمک هایی که می کنی ...........
بیشتر مشکلاتم حل شد !
اما هنوز نمی دونم چطوری به VB بگم که مسیج هایی که میاد رو با مسیج هایی که توی Table مسیج در دیتا بیس هست مقایسه کنه و اگه وجود داشت که از ردیف Answer , جواب پی ام رو ارسال کنه و اگه وجود نداشت یه پی ام مخصوص ارسال کنه
و یه مشکل دیگه که نمیتونم یه کدی بنویسم که مثلآ اگه پی ام به صورت :
/pm L9E3 salamدریافت کرد به این معنی هست که بعد از فاصله اول آیدی یه نفره و بعد از فاصله دوم متن پی ام که باید به اون آیدی بده !
نمونه ی این کد در دلفی و رویا به صورت :
if Req = '/pm' then begin
VarsRoYa.SendStr:='<#459cfe><font face="tahoma"><b>/pm "ID Doostet" "Peyghamet"'+
#13+#10'Mesal :<#459cfe> <font face="tahoma"><b>/pm "robot_download" "Salam"' ;
if VarsRoya.ListParam.Count<3 then exit;
req:=cut(VarsRoya.UserPM[1],False);
VarsRoYa.UserPM:=Cut(VarsRoya.ListParam.Strings[1],False);
Res:=Cut(VarsRoya.ListParam.Strings[2],False);
varsRoYa.sendstr:=format('<font size="12" face="tahoma">:-$salam %s joon Yeki Behem Goft Behet Begam : '+res+' Goft IDsho Behet Nagam:-$',[VarsRoYa.UserPM]);
end;
Siavash
۰۲-۱۳-۱۳۸۷, ۱۰:۵۰ قبل از ظهر
دوست عزیز لطف کنید ساختار Table مورد نظرتون رو بگید! چند ستون داره؟ اسم و جنس هر ستون چی هست؟
برای مشکل دومتون از این کد می تونید استفاده کنید:
Dim arrPM() As String
'message = "/pm neol3ot Salam khoobi?"
If Left(message, 3) = "/pm" Then
arrPM = Split(message, " ", 3)
If UBound(arrPM) = 2 Then
sckYahoo.SendData PM_Send(tUser.Text, arrPM(1), arrPM(2))
End If
End If
اگر مشکلی تو این بخش دارید حتما بپرسید...
soroosh-ab
۰۲-۱۳-۱۳۸۷, ۱۱:۱۳ قبل از ظهر
اسم جدول (Table) مورد نظر Message هست و دارای 2 ستون هست : Requst ( که مسیجی که دریافت می کنه باید با این مطابقت داشته باشه ) و Response ( همون جوابی که باید ارسال کنه ) که هر دو ستون از نوع Text هستن
Siavash
۰۲-۱۳-۱۳۸۷, ۱۲:۵۷ بعد از ظهر
تصحیح شد!... message بود، ببخشید من روی کامپیوتری که داشتم کار می کردم VB نصب نداشتم... ولی فکر کنم الآن باید کار کنه! دوباره به کد رجوع کنید...
soroosh-ab
۰۲-۱۳-۱۳۸۷, ۰۲:۵۸ بعد از ظهر
بله ! کاملآ درست شد . مرسی
فقط مشکل اولی هنوز حل نشده .
باز هم تشکر می کنم
Siavash
۰۲-۱۳-۱۳۸۷, ۰۴:۴۸ بعد از ظهر
این تقریبا سورس یک روبات یاهو! مسنجر هست.
می تونید بهش کلمه ی جدید یاد بدید، یا کلمه ی مورد نیاز رو پاک کنید.
یک سویچ ساده مثل همین /pm هم توش هست.
Ashkan_yazdgroup
۰۲-۱۴-۱۳۸۷, ۰۲:۴۹ قبل از ظهر
آخرین ورژن سورس کد jYMSG در ضمیمه قابل دریافت هست...
با سلام متشكرم كه خيلي سريع به مشكلات ما رسيدگي ميكنيد
اما بايد بگم يه خرده چون تخصصي حرف مي زنيد بنده متوجه نميشم كه چه بايد بكنم
از آقا سياوش درخواست دارم در مورد فايلي (سورس کد jYMSG ) كه گذاشتيد براي مبتدي هاي علاقه مندي مثل من بيشتر توضيح دهيد و اينكه چجوري و توسط چه برنامه اي آن را اجرا كنم
باز هم تشكر ميكنم منتظر راهنماييتون هستم
يك سوال ديگر : آيا سايفر رو هم ميتوان مانند رويا از امكاناتي چونhelp/ بهره مند كرد ؟
soroosh-ab
۰۲-۱۴-۱۳۸۷, ۰۵:۲۵ قبل از ظهر
سلام اشکان جان .
جواب سئوال دومت خیلی واضح ! بله به راحتی میشه اینکار و کرد !
هرکدوم از این دستوراتی که خودمون برای رویا میذاشتیم یک روش خواصی دازه ! مثلآ help چیز خاصی نداره و فقط یک پی ام معمولیه که معرفی میکنه دستورات رو !
c++m
۰۲-۱۴-۱۳۸۷, ۰۲:۱۸ بعد از ظهر
سلام
خیلی خوبه
من تاحالا در این زمینه کار نکردم
اما خوشم اومد ازش
فکر کنم این مثالها و این صحبتها خیلی با یه روبات سطح بالا مثل مثلاneol3ot فاصله داشته باشه ؟
درست می گم؟
بعدش اینکه من اون فایلی رو که به عنوان یه نمونه سورس گذاشته بودید رو گرفتم اما
بزرگترین مشکلش VB6 بودنشه :(
در هر صورت ممنون
اگه سوالی داشتم که حتما دارم بازم میپرسم
Siavash
۰۲-۱۴-۱۳۸۷, ۰۵:۳۲ بعد از ظهر
از اونجایی که به نظر من VB6 آسونترین زبان برنامه نویسی برای کسانی که تازه شروع به کار کردن بود این کد رو توی VB6 نوشتم. به راحتی می تونید اون رو تبدیل به VB .Net کنید، خود تبدیل کننده ی .Net این کار رو انجام میده.
در صورتی که با جاوا آشنایی دارید از jYMSG می تونید استفاده کنید، همچنین در صورتی که با C++ آشنایی دارید از پروژه ی Pidgin یا همون gaim قدیمی می تونید استفاده کنید که سورس اون در sf.net قابل دریافت هست.
در جواب اشکان: استفاده از jYMSG برای افرادی که مبتدی هستند فکر نکنم زیاد درست باشه. چون این سورس کاملا Object Oriented هست و درکش برای افرادی که هنوز مثال های زیاد در این زمینه ندیدند کمی سخته.
در جواب سوال دومتون: اگر از یک زبان برنامه نویسی مثل Java یا VB یا ... استفاده کنید روبات شما هر کاری می تونه بکنه تقریبا و هیچ محدودیتی ندارید (همون طور که دوستمون سروش گفتند). در کد VB که به عنوان مثال قرار دادم یک سویچ ساده مثل /pm هم تعریف شده تا ببینید به چه صورت می تونید این کار رو انجام بدید.
کار با این سورس خیلی ساده هست، کافیه نرم افزار VB6 که در پکیج Visual Studio 6.0 هست رو نصب کنید و فایل prjYahoo رو باز کنید، و دکمه ی مثلث رو بزنید، بعد می تونید کلمات یا جملات جدید به روبات یاد بدید (بعد از هر بار کلمه Add کردن برای Update شدن لیست دکمه ی Refresh رو بزنید). همچنین در سورس کد قسمت GetPM می تونید سویچ های جدید مثل /learn و /help و ... رو به روباتتون اضافه کنید.
در جواب c++m: ساختن یک روبات مثل neol3ot خیلی سخت نیست. یک روبات بسیار هوشمند تر از neol3ot می تونه بشه، البته neol3ot برای زمان خودش که 3-4 سال پیش هست روبات نسبتا خوبی بود. برای اینکه یک روبات مثل neol3ot داشته باشید باید یک سری فیلتر ها قبل از پردازش جملات به روبات اضافه کنید و به جای مقایسه کردن دقیق جمله ی کاربر روبات باید از هر جمله یک مفهوم رو دریافت کنه و با توجه به اون مفهوم جواب بده.
c++m
۰۲-۱۴-۱۳۸۷, ۰۹:۴۳ بعد از ظهر
بازم سلام
من اومدم اطلاعات کامل از محضرتون کسب کنم :)
خوب ر هر زمینه اول باید وسایل مور نیاز را دونست !!!
مگه نه ؟
خوب تا اونجایی که من فهمیدم
1- یه کامپیوتر همش انلاین
2- یه اتصال همیشه Alive
3- یه دیتا بیس (حالا نمیدونم با Access یا XML یا ... ؟)
4-استفاده از jYMSG یا gaim به عنوان توابع کتابخانه ای ؟؟؟
اگه چیز یگه ای هم لازمه بفرمایید!!!
Siavash
۰۲-۱۴-۱۳۸۷, ۱۰:۱۲ بعد از ظهر
البته gaim اسم درستشه، و اسم جدیدش هم Pidgin هست. که خیلی از مسنجر ها رو از جمله یاهو! پشتیبانی می کنه. از libyahoo هم می تونید استفاده کنید که فقط یاهو رو پشتیبانی می کنه و در زبون C++ قابل استفاده هست.
Net::YMSG هم هست که به زبان Perl نوشته شده.
به جز مواردی که گفتید یه بخش اصلی هم هست، که با توجه به بانک اطلاعاتیتون بهترین جواب رو انتخاب می کنه! راحت ترین راه این هست که توی یک ستون دنبال سوال بگرده و توی ستون دیگه جواب رو بکشه بیرون و برای کاربر بفرسته! (همون طوری که توی کد مثال عمل می کنه!)
اما این روبات خیلی ابتدایی هست مهم اینه روبات شما بتونه مفهوم جمله ی شخص مقابل رو بفهمه. اون طوری که بالا گفته شد حتی روبات متوجه نمیشه Salam و Salaam و Salam! هر سه یک منظور رو دارن. این بخش به راحتی قابل حل هست. اما روبات باید بفهمه Salam azizam و Salam dooste khoob هم یکی هست! این بخش کمی سخت تر هست. روبات باید موضوع رو تشخیص بده... باز کمی سخت تر میشه!
همینطور می شه تصمیم گیری رو پیشرفته تر کرد، که قصد ما در قرار دادن این تاپیک توی انجمن بحث در همین مورد که یکی از بخش های هوش مصنوعیه هست.
c++m
۰۲-۱۴-۱۳۸۷, ۱۰:۵۷ بعد از ظهر
اهان راست میگی
راستش منم دنبال همونم
زدی صاف تو هدف!!!
هوش مصنوعی
من میخوام یه ربات بسازم که بتونه هرکاری بکنه
پاسخ شما واسه حل این مسئله هوش ممصنوعیه
من هوش مصنوعی در زمینه تشخیص متن رو یه چیزایی ازش میدونم
اما در این زمینه که بخواهیم منظور طرف رو از یه جمله بفمیم رو نه
و فکر میکنم خیلی خیلی مشکلتر از تشخیص متن باشه
به هر جهت تحقیق میکنم
اگه سوالی بود بازم ازتون میپرسم
soroosh-ab
۰۲-۱۵-۱۳۸۷, ۰۷:۲۴ قبل از ظهر
سلام .
پس از چند روزی کار روی روبات بالاخره یه چیز خوب از توش داره در میاد !
من بعد از خیلی فکر کردن فهمیدم که فیلتر ها باید به صورتی باشه که اگه روبات کلمه اول رو داشت و یا یه مثلآ کدی اضافه کنیم که اگه Salam توی اون بود بفهمه طرف داره سلام و احوال پرسی می کنه و باید بگیم که تکرار حرف تآثیری نداره !
سیاوش جان راستی راجب اون کد pm/ و ساختارش یکمی بیشتر توضیح بده ! میخوام بیشتر در مورد arrPM بدونم .
مثلآ اگه بخوام learn/ واسه روبات بذارم تقریبآ باید از یه کد شبیه اون استفاده کنم با این تفاوت که بجای :
sckYahoo.SendData PM_Send(tUser.Text, arrPM(1), arrPM(2))
باید از یه چیزی شبیه :
Connection.Execute ("INSERT INTO message (Request, Response) VALUES ('" & LCase(arrPM(1)) & "', '" & arrPM(2) & "')")
استفاده کنم . ولی اینطوری arrPM دوتا میشه و ارور میده ! پس از چی باید استفاده کنم ؟
راجب arrPM یکمی بیشتر توضیح بده اگه امکان داره
Ashkan_yazdgroup
۰۲-۱۶-۱۳۸۷, ۰۷:۲۹ بعد از ظهر
از اونجایی که به نظر من VB6 آسونترین زبان برنامه نویسی برای کسانی که تازه شروع به کار کردن بود این کد رو توی VB6 نوشتم. به راحتی می تونید اون رو تبدیل به VB .Net کنید، خود تبدیل کننده ی .Net این کار رو انجام میده.
در صورتی که با جاوا آشنایی دارید از jYMSG می تونید استفاده کنید، همچنین در صورتی که با C++ آشنایی دارید از پروژه ی Pidgin یا همون gaim قدیمی می تونید استفاده کنید که سورس اون در sf.net قابل دریافت هست.
در جواب اشکان: استفاده از jYMSG برای افرادی که مبتدی هستند فکر نکنم زیاد درست باشه. چون این سورس کاملا Object Oriented هست و درکش برای افرادی که هنوز مثال های زیاد در این زمینه ندیدند کمی سخته.
در جواب سوال دومتون: اگر از یک زبان برنامه نویسی مثل Java یا VB یا ... استفاده کنید روبات شما هر کاری می تونه بکنه تقریبا و هیچ محدودیتی ندارید (همون طور که دوستمون سروش گفتند). در کد VB که به عنوان مثال قرار دادم یک سویچ ساده مثل /pm هم تعریف شده تا ببینید به چه صورت می تونید این کار رو انجام بدید.
کار با این سورس خیلی ساده هست، کافیه نرم افزار VB6 که در پکیج Visual Studio 6.0 هست رو نصب کنید و فایل prjYahoo رو باز کنید، و دکمه ی مثلث رو بزنید، بعد می تونید کلمات یا جملات جدید به روبات یاد بدید (بعد از هر بار کلمه Add کردن برای Update شدن لیست دکمه ی Refresh رو بزنید). همچنین در سورس کد قسمت GetPM می تونید سویچ های جدید مثل /learn و /help و ... رو به روباتتون اضافه کنید.
در جواب c++m: ساختن یک روبات مثل neol3ot خیلی سخت نیست. یک روبات بسیار هوشمند تر از neol3ot می تونه بشه، البته neol3ot برای زمان خودش که 3-4 سال پیش هست روبات نسبتا خوبی بود. برای اینکه یک روبات مثل neol3ot داشته باشید باید یک سری فیلتر ها قبل از پردازش جملات به روبات اضافه کنید و به جای مقایسه کردن دقیق جمله ی کاربر روبات باید از هر جمله یک مفهوم رو دریافت کنه و با توجه به اون مفهوم جواب بده.
ممنون سياوش جان اينقدر دوست دارم اين علمو زود فرا بگيرم كه سختيش برام مهم نيست اما ميدونم موفق ميشم
Siavash
۰۲-۱۷-۱۳۸۷, ۰۲:۰۷ قبل از ظهر
این هم ورژن جدید (1.0.3) روبات یاهو مسنجر تحت VB.
توی این ورژن سعی شده کمی سورس تمیز تر باشه و Comment برای اکثر قسمت ها گذاشته شده.
سویچ /learn هم به عنوان یک مثال سویچ که کمی پیچیده تر هست اضافه شده.
ساختار این سویچ به این صورت هست:
/learn "Request" "Response"
اکثر بات هایی که توسط کاربران کلمات جدید یاد می گیرن از همچین سویچی استفاده می کنند.
در صورتی که در مورد طریقه ی پارس کردن این سویچ سوال داشتید همینجا می تونید بپرسید.
پسورد فایل Zip:
www.artificial.ir
soroosh-ab
۰۲-۱۸-۱۳۸۷, ۰۵:۳۳ قبل از ظهر
سلام
سیاوش جان اگه ممکنه راجب کدهایی که واسه ذخیره کردن یه چیزی توی دیتابیس میشه یکمی توضیح بده.
مثلآ می خوام با زدن :
/example "request" "response"
به جای ذخیره توی Table مسیج ها تو Table به نامه example ذخیره کنه !
مرسی
Siavash
۰۲-۱۸-۱۳۸۷, ۱۰:۲۶ قبل از ظهر
خوب کافیه یک سویچ دیگه توی بخش GetPM اضافه کنی که دقیقا شبیه /learn خواهد بود (که به عنوان مثال گذاشتم).
اما توی اون به جای صدا زدن AddWord یک تابع دیگرو صدا می زنید. تابع AddWord داخل فایل modFunctions قرار داره. می تونید تابع جدیدی مثل AddWord اضافه کنید یا خود AddWord رو که کارش ذخیره کردن Request و Response داخل بانک اطلاعاتی هست تغییر بدید.
BeHNaM
۰۲-۱۸-۱۳۸۷, ۰۶:۱۲ بعد از ظهر
سلام سیاوش جان واقعا عالی بود فقط من تو قسمت های Make add user packet و Make packet for getting invisible مشکل دارم وقتی میخوام کامپایل کنم اررور میده!
soroosh-ab
۰۲-۱۸-۱۳۸۷, ۰۷:۲۵ بعد از ظهر
مرسیییییییییییییییییییییی ییییییییییییییییییییی !
واقعآ ممنونم ! جبران می کنم !
Siavash
۰۲-۱۹-۱۳۸۷, ۱۰:۵۹ بعد از ظهر
سلام سیاوش جان واقعا عالی بود فقط من تو قسمت های Make add user packet و Make packet for getting invisible مشکل دارم وقتی میخوام کامپایل کنم اررور میده!
اونها کامنت هستند و باید سبز رنگ باشند. احتمالا ' اولش رو حذف کردی.
این بخش ها یکی برای اینه که روبات رو اینویزیبل کنید. و اون یکی برای اینه که یک کاربر رو به لیستتون اضافه کنید. باید پکت ساخته شدرو به وسیله ی سوکت سند کنید. مثل پکت فرستادن پی ام.
سروش جان. خواهش می کنم... انشاالله وقتی کامل شد همینجا روباتتون رو معرفی کنید.
Ashkan_yazdgroup
۰۲-۱۹-۱۳۸۷, ۱۱:۲۴ بعد از ظهر
سلام سياوش جان من كه از اين بحث ها زياد سر در نياوردم اما باز دنبال ميكنم
اين لينكي كه ميزارمو نگاه كن يه سري كد سورس روبوت گذاشته اگه شد يه توضيحي راجع بهشون بده
visual basic, vb, active server pages (ASP),java, javscript,c, c++, c__ , vbscript,active server pages, ASP, vbscript,SQL, database, informix, oracle, SQL Server,Perl, CGI,Delphi, PHP,Free source code for the taking. Over five million lines of progra (http://planet-source-code.com/)
Siavash
۰۲-۲۰-۱۳۸۷, ۰۲:۰۷ قبل از ظهر
این سایت منبع خیلی خوبی برای زبان برنامه نویسی Vb هست اینجا نمونه های مختلف برای لاگین کردن داخل یاهو شاید پیدا بشه اما فکر نکنم متود لاگین این ها هنوز توسط یاهو! پشتیبانی بشه.
شما کافیه سی دی Vb رو تهیه کنید و آخرین ضمیمه هم دریافت کنید و اون رو با Vb باز کنید در انتها هم دکمه ی مثلث رو بزنید. به همین سادگی روبات شما راه می افته! البته در صورتی که سویچ ها و امکانات جدید تر بخواین به اون اضافه کنید باید کمی با Vb آشنا باشید.
BeHNaM
۰۲-۲۳-۱۳۸۷, ۰۲:۰۲ بعد از ظهر
سیاوش جان میشه یه توضیح بدی که چیکار کنیم که روبات به صورت تصادفی یا همون Random بتونه جواب بده !
برای مثال یه کلمه داخل دیتابیس چند بار وجود داشته باشه با جوابهای متفاوت و هربار یکی از جوابها نمایش داده بشه !
مرسی:o
soroosh-ab
۰۲-۲۳-۱۳۸۷, ۰۶:۴۵ بعد از ظهر
سلام . بازم اومدم با مشکلات جدید !
این دفعه مشکلم اینه که وقتی ادد میکنن روبات رو , روبات اددشون نمیکنه و باید حتمآ بهش پی ام بدن !
مشکل بعدی اینه که اگه یه دستور توی اسکریپت باشه که اگه پی ام مثل example بود , یه جوابی بده و Status رو عوض کنه و اگه Example توی دیتا بیس نباشه میگه مثلآ متوجه نشدم و ابن دستورم انجام میده ( یعنی هم دیتابیس و هم اسکرپت رو انجام میده ! ) باید یه اولویت باشه که اول از اسکریپت باشه بعد دیتابیس و بعد اگه هر دو تا نبود اونوقت بگه متوجه نشدم و Else آخر رو انجام بده !
این قضیه ربط به Flag داشت توی رویا که اگه True بود از دیتابیس میفرستاد و اگه False بود از اسکریپت استفاده میکرد و به این شکل بود :
if Flag then begin
For i:=1 to VarsRoya.ListParam.Count-1 do
Req:= Req+' '+VarsRoya.ListParam.Strings[i] ;
Req:=Cut(Req,True);
// ADOQuery1.SQL.Text:='Select * From Message Where ( Requst ='''+Req+''' )';
ADOQuery1.SQL.Text:='Select * From Message Where Requst LIKE ''%'+Req+'%''';
ADOQuery1.Open;
if not ADOQuery1.IsEmpty then begin
i:=Random (ADOQuery1.RecordCount)+1;
ADOQuery1.RecNo:=i;
VarsRoYa.SendStr :='<FADE #333333,#000000,#ff0000><font size="9" face="arial">[System]: '+
ADOQuery1.FieldByName('Response').AsString+' :D .</Fade></font>';
end;
ADOQuery1.close;
end;
ADS_pro;
end;
end;
__________________text________________________
if Req ='f' then begin
varsroya.sendstr := '<black><font face="Tahoma"><B> B-) alefba migi? khodam baladam baba </fade>' ;
Flag:=False;
شرمنده اگه به هم ریختس به خاطر فروم هست توی فایل تکست Paste کنید .
تشکر .
Ashkan_yazdgroup
۰۲-۳۱-۱۳۸۷, ۱۲:۵۲ قبل از ظهر
با سلام ميشه لطف كنيد لينك دانلود برنامه هايي كه VB و java لوگين ميشن رو بزاريد تا دانلود كنم
با تشكر
Pilevar
۰۳-۴-۱۳۸۷, ۱۰:۲۱ قبل از ظهر
دوستان DLL رو توی VB چطور نصب میکردیم؟؟؟؟
lol
یادم رفته :D
mjanbazi
۰۶-۲۱-۱۳۸۷, ۰۴:۱۳ قبل از ظهر
سلام
سیاوش
این سورس برنامه تو خطای 11004 می ده متن خطاش اینه
error11004 ,valid name no data record of requested time
چیکار کنم درست شه دی ال ال تو مسیر خود فایل هست
kamal_behtarin
۰۶-۲۲-۱۳۸۷, ۰۱:۱۸ بعد از ظهر
salam agha man bahash harf mizanam nemifahme nemidoonam chera faghat ashkale yahoo ro dark mikone
r-co
۰۶-۳۱-۱۳۸۷, ۰۱:۱۹ بعد از ظهر
For i = 1 To Len(questionasked)
If Mid(questionasked, i, 1) = "" Then GoTo finished
If Mid(questionasked, i, 1) = Mid(questionasked, i + 1, 1) Then
questionasked = Replace(questionasked, Mid(questionasked, i, 1) & Mid(questionasked, i, 1), Mid(questionasked, i, 1))
i = i - 1
End If
Next i
r-co
۰۶-۳۱-۱۳۸۷, ۰۱:۲۳ بعد از ظهر
Case 75 Typing Buffer
نمي تونه PersonIdرو بكيره بايد جيكارش كرد؟
فقط idكسي كه بهش داده مي شه جواب مي ده؟
r-co
۰۶-۳۱-۱۳۸۷, ۰۱:۲۵ بعد از ظهر
<random>Khoobi?<or>Chetori"?</random>
يه بحتي هم اينجا كن ما راهنمايي شيم
r-co
۰۶-۳۱-۱۳۸۷, ۰۱:۲۷ بعد از ظهر
جطوري ميشه Audibles رو ارسال كرد و نوشته جولوي اونو تغيير داد؟
r-co
۰۶-۳۱-۱۳۸۷, ۰۱:۳۰ بعد از ظهر
حالا جطوري ميشه تشخيص داد كه يه حرف 3 بار تكرار شده ديكه روبوت جواب نده؟
يا بكه جندبار ميطي من فهميدم؟
r-co
۰۶-۳۱-۱۳۸۷, ۰۴:۵۶ بعد از ظهر
اين كد هم كارايي نداره<random>Khoobi?<or>Chetori"?</random>
يعني در SMClient-v1[1].0.3 ايراد مي كيره؟؟؟؟
حالا جطوري ميشه pmهاي رندومي فرستاد؟
r-co
۰۶-۳۱-۱۳۸۷, ۰۵:۰۵ بعد از ظهر
يه متال واسه ديتا بيس مي خواستم كه مانند learn/ بطونه اطلاعات سيو كنه
البته بجايMessage بره توي متلا sample سيو بشه
بجاي سوال جوابم بشن sample1 sample2
يعني بدين شكل learn/"sample1" "sample2" intori
البته learn/ درسته :)
Siavash
۰۷-۲-۱۳۸۷, ۰۳:۵۴ بعد از ظهر
خوب! خوشحالم كه تعداد سوال ها انقدر زياد هستن و اين نشون ميده دوستان علاقه مند به اين موضوع كم نيستند.
خوب اول از همه بايد بگم متأسفانه ياهو! مجدداً متود لاگينش رو عوض كرده. من به زودی سورس كد قبلي رو آپديت مي كنم تا پروتوكل لاگين جديد رو ساپورت كنه. يعني به ورژن YMSG15 ارتفاعش مي دم.
در مورد جواب تصادفي و فرستادن Audibles: در حال حاضر اين سورس اين دو امكان رو ساپورت نمي كنه! اما در نسخه ي بعدي من سعي مي كنم هر دو مورد رو داخل سورس قرار بدم تا دوستان بتونن استفاده كنن.
سويچ /learn فكر مي كنم در ورژن آخر كار بكنه. به عنوان يك سويچ مثال در سورس قرارش دادم.
اين كه بتونيم تشخيص بديم يك شخص چند بار يك كلمرو تكرار كرده نياز با يه حافظه ي موقت براي هر كاربري كه با بات چت مي كنه داره. از اين حافظه ي موقت براي تعيين Subject و همينطور پرسيدن سوال هاي مختلف هم استفاده مي شه كرد. در ورژن هاي بعدي انشاالله اين قابليت هم به سورس اضافه خواهم كرد.
خيلي خوشحال مي شم اگر دوستان ديگه هم به بهتر شدن اين سورس كمك كنن. در صورتي كه ببينم اعضا علاقه مند به پيشرفته تر كردن اين بات هستند، شايد يك صفحه ي اختصاصي براي اين بات و كمك كننده هاي اون تشكيل بديم. چون در حال حاضر يك سورس ساده براي يك بات ياهو! به زبان VB نديدم و از آنجايي كه VB خيلي زبان ساده اي هست فكر كنم افراد بيشتري رو به خودش جذب كنه و ما شاهد بات هاي بيشتري باشيم.
در صورتي كه علاقه مند به همكاري و توسعه ي اين بات هستيد زير همين تاپيك اعلام كنيد.
r-co
۰۷-۲-۱۳۸۷, ۰۵:۰۴ بعد از ظهر
:) /learn كار مي كرد ولي مي خواستم متاله ديطه اي بزنيد :)
ما منتظر سورس جديد هستيم
البته سورس قبلي هم الان on ميشه
ولي انكاري Audible send نمي كنه
Siavash
۰۷-۲-۱۳۸۷, ۰۹:۱۸ بعد از ظهر
خوب اين هم ورژن جديد SMClient.
تغييراتي كه در اين ورژن نسبت به ورژن قبل ايجاد شده:
اين ورژن از YMSG15 كه آخرين ورژن پروتكل ياهو! مسنجر هست استفاده مي كنه.
تگ <random> در اين ورژن تعريف شده براي فرستادن جواب هاي تصادفي بين چند جواب انتخاب شده. طريقه ي استفاده از اون در يكي از رديف هاي بانك اطلاعاتي مشخص هست.
تگ جديدي بنام <aud> تعريف شده كه براي فرستادن Audibles هست. مجدداً طريقه ي استفاده از اون در بانك اطلاعاتي مشخص هست.
جنس فيلد هاي Request و Response از Text به Memo تغيير پيدا كرده تا قابليت جواب هاي طولاني تر وجود داشته باشه.
سيستم فيلترينگ قبل از جستجو براي جواب طراحي شده. كه در ابتدا يك سري كلمات جايگزين ميشن و يك سري علامت ها مثل ! و ? حذف مي شن. براي اضافه كردن كلمات جايگزين مي تونيد فايل Substitude.sm را با Notepad باز كنيد و كلمات جايگزين جديد تعريف كنيد. در ضمن اين اين فيلتر حروف تكراري و Smiley ها رو هم حذف مي كنه. پس در صورتي كه جوابي براي عبارت Salam تعريف شده باشه در صورتي كه كاربر Salaaam!!! :) هم به بات بگه، بات جواب Salam رو به كاربر تحويل ميده.
چند باگ كوچك در بخش آپديت جواب ها در بانك اطلاعاتي بر طرف شده.
پسورد:
www.artificial.ir
mjanbazi
۰۷-۳-۱۳۸۷, ۰۵:۱۸ بعد از ظهر
مرسی سیاوش جان
ممنون که سورسو عوض کردی و از سورس پلانت سورس یاهو و پروتکلش رو به 102 عوض کردی
من هر کاری می کنم که اگه به روبوت گفتی سلام به فارسی جواب بده سلام نه به انگلیسی چیکار کنم؟
وقتی براش به انگلیسی می نویسی سلام جواب بهش نمی ده سلام به فارسی
لغت سلام به انگلیسی تو دیتابیس به عنوان سوال و سلام به فارسی بهعنوان جواب هست ولی روبوت جواب نمی ده
ممنون اگه کمکم کنی مرسی
Siavash
۰۷-۳-۱۳۸۷, ۰۶:۱۶ بعد از ظهر
به خاطر اين هست كه سلامي كه در VB مي نويسيد Encoding ياهو! رو ساپورت نمي كنه و در نتيجه ياهو فكر مي كنه پيام خالي داريد ميفرستيد كه قابل قبول براش نيست. در نتيجه بايد يك مبدل بنويسيد براش. همانطوري كه پيام فارسي به بات ميديد به شكل ديگري نمايشش مي ده.
انشاالله در ورژن بعدي يك مبدل فارسي به انگليسي هم در سورس قرار ميدم تا بتونيد پيام هاي فارسي رو دريافت كنيد و پيام فارسي بفرستيد.
mjanbazi
۰۷-۴-۱۳۸۷, ۰۵:۰۵ بعد از ظهر
مرسی یاوش جان که جواب دادی
اگه می تونی کمی راهنمایی کن تا بشه فارسی پاسخ ارسال یا دریافت کرد
آخه تا تو سورس بعدی رو آماده کنی معلوم نیست کی طول بکشه
من نیاز فوری دارم
ممنون ازت
r-co
۰۷-۴-۱۳۸۷, ۱۰:۰۹ بعد از ظهر
ممنون:cool:
r-co
۰۷-۵-۱۳۸۷, ۰۲:۰۲ بعد از ظهر
جرا نميشه <random/> براي audible قرار داد؟
يا أنها را در Response = "Motevajeh Nashodam" i قرار داد؟
منظور Response درون خوى سورس است؟؟
r-co
۰۷-۵-۱۳۸۷, ۰۳:۴۰ بعد از ظهر
درباره تشخيص كلمات تكراري هم توضيح بديد؟
كه متلا يس از ارسال 3 بار كلمه تكراري روبو pm مخصوصي بده؟
case typing كه مربوط ميشه به type كردن هم بكيد؟
r-co
۰۷-۵-۱۳۸۷, ۰۴:۴۹ بعد از ظهر
اكه ميشه برنامه يه جوري شه كه بعد از 10min دقيقه خودش اوتوماتيك sign out و sign in بشه
يا راحتر بعد از 10min خودش كار دكمه sign in انجام بده .....؟
mjanbazi
۰۷-۶-۱۳۸۷, ۰۱:۲۷ قبل از ظهر
ببین rco برای اینکه بعد از 10 دقیقه خودش لاگشن شه فقط کافیه تو سورس برنامه یه عنصر تایمر بزاری و خاصیت اینتروال اونو به عدد 600000 تغییر بدی چون به میلی ثانیه هست 1 ثانیه برابر است با 1000 میلی ثانیه و تبدیلش کنی به دقیقه بعد در 10 ضرب کنی
بعد در خاصیت آن تایمرش فانکشن لوگین رو فراخونی کنی خیلی راحت می تونی خودت این کارو کنی
r-co
۰۷-۷-۱۳۸۷, ۰۹:۲۵ قبل از ظهر
دوست من ازاين لحاظ خودم مي دونم عمليشو مي خوام
اكه يه متال همينجا قرار بدي ممنون مي شم...
r-co
۰۷-۹-۱۳۸۷, ۱۱:۵۲ قبل از ظهر
چجوری میشه آیدی هایی که pm میدن بیات تو دیتا بیس ذخیره شه؟
یا کسایی که ادش می کنن یه خوش آمدی بهشون بگه؟
یا مثلا بگه شما برای اولین بار بهم pm دادی برای هر کی که برای اولین بار آشنا سده و اسمش تو دیتابیس نباشه؟
r-co
۰۷-۹-۱۳۸۷, ۱۲:۰۳ بعد از ظهر
نحوه استفاده ازPersonId در وسط متن هم بگید که چطوری میشه مثلا جواب بگه:
salam (PersonId) Che Khabar
بجای PersonId آیدی هرکی pm داده بذاره؟
Servers.Manager
۰۷-۱۰-۱۳۸۷, ۱۲:۴۰ بعد از ظهر
خیلی خوب میشه یه ورژن به اسم خودتون بیرون بدین که برخی از مشکلاتش هم حل بشه مثلا وقتی کاربر اددش میکنه روبوت هم کاربرو اد کنه و براش یه pm خوش آمدگویی بفرسته
ما فقط امیدمون تویی سیاوش جان
Siavash
۰۷-۱۰-۱۳۸۷, ۰۹:۲۰ بعد از ظهر
http://syavash.com/portal/files/siavash/blogs/how-to-create-a-chat-bot-robot-fa/smclient.png
خوب اينم از نسخه ي جديد بات ياهو مسنجر.
ليست تغييراتي كه در اين نسخه بوجود اومده:
قابليت دريافت پيغام هاي فارسي.
بعد از اينكه كاربري اين بات رو به ليستش اضافه كنه، بات درخواست دوستي رو قبول مي كنه و به اون پيغام خوش آمد گويي ميفرسته (در صورتي كه <add> براي بات تعريف شده باشه)
قبل از اينكه كاربر پيغامي بفرسته وقتي در حال تايپ كردن پيغام هست، از طرف بات به كاربر پيغامي فرستاده مي شه. (در صورتي كه <typing> تعريف شده باشه)
اضافه شدن ليست افراد فعال (افرادي كه 300 ثانيه ي اخير پيغام فرستادن) و آخرين پيغام آنها.
در صورتي كه كاربر پيغام هاي تكراري بفرسته، بعد از 3 بار تكرار به كاربر پيغامي اختصاصي داده مي شه (در صورتي كه <repetitive> تعريف شده باشه) و بعد از 5 بار تكرار ديگه جوابي داده نميشه.
قابليت تغيير جواب براي پرسش هايي كه روبات جواب آنها را نمي داند. (با تعريف <noanswer>)
برطرف شدن باگ جواب هاي پي در پي به كاربران آفلاين.
اضافه شدن متغير <$user> كه به نام كاربري فرستنده ي پيغام تغيير پيدا مي كنه.
پسورد:
www.artificial.ir
Servers.Manager
۰۷-۱۰-۱۳۸۷, ۱۰:۱۲ بعد از ظهر
ممنون و خسته نباشید ، مشتاقانه منتظر ورژنهای جدید هستیم :)
dijam
۰۷-۱۰-۱۳۸۷, ۱۱:۴۳ بعد از ظهر
مرسی سیاوش جان
خیلی بهتر شد .. من نتونستم روش وقت بزارم اما به چند تا نکته اینجا اشاره می کنم :
- در یه قسمت لیست کلمات کلیدی سیستم رو بزار .. که هرکس بدونه چیا رو داره..
- قسمتی برای نمایش Add list ها باشه
- در قسمت TO : PersonId بهتره یه combo باشه و ID تمام ADD شده ها رو بیاره ، که هم بشه جدید زد و هم از COmbo انتخاب کرد
- Refresh شدن Gride بعد از اضافه کردن . (خودم رو Source نتونستم اینکارو بکنم!!!!دروغ چرا!!!!)
- زمان Refresh شدن Gride زمان رو کمتر کنی بهتره ..
والا وقت نکردم نگاه کنم ... خیلی دوست داشتم حالا که Source هست ، بشینم به بهبودش کمک کنم.. حیف.. امان از بی وقتی... راستی سیاوش جان هاردم و چیکار کنم... اینو پیغان خصوصی جواب بده... :D:D:D
zangoole
۰۷-۱۱-۱۳۸۷, ۱۲:۰۳ بعد از ظهر
دوستان من این SMClient را دانلود کردم ولی آنتی ویروس ام گرفتش.
تصویر: http://i37.tinypic.com/125tcox.png
میشه توضیح بدید؟
Siavash
۰۷-۱۱-۱۳۸۷, ۰۱:۵۸ بعد از ظهر
سلام دوست عزيز...
به اين خاطر هست كه خيلي از تروجان ها از همين فايل YCrypt.dll جهت لاگين در ياهو مسنجر و فرستادن اطلاعات به وسيله ي ياهو! مسنجر استفاده مي كنن. به اخطاري كه Antivirus به شما ارائه داده هم دقت كنيد نوشته Trojan horse constructor يعني مي تونه سازنده ي يك وTrojan horseباشه.
اين dll جهت كد كردن پسورد ياهو مسنجر هست و در صورتي كه به اون اطمينان نداريد مي تونيد اسمش رو توي گوگل سرچ كنيد و از جاي ديگه اين فايل رو دريافت كنيد.
در سورس كد هم طريقه ي استفاده ي اون مشخص هست. قبل از لاگين شدن در ياهو از اون استفاده ميشه. براي اينكه مطمئن بشيد هيچ اطلاعاتي هم از طرفش به جاي ديگه فرستاده نمي شه مي تونيد از يك Sniffer مثل WPEPro استفاده كنيد.
drsnake
۰۷-۱۱-۱۳۸۷, ۰۵:۵۰ بعد از ظهر
سلام سیاوش جان ببین من این سرس رو دانلود کردم اما چجوری میتونم این رو راه بندازمو مثل neol3ot یدونه درست کنم ؟
Siavash
۰۷-۱۱-۱۳۸۷, ۰۶:۰۱ بعد از ظهر
دوست عزيز،
كافيه برنامه ي Visual Basic 6.0 رو كه هم بصورت مجزا پيدا مي شه هم در پكيج Visual Studio 6.0 موجود هست نصب كني و فايل prjYahoo رو با اون باز كني و دكمه ي اجرا رو بزني.
اگر كل اين تاپيك رو از ابتدا بخوني فكر مي كنم راحت تر بتوني كار باهاش رو شروع كني.
اجراش خيلي ساده هست. دليل نوشتن اين پروژه با Visual Basic هم همين سادگيش بوده.
soroosh-ab
۰۷-۱۱-۱۳۸۷, ۰۹:۲۲ بعد از ظهر
سلام سیاوش جان ! خیلی وقت بود به این سایت سر نزده بودم ! حتی آدرس سایت یادم رفته بود ! با کلی فکر و سرچ تونستم دوباره پیدا کنم اینجا رو ! واقعآ با نسخه ی آخر کار همه رو راحت کردی و تنها مشکلی که توش پیدا کردم مربوط به فیلترینگ بود ! که اگه کسی بخواد اطلاعاتی رو وارد دیتا بیس کنه که 2 تا حرف شبیه هم داشته باشه با مشکل مواجه میشه ! راهی هست که واسه سویچ خواصی فیلترینگ غیرفعال بشه ؟
و مشکل دیگه ای که من با بات دارم اینه که میخوام بعد از هر فاصله تشخیص بده یه کلمه جدیده و دوباره باید جوابشو از دیتا بیس بگیره بذاره پشت جوابی که از دیتابیس واسی کلمه ی قبل گرفته !
با کد نویسی این مشکل دارم ...... :(
Siavash
۰۷-۱۱-۱۳۸۷, ۱۰:۳۴ بعد از ظهر
سروش جان،
مشكل دوم انشاالله در ورژن بعد با قرار دادن Pattern System حل ميشه. فكر كنم خيلي بهتر هم حل بشه...
در مورد مشكل اول... مي توني مثال بزني؟ مثلاً دو تا عبارت كه وقتي يادش ميدي مشكل داررو مي توني بگي؟
mjanbazi
۰۷-۱۱-۱۳۸۷, ۱۱:۴۹ بعد از ظهر
سلام سیاوش جان
خوب ممنون که مشکل فارسی رو حل کردی
ای کاش کاری می کردی که بات برای پیغام انگلیسی جواب فارسی ارسال کنه
ولی اگه براش به فارسی تایپ کنی و فارسی هم بخوای تایپ کنی جواب نمی ده ای کاش این فانکشن تبدیل به هگزا رو برای دریافت فارسی نوشتی برای ارسال هم بنویسی
بعد این مشکل رو تو تکست باکسی که به یک کاربر خاص می فرستی رو حل کن که فارسی نمی فرسته
ممنون
Siavash
۰۷-۱۲-۱۳۸۷, ۰۱:۲۹ قبل از ظهر
انشاالله اين مشكل هم توي ورژن بعدي حل ميشه.
از اونجايي كه ديدم از اين تاپيك استقبال خوبي شده گفتم يك صفحه براش در SourceForge.net درست كنم.
لينك اين پروژه در سورس فرج:
https://sourceforge.net/projects/yahoo-robot/دوستاني كه مي خوان كمك كنن بگن تا اسمشون رو به توسعه دهندگان اضافه كنم.
در صورتي كه دوست داريد هميشه باتتون آپديت باشه و آخرين ورژن رو داشته باشيد مي تونيد از svn سورس فرج استفاده كنيد.
آدرس svn ياهو! مسنجر بات:
https://yahoo-robot.svn.sourceforge.net/svnroot/yahoo-robotحتي اگر مي تونيد در اضافه كردن كلمات مناسب و Pattern به اين بات كمك كنيد اينجا اعلام كنيد. شايد بتونيم با كمك هم يك Database خوب فارسي براي اين بات ايجاد كنيم.
arhangel
۰۷-۱۲-۱۳۸۷, ۱۱:۱۷ قبل از ظهر
سلام سياوش
خيلي وقت بود كه بحث اين روبات رو دنبال ميكردم
مرسي از لطف شما واقعا ممنون
masoud-70
۰۷-۱۲-۱۳۸۷, ۰۸:۵۹ بعد از ظهر
با سلام من مي خواستم دستورات كامل اين برنامه رو بذاري من قبلا با رويا كار كرده بودم خيلي چيزايي مي دونم اما الان اين برنامه وقتي كسي اين روبات رو واسه خودم ادد مي كنه بايد همون جا درخواست ادد رو كامل قبول كن فكر كنم منظورم رو متوجه نشديدمثلا الام من روبات سافر رو ادد مي كنم اونم سريع در خواست ادد كردن رو قبول مي كنه مي خواستم ببينمدستورش چيه ادد الان هست به طور پيش فرض اگه كمكم كنيد ممنون ميشم
masoud-70
۰۷-۱۲-۱۳۸۷, ۰۹:۱۸ بعد از ظهر
سلام آقا سياوش بابا دمت گرمه عزيز تو كه به مردم حال دادي يه كاري ديگه هم ميكردي ديگه آخرت خفن بود آره اون فايل SMBot واسه روبات سايفر يا روبات نئو رو ميذاري بابا واسه من خيلي مهمه اگه بذاري يه دنيا ممنونتم
Siavash
۰۷-۱۲-۱۳۸۷, ۱۰:۵۰ بعد از ظهر
دوست عزيز،
اون درخواست اولي كه گفته بوديد كه در نسخه ي آخر مشكلش حل شده فكر مي كنم. اگر نشده لطفاً يه مثال بهتر بزنيد. در حال حاضر كسي بات رو اد كنه بات قبول مي كنه بلا فاصله و يك پيغام خوش آمد گويي هم مي فرسته.
در مورد دومين درخواست. متأسفانه سايفر به زبان جاوا نوشته شده و ار بانك اطلاعاتي MySql استفاده مي كنه كه با بانك اطلاعاتي اين بات كه Access هست فرق مي كنه.
در ضمن Pattern base هستش و الگو هاش طور ديگري تعريف مي شن كه هدف نهايي اينه همان سيستم الگويي كه روي سايفر وجود داررو روي اين بات به زبان VB كه خيلي ساده تر هست پياده كنيم.
انشاالله از ورژن بعدي سيستم Pattern رو معرفي مي كنم و مي تونيد بات هاي خيلي حرفه اي تري ايجاد كنيد.
masoud-70
۰۷-۱۳-۱۳۸۷, ۱۰:۱۶ قبل از ظهر
سلام آقا سياوش ورژن جديد برنامه رو گرفتم بازم يك نفر اين روبات رو ادد مي كنه در خواست ادد كردن رو قبول نمي كنه من وي بي يه چيزايي سر در ميارم اگه مي توني بگو كودوم قسمت رو ويرايش كنم.بعدش من Access رو مي دونم بات روبات هست نميشه حالا دستورات كامل اين برنامه رو بذاري اگه اين كار رو كني دمت گرم
r-co
۰۷-۱۳-۱۳۸۷, ۰۱:۳۶ بعد از ظهر
با تغییر پی دی پی status دیگه تغییر نمی کنه یعنی status نشون نمی ده؟
انگاری yahoo اونو block می کنه که چند مین بعد درست میشه؟
میشه کاری کرد که با تغییر پی در پی status اینطوری نشه؟
----------------------------------------------------------------------------------------
اگه سروری که تو این prj آخری گذاشتی به سروری که در اولین prj گذاشتی تغییر کنه بازم audiblee و چیزایی که تو جدیده گذاشتی بازم جواب میده؟
مشکل statuso حل بشه ممنون میشم!
soroosh-ab
۰۷-۱۳-۱۳۸۷, ۰۳:۱۹ بعد از ظهر
سروش جان،
مشكل دوم انشاالله در ورژن بعد با قرار دادن Pattern System حل ميشه. فكر كنم خيلي بهتر هم حل بشه...
در مورد مشكل اول... مي توني مثال بزني؟ مثلاً دو تا عبارت كه وقتي يادش ميدي مشكل داررو مي توني بگي؟
سلام . این فیلترینگ توی سویچ ها هم تاثیر داره مثلآ اگه توی یه سویچی که خودم اضافه کردم کسی که میخواد ازش استفاده کنه 2 تا حرف شبیه هم وارد کنه فیلتر میشه ! مثلآ soroosh دوتا o داره و به مشکل برمیخوره ! راهی هست یه با چه کدی میشه گفت این سویچ ربطی به فیلترینگ نداره ! یا کلآ کاری کرد که سویچ ها فیلترنشن؟
Siavash
۰۷-۱۳-۱۳۸۷, ۱۱:۰۷ بعد از ظهر
سلام آقا سياوش ورژن جديد برنامه رو گرفتم بازم يك نفر اين روبات رو ادد مي كنه در خواست ادد كردن رو قبول نمي كنه من وي بي يه چيزايي سر در ميارم اگه مي توني بگو كودوم قسمت رو ويرايش كنم.بعدش من Access رو مي دونم بات روبات هست نميشه حالا دستورات كامل اين برنامه رو بذاري اگه اين كار رو كني دمت گرم
احتمال داره تعدادي كه ياهو در روز اجازه مي ده يك آي دي اد كنه براي شما پر شده باشه. من با چندين آي دي تست كردم و وقتي بات رو مي كنيد قبول مي كنه در خواست رو.
دوستان ديگر هم اگر در اين زمينه مشكل دارن لطفاً اطلاع بدن.
قسمتي كه اين كار رو انجام ميده در فايل frmMain.frm خط 160 هست:
Case 214
'____Add Request____________'
PersonId = getPerson(Buffer)
If PersonId <> "" Then
sckYahoo.SendData acceptAdd(tUser.Text, PersonId)
sckYahoo.SendData sendPM(tUser.Text, PersonId, getResponse("<add>", PersonId))
RecMess.AddItem "*** " & PersonId & " added me as a friend!"
End If
منظورتون رو از بخش دستورات نفهميدم. دستوراتي كه در اين روبات بكار رفتن تماماً VB هستن و براي هر كدوم دستوراتي كه در اكسس مي تونيد از اونا استفاده كنيد در Database اوليه اي كه توي برنامه هست مثالي زده شده.
لطفاً منظورتون رو از دستورات كمي بهتر مطرح كنيد.
با تغییر پی دی پی status دیگه تغییر نمی کنه یعنی status نشون نمی ده؟
انگاری yahoo اونو block می کنه که چند مین بعد درست میشه؟
میشه کاری کرد که با تغییر پی در پی status اینطوری نشه؟
----------------------------------------------------------------------------------------
اگه سروری که تو این prj آخری گذاشتی به سروری که در اولین prj گذاشتی تغییر کنه بازم audiblee و چیزایی که تو جدیده گذاشتی بازم جواب میده؟
مشکل statuso حل بشه ممنون میشم!
بله در صورتي كه Status بات رو پي در پي عوض كنيد ياهو! شما رو بيرون مي اندازه. براي اينكه اين مشكل حل بشه كافي هست يك تايمر قرار بديد با اينتروال 5000 يا 10000 و داخلي اون هر بار بنويسيد پيغام هايي كه مي خواهيد در Status بياد. مثلا مي تونيد آخرين يوزري كه پي ام دادرو بنويسيد. انشاالله براي اين مورد هم دستوري قرار مي دم تا با اضافه كردن كلمه ي <status> در بانك اطلاعاتي بتونيد پيغام مورد نظرتون رو كه مي خواهيد در Status بياد تعيين كنيد.
سلام . این فیلترینگ توی سویچ ها هم تاثیر داره مثلآ اگه توی یه سویچی که خودم اضافه کردم کسی که میخواد ازش استفاده کنه 2 تا حرف شبیه هم وارد کنه فیلتر میشه ! مثلآ soroosh دوتا o داره و به مشکل برمیخوره ! راهی هست یه با چه کدی میشه گفت این سویچ ربطی به فیلترینگ نداره ! یا کلآ کاری کرد که سویچ ها فیلترنشن؟
اين كار رو من از عمد انجام دادم، براي اينكه براي يك سوال چند ركورد تعريف نشه، كافيه خط 266 در frmMain.frm رو حذف كنيد:
Arg1 = FilterMessage(Arg1, False)
Servers.Manager
۰۷-۱۴-۱۳۸۷, ۱۲:۵۱ بعد از ظهر
توی رویا یه امکانی هست ایه که اگه کاربر کامه ای تایپ کنه اگه اون کلمه توی دیتابیس هم نباشه شبیه اون کلمه رو رویا پیدا میکنه و response اونرو به کاربر نشون میده با اینکار میشه گفت توان هوشی روبات بیش از اندازه زیاد میشه و کمتر میگه این کلمه رو بلد نیستم یادم بده بعد اینکه اگه کاری کنید و قتی کاربر روبات رو ادد میکنه آیدی کااربر توی دیتابیس ذخیره بشه عالی میشه
یکی هم اینکه status بصورت Random و اتوماتیک عوض بشه یعنی ما از قبل چند جمله بهش بدیم که هر 10 ثانیه یکیش رو تو استاتوسش نشون بده
و اینم خوبه وقتی کسی روبات رو ادد میکنه روبات تو استاتوشش بزنه این آیدی منو ادد کرد دوست جدید منه این آیدی
پیش از پیش از همه توسعه دهندگان این روبات تشکر میکنم
r-co
۰۷-۱۴-۱۳۸۷, ۰۲:۰۸ بعد از ظهر
با سلام خدمت همه اولا می خواستم همه دوستان id های روبات خودشونو بگن که باهم بیشتر آشنا شیم. این ماله منه با اجازتون. روبات بروبچ بندرعباس id: R_CO.ROBOT
--------------------------------------------------------------------------------------------------
دوستان می خواستن استاتوس تغییر بدن من این ver جدیدو گذاشتم این امکان میده که کسی salam کرد استاتوسو رندوم که 2 نوع هست تغییر بده.
اما همونطور که در پست های قبل گفتم مشگل کوچیکی داره.
-----------------------------------------------------------------------
با salam کردن status آی دی کسی که سلام کرده رو می زنه همراه با خوش آمد گویی.
-------------------------------------------------------------------------------------------------
انم نسخه من تقدیم به همه + سیاوش
Download SMClient v1.2.2 (http://m-rezaei.persiangig.com/SMClient%20v1.2.2.rar)
soroosh-ab
۰۷-۱۴-۱۳۸۷, ۰۲:۰۹ بعد از ظهر
توی رویا یه امکانی هست ایه که اگه کاربر کامه ای تایپ کنه اگه اون کلمه توی دیتابیس هم نباشه شبیه اون کلمه رو رویا پیدا میکنه و response اونرو به کاربر نشون میده با اینکار میشه گفت توان هوشی روبات بیش از اندازه زیاد میشه و کمتر میگه این کلمه رو بلد نیستم یادم بده بعد اینکه اگه کاری کنید و قتی کاربر روبات رو ادد میکنه آیدی کااربر توی دیتابیس ذخیره بشه عالی میشه
یکی هم اینکه status بصورت Random و اتوماتیک عوض بشه یعنی ما از قبل چند جمله بهش بدیم که هر 10 ثانیه یکیش رو تو استاتوسش نشون بده
و اینم خوبه وقتی کسی روبات رو ادد میکنه روبات تو استاتوشش بزنه این آیدی منو ادد کرد دوست جدید منه این آیدی
پیش از پیش از همه توسعه دهندگان این روبات تشکر میکنم
سلام دوست عزیز ! توی رویا اگه طرف هر کلمه ای به روبوت می گفت اون میومد کلمه ی اول و برمیداشت و جوابش رو از دیتابیس میداد و خیلی ضعیف عمل می کرد !
برای status هم این یه کد نویسی ساده است که با تایمر بیاد status رو عوض کنه !
و برای اینکه هرکی روبات رو ادد کرد توی Status بزنه هم خیلی خیلی ساده است ! قرار نیست که دیگه سیاوش بیاد واسه شما همه کارایی که تو میخوای رو روی روبات انجام بده ! این روبات هم open source و رویا open source نبود فقط شما می تونستین اسکریپت خیلی ساده بهش اضافه کنید .
soroosh-ab
۰۷-۱۴-۱۳۸۷, ۰۲:۲۱ بعد از ظهر
با سلام خدمت همه اولا می خواستم همه دوستان id های روبات خودشونو بگن که باهم بیشتر آشنا شیم. این ماله منه با اجازتون. روبات بروبچ بندرعباس id: R_CO.ROBOT
--------------------------------------------------------------------------------------------------
دوستان می خواستن استاتوس تغییر بدن من این ver جدیدو گذاشتم این امکان میده که کسی salam کرد استاتوسو رندوم که 2 نوع هست تغییر بده.
اما همونطور که در پست های قبل گفتم مشگل کوچیکی داره.
-----------------------------------------------------------------------
با salam کردن status آی دی کسی که سلام کرده رو می زنه همراه با خوش آمد گویی.
-------------------------------------------------------------------------------------------------
انم نسخه من تقدیم به همه + سیاوش
Download SMClient v1.2.2 (http://m-rezaei.persiangig.com/SMClient%20v1.2.2.rar)
با تشکر از شما . ولی به نظر من خیلی جالب نیست که با سلام Status عوض بشه ! چون باعث ban شدن از طرف یاهو میشه ...... بهتره فقط برای سویچ های خاص فقط Status عوض بشه و یا برای فقط Add کردن ....
من در حال حاضر روی چک کردن اینویزیبل (Invisible ) دارم کار میکنم ..... هنوز به نتیجه ای نرسیدم .... باید بگم Packet مربوط به Doodle رو بفرسته و..... اگه سیاوش جان میتونی یه کمی کمک کن برای این...
r-co
۰۷-۱۴-۱۳۸۷, ۰۲:۲۸ بعد از ظهر
soroosh-ab جان قرار نیست که همه بلد باشن که چجوری یه چیزو به این روبات اضافه کنن
پس بهتره این حرفو نزنیم که این کار ساده است یا نیست خودت انجام بده یا نده؟ منظورم به جوابی بود که به دوستمون داده بودی اگه بلدی بسم الله راهنمایی کن دوستمونم راه بیوفته همونطوری که سیاوش ما رو راه انداخت.
من تونستم مشکل salam که استاتوسو تغییر میده حل کنم گذاشتم همه استفاده کنم تو هم اینکارو کنی فکر کنم بهتر باشه.
------------------------------------------------------------
Download (http://m-rezaei.persiangig.com/SMClient%20v1.2.2.rar) SMClient v1.2.2
------------------------------------------------------------
soroosh-ab
۰۷-۱۴-۱۳۸۷, ۰۲:۴۷ بعد از ظهر
soroosh-ab جان قرار نیست که همه بلد باشن که چجوری یه چیزو به این روبات اضافه کنن
پس بهتره این حرفو نزنیم که این کار ساده است یا نیست خودت انجام بده یا نده؟ منظورم به جوابی بود که به دوستمون داده بودی اگه بلدی بسم الله راهنمایی کن دوستمونم راه بیوفته همونطوری که سیاوش ما رو راه انداخت.
من تونستم مشکل salam که استاتوسو تغییر میده حل کنم گذاشتم همه استفاده کنم تو هم اینکارو کنی فکر کنم بهتر باشه.
------------------------------------------------------------
download (http://m-rezaei.persiangig.com/smclient%20v1.2.2.rar) smclient v1.2.2
------------------------------------------------------------
sckyahoo.senddata changestatus("salam >> " & personid & " << joon", chkbusy.value)
کد بالا رو بعد از خط پایینی بذار :
sckyahoo.senddata sendpm(tuser.text, personid, getresponse("<add>", personid))
r-co
۰۷-۱۴-۱۳۸۷, ۰۳:۲۲ بعد از ظهر
sorosh جان فکر کنم کد من بیشتر بکار بیاد واسه اینکه امکان random کردن استاتوس واسه یک جواب وجود داره یعنی کسیAdd کرد استاتوس های Random بده.
ولی نمیشه به کار شما ایراد گرفت
---------------------------------------------
Doanload (http://m-rezaei.persiangig.com/SMClient%20v1.2.2.rar) SMClient v1.2.2
---------------------------------------------
soroosh-ab
۰۷-۱۴-۱۳۸۷, ۰۳:۴۲ بعد از ظهر
sorosh جان فکر کنم کد من بیشتر بکار بیاد واسه اینکه امکان random کردن استاتوس واسه یک جواب وجود داره یعنی کسیAdd کرد استاتوس های Random بده.
ولی نمیشه به کار شما ایراد گرفت
---------------------------------------------
Doanload (http://m-rezaei.persiangig.com/SMClient%20v1.2.2.rar) SMClient v1.2.2
---------------------------------------------
درسته ولی من به صورت کلی گفتم حالا شما میتونین بگین این Status رو هرکار دیگه ای بکنه !! مثل کاری که شما کردین !
masoud-70
۰۷-۱۴-۱۳۸۷, ۰۸:۳۶ بعد از ظهر
با سلام خدمت تمام دوستان .اي بابا اگه هر كودومتون بات جديدي ياد دارين يا همون دستور خاصي اگه ياد دارين بذارين ممنونم.
masoud-70
۰۷-۱۴-۱۳۸۷, ۰۸:۳۸ بعد از ظهر
با سلام خدمت آقا سياوش نميشه اين برنامه رو طوري طراحي كرد كه بتونيم توي يه هاستي آپلود كنيم بعد يك امكاني به اون بديم تا 24 ساعته ان باشه ها حالا من كه adsl دارم 1 ساله اشتراك واسم مهم نيست اما اون كسي كه با ديال اپ ان ميشه واسه اون خيلي بده اگه اين طور امكاني هستد توضيح بديد ممنونم
masoud-70
۰۷-۱۴-۱۳۸۷, ۰۸:۴۳ بعد از ظهر
اينم روبات من حتما ادد كنيد ممنونم.robotramian
Servers.Manager
۰۷-۱۴-۱۳۸۷, ۱۱:۱۱ بعد از ظهر
سلام دوست عزیز ! توی رویا اگه طرف هر کلمه ای به روبوت می گفت اون میومد کلمه ی اول و برمیداشت و جوابش رو از دیتابیس میداد و خیلی ضعیف عمل می کرد !
برای status هم این یه کد نویسی ساده است که با تایمر بیاد status رو عوض کنه !
و برای اینکه هرکی روبات رو ادد کرد توی Status بزنه هم خیلی خیلی ساده است ! قرار نیست که دیگه سیاوش بیاد واسه شما همه کارایی که تو میخوای رو روی روبات انجام بده ! این روبات هم open source و رویا open source نبود فقط شما می تونستین اسکریپت خیلی ساده بهش اضافه کنید .
دوست عزیز درسته که open source و باید همه در جهت پیشرفتش کمک کنن ، ولی کسی که بلده میتونه کمک کنه و هر کسی هم نمیتونه همه چیز بلد باشه من خودم در مدیریت سرورهای لینوکس و ویندوز یکم مهارت دارکم اما از visual چیزی سرم نمیشه چون اصلا کار نکردن
اینو مطمئن باشین اگه من خودم بلد بودم به هیچوجه اینجا مطرح نمیکردم و خودم امکانات رو اضافه میکردم و اینجا هم برای استفاده عموم قرارش میدادم همونطور که دوستمون اینکارو کرد
به هر حال از شما هم ممنون :)
vahid-b
۰۷-۱۶-۱۳۸۷, ۰۱:۰۱ بعد از ظهر
سلام به همه :)
Siavash
۰۷-۱۶-۱۳۸۷, ۰۷:۲۵ بعد از ظهر
اين هم از نسخه ي 1.2.3 روبات ياهو مسنجر، با قابليت هاي جديد زير:
امكان تغيير Status بات هر 30 ثانيه يك بار در صورت تعريف عبارت <status>.
اضافه شدن User هاي جديد به بانك اطلاعاتي.
فرستادن پيغام خوش آمدگويي براي افرادي كه اولين بار است با بات چت مي كنند در صورت تعريف عبارت <welcome>.
تغيير Status Bar و نمايش مناسب تر وضعيت بات در آن.
بر طرف شدن باگ نمايش داده نشدن پيغام كاربران ديگر در صفحه ي آخرين پيغام ها.
بر طرف شدن چند باگ كوچك.
پسورد:
www.artificial.irانشاالله در نسخه ي بعد قابليت الگو پذيري رو اضافه خواهم كرد تا قدرت بات در پردازش ورودي ها فوق العاده قوي تر بشه.
از دوست خوبمون r-co به خاطر به اشتراك گذاشتن كدش واقعاً ممنونم. اي كاش بقيه ي دوستان هم در اين زمينه كمك كنند.
حتي به اشتراك گذاشتن بانك اطلاعاتي هم مي تونه خيلي به پيشرفت يك بات پايه كمك كنه.
در جواب به masoud-80:
متأسفانه اين امكان وجود نداره مگر اينكه Remote Desktop Access به يك سرور داشته باشيد يا Access اجرا كردن برنامه روي سرور رو داشته باشيد كه با خريد هاستينگ هيچ وقت اين دسترسي رو به شما نمي دن. وگرنه مي تونستيد روي سرور به راحتي يك ويروس اجرا كنيد مثلاً. پس اين درخواست كمي غير قابل اجرا هست.
Servers.Manager
۰۷-۱۷-۱۳۸۷, ۰۱:۴۱ قبل از ظهر
واقعا کارت حرف نداره سیاوش جان :rolleyes:
من دیتابیس shahrobot رو که قبلا robofun بود و یاهو تحریمش کرد رو براتون گذاشتم امیدوارم بدردتون بخوره - هرچند که بیشتر روباتها از دیتابیس robofun استفاده میکنن چون قبلا توی سایت دیگه برا دانلود گذاشته بودم
soroosh-ab
۰۷-۱۷-۱۳۸۷, ۰۷:۳۴ قبل از ظهر
سلام. سیاوش جان چرا از ListView برای RecMess استفاده نمیکنی ؟ Listview امکانات خیلی بهتری داره و می شه دسته بندی کرد پی ام هارو و خیلی تمیز تر میشه برنامه .
و روبات یه چیز دیگه هم کم داره ..... لیست سیاه .... که افراد مزاحم رو بشه گذاشت اونجا و دیگه لازم نیست دستی به لیست Ignore اضافه کنیم ..... و یا راهی هست که لیست Ignore رو که یاهو مسنجر میگیره از سرور رو ما با این برنامه بگیریم و بهش آیدی اضافه کنیم ؟
داشت یادم می رفت بگم که /PM یه باگ کوچیک داره که باید بهش بگی اگه arrPM(1) برابر با tuser.text باشه به personID یه پی ام بده که به خودم نمیتونم پی ام بدم چون اگه یکی بیاد با /pm آیدی روبات رو بده اونوقت هی به خودش پی ام میده روبات ....
Siavash
۰۷-۱۷-۱۳۸۷, ۰۱:۴۴ بعد از ظهر
دليلي استفاده نكردن از ListView اين بود كه در ورژن هاي اوليه نمي خواستم از Windows Common Controls استفاده كنم. از اونجايي كه توي ورژن 1.2.1 به بعد از اين كنترل ها استفاده كردم حق با شماست انشاالله در ورژن بعدي اني كار رو انجام ميدم.
باگ دوم هم درست مي گيد با يك شرط ساده حل مي شه كه در ورژن بعدي اين كار رو انجام ميدم.
يك نظر ديگه هم يكي از دوستان مي گفتند كه اضافه كردن System Tray براي برنامه بود كه وقتي Minimize ميشه بات بياد بقل ساعت ويندوز كه اين موضوع هم انشاالله اضافه خواهد شد.
mjanbazi
۰۷-۱۷-۱۳۸۷, ۰۲:۴۹ بعد از ظهر
سیاوش جان هنووز که مشکل فارسی رو تو این نسخه حل نکردی
کاری کن که انگلیسی ازش سوال می کنن به فارسی جواب بده
ممنون
soroosh-ab
۰۷-۱۷-۱۳۸۷, ۰۲:۵۰ بعد از ظهر
دليلي استفاده نكردن از ListView اين بود كه در ورژن هاي اوليه نمي خواستم از Windows Common Controls استفاده كنم. از اونجايي كه توي ورژن 1.2.1 به بعد از اين كنترل ها استفاده كردم حق با شماست انشاالله در ورژن بعدي اني كار رو انجام ميدم.
باگ دوم هم درست مي گيد با يك شرط ساده حل مي شه كه در ورژن بعدي اين كار رو انجام ميدم.
يك نظر ديگه هم يكي از دوستان مي گفتند كه اضافه كردن System Tray براي برنامه بود كه وقتي Minimize ميشه بات بياد بقل ساعت ويندوز كه اين موضوع هم انشاالله اضافه خواهد شد.
2 تا شکلک توی Substitude.sm هست که بهتره اصلاح بشن :
:-" & :">
علامت " توی شکلک ها 2 بار زده شده که باید 1 بار بشه ......
سیاوش راجب لیست سیاه چی ؟ توی ورژن بعدی درست میشه ؟ بهتره که داشته باشه و توی دیتابیس باشه ... بعد به راحتی میشه گفت اگه PM های تکراری بیشتر از 10 تا شد طرف ایگنور بشه .
soroosh-ab
۰۷-۱۷-۱۳۸۷, ۰۸:۵۱ بعد از ظهر
سیاوش جان هنووز که مشکل فارسی رو تو این نسخه حل نکردی
کاری کن که انگلیسی ازش سوال می کنن به فارسی جواب بده
ممنون
سلام شما باید اونو وارد دیتابیس کنید برای اینکار به سایت زیر برید :
BitaWeb Converter (http://bitaweb.peyknet.com/en/CodeConverter.html)
بعد Group 12 رو انتخاب کنید که یونیکد رو به UTF-8 تبدیل کنه بعد اون پایین متن فارسی رو بنویسید و Convert رو بزنید بعد اون کد رو می تونین وارد دیتابیس کنید که به فارسی جواب بده !
مثلآ سلام به UTF-8 میشه :
سلام
r-co
۰۷-۱۸-۱۳۸۷, ۱۰:۵۶ قبل از ظهر
حالا چطوری برای learn/ یه username قرار بدیم یعنی هرکی با learn/ چیزی به روبات آموزش داد
username اونو تو همون Message تو قسمت username ذخیره کنه؟
r-co
۰۷-۱۸-۱۳۸۷, ۱۱:۲۰ قبل از ظهر
30 ثانیه بودن تغییر status بعد از تغییر پی درپی بلوک میشه و دیگه status تغییر نمی کنه؟
30 ثانیه چطوری به دقیقه تلدیل کنیم مثلا 1min=60s یا 2 دقیقه؟
تو کدوم خطه؟ (;
mjanbazi
۰۷-۱۸-۱۳۸۷, ۰۴:۵۶ بعد از ظهر
سلام شما باید اونو وارد دیتابیس کنید برای اینکار به سایت زیر برید :
بعد group 12 رو انتخاب کنید که یونیکد رو به utf-8 تبدیل کنه بعد اون پایین متن فارسی رو بنویسید و convert رو بزنید بعد اون کد رو می تونین وارد دیتابیس کنید که به فارسی جواب بده !
مثلآ سلام به utf-8 میشه :
ø³ù„ø§ù…
سروش جان این کار خیلی سختیه سیاوش می تونه با یک تابع این کارو به راحتی انجام بده و توی همین برنامه این کارو انجام بده
من اگه بخوام کلمات زیادی رو از این روش تبدیل کنم بعد کپی کنم تو برنامه خیلی طول می کشه به خاطر همین منتظر فانکشن تبدیل از طرف آقا سیاوش هستیم
soroosh-ab
۰۷-۱۸-۱۳۸۷, ۰۵:۲۳ بعد از ظهر
سروش جان این کار خیلی سختیه سیاوش می تونه با یک تابع این کارو به راحتی انجام بده و توی همین برنامه این کارو انجام بده
من اگه بخوام کلمات زیادی رو از این روش تبدیل کنم بعد کپی کنم تو برنامه خیلی طول می کشه به خاطر همین منتظر فانکشن تبدیل از طرف آقا سیاوش هستیم
درسته که کار سختیه اما تنها روش ممکن هست الان مگر اینکه سیاوش این مشکل رو حل کنه.
حالا چطوری برای learn/ یه username قرار بدیم یعنی هرکی با learn/ چیزی به روبات آموزش داد
username اونو تو همون message تو قسمت username ذخیره کنه؟
فکر خوبیه ! به نظرم این کار هم باید توی ورژن جدید انجام بشه.
Siavash
۰۷-۱۹-۱۳۸۷, ۰۳:۲۴ قبل از ظهر
اين هم ورژن 1.2.4 بات ياهو! مسنجر با امكانات جديد زير:
امكان ارسال پيام هاي فارسي
اضافه شدن ليستي با عنوان IgnoreList در بانك اطلاعاتي، جهت افزودن افراد به اين ليست مي توانيد از تابع addToIgnoreList استفاده كنيد. بات به كاربراني كه در اين ليست قرار دارند پاسخ نخواهد داد.
ذخيره شدن نام كاربري آموزش دهنده ي كلمات توسط سويچ /learn.
ذخيره شدن كليه ي پيغام هاي دريافت شده و فرستاده شده توسط بات در بانك اطلاعاتي
اضافه شدن امكان Hide كردن برنامه و قرارگيري آن در SysTray (كنار ساعت).
اضافه شدن امكان Autologin: با ويرايش نمودن فايل Autologin.sm مي توانيد براي بات تعيين كنيد تا با باز شدن نرم افزار به صورت خودكار با يك Username و Password مشخص لاگين كند.
بر طرف شدن باگ سويچ /pm در صورتي كه به عنوان گيرنده آيدي خود بات داده مي شد.
پسورد:
www.artificial.ir
Servers.Manager
۰۷-۱۹-۱۳۸۷, ۰۲:۱۷ بعد از ظهر
با تشکر از سیاوش جان بنظر من در ورژن جدید یک کانتر بزاری خیلی خوب میشه اینوجوری میشه فهمید بازدید از روبات چقدر هسا و آیا بازدیدها بیشتر میشه یا کمتر
مثلا آمار pm های ردو بدل شده
آمار کلمات جدید یاد داده شده
اینطوری میشه پیشرفت روبات رو زود فهمید
soroosh-ab
۰۷-۱۹-۱۳۸۷, ۰۴:۵۲ بعد از ظهر
با تشکر از سیاوش جان بنظر من در ورژن جدید یک کانتر بزاری خیلی خوب میشه اینوجوری میشه فهمید بازدید از روبات چقدر هسا و آیا بازدیدها بیشتر میشه یا کمتر
مثلا آمار pm های ردو بدل شده
آمار کلمات جدید یاد داده شده
اینطوری میشه پیشرفت روبات رو زود فهمید
سلام . اینکار رو به راحتی میشه از روی Table ای که جدید اضافه شده (Archive ) و ID اون فهمید ! به نظر من روبات به این احتیاج نداره و تبدیل کردن RecMess از ListBox به List View مهم تر هست و یا گذاشتن Horizontal Scroller برای RecMess .
ولی این چیزایی که گفتم کمبود روبات نیست فقط با این کار کامل تر میشه ! اما تشخیص کلمات به بهترین روش خیلی مهمه . به نظر شما کدوم راه بهتره واسه تشخیص کلمات ؟
ولی در کل ورژن آخر یکی از کامل ترین ورژن هاست واقعآ سیاوش جان خیلی کارت درسته . مرسی .
ardalan_farzin
۰۷-۱۹-۱۳۸۷, ۰۶:۲۲ بعد از ظهر
سلام . اینکار رو به راحتی میشه از روی table ای که جدید اضافه شده (archive ) و id اون فهمید ! به نظر من روبات به این احتیاج نداره و تبدیل کردن recmess از listbox به list view مهم تر هست و یا گذاشتن horizontal scroller برای recmess .
ولی این چیزایی که گفتم کمبود روبات نیست فقط با این کار کامل تر میشه ! اما تشخیص کلمات به بهترین روش خیلی مهمه . به نظر شما کدوم راه بهتره واسه تشخیص کلمات ؟
ولی در کل ورژن آخر یکی از کامل ترین ورژن هاست واقعآ سیاوش جان خیلی کارت درسته . مرسی .
سلام میشه لینک دانلود خود نرم افزار روبوت یاهو رو بزارین ...؟؟؟
Siavash
۰۷-۱۹-۱۳۸۷, ۰۶:۴۴ بعد از ظهر
دوست عزيز لينك داونلودش در آخرين پست من به عنوان ضميمه وجود داره...
كافيه نرم افزار Visual Basic 6.0 رو نصب كنيد و فايل prjYahoo.prj رو باز كنيد و اجراش كنيد...
انشاالله به يك حد استانداردي برسه يك Setup File هم براش مي سازم و قرار ميدم...
در مورد آمار گرفتن همونطور كه دوستمون سروش گفتن با ساختن يك Query در اكسس اين كار رو به راحتي مي تونيد انجام بديد.
اين هم كد هاي Query كه بايد ساخته بشه. از ورژن هاي بعدي اين دو Query رو بطور پيش فرض در فايل Database قرار مي دم:
SELECT Year(AddedDate) AS [Year], Month(AddedDate) AS [Month], Day(AddedDate) AS [Day], Count(Users.id) AS MessageCount
FROM Users
GROUP BY Year(AddedDate), Month(AddedDate), Day(AddedDate)
ORDER BY Year(AddedDate), Month(AddedDate), Day(AddedDate);
SELECT Year(MessageTime) AS [Year], Month(MessageTime) AS [Month], Day(MessageTime) AS [Day], Count(Archive.id) AS MessageCount
FROM Archive
GROUP BY Year(MessageTime), Month(MessageTime), Day(MessageTime)
ORDER BY Year(MessageTime), Month(MessageTime), Day(MessageTime);
كه اولي تعداد اضافه شدن بات به ليست در هر روز رو نشون مي ده و دومي تعداد پيغام هاي دريافت شده به علاوه ي فرستاده شده توسط بات.
mjanbazi
۰۷-۱۹-۱۳۸۷, ۰۶:۵۳ بعد از ظهر
مرسی سیاوش جان که فارسی رو هم درست کردی
حالا نوبتی هم باشه نوبت اینه که or رو تو جواب لحاظ می کنی اینو تو سوال لحاظ کنی یعنی اگه کاربر chetori یا how are u یا how r u یا khoobi? یا هرچیزی مربوط به احوال پرسی بود سوال کند بات یک جواب بدهد
به جای آنکه ما برای هر کدام از سوالات بالا یک رکورد تعریف کنیم و جواب را در هر رکورد قرار دهیم کل رکورد ها را با جواب در یک رکورد قرار دهیم.
Siavash
۰۷-۱۹-۱۳۸۷, ۰۷:۰۴ بعد از ظهر
راه درست كردن اين كار استفاده از <like> هست. من توي ورژن بعدي اين قابليت رو اضافه مي كنم. چون اگر بخوايم در Request "يا" رو اضافه كنيم Query ها بسيار سنگين ميشن چون نياز به استفاده از Wildcard ها هست.
تگ <like> به اين صورت خواهد بود كه مثلاً شما hi رو با جوابش تعيين مي كنيد. بعد ركورد ديگه اي به نام hello كه تعريف مي كنيد Response اون رو به جاي اينكه دوباره با جواب پر كنيد داخل اون مي نويسيد <like>hi</like>.
در اين صورت اگر جواب hi رو تغيير بديد جواب hello هم تغيير مي كنه.
خوبي ديگرش اين هست كه مي تونيد دو يا چند تا <like> به همراه يك متن اضافه داشته باشيد. مثلا:
Bah bah, <like>hi</like>. <like>khoobi</like>
اين كد به ابتداي جواب Bah bah, اضافه مي كنه بعد جواب hi رو اضافه مي كنه و بعد . و سپس جواب خوبي رو اضافه مي كنه. هر كدوم از جواب هاي hi و khoobi عوض بشن بعداً اينجا هم بروز مي شن.
فكر مي كنم اين كار بهتر از اضافه كردن or در بخش Request باشه. براي قوي تر شدن Request يك مدل جديد بعداً ارائه مي كنم كه خيلي انتخاب جواب توسط بات رو هوشمندانه تر خواهد كرد.
r-co
۰۷-۱۹-۱۳۸۷, ۰۷:۴۴ بعد از ظهر
1) می خواستم بدونم که یه Table تو دیتابیس ایجاد کرد مثلا Message2 که اینجا 3 پاسخ باشه و به هنگام در خواست از روبات هر سه رو همزمان بفرسته یعنی سه Response باشه Res..1 Res..2 Res..3
حالا این سه جوابو کنار هم در یک پیغام جا بده و رنگ هاشو خودش اوتوماتیک بزاره یعنی نیاز نباشه ما تک تک برای جوابا رنگ تعیین کنیم .
----------------------------------------------------------------------------------------------------
2) چطوری باید یه دستور نوشت که بجای / مثلا از \ استفاده کرد و اگه بعد از \ هر چیزی بنویسیم بیاد از تو دیتابیس کلمه ای که بعد از \ باشه از تو Table مثلا از تو Message3 بگرده و جوابشو بفرسته؟ یعنی همون کاری که وقتی ما به روبات PM میدیم میاد از تو Message میاد جوابو میفرسته تو اینجا بیاد کلمه ی بعد از \ رو بگیره و جوابشو پیدا کمه؟
نمی خوام \ قبل از Request باشه؟
soroosh-ab
۰۷-۱۹-۱۳۸۷, ۰۸:۲۲ بعد از ظهر
راه درست كردن اين كار استفاده از <like> هست. من توي ورژن بعدي اين قابليت رو اضافه مي كنم. چون اگر بخوايم در Request "يا" رو اضافه كنيم Query ها بسيار سنگين ميشن چون نياز به استفاده از Wildcard ها هست.
تگ <like> به اين صورت خواهد بود كه مثلاً شما hi رو با جوابش تعيين مي كنيد. بعد ركورد ديگه اي به نام hello كه تعريف مي كنيد Response اون رو به جاي اينكه دوباره با جواب پر كنيد داخل اون مي نويسيد <like>hi</like>.
در اين صورت اگر جواب hi رو تغيير بديد جواب hello هم تغيير مي كنه.
خوبي ديگرش اين هست كه مي تونيد دو يا چند تا <like> به همراه يك متن اضافه داشته باشيد. مثلا:
Bah bah, <like>hi</like>. <like>khoobi</like>
اين كد به ابتداي جواب Bah bah, اضافه مي كنه بعد جواب hi رو اضافه مي كنه و بعد . و سپس جواب خوبي رو اضافه مي كنه. هر كدوم از جواب هاي hi و khoobi عوض بشن بعداً اينجا هم بروز مي شن.
فكر مي كنم اين كار بهتر از اضافه كردن or در بخش Request باشه. براي قوي تر شدن Request يك مدل جديد بعداً ارائه مي كنم كه خيلي انتخاب جواب توسط بات رو هوشمندانه تر خواهد كرد.
فکر جالبیه ولی به نظر خیلی سنگین میکنه برنامه رو . اگه هر کلمه رو تشخیص بده و جوابش رو از دیتابیس بگیره و همراه با یه کلمه ی اضافه مثل "و" بچسبونه به هم جالب تر باید باشه .
) می خواستم بدونم که یه Table تو دیتابیس ایجاد کرد مثلا Message2 که اینجا 3 پاسخ باشه و به هنگام در خواست از روبات هر سه رو همزمان بفرسته یعنی سه Response باشه Res..1 Res..2 Res..3
حالا این سه جوابو کنار هم در یک پیغام جا بده و رنگ هاشو خودش اوتوماتیک بزاره یعنی نیاز نباشه ما تک تک برای جوابا رنگ تعیین کنیم .
----------------------------------------------------------------------------------------------------
2) چطوری باید یه دستور نوشت که بجای / مثلا از \ استفاده کرد و اگه بعد از \ هر چیزی بنویسیم بیاد از تو دیتابیس کلمه ای که بعد از \ باشه از تو Table مثلا از تو Message3 بگرده و جوابشو بفرسته؟ یعنی همون کاری که وقتی ما به روبات PM میدیم میاد از تو Message میاد جوابو میفرسته تو اینجا بیاد کلمه ی بعد از \ رو بگیره و جوابشو پیدا کمه؟
نمی خوام \ قبل از Request باشه؟
1 رو نمیتونم درست توضیح بدم ولی با این کدهایی که توی سورس هست میشه دقیقآ اینکار رو کرد .
برای 2 باید توی ماژول modFunctions یه Function مثل getResponse ایجاد کنی بعد توی frmMain یه کدی شبیه این بذاری :
If Left(Message, 5) = "/XXXX" Then
Response = shabihe-get-response("<XXXX>", PersonId)
End If
که به جای shabihe-get-response باید اون Function که ساختی رو بذاری ! و بعد اگه توی Table مورد نظر <XXXX> باشه جوابشو برمیداره و پی ام میکنه !
Ashkan_yazdgroup
۰۷-۲۰-۱۳۸۷, ۰۳:۲۵ قبل از ظهر
با سلام خدمت سیاوش عزیز خوشحالم که این برنامه رو آماده کردین اما من بعد از دانلود و اجرای فایل prjYahoo با ارور زیر مواجه شدم :
Compent "msadodc.ocx" or one of its dependensiec not currectly registered : a file is missing or invalid
چجوری این مشکل رو حل کنم با تشکر
اين هم ورژن 1.2.4 بات ياهو! مسنجر با امكانات جديد زير:
امكان ارسال پيام هاي فارسي
اضافه شدن ليستي با عنوان IgnoreList در بانك اطلاعاتي، جهت افزودن افراد به اين ليست مي توانيد از تابع addToIgnoreList استفاده كنيد. بات به كاربراني كه در اين ليست قرار دارند پاسخ نخواهد داد.
ذخيره شدن نام كاربري آموزش دهنده ي كلمات توسط سويچ /learn.
ذخيره شدن كليه ي پيغام هاي دريافت شده و فرستاده شده توسط بات در بانك اطلاعاتي
اضافه شدن امكان Hide كردن برنامه و قرارگيري آن در SysTray (كنار ساعت).
اضافه شدن امكان Autologin: با ويرايش نمودن فايل Autologin.sm مي توانيد براي بات تعيين كنيد تا با باز شدن نرم افزار به صورت خودكار با يك Username و Password مشخص لاگين كند.
بر طرف شدن باگ سويچ /pm در صورتي كه به عنوان گيرنده آيدي خود بات داده مي شد.
پسورد:
www.artificial.ir
r-co
۰۷-۲۰-۱۳۸۷, ۱۲:۳۹ بعد از ظهر
سوروش جان منظور من این نبود که تو گفتی اگه یه بار دیگه بری پست قبلی با دقت بخونی می فهمی
------------------------------------- منظور تو این بود خودم بلد بودم (;
اینو تو modFunctions کپی می کنیم
Function gettell(Request As String, PersonId As String) As String
Set Recordset = Connection.Execute("SELECT Request, Response, Response1, Response2 FROM tell WHERE Request = '" & Request & "'", adCmdText)
gettell = getRandom(Recordset!Response)
gettell = getRandom(Recordset!Response1)
gettell = getRandom(Recordset!Response2)
' Replace custom variables
gettell = Replace(gettell, "<$user>", PersonId)
gettell = Replace(gettell, "<$lastuser>", lastUser)
End Function
اینو هم تو Frm کپی می کنیم
If Left(Message, 2) = "ok" Then
Response = gettell(ok, PersonId)
End If
--------------------------------------------------------------------------------
منظور من اینا نبود.... حالا یه بار دیگه برو بخونش
r-co
۰۷-۲۰-۱۳۸۷, ۰۱:۱۷ بعد از ظهر
اینم ocx هایی که ایراد می گیره اشکان
Download (http://m-rezaei.persiangig.com/ocx%20_For_Robot.rar)
soroosh-ab
۰۷-۲۰-۱۳۸۷, ۱۰:۲۲ بعد از ظهر
سیاوش جان ممکنه یه اسکریپت برای تشخیص invisible بذاری که من بتونم واسه روبات استفاده کنم ؟ :(
BeHNaM
۰۷-۲۱-۱۳۸۷, ۰۱:۴۸ بعد از ظهر
سلام سیاوش جان خسته نباشی
میخاستم چند تا نکته رو بگم شاید به بهبودی بات کمک کنه:
من واسه اینکه status بات رو یاهو بلوک نکنه مجبور شدم Private Sub tmrStatus_Timer رو از توی سورس بردارم
واسه اینکه اگه چند نفر همزمان به بات سلام میکردن بات مجبور بود پشت سر هم status عوض کنه و این باعث میشد یاهو متوجه بشه و status رو واسه آیدی بات قفل کنه. اگه واسه بات تعریف بشه که با فاصله زمانی معین ( حداقل 30 ثانیه ) status رو عوض کنه تو این حالت یاهو بلوک نمیکنه.
دوم این که اگه کانکشن اینترنت دیسکانکت شه و دوباره کانکت شه بات واسش تعریف نشده خودشو auto login کنه
BeHNaM
۰۷-۲۱-۱۳۸۷, ۰۲:۱۳ بعد از ظهر
دوستان اینم دو تا سورس
شاید برای تکمیل و بهبودی روبات به کارتون بیاد
البته تحت Visual Basic.NET 2005 هست ولی میشه از بعضی جاهاش استفاده کرد مخصوصا از اولی
1-
YCC Trainer (http://www.ycoderscookbook.com/Files/YCC_Trainer.zip)
- 2
Yahoo Login Socket (http://www.ycoderscookbook.com/Files/Yahoo%20Login%20Sockets.rar)
Siavash
۰۷-۲۱-۱۳۸۷, ۱۰:۰۴ بعد از ظهر
1) می خواستم بدونم که یه Table تو دیتابیس ایجاد کرد مثلا Message2 که اینجا 3 پاسخ باشه و به هنگام در خواست از روبات هر سه رو همزمان بفرسته یعنی سه Response باشه Res..1 Res..2 Res..3
حالا این سه جوابو کنار هم در یک پیغام جا بده و رنگ هاشو خودش اوتوماتیک بزاره یعنی نیاز نباشه ما تک تک برای جوابا رنگ تعیین کنیم .
----------------------------------------------------------------------------------------------------
2) چطوری باید یه دستور نوشت که بجای / مثلا از \ استفاده کرد و اگه بعد از \ هر چیزی بنویسیم بیاد از تو دیتابیس کلمه ای که بعد از \ باشه از تو Table مثلا از تو Message3 بگرده و جوابشو بفرسته؟ یعنی همون کاری که وقتی ما به روبات PM میدیم میاد از تو Message میاد جوابو میفرسته تو اینجا بیاد کلمه ی بعد از \ رو بگیره و جوابشو پیدا کمه؟
نمی خوام \ قبل از Request باشه؟
من سوالتون رو درست متوجه نشدم، مي تونيد با مثال بگيد؟
مثلاً بگيد كاربر چه پيغامي بفرسته و بات چه عملي رو انجام بده يا چه اطلاعاتي رو ذخيره كنه.
سلام سیاوش جان خسته نباشی
میخاستم چند تا نکته رو بگم شاید به بهبودی بات کمک کنه:
من واسه اینکه status بات رو یاهو بلوک نکنه مجبور شدم Private Sub tmrStatus_Timer رو از توی سورس بردارم
واسه اینکه اگه چند نفر همزمان به بات سلام میکردن بات مجبور بود پشت سر هم status عوض کنه و این باعث میشد یاهو متوجه بشه و status رو واسه آیدی بات قفل کنه. اگه واسه بات تعریف بشه که با فاصله زمانی معین ( حداقل 30 ثانیه ) status رو عوض کنه تو این حالت یاهو بلوک نمیکنه.
دوم این که اگه کانکشن اینترنت دیسکانکت شه و دوباره کانکت شه بات واسش تعریف نشده خودشو auto login کنه
من فكر مي كنم در ورژن جديد بات اين مشكلات حل شده. نسخه ي 1.2.4 رو بگيريد...
بابت سورس كد ها هم ممنون براي دوستاني كه مي خواهند با Visual Basic .Net در ياهو! لاگين كنند بيس خوبيه. اما متأسفانه هيچ كدام از پكت ها بجز پكت هاي مرتبط به لاگين رو نداره اما مثال خوبي هست.
BeHNaM
۰۷-۲۲-۱۳۸۷, ۱۲:۵۹ قبل از ظهر
سیاوش جان من از نسخه 1.2.4 استفاده کردم
من از کانکشن برای وصل شدن استفاده میکنم ولی شما احتمالا با کارت شبکه یا مودم adsl ppoe به اینترنت وصل هستید.
اینم تصویر بات هنگام دیسی شدن کانکشن
http://chatiha.persiangig.ir/Ax/ax.JPG
من مجدد کانکت کردم ولی بات تو همین حالت مونده .
r-co
۰۷-۲۲-۱۳۸۷, ۰۱:۱۴ بعد از ظهر
سیاوش جان منظورم از اولی این بود که:
من یه پیغامی به بات می فرستم حالا بات بجای اینکه جوابو از قسمتMessage از تو دیتا بیس بیاره بره از قسمت دیگری مانند Message2 بیاره حالا بجای اینکه فقط یه جواب از Message2 به user ارسال بشه 3 جواب از تو Message2 بفرسته که Message2 سه پاسخ داره تو دیتابیس
حالا واسه اینکه پیام ارسالی ما به بات با پیام های معمولی مجزا شن بیایم یه / یا \ بهش تعریف کنیم که هر حرفی بعد از /یا\ بیاد بره جوابو از تو Message2 به ما بفرسته؟
نمی خوام مثلا تو Message2 تو قسمت Request /یا\ وجود داشته باشه!؟
---------------------------------------------------------------------------------------------
اگه بازم متوجه نشدی یا نامفهومه بگو یه مثال با Databasi که منظرمو بفهمونه بزارم
---------------------------------------------------------------------------------------------
مثال: من به بات میگم salam\ حالا بات بگه Salam Doste Man که کلمات Salam درResponse1 و Doste در Response2و Man در Response3 در دیتا بیس تو قسمت Message2 باشن.!؟ که بات هر سه رو یکجا یا مجزا بفرسته!!!
Farzadice
۰۷-۲۳-۱۳۸۷, ۱۱:۵۴ قبل از ظهر
سلام سیاوش جان خسته نباشی...
واسه منم آنلاین نمیشه...همچین اروری میده!
http://i34.tinypic.com/309nhqt.jpg
Servers.Manager
۰۷-۲۳-۱۳۸۷, ۱۲:۵۶ بعد از ظهر
ولی برای من بدون مشکل کار میکنه اینم آیدی : shahrobot
فقط یه سوال فکر کنم یاهو دیگه از <br> برای سطر کردن استفاده نمیکنه چون هرکاری کرم جمله ها پایین همدیگه قرار نگرفتن
میتونین بگین از چه کدی استفاده میکنه
soroosh-ab
۰۷-۲۳-۱۳۸۷, ۰۱:۰۳ بعد از ظهر
ولی برای من بدون مشکل کار میکنه اینم آیدی : shahrobot
فقط یه سوال فکر کنم یاهو دیگه از <br> برای سطر کردن استفاده نمیکنه چون هرکاری کرم جمله ها پایین همدیگه قرار نگرفتن
میتونین بگین از چه کدی استفاده میکنه
vbCrLf
کمک کنید لطفآ برای تشخیص کلمات یه کاری انجام بدیم :(
BeHNaM
۰۷-۲۳-۱۳۸۷, ۰۲:۰۰ بعد از ظهر
ولی برای من بدون مشکل کار میکنه اینم آیدی : shahrobot
فقط یه سوال فکر کنم یاهو دیگه از <br> برای سطر کردن استفاده نمیکنه چون هرکاری کرم جمله ها پایین همدیگه قرار نگرفتن
میتونین بگین از چه کدی استفاده میکنه
برای این کار باید توی دیتابیس انتهای هر نوشته Ctrl+ Enter رو بزنی احتیاج به هیچ کدی هم نیست
BeHNaM
۰۷-۲۳-۱۳۸۷, ۰۲:۰۷ بعد از ظهر
سلام سیاوش جان خسته نباشی...
واسه منم آنلاین نمیشه...همچین اروری میده!
http://i34.tinypic.com/309nhqt.jpg
فرزاد جان احتمالا شما قبلا یکی از ورژن های قدیمیتر بات رو استفاده کردی منم همین مشکلو داشتم ورژن قدیمیتر رو که استفاده کرده بودم جدیده کار نمیکرد.
واسه همین فایل کامپایل شده جدید رو تو پوشه فایل قدیمی انتقال دادم و بات آنلاین شد.
اخر سر هم نفهمیدم مشکل از کجاست ولی به هر حال کار کرد.
Servers.Manager
۰۷-۲۳-۱۳۸۷, ۰۳:۴۱ بعد از ظهر
برای این کار باید توی دیتابیس انتهای هر نوشته Ctrl+ Enter رو بزنی احتیاج به هیچ کدی هم نیست
یعنی چه برای اینکار باید ctrl + inter بزنی من کاری با دیتابیس ندارم برای اسکریپت میخوام
سروش جان منظوور شمارو متوجه نشدم
من میخوام کاری کنم که روبات اینطوری pm بده برای منو خودش
/gf
/bf
/pm
که همشون پایین همدیگه مشکل من اینه
BeHNaM
۰۷-۲۳-۱۳۸۷, ۰۶:۵۵ بعد از ظهر
یعنی چه برای اینکار باید ctrl + inter بزنی من کاری با دیتابیس ندارم برای اسکریپت میخوام
سروش جان منظوور شمارو متوجه نشدم
من میخوام کاری کنم که روبات اینطوری pm بده برای منو خودش
/gf
/bf
/pm
که همشون پایین همدیگه مشکل من اینه
Servers.Manager جان منظور ما رو نفهیدم
Servers.Manager
۰۷-۲۳-۱۳۸۷, ۰۸:۳۲ بعد از ظهر
servers.manager جان منظور ما رو نفهیدم
آقا حالت خوبه ؟
یعنی چه ما ؟ کدوم ما؟
BeHNaM
۰۷-۲۳-۱۳۸۷, ۰۹:۱۰ بعد از ظهر
داداش منظورم شما بود . خواستم کمکی کرده باشم مگه نه اصلا اینجا جای ایراد املایی گرفتن نیست
Servers.Manager
۰۷-۲۳-۱۳۸۷, ۱۱:۴۸ بعد از ظهر
خیلی ممنون که میخوایین کمک کنید ولی آخه من آخرش نفهمیدم شما چی میگین
soroosh-ab
۰۷-۲۴-۱۳۸۷, ۰۵:۵۸ قبل از ظهر
مگه نگفتم از vbCrLf استفاده کن ؟!
Servers.Manager
۰۷-۲۴-۱۳۸۷, ۰۹:۴۰ قبل از ظهر
سروش جان منظورت از vbCrLf استفاده کن چیه ، میشه یکم بیشتر توضیح بدی ممنون
Farzadice
۰۷-۲۴-۱۳۸۷, ۱۱:۳۷ قبل از ظهر
مرســـی بهنام جان که جوابه سوالمو دادی...
اما مشکل دیگه اینه که اینو تو ویندوز اکس پی هم اجرا می کنم.همچین اروری میده.
http://i35.tinypic.com/a0f3hy.jpg
mehdi096
۰۷-۲۶-۱۳۸۷, ۱۲:۳۲ قبل از ظهر
سلام آقا یکی بمن بگه تصویر زیر چه پیغامی می ده باید چکارش کنم ممنون
متن پیغام اینه:
componet `comctl32.ocx` or one of its dependencies not correctly registered: a file is missing or invalid
این توری من فهمیدم یک فایل خرابه فایل را بزارین ممنون می شم
http://boxstr.com/files/3870676_j3pmx/dfdf.bmp
r-co
۰۷-۲۶-۱۳۸۷, ۰۲:۳۸ بعد از ظهر
دوست عزیز اینم ocx هایی که ایراد می گیره
Download (http://m-rezaei.persiangig.com/ocx.rar)
Servers.Manager
۰۷-۲۶-۱۳۸۷, ۰۴:۲۶ بعد از ظهر
من چندتا پیشنهاد همچنین مشکل دارم:
اول پیشنهادها:
1. اضافه کردن /date برای نمایش تاریخ شمسی یا میلادی
2. اضافه کردن /time برای نمایش ساعت ایران
3.اضافه کردن /status با زدن این کامند توسط کاربر آیدی طرف توی استاتوس بار روبات قرار بگیره :d
مشکلات:
1. چطوری میشه سطرها رو پایین همدیگه چید: <br> جواب نداد
2. چطوری میشه کاری کرد که روبات به کامندهایی که بهش تعریف کردیم گیر نده و نگه دیگه تکرار نکن مثلا برای /jock که کاربر میخواد به چندتا جوک نگا کنه ولی روبات نمیزاره
با تشکر :rolleyes:
mjanbazi
۰۷-۲۶-۱۳۸۷, ۰۶:۰۷ بعد از ظهر
من چندتا پیشنهاد همچنین مشکل دارم:
اول پیشنهادها:
1. اضافه کردن /date برای نمایش تاریخ شمسی یا میلادی
2. اضافه کردن /time برای نمایش ساعت ایران
3.اضافه کردن /status با زدن این کامند توسط کاربر آیدی طرف توی استاتوس بار روبات قرار بگیره :d
مشکلات:
1. چطوری میشه سطرها رو پایین همدیگه چید: <br> جواب نداد
2. چطوری میشه کاری کرد که روبات به کامندهایی که بهش تعریف کردیم گیر نده و نگه دیگه تکرار نکن مثلا برای /jock که کاربر میخواد به چندتا جوک نگا کنه ولی روبات نمیزاره
با تشکر :rolleyes:
سلام سیاوش جان
منم با نظرش موافقم
شما این قابلیت ها رو اضافه کن
کاری کن با زدن / مختلف به جدول های مختلف دسترسی پیدا کنیم مثلا با زدن jok/ به جدول جوک بره تو دیتابیس بره
فکر کنم با یک select ساده بتونیم این کارو کنیم
من هم روش کار می کنم امیدوارم بتونم زودتر از تو این سرویسو بزارم (البته با اجازه)
مرسی
برو بچ نظر بدین تا بات بهتر و کامل تر شه با نظر هم می تونیم خیلی باحالش کنیم
ممنون از همه ی شما
Siavash
۰۷-۲۶-۱۳۸۷, ۰۶:۰۷ بعد از ظهر
خوب! من يه چند وقتي به خاطر يك كنفرانس اينجا نبودم و همين امروز صبح رسيدم.
پست هاي دوستان رو خوندم، خيلي هاشون جالب و مفيد بودن و سعي كردم در نسخه ي جديد اونايي رو كه پيچيده نيستند اضافه كنم.
توي اين نسخه يك تغيير خيلي خيلي اساسي داريم و اون هم الگوپذيري هست كه بايد يك آموزش دربارش بخونيد. البته سيستم قبلي همچنان سر جاش باقي هست. اول ليست امكانات جديد رو مي گم و بعد هم يك آموزش كوتاه درباره ي الگوها.
امكانات جديدي كه در حال حاضر يادم مياد:
افزودن بخشي به نام Test bot جهت تست كردن بات بصورت آفلاين
برطرف كردن نگرفتن پيغام از وب مسنجر.
اضافه شدن تگي به نام <nl> جهت رفتن به خط بعد (مثال داخل Database موجود هست.)
اضافه شدن تگي با عنوان <break> جهت شكاندن پاسخ به چند پيغام (مثال در Database موجود است.)
تغيير ظاهري محيط و تغيير دكمه ها و ... به استايل XP.
افزودن تگ <like> براي سوال هاي مشابه. (مثلاً Chetori و حالت چطوره، كه كافيه جواب يكي را تعيين كنيد و ديگري را بصورت <like> اضافه كنيد.
افزودن سويچ هاي /date و /time.
افزودن لاگين خودكار بات در صورت قطع شدن به اين صورت كه بات هر يك دقيقه چك مي كند كه آيا آفلاين است يا آنلاين و در صورت آفلاين بودن خود را مجدداً لاگين مي كند.
تغيير آيكان برنامه.
افزودن Shortcut براي مخفي كردن برنامه (Ctrl+H) و تست بات.
افزودن تگ هاي <set> و <get> كه در آموزش توضيح داده خواهد شد.
ايجاد فايل Setup.bat جهت برطرف شدن ايراد هايي كه به خاطر كمبود بعضي فايل ها در سيستم دوستان ايجاد ميشد (مثلا File **** is missing). كافيه اين فايل رو قبل از باز كردن برنامه اجرا كنيد تا فايل هاي مورد نياز رو داخل پوشه هاي مناسب كپي كنه. از دوست خوبمون Servers.Manager بابت درست كردن اين فايل و دوستمون r-co به خاطر پيدا كردن و تهيه ي فايل هاي مورد نياز تشكر مي كنم.
آموزش
و اما آموزش الگو و نحوه ي استفاده از اون:
منظور از الگو اين هست كه به جاي اينكه فقط براي يك كلمه ي خاص جواب تعيين كنيم براي يك سري مجموعه عبارت جواب تعيين كنيم! با مثال بهتر متوجه خواهيد شد:
داخل بانك اطلاعاتي يك Table هست به نام Patterns كه با Access مي تونيد اطلاعات به اون اضافه كنيد. يك سري الگو بصورت پيشفرض داخل اين Tableقرار داره كه به بررسي اونا مي پردازيم.
اوليش *chetori* هست! اين به اين مفهوم هست كه در صورتي كه كلمه ي چطوري توي هر عبارتي باشه به اين الگو تعلق مي گيره. مثلاً در صورتي كه كاربري بگه chetori azizam جواب بات عبارت مقابل اين الگو خواهد بود.
حالا در صورتي كه ستاره ي اول وجود نداشت يعني عباراتي كه با chetori شروع مي شن به اين الگو تعلق مي گيرن. پس * به مفهوم ادامه دار بودن از اون طرف يا جاي خالي هست.
الگوي بعدي كه بررسي مي خوايم بكنيم اين هست: esmam * hast
همونطوري كه گفتم * به مفهوم جاي خالي مي تونه باشه. هر عبارتي كه با esmam شروع بشه و با hast تموم بشه توي اين الگو قرار مي گيره. مثلا esmam siavash hast.
اگر به Response اين الگو دقت كنيد يك تگ جديد خواهيد ديد و بك متغير جديد.
اول به متغير كه <$star1> هست مي پردازيم. اين مقدار با مقداري كه به جاي ستاره ي اول هست جايگزين مي شه. مثلا در esmam siavash hast به جاي * كلمه ي siavash قرار گرفته پس <$star1> مقدارش siavash خواهد شد. <$star2> مقداري هست كه به جاي ستاره ي دوم قرار مي گيره كه با توجه به اينكه در اين الگو يك ستاره بيشتر نداريم خالي خواهد بود.
مثلاً اگر الگوي * yani * رو داشته باشيم و كاربر عبارت cat yani gorbe رو به بات بده <$star1> كلمه ي cat و <$star2> كلمه ي gorbe خواهد بود.
خوب حالا بريم سراغ تگ <set>. همونطور كه اينجا مي بينيم در انتهاي response براي esmam * hast عبارت زير رو داريم:
<set>name<to><$star1></set>يعني مقدار name براي اين كاربر رو به <$star1> تغيير بده! با اجراي اين بخش مقدار <$star1> در بانك اطلاعاتي (SavedData Table) به عنوان مقدار براي name اين كاربر ذخيره ميشه و براي هميشه در حافظه ي بات مي مونه.
پس اگر من با آيدي test به بات بگم esmam siavash hast براي مقدار name كاربر test مقدار siavash ذخيره خواهد شد.
حالا اگر الگوي بعدي رو ببينيد كه *esmam chie* هست در Responseش عبارت زير رو داريم:
Ta jaii ke yadame esmet <get>name<default>Majhool</get>e!احتمالاً حدث زديد اين عبارت چيكار مي كنه! با استفاده از تگ <get> مقدار name ذخيره شده براي كاربر رو بدست مياريم! مقداري كه جلوي <default> نوشته شده هم مقدار پيشفرض رو تعيين مي كنه! يعني در صورتي كه مقدار name براي اين كاربر ذخيره نشده باشه در اين مثال Majhool به جاش قرار ميده.
پس بگذاريد يك مكالمه ي تست با بات داشته باشيم:
<bot>: Avval!
Siavash: esmam chie?
<bot>: Ta jaii ke yadame esmet Majhoole!
Siavash: esmam siavash hast
<bot>: siavash jan, esmet yadam mimoone!
Siavash: esmam chie?
<bot>: Ta jaii ke yadame esmet siavashe!
Siavash: esmam ali hast
<bot>: ali jan, esmet yadam mimoone!
Siavash: esmam chie?
<bot>: Ta jaii ke yadame esmet alie!
پس طريقه ي استفاده ي تگ هاي <get> و <set> رو ياد گرفتيم. با استفاده از اين روش مي تونيم هر اطلاعاتي از كاربر بپرسيم و مقدارش رو براي كاربر ذخيره كنيم و بعد ها از اون در جوابمون استفاده كنيم.
نكته ي بعدي در الگو ها ستون Priority هست كه داخلش يك سري عدد قرار گرفته! اين اعداد اولويت الگو ها رو مشخص مي كنند. هر چقدر عدد اولويت بالاتر باشه الگو داراي اولويت بالاتري هست.
براي مثال الگو هاي بعدي رو بررسي مي كنيم.
الگوي *salam* عبارت هاي خيلي زيادي رو مي پوشونه! يعني هر عبارتي كه داخلش سلام باشه جزو اين الگو قرار مي گيره و بات به كاربر سلام مي كنه. اما فرض كنيم كاربر به بات بگه salamat bashi azizam. در اين صورت بات بايد جواب ديگري به كاربر بده چون منظور كاربر سلام كردن نبوده. براي اين كار الگوي ديگري تعيين مي كنيم با مقدار *salamat bashi*. اينجا يك مشكل پيش مياد! هر دو الگو براي عبارت salamat bashi azizam درست هستند. در اين مواقع بات الگويي كه اولويت بالاتري داررو انتخاب مي كنه! مثلا در اينجا چون *salamat bashi* اولويت 80 رو داره و *salam* اولويت 60 براي عبارت salamat bashi azizam جواب الگوي *salamat bashi* انتخاب ميشه كه دقيقاً جوابي هست كه انتظارش رو داريم.
نكته ي بعدي اين كه بات هنوز عبارت هاي داخل Message Table رو چك مي كنه و در صورتي كه جواب قطعي در اين Table پيدا نشد به دنبال جواب در بخش Pattern مي گرده! پس در صورتي كه مي خواهيد براي يك عبارت قطعي (بدون *) جوابي تعيين كنيد اين كار رو در Message Table انجام بديد تا سرعت عمليات سريع تر باشه.
بخش الگوها كمي پيچيده تر از بقيه ي بخش ها هست اما خيلي به كارايي بات اضافه مي كنه. هر سوالي در باره ي الگو ها داشتيد همينجا بپرسيد.
در ورژن بعدي قابليت موضوع گيري رو با بات اضافه خواهم كرد. اين كار رو در اين ورژن نكردم چون اون موضوع هم كمي پيچيده هست و يك دفعه درك هر دو موضوع كمي دشوار مي شد.
در حال حاضر يكي از مهمترين كار هايي كه براي اين بات بايد انجام داد ايجاد يك Help كامل جهت استفاده از اين نرم افزار هست. يعني تمام بحث هاي اين تاپيك بصورت يك Help يا Chm File در بياد. اگر دوستان تمايل به كمك كردن در اين بخش رو دارن خوشحال مي شم اعلام كنند.
پسورد:
www.artificial.ir
r-co
۰۷-۲۶-۱۳۸۷, ۰۶:۳۰ بعد از ظهر
همانطور که می دونی سیاوش جان من از اولین کسانی بودم که فعالیتم رو تو این سایت آغاز کردم و قبل از اون هم با هم در ارتباط بودیم اگه یادتون باشه.
من در زمینه Help بات آماده ام
r-co
۰۷-۲۶-۱۳۸۷, ۰۷:۱۲ بعد از ظهر
اینم یه مثال واسه آقا سیاوش درباره پست های قبلی
که سوالو بصورت عکس و دیتابیس گفتم البته همون سوال پست قبلیام بود
Download For Mr Siavash (http://m-rezaei.persiangig.com/testpm.rar)
r-co
۰۷-۲۶-۱۳۸۷, ۰۷:۳۳ بعد از ظهر
SMClient v1.3.2 تنها چیزی که بهش اضافه شده status/ هست کا بازدن status/ آیدی پی ام دهنده تو استاتوس نشون می ده
status/
Download SMClient v1.3.2 (http://m-rezaei.persiangig.com/SMClient%20v1.3.2.rar)
r-co
۰۷-۲۶-۱۳۸۷, ۱۰:۵۹ بعد از ظهر
سیاوش تو این نسخه جدید مشکلی وجود داره که اگه برطرف کنی عالی میشه
تو نسخه های قبلی با نوشتن کد پایین بات جواب می داد ولی الان جواب نمی ده
---------------------------------------------------------------------------------
If Left(Message, 6) = "testpm" Then
"Response = "Test Pm Ok
End If
---------------------------------------------------------------------------------
mjanbazi
۰۷-۲۶-۱۳۸۷, ۱۱:۱۵ بعد از ظهر
سیاوش تو این نسخه جدید مشکلی وجود داره که اگه برطرف کنی عالی میشه
تو نسخه های قبلی با نوشتن کد پایین بات جواب می داد ولی الان جواب نمی ده
---------------------------------------------------------------------------------
If Left(Message, 6) = "testpm" Then
"Response = "Test Pm Ok
End If
---------------------------------------------------------------------------------
rco جان به اینصورت این کارو انجام بده شما sckyahoo.senddata رو نمی زنی معلومه جواب نمی ده باید جوابو براش ارسال کنی این خطو اضافه کن جواب می ده
If Left(Message, 5) = "/time" Then
((Response = "Now Time IS:" & str(Time
( sckYahoo.SendData sendPM(tUser.Text, PersonId, Response)
End If
Siavash
۰۷-۲۷-۱۳۸۷, ۱۲:۰۴ قبل از ظهر
اینم یه مثال واسه آقا سیاوش درباره پست های قبلی
که سوالو بصورت عکس و دیتابیس گفتم البته همون سوال پست قبلیام بود
Download For Mr Siavash (http://m-rezaei.persiangig.com/testpm.rar)
مشكلتون رو متوجه شدم... در اولين فرصت يك نمونه براتون قرار ميدم...
SMClient v1.3.2 تنها چیزی که بهش اضافه شده status/ هست کا بازدن status/ آیدی پی ام دهنده تو استاتوس نشون می ده
status/
Download SMClient v1.3.2 (http://m-rezaei.persiangig.com/SMClient%20v1.3.2.rar)
بابت اضافه كردن اين قابليت ممنون!
سیاوش تو این نسخه جدید مشکلی وجود داره که اگه برطرف کنی عالی میشه
تو نسخه های قبلی با نوشتن کد پایین بات جواب می داد ولی الان جواب نمی ده
---------------------------------------------------------------------------------
If Left(Message, 6) = "testpm" Then
"Response = "Test Pm Ok
End If
---------------------------------------------------------------------------------
دليل اين مشكلتون اين هست كه در بخش سويچ ها قرار داديد اين شرط رو. شرط اول براي سويچ ها اين هست كه اولين كاراكتر اون / باشه اما testpm با / شروع نميشه!
پس يا بايد شرط رو خارج از اون شرط قرار بديد يا بايد با / شروع كنيد نام سويچ رو، مثلاً /testpm
r-co
۰۷-۲۷-۱۳۸۷, ۱۰:۴۰ قبل از ظهر
سیاوش من همین کدsendpm رو تونسخه های قبلی قرار می دادم به راحتی جواب می داد ولی تو این نسخه اینطوری نیست. من یه نمونه از هر دو رو واسه دانلود گذاشتم(هم نسخه قدیم هم جدید) ببینیش حتما مشکل رو می فهمی....؟
در SMClient v1.2.4 کار می کنه ولی در SMClient 1.3.2 کار نمی کنه ؟؟؟؟؟؟؟
Download For Siavash (http://m-rezaei.persiangig.com/SMClient.rar)
Siavash
۰۷-۲۷-۱۳۸۷, ۰۶:۵۷ بعد از ظهر
اتفاقاً اين به خاطر باگي بود كه در نسخه ي قبل وجود داشت! يعني كار درست در نسخه ي جديد داره انجام ميشه. دليلش هم اين هست كه جواب شما با جواب تهي جايگزين ميشه. براي برطرف كردن اين مشكل از Else بايد استفاده كنيد. يا اينكه اون بخش رو با اين كد تعويض كنيد:
If Left(Message, 6) = "sendpm" Then
Response = "Test Send Pm OK"
sckYahoo.SendData sendPM(tUser.Text, PersonId, Response)
Exit Sub
End If
دليل اينكه اين اتفاق مي افته اين هست كه ابتدا شما مقدار Response رو تغيير ميديد و بعد در خط هاي بعد مقدار Response رو با استفاده از getResponse ميخواد بدست بياره كه به خاطر پيدا نشدن جواب و تهي بودن اون مقدار "" داخل Response ريخته مي شه و در نتيجه بات فكر مي كنه كه جوابي موجود نبوده.
در ورژن قبلي وقتي جوابي پيدا نميشد تابع getResponse با ارور از تابع خارج مي شد (كه به خاطر استفاده از On error به تا انتهاي تابع getResponse نمي رفت و مقدار تهي جايگزين جواب نميشد) و در 1.3.1 اين مشكل حل شده.
انشاالله در نسخه ي بعدي ساختار بخش GetPM رو كمي تغيير ميدم تا ساده تر بشه به اون امكانات جديد اضافه كرد.
r-co
۰۷-۲۷-۱۳۸۷, ۰۸:۵۴ بعد از ظهر
به نظر من سیستم قبلی ارسال پی ام مثلاsendpmدر مثال های قبلی خیلی بهتر از این نمونه جدید هست. اگه بشه در نسخه جدید مانند سری قبلی باشه خیلی عالی تره تا اینی که الان هست-- تغییر در این سیستم موجب میشه که ما کلی از کدارو تغییر بدیم--
Siavash
۰۷-۲۷-۱۳۸۷, ۰۹:۱۲ بعد از ظهر
دوست خوب!
در اون حالت در هر بار سوالي كه كاربر مي پرسيد و در بانك اطلاعاتي وجود نداشت يك Errorداخلي توليد ميشد. اين اصلاً از نظر برنامه نويسي درست نبود. در حال حاضر هم با قرار دادن يك Exit Sub كه در مثال بالا قرار دادم براحتي مي تونيد همين كاري كه مي خواهيد رو انجام بديد. در هر صورت در ورژن بعدي انشاالله يك استاندارد در اين زمينه درست مي كنيم تا دقيقا جاي اضافه كردن كد هاي جانبي مشخص باشه و ديگه تغيير نكنه... در اين ارتباط حق كاملاً با شماست.
يك ايده - لطفاً تمام دوستان بخوانند:
تصميم دارم در نسخه هاي آينده يك قسمت به كد اضافه كنم تا اطلاعات جديدي كه به هر بات اضافه مي شه در يك پايگاه داده ي مركزي ذخيره بشه! مثلاً وقتي من يك الگوي جديد به بات اضافه مي كنم در يك پايگاه مركزي اون الگوي جديد با نام خود من در اونجا ثبت بشه. همينطور براي تمام دوستاني كه از اين بات استفاده مي كنند.
هدف اين هست كه يك بات مركزي با كمك تمام دوستان ساخته بشه كه بتونه به اكثر سوالات جواب بده. اين بانك اطلاعاتي هم در دسترس عموم قرار خواهد گرفت يعني در نهايت به نفع خود دوستان هم خواهد بود.
حالا نظرتون در اين ارتباط چي هست؟ آيا روي نوشتن همچين سيستمي كار كنم يا خير؟
r-co
۰۷-۲۷-۱۳۸۷, ۰۹:۴۲ بعد از ظهر
1.سیاوش جان به نظر من این کار باعث میشه که کسانی که هیچ زحمتی نکشیده اند به راحتی به دیتابیسی که ما در این چند ساله بابتش زحمت کشیدیم دست پیدا کنند.
2.با این کار همه بات ها مثل هم میشن و این از جذابیت بات های مختلف می کاهه و همه عین هم میشن
3.این هنر هر کس خواهد بود که چه جوابایی واسه بات بذاره
4.با این کار عملا همه منتظر بقیه می مونن که دیتابیس رو به روز کنن یا چیزه جدیدی بهش اضافه کنند
5.اگه اینطوری بشه دیگه جواب بات ها قابل پیشبینی میشه و بی مزه میشن
6.مهم تر از همه نابرده رنج کنج میسر نمی شود<----------------------------------------------
-----------------------------------------------------نظرمن اصلا با این نظر موافق نیستم -----------
هرکس این مطالب رو قبول داره همین مطلب منو نقل وقول کنه...
BeHNaM
۰۷-۲۷-۱۳۸۷, ۰۹:۵۵ بعد از ظهر
1.سیاوش جان به نظر من این کار باعث میشه که کسانی که هیچ زحمتی نکشیده اند به راحتی به دیتابیسی که ما در این چند ساله بابتش زحمت کشیدیم دست پیدا کنند.
2.با این کار همه بات ها مثل هم میشن و این از جذابیت بات های مختلف می کاهه و همه عین هم میشن
3.این هنر هر کس خواهد بود که چه جوابایی واسه بات بذاره
4.با این کار عملا همه منتظر بقیه می مونن که دیتابیس رو به روز کنن یا چیزه جدیدی بهش اضافه کنند
5.اگه اینطوری بشه دیگه جواب بات ها قابل پیشبینی میشه و بی مزه میشن
6.مهم تر از همه نابرده رنج کنج میسر نمی شود<----------------------------------------------
-----------------------------------------------------نظرمن اصلا با این نظر موافق نیستم -----------
هرکس این مطالب رو قبول داره همین مطلب منو نقل وقول کنه...
منم با r-co موافقم !
Siavash
۰۷-۲۷-۱۳۸۷, ۱۰:۳۹ بعد از ظهر
اين بستگي به هدف ما داره. هدف چي هست؟
ساخت يك بات پيشرفته در زبان فارسي؟ يا ساخت يك بات شخصي؟
اگر اينطور بخوايم فكر كنيم پروژه هاي كدباز اصلاً معني ندارن... مثلاً شما از لينوكس استفاده مي كنيد، واقعاً تو ساختش زحمت كشيديد؟ ميشه اينجا گفت نابرده رنج ...؟
خوب اين كه اگر بات ها همه شبيه هم باشن جالب نيست كاملاً درسته. اما خوب يك بات مي تونه به جز پاسخ گويي سرويس هاي زيادي بده! اين مي توني عملكرد بات ها رو كاملاً متفاوت كنه و هر باتي جذابيت خودش رو داشته باشه.
حالا چند تا راه پيشنهاد مي كنم در اربتاط با اينها پيشنهاد بديد:
مي تونيم يك ستون براي الگو ها قرار بديم كه بتونن 0 يا 1 باشن و فقط اون ستون هايي كه 1 هستند با Database مركزي سينك بشن.
مي تونيم اون Database مركزي رو در اختيار همه قرار نديم و فقط در اختيار افرادي كه از يك حد بيشتر كمك كردند قرار بديم.
اگر پيشنهاد ديگري داريد حتماً بگيد!
ardalan_farzin
۰۷-۲۷-۱۳۸۷, ۱۱:۲۰ بعد از ظهر
آقایون اینو نگاه کنید
http://www.robodanesh.com/
Siavash
۰۷-۲۷-۱۳۸۷, ۱۱:۳۰ بعد از ظهر
بات خوبي هست. نحوه ي يادگيريش خيلي جالب بود...
اما فكر مي كنم ادعاش به عنوان "اولین ربات اینترنتی و هوشمند ایرانی" كمي اغراق آميز باشه با توجه به اينكه دومين 2 ماه پيش ثبت شده...
r-co
۰۷-۲۷-۱۳۸۷, ۱۱:۳۷ بعد از ظهر
1.خوب یکی می تونه بیاد یه مقداری که بتونه از دیتابیس بزرگ استفاده کنه یاده بده بعد از هزاران آموزشی که بقیه دوستان می دن استفاده کنه که ممکنه یکی 10000 آموزش بده یکی مثلا20 تا بعد اون 20 تایی بیاد 10000تا ببره که اصلا کاره درستی نیست.
2.اینطوری که دیتا بیس بهم میریزه من بخوام سلام یادش بدم با یک جواب دوستان هم همین کارو منن مشکل پیش میاد
3.بعضی ها می خوان چیزهای کاملا شخصی و خصوصی یاد بدن که...........
4.شما که میگین هر کی می خواست از دیتا بیس بزرگ استفاه کنه بزنه 0 یا1 خوب شما می تونید 2 نسخه برنامه بدین یکی دقیقا مثل نسخه های قبلی و دیگری همین چیزی که داری میگی هر کی خواست اولی و هر کی خواست دومی رو دانلود میکنه....
5. خوب اگه قراره فقط یکی روبات فارسی باشه که زحمت این همه دوستان چی میشه؟
6. شما میگین یه روبات فارسی باشه. نه روبات های شخصی؟.. من منظورتو نگرفتم....؟
-----------------------------------------------------------------------------------------------
هرکس این مطالب رو قبول داره نقل وقول کنه...
BeHNaM
۰۷-۲۷-۱۳۸۷, ۱۱:۴۶ بعد از ظهر
1.خوب یکی می تونه بیاد یه مقداری که بتونه از دیتابیس بزرگ استفاده کنه یاده بده بعد از هزاران آموزشی که بقیه دوستان می دن استفاده کنه که ممکنه یکی 10000 آموزش بده یکی مثلا20 تا بعد اون 20 تایی بیاد 10000تا ببره که اصلا کاره درستی نیست.
2.اینطوری که دیتا بیس بهم میریزه من بخوام سلام یادش بدم با یک جواب دوستان هم همین کارو منن مشکل پیش میاد
3.بعضی ها می خوان چیزهای کاملا شخصی و خصوصی یاد بدن که...........
4.شما که میگین هر کی می خواست از دیتا بیس بزرگ استفاه کنه بزنه 0 یا1 خوب شما می تونید 2 نسخه برنامه بدین یکی دقیقا مثل نسخه های قبلی و دیگری همین چیزی که داری میگی هر کی خواست اولی و هر کی خواست دومی رو دانلود میکنه....
5. خوب اگه قراره فقط یکی روبات فارسی باشه که زحمت این همه دوستان چی میشه؟
6. شما میگین یه روبات فارسی باشه. نه روبات های شخصی؟.. من منظورتو نگرفتم....؟
-----------------------------------------------------------------------------------------------
هرکس این مطالب رو قبول داره نقل وقول کنه...
آره درسته با شما موافقم
BeHNaM
۰۷-۲۷-۱۳۸۷, ۱۱:۵۰ بعد از ظهر
آقایون اینو نگاه کنید
ربودانش بخش گفتگو با ربودانش (http://www.robodanesh.com/)
این هم یه اسکریپت شبیه روبو دانش
r-co
۰۷-۲۸-۱۳۸۷, ۱۲:۰۰ قبل از ظهر
آخه ardalan_farzin برنامه SMClient در حد اینه که میای چنین پیفام معنی داریو میفرستی....
SMClient کجا و این کجا.... اصلا قابل مقایسه نیست
BeHNaM
۰۷-۲۸-۱۳۸۷, ۱۲:۰۶ قبل از ظهر
Code Snippet For Bot
mjanbazi
۰۷-۲۸-۱۳۸۷, ۱۲:۰۹ قبل از ظهر
rco از اینکه بات اوپن سورس هست مشکلی داری؟؟؟؟؟؟؟؟
اگه بات اوپن سورسه پس دیتابیسش هم اوپن سورس باشه
سیاوش جان یک دیتابیس مرکزی برای بات قرار بده تا همه بهش آموزش بدن و همه هم ازش به یک اندازه استفاده کنن مگه بات باید به اسم یک نفر تموم بشه
پس اینطوره بات ماله سیاوشه اونم می تونست سورسو در اختیار ما قرار نده پس نتیجه می گیریم حتی اگه یک نفر به بات یک کلمه ر و آموزش بده کلیه
پس اصلا خودتو ناراحت نکن سیاوش جان کارتو انجام بده
BeHNaM
۰۷-۲۸-۱۳۸۷, ۱۲:۱۸ قبل از ظهر
rco از اینکه بات اوپن سورس هست مشکلی داری؟؟؟؟؟؟؟؟
اگه بات اوپن سورسه پس دیتابیسش هم اوپن سورس باشه
سیاوش جان یک دیتابیس مرکزی برای بات قرار بده تا همه بهش آموزش بدن و همه هم ازش به یک اندازه استفاده کنن مگه بات باید به اسم یک نفر تموم بشه
پس اینطوره بات ماله سیاوشه اونم می تونست سورسو در اختیار ما قرار نده پس نتیجه می گیریم حتی اگه یک نفر به بات یک کلمه ر و آموزش بده کلیه
پس اصلا خودتو ناراحت نکن سیاوش جان کارتو انجام بده
آقای عزیز تا اونجا که من فروم رو دیدم r-co عزیز هر چی بلد بوده و داشته رو در اختیار بقیه گذاشته اینم نظر شخصیشه شما هم نظرتو بده چیکار بقیه داری
mjanbazi
۰۷-۲۸-۱۳۸۷, ۱۲:۲۲ قبل از ظهر
ببین بهنام وقتی خود سیاوش اومده گفته اوپن سورسه rco چرا دوباره گفت نه
مگه اوپن سورس بودن بات مشکلی ایجاد می کنه
می بینی که نرم افزارهای اوپن سورس کم نیستند و خیلی بهتر از بقیه هستند و کاملتر
هدف از اوپن سورس بودن بات از همون اول این بود که هرکی میتونه قابلیت بهش اضافه کنه تا بهتر شه
پس دیتابیس اوپن سورس هم هم مزیتو داره
مگه ایرادی داره همه از یک دیتابیس استفاده کنن؟؟؟؟؟؟؟؟؟؟ مثلا چی میشه دیتابیس همه بات ها یکی باشه حتما باید کلمات بات من با بات rco فرق داشته باشه؟؟؟؟؟؟؟؟؟؟
r-co
۰۷-۲۸-۱۳۸۷, ۱۲:۴۰ بعد از ظهر
mjanbazi جان من از وقتی که به عنوان اولین نفر اومدم تو این بخش تا الان هر چی در توان داشتم گذاشتم یعنی اقا سیاوش سورس برنامه رو گذاشته و گفته هر که میتونه به بهبود این برنامه کمک کنه منم هز چی رو خودم می فهمیدم یا سوالاتی که دیگران پرسیدن رو جواب دادم.
ولی اینکه بخوام دیتا بیس به اشتراک بگذاریم یه مقدار نا خوش آینده.
من کی گفتم با قرار دادن سورس برنامه مخالفم اگه مخالف بودم که این همه پست نمی دادم!!!
ولی با اشتراگ گذاشتن دیتا بیس مخالفم.
چون دیتا بیس چیزی نیست که سخت باشه یا کدهای خاصی رو بخواد...
هنر هر کسی رو نشون می ده
BAHMANNN
۰۷-۲۹-۱۳۸۷, ۰۶:۲۹ قبل از ظهر
سلام و خسته نباشيد من تمام نسخه هارو تست کردم نمي دونم چرا رو ديال آپ کار نمي کنه ولي رو اي دي اس ال کار مي کنه تازه يه ايدي هم که در حال لوگين بود ديگه آيدي هم کار نمي کنه فکر کنم قفل شده
البته فعلا دقتي نکردم رو سورس گفتم بگم شايد مشکل رو بدونيد و بايد چه کرد که رو ديال آپ هم کار کنه
r-co
۰۷-۲۹-۱۳۸۷, ۱۰:۴۸ قبل از ظهر
دوست عزیز شرکت یاهو اگه یه آیدیو زیاد آن آف کنی واسه ساعاتی می بنده دلیلش میتونه این باشه....
اما چرا با دیای آپ آن نمی شه رو نمی دونم آخه من دسترسی به دیال آپ ندارم ولی فکر نکنم با دیال آپ مشکل داشته باشه سرس برنامه...
r-co
۰۷-۲۹-۱۳۸۷, ۱۲:۰۵ بعد از ظهر
من کدهایی واسه نسخه جدید گذاشتم که بتونه مانند نسخه های قبلی پی ام از تو vb به راحتی قبل بفرسته ولی بعد از چند دقیقه چنین ایرادی از Function getResponse می گیره؟؟
http://m-rezaei.persiangig.com/artificial/error.JPG
مشکل میتونه چی باشه......؟
BAHMANNN
۰۷-۲۹-۱۳۸۷, ۰۶:۰۵ بعد از ظهر
بله عزيز اونو مي دونم الان آيدي قفلش باز شد
يک بار وصل شدم با برنامه کار کرد اما دوباره حالا هرچي لوگين مي کنم وصل نمي شه
فکر مي کنم مشکل از خودم باشه
حالا اگه فهميدم اطلاع مي دهم که ديگه دوستاني که مثل من مشکل داشتن حل بشه
BeHNaM
۰۷-۳۰-۱۳۸۷, ۰۳:۰۷ قبل از ظهر
اسکریپت Yahoo invisible Checker براي نمايش وضعيت ياهو !
r-co
۰۷-۳۰-۱۳۸۷, ۰۹:۱۶ قبل از ظهر
BeHNaM از اسکریپت زیبای شما تشکر ویژه می کنیم.
BeHNaM
۰۷-۳۰-۱۳۸۷, ۰۶:۰۶ بعد از ظهر
بچه ها امروز توی نت داشتم میگشتم با یک روبات خیلی جالب برخوردم که یه مقدار امکاناتش برام جالب بود گفتم بهتون بگم شاید ما هم بتونیم از این امکانات استفاده کنیم !
جالب ترین کاری که کرده بودند این بود که یک Invisible چکر توی یاهو درست کرده بودند و با دستور inv/ بهتون میگفت که ایدی Invisible هست یا نه .
البته یه خورده عجیب بود چک کردنش به این صورت که یک پی ام به طرف که ایدیش رو میخواست چک کنه میداد و میفهمید که Invisible هست یا نه .
و دیگر امکاناتش هم این بود که جک یا اس ام اس یا فال رو به صورت راندوم میداد که هنوز ما باهاش یه خورده مشکل داریم !
آیدی این روبات RoboaraK هستش خودتون ببینید !
soroosh-ab
۰۷-۳۰-۱۳۸۷, ۰۶:۵۸ بعد از ظهر
اسکریپت yahoo invisible checker براي نمايش وضعيت ياهو !
دموي سيستم: Yahoo Invisible Checker (http://www.robobandar.co.cc)
توجه داشته باشین که این اسکریپت از یک سایت دیگه استفاده میکنه و یه حالت تقلبی داره ! به هر حال چیز جالبی هست ..... مرسی بهنام جان
r-co
۰۷-۳۰-۱۳۸۷, ۰۹:۲۰ بعد از ظهر
آقا بهنام رندم بودن جوابا که با <random>1<or>2<or>3</random> حل شده اگه منظورت چیزه دیگری باشه یه حرف دیگه است.
r-co
۰۷-۳۰-۱۳۸۷, ۰۹:۲۳ بعد از ظهر
اینم یه قابلیت های خاص که اگه رو بات پیاده سازی شه عالی تر میشه...
1. تشخیس invisible بودن افراد که به نظر من کاره بسیار ساده ایست
2. بات این قابلیت رو داشته باشه که بتونه بره تو روم!!!
1+2. بات به هنگام حظور در رم بتونه به افرادی که تازه وارد میشن یه پیغام خوش آمد بده
3. بات بتونه فایل های ارسالی به اونو تو پوشه ای ذخیره کنه مثلا فایل های با پسوند jpg یا هر چیزه دیگه که بشه تغییر داد با تعریف حجم خاص مثلا فایل jpg با حجم کمتر از 500kbرو ذخیره کنه
4. بات در مقابل دعوت به کنفرانس یا وب کم ویا... بتونه جواب های خاصی بده که اینم به نظر من ساده باشه
Servers.Manager
۰۷-۳۰-۱۳۸۷, ۱۱:۳۴ بعد از ظهر
اقا بهنام این اسکریپت invisible که گذاشتی متاسفانه فقط آفلاین آنلاین نشون میده و مخفی ها رو که اصله کاریه نشون نمیده :)
soroosh-ab
۰۸-۱-۱۳۸۷, ۰۷:۳۵ قبل از ظهر
اینم یه قابلیت های خاص که اگه رو بات پیاده سازی شه عالی تر میشه...
1. تشخیس invisible بودن افراد که به نظر من کاره بسیار ساده ایست
2. بات این قابلیت رو داشته باشه که بتونه بره تو روم!!!
1+2. بات به هنگام حظور در رم بتونه به افرادی که تازه وارد میشن یه پیغام خوش آمد بده
3. بات بتونه فایل های ارسالی به اونو تو پوشه ای ذخیره کنه مثلا فایل های با پسوند jpg یا هر چیزه دیگه که بشه تغییر داد با تعریف حجم خاص مثلا فایل jpg با حجم کمتر از 500kbرو ذخیره کنه
4. بات در مقابل دعوت به کنفرانس یا وب کم ویا... بتونه جواب های خاصی بده که اینم به نظر من ساده باشه
دقیقآ این چیزهایی هست که من می خوام مخصوصآ مورد اولی ! یادمه یه برنامه کوچک ساخته بودن و آیدی روبات و آنلاین میکرد و با یه دستور خاص invisible هارو چک می کرد اما دیگه نمیدونم چه برنامه ای بود ! یه ایرانی نوشته بودش !
در مورد 3 به نظرم باید برعکس باشه ! فایل رو واسه طرف بفرسته !البته همه با YHTTPFT باید انجام بشه ! ولی من نمیتونم انجام بدم !
اقا بهنام این اسکریپت invisible که گذاشتی متاسفانه فقط آفلاین آنلاین نشون میده و مخفی ها رو که اصله کاریه نشون نمیده :)
درمورد اون invisible چکر همونطور که گفتم از یه سایت دیگه استفاده می کنه ! سرور سایت اگه busy باشه دیگه کار نمیکنه !
از این استفاده میکنه :
Yahoo! Messenger invisible users detector / scanner / checker (http://invisible.e-it.ro/)
BeHNaM
۰۸-۱-۱۳۸۷, ۱۱:۵۸ قبل از ظهر
اقا بهنام این اسکریپت invisible که گذاشتی متاسفانه فقط آفلاین آنلاین نشون میده و مخفی ها رو که اصله کاریه نشون نمیده :)
دوست عزیز اسکریپت هیچ مشکلی نداره و کاملا جواب میده اگه یه آیدی رو زدی که آنلاین نشون داد ولی واسه شما اینویزیبل بود احتمالا شخص مورد نظر آیدیشو واسه گروه خاصی اینوییزیبل کرده
سروش جان من هیچ ادعایی نکردم که اسکریپت تقلبی هست یا اصلی یا از سایت دیگه استفاده میکنه یا نه که بخوای ریشه یابی کنی این به نظرم هر حال چیز به درد بخوریه واسه اونایی که وب پیج دارن و میخان یه صفحه از اونو بش اختصاص بدن و آمار وبشون بالاتر بره
به هر حال یه همچین اسکریپتی از یه سرور استفاده میکنه چه خود یاهو چه سایت دیگه
اینم لیست سرورایی که ازش استفاده میکنه:
'http://invisible.e-it.ro/yahoo.php?phpsessid='
'http://img.msg.yahoo.com/avatar.php?yids='
شما میتونی به جای سرور
http://invisible.e-it.ro/yahoo.php?phpsessid=
از
'http://opi.yahoo.com/online?u='
و از
"tcp://scsc.msg.yahoo.com",
استفاده کنی . البته اگه واردی
BeHNaM
۰۸-۱-۱۳۸۷, ۱۲:۰۸ بعد از ظهر
آقا بهنام رندم بودن جوابا که با <random>1<or>2<or>3</random> حل شده اگه منظورت چیزه دیگری باشه یه حرف دیگه است.
r-co جان اینو میدونم منظورم این بود که مثلا شما یه دیتابیس جک داری میخوای با زدن jok بات هر دفعه از یکی از Response های jok استفاده کنه یعنی از فیلد های مختلف استفاده کنه نه اینکه مجبور بشی همه جکهاتو توی یک فیلد جا بدی.
soroosh-ab
۰۸-۱-۱۳۸۷, ۰۶:۲۲ بعد از ظهر
دوست عزیز اسکریپت هیچ مشکلی نداره و کاملا جواب میده اگه یه آیدی رو زدی که آنلاین نشون داد ولی واسه شما اینویزیبل بود احتمالا شخص مورد نظر آیدیشو واسه گروه خاصی اینوییزیبل کرده
سروش جان من هیچ ادعایی نکردم که اسکریپت تقلبی هست یا اصلی یا از سایت دیگه استفاده میکنه یا نه که بخوای ریشه یابی کنی این به نظرم هر حال چیز به درد بخوریه واسه اونایی که وب پیج دارن و میخان یه صفحه از اونو بش اختصاص بدن و آمار وبشون بالاتر بره
به هر حال یه همچین اسکریپتی از یه سرور استفاده میکنه چه خود یاهو چه سایت دیگه
اینم لیست سرورایی که ازش استفاده میکنه:
'http://invisible.e-it.ro/yahoo.php?phpsessid='
'http://img.msg.yahoo.com/avatar.php?yids='
شما میتونی به جای سرور
http://invisible.e-it.ro/yahoo.php?phpsessid=
از
'http://opi.yahoo.com/online?u='
و از
"tcp://scsc.msg.yahoo.com",
استفاده کنی . البته اگه واردی
سلام . عزیز لازم نیست این چیزا رو به من بگی . http://opi.yahoo.com/online?u= سرور خود یاهو هست که فقط آنلاین و آفلاین رو نشون میده .,ولی چیزی راجبه tcp://scsc.msg.yahoo.com نشنیدم تا حالا ! چطوری میشه مستقیم از سرور خود یاهو استفاده کرد ؟
در ضمن مطمئن هستم اسکریپت از این چیزا پیچیده تر هست و یه روبات پشت این اسکریپت باید باشه ......
BeHNaM
۰۸-۲-۱۳۸۷, ۱۱:۴۶ قبل از ظهر
این پروتکل تحت TCP انجام میشه
یه query با استفاده از پروتکل YMSG به یاهو سرور فرستاده میشه که پاسخ این query برای ID های offline و invisible متفاوت هست.
در کل رفلکس آیدی های off و on را در مقابل packet های مختلف که به اونها سند میکنید متفاوته مثلا در مقابل یه invite . یاهو در مقابل پاکت های ارسالی شما در شرایط خاص رفلکس های مفیدی از خودش نشون میده که میشه با آنالیز اونها یه الگریتم جدید برای کشف راه حل مسئله پیدا کرد .
soroosh-ab
۰۸-۲-۱۳۸۷, ۰۵:۲۳ بعد از ظهر
این پروتکل تحت tcp انجام میشه
یه query با استفاده از پروتکل ymsg به یاهو سرور فرستاده میشه که پاسخ این query برای id های offline و invisible متفاوت هست.
در کل رفلکس آیدی های off و on را در مقابل packet های مختلف که به اونها سند میکنید متفاوته مثلا در مقابل یه invite . یاهو در مقابل پاکت های ارسالی شما در شرایط خاص رفلکس های مفیدی از خودش نشون میده که میشه با آنالیز اونها یه الگریتم جدید برای کشف راه حل مسئله پیدا کرد .
چطوری میشه اینکار رو انجام داد ؟ می تونی خودت انجام بدی ؟من میخوام طوری باشه که هیچوقت بخاطر مشغول بودن سرور اون سایت با مشکل مواجه نشم !
mjanbazi
۰۸-۳-۱۳۸۷, ۰۳:۰۲ بعد از ظهر
منم با اضافه کرده قسمتی برای پیدا کردن invisible در بات موافقم سیاوش اگر امکان دارد این قابلیت را به بات اضافه کن
soroosh-ab
۰۸-۳-۱۳۸۷, ۰۸:۳۰ بعد از ظهر
منم با اضافه کرده قسمتی برای پیدا کردن invisible در بات موافقم سیاوش اگر امکان دارد این قابلیت را به بات اضافه کن
من همین الان موفق شدم اضافه کنم ! ایولللللللللللل .... واقعآ از مرسی از همه مخصوصآ سیاوش .
Servers.Manager
۰۸-۴-۱۳۸۷, ۰۱:۲۳ قبل از ظهر
من همین الان موفق شدم اضافه کنم ! ایولللللللللللل .... واقعآ از مرسی از همه مخصوصآ سیاوش .
شما که موفق شدی، بزار ما هم استفاده کنیم دیگه :D البته اگه مایل باشی :rolleyes:
masoud-70
۰۸-۴-۱۳۸۷, ۰۱:۲۶ بعد از ظهر
سلام به همگي آقا من ميخوام دستور /help رو تو ديتا بيسم داشته باشم اگه ميشه بيشر توضيح بديد.بعد مي خوام مثلا دستور help رو ميزنم كل كارايي هاي روبات نشان داده بشه .اگه ميشه كمكم كنيد ممنونم
mjanbazi
۰۸-۴-۱۳۸۷, ۰۱:۳۶ بعد از ظهر
من همین الان موفق شدم اضافه کنم ! ایولللللللللللل .... واقعآ از مرسی از همه مخصوصآ سیاوش .
خوب اگه موفق شدی دیگه لازم نیست به سیاوش زحمت بدهیم شما لطف کن سورس برنامه را در همین تاپیک قرار بده
با تشکر
>>>>>>هدف از این تاپیک انتقال تجربیات و دانش ها است<<<<<<
ممنون
Siavash
۰۸-۶-۱۳۸۷, ۰۱:۳۳ قبل از ظهر
سلام! مجدداً چند مدتي نبودم!
در مورد پيدا كردن اينويزيبل... اگر در حجم كم بخواين كار كنيد كار سختي نيست. مي تونيد به افراد PM بديد، در صورتي كه Offline باشند پيام برگشت مي خوره (تو يه بخش در همين سورس بات هم وجود داره اگر isOffline رو سرچ كنيد داخل كد). اگر اينويزيبل باشه طرف پيامي برگشت نمي خوره و اينطور مي تونيد وضعيت افراد رو بدست بياريد. اين روش دو تا مشكل داره:
1- حتماً بايد به شخص پيام بديد.
2- بعد از چندين بار انجام اين كار اين روش رو ياهو بلاك مي كنه براي اون IP براي 12 ساعت...
توي نسخه ي بعدي يكي از امكانات Remote web access خواهد بود. يعني از راه دور با مرورگرتون مي تونيد روبات رو كنترل كنيد. در حال حاضر براي بات اين كار رو انجام دادم و در واقع يك Web Server ساده براي اون نوشتم اما به نظرم خيلي Stable نيست هنوز. در هر صورت احتمالاً يك نسخه ي اون رو براي تست قرار مي دم تا دوستان هم دربارش نظر بدن.
امكان بعدي كه وجود داره گرفتن و فرستادن فايل هست كه باز هم انجام شده بدون استفاده از Dll هاي ياهو! مسنجر كه در اولين فرصت بعد از پياده سازي اون به زبان VB اون رو هم در نسخه ي جديدي از بات قرار ميدم...
از دوستان هم به خاطر همكاريشون در بهتر شدن بات كمال تشكر رو دارم...
Servers.Manager
۰۸-۶-۱۳۸۷, ۰۲:۴۸ بعد از ظهر
سروش جان مثله اینکه نمیخواد بزاره :d
Servers.Manager
۰۸-۶-۱۳۸۷, ۰۲:۴۹ بعد از ظهر
سلام به همگي آقا من ميخوام دستور /help رو تو ديتا بيسم داشته باشم اگه ميشه بيشر توضيح بديد.بعد مي خوام مثلا دستور help رو ميزنم كل كارايي هاي روبات نشان داده بشه .اگه ميشه كمكم كنيد ممنونم
من دارم یه منو واسش میسازم کامل که شد همینجا میزارم استفاده بشه
soroosh-ab
۰۸-۶-۱۳۸۷, ۰۵:۵۹ بعد از ظهر
سلام . شرمنده نمیتونم سورس رو بذارم ولی بهترین کاری که می تونه راهنماییتون کنه اسنیف کردن پکت های برنامه هایی هست که واسه تشخیص اینویزیبل هستن مثل Budy spy . چیزهای جدیدی که به روبات اضافه کردم :
تشخیص آیدی مدیر با پسورد مشخص و وقتی شناسایی میشه مدیر با فرمان های خاصی مثلآ لیست پی ام ها توی فایل تکست واسش فرستاده میشه و مدیر می تونه روبات و ریستارت کنه و کلی کار دیگه که دیگه لازم به Web remote نداره .
تشخیص حالت افراد با توجه به پی ام هایی که به روبات میدن .
رای گیری از یوزر ها برای موضوعات مختلف .
گرفتن اخبار از RSS و ارسال به یوزر در خواست کننده .
امکان ارسال فایل به یوزر ها .
و به زودی فرهنگ لغت .... که روبات بعد از آماده شدن فرهنگ لغت کاملآ اماده میشه و اون موقع آنلاین میشه
Siavash
۰۸-۶-۱۳۸۷, ۰۸:۳۵ بعد از ظهر
كارهاي جالبي بوده...
البته خاصيت Webremote اين هست كه شما مثلاً اگر بخواين با نام كاربري ديگري بات رو آنلاين كنيد يا وقتي حتي بات شما آفلاين شده باشه كنترل روبات رو از دست نمي ديد. و در مواقعي كه بات رو روي يك سرور كه به Remote access اون دسترسي نداريد قرار ميديد نگران نيستيد كه اگر بات آفلاين شد چه كاري رو انجام بديد...
لازم به ذكر هست كه Buddy Spy تا جايي كه مي دونم به خاطر راهكاري كه استفاده مي كنه invisible finderش فقط براي ليست دوستان كار مي كنه و روي افرادي كه در ليست شما نباشن راهكارش كار نمي كنه... مگر اينكه البته جديداً روش جستجوش رو عوض كرده باشه...
Servers.Manager
۰۸-۷-۱۳۸۷, ۰۱:۲۲ بعد از ظهر
مهندس سروش هدف از این تاپیک کامل کردن برنامه و افزودن امکانات جدید به کمک همدیگه هست ، اگر قرار باشه هرکی چیزی واسه برنامه ساخت بگه نه نمیدم و هرکس واسه خودش نگهداره و تنها یک نفر به گسترش برنامه بپردازه که نمیشه open source
اینجا جاداره از سیاوش عزیز بابت این همه کار که کرده تشکر ویژه بکنم، انصافا ادمای مثل تو خیلی کم پیدا میشن که این همه کارو مجانی وبدون منت در اختیار عموم قرار میدن
من دارم یک منو واسه روبات میسازم درسته که ساختنش خیلی راحته ولی بعضی ها هنوز نمیتونن بسازن و واسشون مشکل شده، انشالله امروز فردا همینجا میزارم
با تشکر از همگی
Servers.Manager
۰۸-۷-۱۳۸۷, ۰۳:۴۳ بعد از ظهر
مشکلی که من الان دارم اینه
من توی روبات دستور /jock گذاشتم که اطلاعات رو با <jock> از توی دیتابیس روبات میخونه خوب حالا مشکل اینه که من توی چندین سطر جوکهای متفاوت دارم ولی روبات تنها اونیرو میخونه که بالاترین سطر هست و دیگه جوکهای دیگه رو نمیخونه و فقط یک جوک نمایش پیدا میکنه
اگه بشه کاری کرد که هر دفعه بطور راندوم یکی از <jock> هارو بخونه خیلی خیلی خوب میشه
mjanbazi
۰۸-۷-۱۳۸۷, ۰۴:۳۵ بعد از ظهر
مهندس سروش هدف از این تاپیک کامل کردن برنامه و افزودن امکانات جدید به کمک همدیگه هست ، اگر قرار باشه هرکی چیزی واسه برنامه ساخت بگه نه نمیدم و هرکس واسه خودش نگهداره و تنها یک نفر به گسترش برنامه بپردازه که نمیشه open source
اینجا جاداره از سیاوش عزیز بابت این همه کار که کرده تشکر ویژه بکنم، انصافا ادمای مثل تو خیلی کم پیدا میشن که این همه کارو مجانی وبدون منت در اختیار عموم قرار میدن
من دارم یک منو واسه روبات میسازم درسته که ساختنش خیلی راحته ولی بعضی ها هنوز نمیتونن بسازن و واسشون مشکل شده، انشالله امروز فردا همینجا میزارم
با تشکر از همگی
من هم همون اول گفتم که ظرفیت بعضی ها باید بالا باشد تا سورسو در اختیار دیگران قرار دهند
آقا مگه مشکلیه؟؟؟؟؟ ظرفیت ندارند دیگه!!!!!!!!!!!!!
فکر می کنند می توانند بات را به نام خودشان کامل کنند در حالیکه موقعی که پروتکل یاهو عوض شد و روبات آفلاین شد و دیگه آن نشد آن موقع ارزش افرادی مثل سیاوش را درک می کنند اون وفت دوباره میان به سراغ سیاوش و می گویند پروتکلش رو هم براشون عوض کنه!!!!
عزیزان تا مفهوم اوپن سورس براتون مشخص نشه و اصلا ندونید اوپن سورس یعنی چی قرار دادن بات کار بیهوده ای است.
سیاوش جان دیگر نیازی به تو نیست چون بچه ها دیگه مشکلشونو خودشون حل می کنند (مفهوم اوپن سورس از دیدگاه ایرانی ها!!!!!!! )
تا زمانی که به سیاوش احتیاج پیدا کنند آن وقت بات می شود اوپن سورس
سیاوش به هدفی که می خواستی رسیدی یعنی احداث یک تاپیک برای بات اوپن سورس دیگه بچه ها خودشون هرکاری می تونند بکنند.
soroosh-ab
۰۸-۷-۱۳۸۷, ۰۶:۱۲ بعد از ظهر
من هم همون اول گفتم که ظرفیت بعضی ها باید بالا باشد تا سورسو در اختیار دیگران قرار دهند
آقا مگه مشکلیه؟؟؟؟؟ ظرفیت ندارند دیگه!!!!!!!!!!!!!
فکر می کنند می توانند بات را به نام خودشان کامل کنند در حالیکه موقعی که پروتکل یاهو عوض شد و روبات آفلاین شد و دیگه آن نشد آن موقع ارزش افرادی مثل سیاوش را درک می کنند اون وفت دوباره میان به سراغ سیاوش و می گویند پروتکلش رو هم براشون عوض کنه!!!!
عزیزان تا مفهوم اوپن سورس براتون مشخص نشه و اصلا ندونید اوپن سورس یعنی چی قرار دادن بات کار بیهوده ای است.
سیاوش جان دیگر نیازی به تو نیست چون بچه ها دیگه مشکلشونو خودشون حل می کنند (مفهوم اوپن سورس از دیدگاه ایرانی ها!!!!!!! )
تا زمانی که به سیاوش احتیاج پیدا کنند آن وقت بات می شود اوپن سورس
سیاوش به هدفی که می خواستی رسیدی یعنی احداث یک تاپیک برای بات اوپن سورس دیگه بچه ها خودشون هرکاری می تونند بکنند.
سلام . عزیز برنامه ی اوپن سورس 90 % برای آشنایی افراد با برنامه نویسی هستن و به این معنی نیست که هرکی , هر تغییری داد بیاد و بذاره اینجا ! درسته که سیاوش کاملآ به ما کمک کرد تا با طریقه ی برنامه نویسی یک بات یاهو آشنا بشیم و به این معنی نیست که من هر برنامه ی دیگه ای که نوشتم ( درسته که از طریق سیاوش با پروتکل یاهو آشنا شدم ) و با کمک این پروتکل هست بیام و سورس رو بذارم !
هرکسی که می خواد به بقیه کمک کنه می تونه فکر برنامه نویسی رو بده و کسی هم که سورس رو میذاره لقمه رو جویده و آماده می کنه که بقیه بدن پایین و کسی که فقط میده پایین غذا رو , قابلیت جویدن و غذا درست کردن رو از دست میده !
دوست عزیز سعی کن قابلیت هات رو از دست ندی !
باز هم از سیاوش تشکر می کنم ! :p
Servers.Manager
۰۸-۷-۱۳۸۷, ۰۷:۴۹ بعد از ظهر
سلام . عزیز برنامه ی اوپن سورس 90 % برای آشنایی افراد با برنامه نویسی هستن و به این معنی نیست که هرکی , هر تغییری داد بیاد و بذاره اینجا ! درسته که سیاوش کاملآ به ما کمک کرد تا با طریقه ی برنامه نویسی یک بات یاهو آشنا بشیم و به این معنی نیست که من هر برنامه ی دیگه ای که نوشتم ( درسته که از طریق سیاوش با پروتکل یاهو آشنا شدم ) و با کمک این پروتکل هست بیام و سورس رو بذارم !
هرکسی که می خواد به بقیه کمک کنه می تونه فکر برنامه نویسی رو بده و کسی هم که سورس رو میذاره لقمه رو جویده و آماده می کنه که بقیه بدن پایین و کسی که فقط میده پایین غذا رو , قابلیت جویدن و غذا درست کردن رو از دست میده !
دوست عزیز سعی کن قابلیت هات رو از دست ندی !
باز هم از سیاوش تشکر می کنم ! :p
پس شما هم روبات سایفر رو حاظر و اماده جویدین ! چطور سیاوش که از پایه برنامه رو نوشته برای استفاده همه میزاره و شما که یدونه کد واسش نوشتی زود اومدی میگی هرکس که زحمت میکشه باید خودش استفاده کنه
دوست عزیز اینجا هیچکس لقمه جویده شده نمیخوره ، هر کس نسبت به خودش در پیشبرد بات کمک میکنه، از یه پیشنهاد تا یک کد
اگر قرار باشه همه نظر بدن و کاری نکنن که حجم کار میفته رو دوش سیاوش !
بگذریم هرجور تفکری پیدا میشه ، اینهم نظر شماست، شما میتونی کمک نکنی، در اینصورت نباید از کارها و کمک های بقیه هم استفاده کنی !
====================================
من برای روبات یک منوی کلی نوشتم که امیدوارم بدردتون بخوره ;)
سياوش: من فايل ضميمه ي اين پست رو به خاطر اينكه روي يك نسخه ي غير پايدار SMClient سوار شده بود پاك كردم. از دوستمون Servers.Manager (http://artificial.ir/intelligence/members/servers-manager.html) به خاطر به اشتراك گذاشتن سورس تشكر مي كنم و خواهش مي كنم اين منو رو روي نسخه ي آخري كه به زودي مياد و Stable هم هست پياده كنند و براي دوستان قرار بدن...
BeHNaM
۰۸-۷-۱۳۸۷, ۰۷:۵۳ بعد از ظهر
سلام . عزیز برنامه ی اوپن سورس 90 % برای آشنایی افراد با برنامه نویسی هستن و به این معنی نیست که هرکی , هر تغییری داد بیاد و بذاره اینجا ! درسته که سیاوش کاملآ به ما کمک کرد تا با طریقه ی برنامه نویسی یک بات یاهو آشنا بشیم و به این معنی نیست که من هر برنامه ی دیگه ای که نوشتم ( درسته که از طریق سیاوش با پروتکل یاهو آشنا شدم ) و با کمک این پروتکل هست بیام و سورس رو بذارم !
هرکسی که می خواد به بقیه کمک کنه می تونه فکر برنامه نویسی رو بده و کسی هم که سورس رو میذاره لقمه رو جویده و آماده می کنه که بقیه بدن پایین و کسی که فقط میده پایین غذا رو , قابلیت جویدن و غذا درست کردن رو از دست میده !
دوست عزیز سعی کن قابلیت هات رو از دست ندی !
باز هم از سیاوش تشکر می کنم ! :p
سروش جان منتظر مشاهده بات شما و امکاناتش هستیم !
soroosh-ab
۰۸-۷-۱۳۸۷, ۰۸:۰۲ بعد از ظهر
پس شما هم روبات سایفر رو حاظر و اماده جویدین ! چطور سیاوش که از پایه برنامه رو نوشته برای استفاده همه میزاره و شما که یدونه کد واسش نوشتی زود اومدی میگی هرکس که زحمت میکشه باید خودش استفاده کنه
دوست عزیز اینجا هیچکس لقمه جویده شده نمیخوره ، هر کس نسبت به خودش در پیشبرد بات کمک میکنه، از یه پیشنهاد تا یک کد
اگر قرار باشه همه نظر بدن و کاری نکنن که حجم کار میفته رو دوش سیاوش !
بگذریم هرجور تفکری پیدا میشه ، اینهم نظر شماست، شما میتونی کمک نکنی، در اینصورت نباید از کارها و کمک های بقیه هم استفاده کنی !
====================================
من برای روبات یک منوی کلی نوشتم که امیدوارم بدردتون بخوره ;)
هرکس نظر خودش رو داره و به نظر من دادن فکر برنامه نویسی بیشتر از گذاشتن سورس برنامه به پیشرفت روبات کمک می کنه و من هیچوقت نگفتم که کمک نمیکنم ! مثل اینکه پست من رو درست نخواندید یا متوجه نشدید ! من فکر برنامه نویسی رو میدم ( یعنی اون کاری که شدنیه و خودم موفق شدم انجام بدم ! ) ولی هیچوقت سورس دقیقی که خودم نوشتم رو نمیذارم .
در ضمن اگه قرار بود تمام برنامه ها اوپن سورس باشه , مثلآ سیاوش سورس Neo رو میذاشت ! روباتی که کلی وقت گذاشته و کار کرده واسش !تمام برنامه ها سورس باز نیستند !!
با تشکر از شما (پست من رو یه بار دیگه با دقت بخون )
BeHNaM
۰۸-۷-۱۳۸۷, ۰۸:۰۶ بعد از ظهر
خیلی جو فروم بد شده امان از دست مدعیان دروغین امام زمان :d
Servers.Manager
۰۸-۸-۱۳۸۷, ۱۲:۳۶ قبل از ظهر
هرکس نظر خودش رو داره و به نظر من دادن فکر برنامه نویسی بیشتر از گذاشتن سورس برنامه به پیشرفت روبات کمک می کنه و من هیچوقت نگفتم که کمک نمیکنم ! مثل اینکه پست من رو درست نخواندید یا متوجه نشدید ! من فکر برنامه نویسی رو میدم ( یعنی اون کاری که شدنیه و خودم موفق شدم انجام بدم ! ) ولی هیچوقت سورس دقیقی که خودم نوشتم رو نمیذارم .
در ضمن اگه قرار بود تمام برنامه ها اوپن سورس باشه , مثلآ سیاوش سورس Neo رو میذاشت ! روباتی که کلی وقت گذاشته و کار کرده واسش !تمام برنامه ها سورس باز نیستند !!
با تشکر از شما (پست من رو یه بار دیگه با دقت بخون )
1.دوست عزیز فکر برنامه نویسی رو همه میتونن بدن ، با دیدن سورس و مدل و تغییر و ویرایش کردن هست که ادم جلو میوفته
2.دوست عزیز کار نشد نداره ، توی کامپیوتر هرکاری شدنیه و نشد نداریم پس نگین نظر میدم که شدنیه یا نه :D
3.سیاوش Neo رو به حالت open source نذاشته و این تاپیک هم ماله اون نیست، این تاپیک ماله SMCilent هست که open source هست و اسم تاپیک هم همکاری جهت پیشبرد بات smclientهست ! پس هرکسی که میاد توی این تاپیک، به معنی این هست که علم خودش رو به بقیه منتقل میکنه و از علم بقیه هم استفاده میکنه ، نه یک نظردهنده که بگه این کار شدنیه یا نشدنیه :D
ما هم انتظاری از شما نداریم، شما با کد خودتون خوش باشید ;)
خیلی جو فروم بد شده امان از دست مدعیان دروغین امام زمان :d
منظورتون کی هست ؟ :)
جو فروم بد نشده ما داریم از همدیگه انتقاد میکنیم که در چند پست تموم میشه، همشم بخاطر روباته نه چیزه دیگه، این شمایین که با گفتن مدعیان دروغین جو رو به حالت فحش و تهمت تغییر میدین :)
Siavash
۰۸-۸-۱۳۸۷, ۰۲:۰۸ قبل از ظهر
اول از همه از دوستاني كه سعي دارن به پيشرفت بات كمك كنن به هر طريقي تشكر مي كنم.
در مورد اين بحث هاي اخير هم اميدوارم جو از حالت بحث و تبادل نظر به دعوا و گروه گروه شدن تبديل نشه. هدف همه ي ما يكي هست و مي خوايم يك بات سادرو كم كم بهترش كنيم.
البته در سرتيتر فايل هاي سورس اين بات نوشته شده كه اين بات تحت چه ليسانسي هست و يك فايل با نام COPYING هم داخل پوشه ي بات قرار داره كه اگر اون رو با Notepad يا vi يا هر اديتوري كه استفاده مي كنيد باز كنيد توش اين ليسانس توضيح داده شده كه من بخشي از اون رو اينجا قرار ميدم:
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
هدف من از قرار دادن اين متن، فقط اطلاع رساني بود. من نه انتظاري از كسي دارم نه كلاً ما ايرانيا زياد به اين چيز ها توجه مي كنيم كه حالا بخوايم تو اين مورد خاص توجه داشته باشيم. (البته اخيراً خيلي داريم تو اين زمينه پيشرفت مي كنيم.)
اما هر كدوم از دوستان با به اشتراك گذاشتن سورس كد يا حتي دادن ايده بتونن به اين هدف كمك بكنن جاي تقدير داره.
خيلي بهتر مي شد توي بحث ها جاي اينكه با هم درباره ي اين مسائل بحث كنيم به هدف كه درست كردن يك بات نسبتاً هوشمند از اين بات ساده هست فكر كنيم.
باز هم از دوستاني كه كمك مي كنند ممنونم.
soroosh-ab
۰۸-۸-۱۳۸۷, ۰۷:۴۹ قبل از ظهر
سلام . یک مشکل کوچک توی روبات هست و من فکری واسه حل کردنش به ذهنم نمی رسه !
اگه یکی یه شکلک خالی به روبات بده به خاطر فیلتر کردن شکلک ها به یه پی ام خالی تبدیل میشه و روبات جوابش و نمی تونه بده !
به نظر شما چطوری میشه این مشکل رو حل کرد ؟
Siavash
۰۸-۸-۱۳۸۷, ۱۲:۰۹ بعد از ظهر
اين مشكل دو راه حل داره...
يكي اينكه قبل از اينكه Smiley ها پاك بشن پيام رو با يك سري Smile چك كنيم.
و يك راه ديگه كه من مي خوام روي اين بات قرار بدم بدست آوردن حالت پيام هست.
يعني در هنگام حذف شدن Smiley بات حالت پيغام رو بدست بياره. مثلا اگر :-? بود حالت پيام رو به سوال تغيير بده و اگر :(( هم در كنارش بود حالتش سوالي همراه با گريه بشه. براي هر كدوم از اين حالات مي شه يك كد طراحي كرد و با توجه به اون جواب داد. اينطور بات مي تونه به :(( :-? هم جواب بده. اين كار رو براي علامت ها هم ميشه انجام داد. مثلاً ? پيام رو سوالي كنه.
اينطور توي الگو ها مي تونيم جوابي كه براي حالت سوالي و حالت غير سوالي مي ديم متفاوت باشه.
مثلاً در حال حاضر بات فرقي ميان اين سه جمله نمي بينه:
من 5 سالمه!
و
من 5 سالمه؟
يا
من 5 سالمه؟ :-؟
در صورتي كه جواب مورد اول اين هست كه سن طرف رو ذخيره كنه و بگه يادش مي مونه و جواب پيام هاي دوم و سوم اين هست كه يا بگه نميدونم چند سالته، يا سن طرف رو كه ذخيره كرده بهش ياد آوري كنه.
اين قابليت ها رو سايفر در حال حاضر داره كه انشاالله روي SMClient هم پياده خواهد شد.
مورد بعدي هم احساسات هست كه ميشه بصورت خيلي ساده در بات شبيه سازي كرد كه باز هم سايفر اين قابليت رو داره اما SMClient نداره. سايفر به هر شخصي از چند بعد ادب، آشنايي، و ... امتياز ميده و جواب هاي مختلف نسبت به امتياز هاي طرف مي دهد. مثلاً در صورتي كه آشنايي كسي كمتر از يك عددي باشه اگر طرف درخواست دوستي كنه رد مي كنه و در غير اين صورت قبول مي كنه.
اين امكانات هم انشاالله در نسخه هاي بعدي اضافه مي شه...
r-co
۰۸-۸-۱۳۸۷, ۱۲:۲۲ بعد از ظهر
روزه اولي كه من اومدم تو اين تايبينك فكرشو نمي كردم كه يه روزي بعضي ها جنين فكرايي كنن و بخوان اينجور بست هايي بدن و ...
ولي بازم من مانند روزه اول به بهبود اين سورس كمك خواهم كرد جون مي دونم سياوش جان جه كاره بزركي كرده و مانند بعضي ها نيستم كه سياوش جنين لطفه بزركي بهشون كرده باشه ولي بيادو اينجوري جوابه ديكرانو بده.
سياوش من از شما براي حاكم شدن جنين جوي در اين تايبينك عدرخواهي مي كنم
mjanbazi
۰۸-۸-۱۳۸۷, ۱۲:۵۶ بعد از ظهر
خوب می بینم که اوپن سورس شده لقمه جویده
ایول ، هلو بپر برو سر گلو !!!!!!!!
خوب مهندس سروش فقط یک چیز مطمئین باش تاپیکی با عنوان سورس نئو هم خواهی دید این سیاوش براش مهم نیست که نئو رو هم بده به تو (اوپن سورس)
ولی من از طرح اس ام کلاینت به عنوان یک سورس از طرف سیاوش این بود که افرادی مثل مهندس سروش خودشون و با کمک افراد مبتدی مثل من بیانو این باتو مثل نئو طراحی کنند ولی سیاوش آمد واگذار کرد به ما تا کمکش کنیم وگرنه همین اس ام کلاسنت رو هم می تونست روز اول مثل نئو(تو وی بی) طراحی کنه و بزاره ولی از کار کوچیک شروع کرد تا رسیدیم به کار بزرگ(کارگروهی(اوپن سورس)) تا هضم برای همه چه مبتدی و چه پیشرفته آسان باشد.
مگه نه سیاوش؟؟؟؟؟؟؟؟
فداکاری سیاوش به عینه قابل دیدنه نئو که سهله شما چیز دیگری ازش بخواه، مطمئن باش تاپیک های اوپن سورس دیگری رو مشاهده می کنی!! البته اگه سیاوش با این حرف های توی این تاپیک از ما ناامید نشده باشه.
BeHNaM
۰۸-۸-۱۳۸۷, ۰۱:۲۳ بعد از ظهر
1.
منظورتون کی هست ؟ :)
جو فروم بد نشده ما داریم از همدیگه انتقاد میکنیم که در چند پست تموم میشه، همشم بخاطر روباته نه چیزه دیگه، این شمایین که با گفتن مدعیان دروغین جو رو به حالت فحش و تهمت تغییر میدین :)
عزیز منظور شما نبودین
من همینجا اعلام میکم هرکاری که باعث بشه به بهبود بات کمک کنه دریغ نکنم تا حالا هم همین بوده بعد از این هم همین خواهد بود.
شما هم آزادین که در برنامه تغييراتي ايجاد كنيد و آنها را به طور خصوصي در كار خود استفاده كنيد.بدون اين كه حتي وجود آنها را متذكر شويد.اگر شما تغييراتتان را منتشر كنيد،نبايد مجبور باشيد كه شخص مخصوصي را به روش خاصي آگاه كنيد.
مطمئن باشید یک نرم افزار متن باز راه خودشو برای پیشرفتش پیدا میکنه و متکی به فرد نیست که اگه مثلا فلان شخص نخواست کدهاشو در اختیار همسایگان قرار بده نرم افزار راه رو به جلوشو ادامه نده.
Servers.Manager
۰۸-۸-۱۳۸۷, ۰۱:۵۳ بعد از ظهر
دیگه این حرفارو ادامه ندیم بهتره ;)
مشکل منو چطوری میشه حل کرد؟
مشکلی که من الان دارم اینه
من توی روبات دستور /jock گذاشتم که اطلاعات رو با <jock> از توی دیتابیس روبات میخونه خوب حالا مشکل اینه که من توی چندین سطر جوکهای متفاوت دارم ولی روبات تنها اونیرو میخونه که بالاترین سطر هست و دیگه جوکهای دیگه رو نمیخونه و فقط یک جوک نمایش پیدا میکنه
اگه بشه کاری کرد که هر دفعه بطور راندوم یکی از <jock> هارو بخونه خیلی خیلی خوب میشه
Siavash
۰۸-۸-۱۳۸۷, ۱۱:۳۱ بعد از ظهر
راه حل اين مسئله خيلي آسون هست... در نسخه ي بعدي سعي مي كنم يك تابع اضافه كنم كه اين كار رو انجام بده به همراه يك مثال ساده...
يك سوال! نظرتون به برگزاري يك مسابقه بين بات ها چي هست؟
مثلاً يك متن خاص رو چند نفر به عنوان داور در نظر بگيرن و هر باتي كه بيشترين جواب مناسب و مرتبط رو داد برنده بشه! يا مثلاً دو بات با هم صحبت كنند! يا چند سناريو انتخاب بشه و قبل از مسابقه اعلام بشه و در اون موارد مسابقه برگزار بشه.
اگر موافق هستيد بگيد و جايزش هم پيشنهاد بديد چي باشه بهتر هست...
soroosh-ab
۰۸-۹-۱۳۸۷, ۰۹:۳۲ قبل از ظهر
خوب خوشبختانه دیکشنری هم اماده شد . اما RSS یک باگ داشت که دارم سعی می کنم درستش کنم و مشکل smiley ها که اونم به زودی دزست میشه . به هر حال می تونین خودتون تست کنید ! persian.joke (ymsgr:addfriend?persian.joke)
سیاوش جان با شما برای برگذاری مسابقه موافق هستم ...
mohammad_tz
۰۸-۹-۱۳۸۷, ۱۲:۰۳ بعد از ظهر
سلام
این اولین پست من تو این تاپیک هست و قصدم پرسیدن سوال و ... نیست. داشتم یه گشتی می زدم که اتفاقی این تاپیک رو دیدم و چون تعداد صفحات زیادی داشت پیش خودم گفتم حتما بحث جالبی هست بر خلاف اینکه زمینه فعالیتم فعلا سایفر روبات نیست. اما بر خلاف حجم مطالب ارسالی دیدم که کلی از مطالب در مورد "حق اشتراک منابع" هست و خیلی متاسف شدم در مورد دیدگاه های یه سری از کاربران نسبت به موضوع.
قصدم به هیچ وجه قضاوت و داوری نیست و "فقط" می خوام نظرم رو بگم و شاید هم از دید خیلی ها درست نباشه. فرض کنید که یه رهگذر می خواد نظرش رو راجع به یه موضوعی بگه.
من آدم باسوادی نیستم و هیچ وقت هم نمی خوام خدای ناکرده کسی رو متهم کنم. اما واقعا یه سوالی از کاربران فعال در این تاپیک دارم و اینه که وقتی یه نفر(سیاوش) "بدون هیچ گونه چشم داشتی" میاد و یه چیزی رو به یه سری یاد میده و این یادگیری رو حتی تا قرار دادن سورس کد هم پیش میبره و کاربران هم یه فعالیتی در جهت بهبود می کنند باید این قضیه رو فراموش کنند که اونها ایده این کار و اساس کار رو بی منت و رایگان یاد گرفتند و باید رایگان هم یاد بدند ؟
مطمئن باشید کسی که با رسیدن به یه مرحله ای که بخاطر زحمات و تفکرات غیر مادی و غیر انحصاری دیگران بوده بخواد خودش رو گم بکنه به هیچ جا نمی رسه. حالا فرض کنیم که شد آخر آخر اون کار و فقط خودش اون رو بلده، که بره افتخار بکنه فقط من بلدم؟ مطمئنا اگه آدمها با این افکار و طرز فکر بخواند جلو برند چند سال دیگه علم یه چیزی می شه کاملا مادی و وسیله ای فقط برای پول درآوردن و دیگه واژه هایی مثل "Free Education" و یا شعارهایی مثل "I Share,U Share,V Learn" معنایی ندارند . من انجمن هایی رو دیدم که برای فعال شدن نام کاربری خودتون باید پول پرداخت کنید و اون وقت شما توی یه محیط کاملا رایگان و آزاد قرار دارید و از این حرفها می زنید؟ کدوم از ماها تا حالا به این فکر کردیم که چرخوندن این انجمن برای سیاوش هزینه داره ؟ همه ماها صد در صد کلی مطلب تا حالا از تو نت بدون هیچ چشم داشت نویسنده ها یادگرفتیم . تو نت همه جور آموزشی حتی تا سورس رایگان برنامه های دیگران در codeproject.com و ... پیدا می شه.آیا ما تا به حال به اهداف کسانی که این مطالب رو می زارند و یا این جور سایتها رو می سازند فکر کردیم؟ مگه اونها به جز پیشرفت علم و یاد دادن اون چیز هایی که بلدند چه هدفی می تونستند داشته باشند. مگه نمی تونستند نظرات و ایده هاشون رو با قیمتهای بالا بفروشند؟ خوبه که همه ماها می دونیم خیلی از همین چیزهایی رو که بلدیم شاید به سبب عدم وجود کپی رایت در کشورمون باشه. یه نگاهی به نرم افزارهاتون بندازید، اکثر اونها رو رایگان صاحب هستید و چیزی هم که یاد می گیریم به واسطه اونهاست. اونوقت توی این دنیا یه آدمی پیدا بشه با خلوص نیت بیاد و یه سایتی رایگان راه بندازه و با نظارت دائم خودش کلی چیز به بقیه یاد بده و سئوالات دیگران رو رایگان جواب بده و از همه جالبتر این باشه که کاربران همون سایت مدعی بشند؟
من فکر می کنم این جور رفتار ها باعث دلسردی یه همچین آدم های بزرگ منشی که تعدادشون حداقل تو کشور ما فوق العاده کم هست می شه و شاید پیش خودش بگه به اینها نباید چیز رایگان یاد داد .امیدوارم همه مون به اصل توجه کنیم تا به فرع!
اینهایی که نوشتم همه اعتقادات شخصی خودم بود و باز هم می گم شاید خیلی ها قبول نداشته باشند. اگه اشکالی داره به بزرگی خودتون ببخشید. امیدوارم که همه مون بتونیم به نحوی توی پیشرفت همدیگه و کشورمون سهیم باشیم.
:)
BeHNaM
۰۸-۹-۱۳۸۷, ۱۲:۲۶ بعد از ظهر
راه حل اين مسئله خيلي آسون هست... در نسخه ي بعدي سعي مي كنم يك تابع اضافه كنم كه اين كار رو انجام بده به همراه يك مثال ساده...
يك سوال! نظرتون به برگزاري يك مسابقه بين بات ها چي هست؟
مثلاً يك متن خاص رو چند نفر به عنوان داور در نظر بگيرن و هر باتي كه بيشترين جواب مناسب و مرتبط رو داد برنده بشه! يا مثلاً دو بات با هم صحبت كنند! يا چند سناريو انتخاب بشه و قبل از مسابقه اعلام بشه و در اون موارد مسابقه برگزار بشه.
اگر موافق هستيد بگيد و جايزش هم پيشنهاد بديد چي باشه بهتر هست...
ما هم آماده ایم سیاوش جان :d
Servers.Manager
۰۸-۱۰-۱۳۸۷, ۰۱:۳۱ بعد از ظهر
منم موافقیم ، ولی نتیخه واضحه اگه خودتم شرکت کنی بدون شک ماله خودت برنده میشه :d
Siavash
۰۸-۱۰-۱۳۸۷, ۰۳:۳۷ بعد از ظهر
اول از همه از دوست خوبم محمد بابت پست خوبش تشكر مي كنم.
در ادامه من خودم قصد شركت توي مسابقرو ندارم و در ضمن مطمئناً بات هاي خيلي از دوستان از سايفر خيلي بهتر هست.
خوب حالا كه چند شركت كننده داريم نظرتون رو در ارتباط با نحوه ي اجراي مسابقه بگيد... اين ها پيشنهادات من هستند:
- يك سري متن آماده بشه و به هر كدام از بات ها داده بشه و توسط يك يا چند داور براي هر جواب امتيازي بين 0 (بي ربط) تا 5 داده بشه.
- يك سري متن آماده بشه و به هر كدام از بات ها داده بشه و متن ها رو در انجمن به رأي گيري بگذاريم، هر كدام بيشترين رأي رو آوردن برنده اعلام بشن.
- هر دو روش بالا با هم اجرا بشن و در مجموع يك امتياز نهايي تخصيص داده بشه.
- بات ها با يكديگر چت كنند (البته با يك واسطه ي كاربري، تا وارد لوپ و جواب هاي پي در پي نشيم)
خوب اينها روش هايي بودن كه به نظر من رسيد. در اين 4 مورد به قابليت ها و امكانات بات ها امتيازي اختصاص داده نشد. آيا به نظرتون بايد به امكانات بات هم امتيازي داده بشه؟
يا مثلاً فقط به امكاناتي كه جديد هستند امتياز داده بشه؟
در مورد زمان برگزاري اين مسابقه هم اگر كسي نظري داره بگه!
soroosh-ab
۰۸-۱۰-۱۳۸۷, ۰۶:۳۹ بعد از ظهر
اول از همه از دوست خوبم محمد بابت پست خوبش تشكر مي كنم.
در ادامه من خودم قصد شركت توي مسابقرو ندارم و در ضمن مطمئناً بات هاي خيلي از دوستان از سايفر خيلي بهتر هست.
خوب حالا كه چند شركت كننده داريم نظرتون رو در ارتباط با نحوه ي اجراي مسابقه بگيد... اين ها پيشنهادات من هستند:
- يك سري متن آماده بشه و به هر كدام از بات ها داده بشه و توسط يك يا چند داور براي هر جواب امتيازي بين 0 (بي ربط) تا 5 داده بشه.
- يك سري متن آماده بشه و به هر كدام از بات ها داده بشه و متن ها رو در انجمن به رأي گيري بگذاريم، هر كدام بيشترين رأي رو آوردن برنده اعلام بشن.
- هر دو روش بالا با هم اجرا بشن و در مجموع يك امتياز نهايي تخصيص داده بشه.
- بات ها با يكديگر چت كنند (البته با يك واسطه ي كاربري، تا وارد لوپ و جواب هاي پي در پي نشيم)
خوب اينها روش هايي بودن كه به نظر من رسيد. در اين 4 مورد به قابليت ها و امكانات بات ها امتيازي اختصاص داده نشد. آيا به نظرتون بايد به امكانات بات هم امتيازي داده بشه؟
يا مثلاً فقط به امكاناتي كه جديد هستند امتياز داده بشه؟
در مورد زمان برگزاري اين مسابقه هم اگر كسي نظري داره بگه!
سلام . من با انتخاب یک متن موافق هستم و امکانات هم به نظرم باید امتیاز داشته باشه ! البته امکانات جدید !
ghedis
۰۸-۱۱-۱۳۸۷, ۰۱:۱۳ بعد از ظهر
سایفر روبات اولین روبات پاسخ گوی فارسی زبان است.
نکته ی جالب این است که سایفر دارای شخصیت می باشد، به عنوان مثال اگر طرف مقابل بد حرف بزند ناراحت می شود یا حتی ممکن است قهر کند، و از طرف دیگر ممکن است عاشق شود! سایفر فقط یک پاسخ گو نیست بلکه بعضی اوقات سوال می پرسد و با توجه به جوابی که می گیرد به اطلاعات خود می افزاید. نکته ی جالب دیگر اطلاعات کامل این روبات در زمینه ی فیلم و آهنگ و استعداد قابل توجهش در ریاضی است! سایفر می تواند نوع شخصیت طرف مقابل خود را تا حدودی از جواب هایش حدس بزند! شما می توانید با اضافه کردن آی دی "neol3ot" در یاهو! مسنجر با سایفر حرف بزنید، اگر دیدید سایفر اسم یا سنتان را حدس زد تعجب نکنید چون کاملا عادی است!
در صورتی که سوال خاصی در باره ی نحوه ی عملکرد این روبات دارید می توانید همین جا آنرا مطرح کنید.سلام اين روبات چطور عشق را ميفهمه؟
mjanbazi
۰۸-۱۱-۱۳۸۷, ۰۱:۵۴ بعد از ظهر
من با برگزاری مسابقه مخالفم چون هنوز زوده
بات هنوز کامل نشده و شما اسم از مسابقه میارید
بگزارید بات کامل شه و اشکالاتش برطرف شه بعد صحبت مسابقه را به میان بیاورید
امکاناتی نظیر Web Remote و حل مشکل Smiley و غیره را برطف نمایید
الان کاملا زوده برای مسابقه
Siavash
۰۸-۱۱-۱۳۸۷, ۰۷:۰۷ بعد از ظهر
سلام اين روبات چطور عشق را ميفهمه؟
اين بات عشق رو نمي فهمه فقط اون رو شبيه سازي مي كنه و فقط در حد جملات... همونطوري كه گفتم اين بات از هر فرد يك پروفايل ميسازه و با توجه به پاسخ هاي آن فرد در زمينه هاي مختلف مانند اخلاق، ادب، صميميت، دوستي و ... به شخص امتيازي اختصاص مي ده و هر هفته با شخصي كه بيشترين مقدار صميميت رو داره و از نظر ادب و صميميت و اخلاق هم مينيمم امتياز تعيين شدرو داره پاسخ هاي متفاوتي ميده... اگر هم دقت كرده باشيد اين بات خودش رو هميشه با توجه به جنسيت و سن طرف مقابل تطبيق ميده يعني اگر طرف مقابلش دختر باشه خودش رو پسر و 3 سال بزرگتر معرفي مي كنه و اگر پسر باشه خودش رو دختر و 3 سال كوچكتر معرفي مي كنه...
در ضمن من پست شما در ارتباط با شبيه ساز فوتبال سه بعدي رو به بخش مرتبط انتقال دادم.
من با برگزاری مسابقه مخالفم چون هنوز زوده
بات هنوز کامل نشده و شما اسم از مسابقه میارید
بگزارید بات کامل شه و اشکالاتش برطرف شه بعد صحبت مسابقه را به میان بیاورید
امکاناتی نظیر Web Remote و حل مشکل Smiley و غیره را برطف نمایید
الان کاملا زوده برای مسابقه
البته من ارتباطي بين Web Remote و مسابقه نمي بينم. امّا قبل از شروع مسابقات نسخه ي جديدي از SMClient رو قرار خواهم داد و اين مشكلات در اون بر طرف خواهد شد...
منظور من از مسابقات بيشتر جواب هاي بات بود تا امكانات اون... و اينكه افراد با جواب هاي بات هاي ديگه آشنا بشن و جواب ها رو با بات هاي خودشون مقايسه كنند.
soroosh-ab
۰۸-۱۲-۱۳۸۷, ۱۰:۲۱ قبل از ظهر
اين بات عشق رو نمي فهمه فقط اون رو شبيه سازي مي كنه و فقط در حد جملات... همونطوري كه گفتم اين بات از هر فرد يك پروفايل ميسازه و با توجه به پاسخ هاي آن فرد در زمينه هاي مختلف مانند اخلاق، ادب، صميميت، دوستي و ... به شخص امتيازي اختصاص مي ده و هر هفته با شخصي كه بيشترين مقدار صميميت رو داره و از نظر ادب و صميميت و اخلاق هم مينيمم امتياز تعيين شدرو داره پاسخ هاي متفاوتي ميده... اگر هم دقت كرده باشيد اين بات خودش رو هميشه با توجه به جنسيت و سن طرف مقابل تطبيق ميده يعني اگر طرف مقابلش دختر باشه خودش رو پسر و 3 سال بزرگتر معرفي مي كنه و اگر پسر باشه خودش رو دختر و 3 سال كوچكتر معرفي مي كنه...
در ضمن من پست شما در ارتباط با شبيه ساز فوتبال سه بعدي رو به بخش مرتبط انتقال دادم.
البته من ارتباطي بين Web Remote و مسابقه نمي بينم. امّا قبل از شروع مسابقات نسخه ي جديدي از SMClient رو قرار خواهم داد و اين مشكلات در اون بر طرف خواهد شد...
منظور من از مسابقات بيشتر جواب هاي بات بود تا امكانات اون... و اينكه افراد با جواب هاي بات هاي ديگه آشنا بشن و جواب ها رو با بات هاي خودشون مقايسه كنند.
Web Remote ربطی به مسابقه نداره و smiley رو راحت از همون راهی که سیاوش گفت میشه حل کرد . من smiley رو موقتآ درست کردم . اما smiley هم کاری به مسابقه نداره ! مسابقه فقط چند جمله است که اماده می کنیم و به روبات میگیم !
طی تقریبآ 4-5 روزی که روبات آنلاین بود 853 نفر به روبات پی ام دادن و 15 آیدی بوتر Ignore شده . روبات 1 بار هم آفلاین و آنلاین نشده ... به نظر میرسه Stable باشه !
آهان داشت یادم میرفت ! تنها مشکلی که پیشنهاد میکنم همه درست کنن اینه که Activeusers باید بعد از 0 شدن تایمر از لیست پاک بشن !
mohammad_tz
۰۸-۱۳-۱۳۸۷, ۰۵:۴۷ قبل از ظهر
چون موضوع و محتویات این تاپیک با مسائل برنامه نویسی در ارتباط هست و برخی از دوستان کدهای خودشون رو برای بقیه به اشتراک می گذارند، در جهت سادگی فهم و خواندن کدها و همچنین اهمیت موضوع استاندارد سازی کدها، من لازم دانستم 2 پیشنهاد به دوستان در این رابطه بکنم :
1) اهمیت متدهای نامگذاری متغیرها و کنترل ها :
در رابطه با این مبحث من یک مقاله به نام Naming Conventions (فارسی)
قرار دادم. زبان مورد استفاده در این مقاله VB 6.0 می باشد.
2) اهمیت Code Documentation و Code Commentation :
در رابطه با این مبحث من یک مقاله به نام The Art of Code Documentation (انگلیسی)
قرار دادم. زبان مورد استفاده در این مقاله ++C می باشد که امیدوارم دوستان یک آشنایی خیلی مقدماتی با این زبان داشته باشند.
(نکته: پسوند فایل اصلی mht. هست که به راحتی با مرورگر IE 7.0 قابل بازگشایی می باشد.)
اهمیت این 2 مبحث محدود به این تاپیک نمی شه و شما می تونید در هر زمینه برنامه نویسی از اینها استفاده کنید.
امیدوارم تونسته باشم کمکی هر چند کوچک به دوستان عزیز کرده باشم. :)
masoud-70
۰۸-۱۵-۱۳۸۷, ۰۶:۵۵ بعد از ظهر
سلام خدمت دوستان .اين ورژن جديد برنامه آماده نشد.
Sahebi
۰۸-۱۵-۱۳۸۷, ۱۰:۴۸ بعد از ظهر
دوستان عزیز روبات رویای علی مشاطان اوپن سورس و تحت GPL ریلیز شده
میتونین برای بات خودتون از اون هم استفاده کنید
آدرس : Mashatan Sofware (http://www.mashatan.com)
شاد و موفق باشید
mjanbazi
۰۸-۱۶-۱۳۸۷, ۰۱:۰۹ بعد از ظهر
دوستان عزیز روبات رویای علی مشاطان اوپن سورس و تحت GPL ریلیز شده
میتونین برای بات خودتون از اون هم استفاده کنید
آدرس : Mashatan Sofware (http://www.mashatan.com)
شاد و موفق باشید
دوست عزیز با بودن اس ام کلاینت (به صورت اوپن سورس) دیگر نیازی به امثال مشاطان و نرم افزارشان نیست بچه های اینجا خودشان به راحتی می توانند بات را ویرایش کنند و به هرچیزی که دلشون خواست تغییر دهند
پس فرداد که پروتکل یاهو تغییر کرد مشاطان جواب نمی دهند ولی اس ام کلاینت اینطوری نیست قابل انعطاف تر است
ما منکر زحمت های مشاطان هم نمی شویم ولی اس ام در ایران نه تنها در جهان تک است.
شما تازه واردید و فکر کنم زیاد آشنایی ندارید با این تاپیک پیشنهاد می کنم از ابتدا تا انتهای این تاپیک را بخوانید
به امید موفقیت شما
سیاوش ما منتظر اس ام کلاینت جدید با قابلیت Web Remote و حل مشکل Smiley هستیم
soroosh-ab
۰۸-۱۷-۱۳۸۷, ۰۶:۴۱ قبل از ظهر
دوستان عزیز روبات رویای علی مشاطان اوپن سورس و تحت GPL ریلیز شده
میتونین برای بات خودتون از اون هم استفاده کنید
آدرس : Mashatan Sofware (http://www.mashatan.com)
شاد و موفق باشید
واقعآ آقای علی سازنده ی رویا خسته نباشه !! بعد از اون همه وقت تازه رویا رو درست کرد !! من با SMclient هستم ! رویا به درد نمی خوره ...
و اینم 91 پکت یاهو برای ویژوال بیسیک . امیدوارم به کارتون بیاد !
mohsen_is
۰۸-۱۷-۱۳۸۷, ۰۲:۲۵ بعد از ظهر
دوستان عزیز روبات رویای علی مشاطان اوپن سورس و تحت GPL ریلیز شده
میتونین برای بات خودتون از اون هم استفاده کنید
آدرس : Mashatan Sofware (http://www.mashatan.com)
شاد و موفق باشید
سلام
من دانلود کردم ولی چیزی ازش سر در نیوردم.
ولی اگه این سایفر روبات مثل رویا بشه خیلی خوبه.
منظورم رویای 2.5 که شما با VBScrip براش همه چیز می ساختید.
من قبلا باهاش کار کردم و کد شام دارم.
اگه خواستید بگید بزارم تا اگه خدا خواست یه چیزی مثل اونو درست کنیم.
ممنونم
Siavash
۰۸-۱۸-۱۳۸۷, ۱۲:۱۱ قبل از ظهر
سلام! ببخشيد من مجدداً به خاطر يك سمينار تهران نبودم و به اينترنت دسترسي نداشتم!
ورژن بعدي رو در اولين فرصت اينجا قرار ميدم.
توي اين نسخه سعي مي كنم نظراتي كه دوستان در پست هاي اخير گفتن داخلش رعايت بشه.
در جواب به آخرين پست بايد بگم كه شما در صورتي كه VBScript بلد باشيد با ديدن مثال هاي بخش هاي مختلف اين بات مي تونيد به راحتي بات رو به نحو دلخواه خودتون در بياريد. برام جالب بود كه اين درخواست رو كرده بوديد در حالي كه كل سورس VB اين بات در اختيار شماست و مي تونيد هر قسمتي از اين بات رو تغيير بديد. VBScript يك نسخه ي محدود شده از VBهست و در اون Syntax ها شبيه VB هستند.
اما حق با شماست ما بايد يك آموزش جامع جهت ايجاد بخش هاي جديد براي اين بات ايجاد كنيم همينطور يك استاندارد براي ايجاد ماژول هاي جديد ايجاد كنيم تا به راحتي دوستان بتونن ماژول هاي نوشته شده توسط دوستان ديگر رو استفاده كنند و در بات خودشون اضافه كنند.
Siavash
۰۸-۲۱-۱۳۸۷, ۰۲:۱۹ قبل از ظهر
خوب بالاخره اين نسخه هم آماده شد.
اول از همه از دوستان بابت پيشنهاد هايي كه درباره امكانات جا افتاده ي بات دادند ممنونم... از دوستاني كه به پيشرفت بات با توسعه ي اون كمك كردن مثل اضافه كردن /status و منو و ... هم خيلي متشكرم.
و اما امكانات جديد! توي اين نسخه موارد جديد زير اضافه شدند:
اضافه شدن Webremote: براي دسترسي به اون بعد از اجرا كردن برنامه كافي هست Ctrl+W رو بزنيد و سرويس وب رو فعال كنيد. به صورت پيشفرض مي تونيد از اين آدرس به اين سرويس دسترسي داشته باشيد:
http://localhost:1367/
http://###.###.###.###:1367
كه به جاي # ها آدرس آيپيتون رو مي تونيد قرار بديد. در صورتي كه آيپيتون وليد باشه از كامپيوتر هاي ديگه هم مي تونيد بهش دسترسي داشته باشيد.
در حال حاضر اين قابليت براي تست هست فقط بنابراين پسوردي براش گذاشته نشده. اگر مشخص بشه Stable هست روش بيشتر كار خواهيم كرد.
اضافه شدن قابليت جواب تصادفي دادن از سطر هاي يك Table: چند تا از دوستان مي خواستند مثلاً وقتي /joke زدند يك سطر از جدول Jokes رو به عنوان مثال جواب بده. يك سويچ مانند همين درخواست رو با نام /tip در ورژن جديد قرار دادم كه با زند /tip يك عبارت رو از جدول Tips بيرون مي كشه و به كاربر نشون ميده. در ضمن در صورتي كه /tip 2 مثلاً زده بشه دومين عبارت رو از جدول ميكشه بيرون و پاسخ مي ده. با ديدن اين مثال كه در فايل modSwitchTip.bas قرار داره مي تونيد سويچ هاي ديگري شبيه اين مورد رو اضافه كنيد.
تعويض كلي ساختار پردازش سوال: قبلاً تمام سويج ها در يك فايل تعريف شده بودند و خيلي ساختار جالبي نداشتند. در اين نسخه هر سويچ در فايل مجزايي مثل modSwitchTest.bas قرار داره. اين به دوستان كمك مي كنه تا سويچ هايي كه مي نويسند رو راحت تر بتونن به اشتراك بگذارند و همينطور استفاده از سويچ هاي دوستان رو آسونتر خواهد كرد. هر سويچ مي تونه هر تعدادي ورودي داشته باشه و در نهايت جوابي كه بايد به كاربر داده بشرو به عنوان خروجي بر مي گردونه. در اين نسخه چند سويچ به عنوان مثال موجود هست. در ضمن در متود getPM يك بخش براي افزودن سويچ هاي جديد مشخص شده كه مي تونيد سويچ هاي جديدي كه درست مي كنيد رو در اون بخش به بات متصل كنيد.
اضافه شدن سويچ /status و /help كه كارايي اونا از اسمشون مشخص هست. (با تشكر از دوستان)
اضافه شدن قابليت دسترسي به وب: اين يك امكاني هست كه خيلي وقت پي بايد اضافه مي شد اما خوشبختانه توي اين نسخه بالاخره اضافه شد. يك آبجكت با نام Web در اين نسخه داريم كه شما مي تونيد در هر جا از كد از اون استفاده كنيد و اطلاعات يك آدرس اينترنت رو دريافت كنيد و از اون براي جواب بات استفاده كنيد. استفاده از اون هم خيلي ساده است، مثلا دستور زير:
result = Web.getURL("http://www.Syavash.com")
محتواي سايت سياوش.كام رو داخل متغير result ميريزه و شما مي تونيد مثلا آخرين خبر هاي سايت رو از result استخراج كنيد. يا حتي با اين ابزار مي تونيد RSS Feed ها رو باز كنيد و مطالب رو از اونا استخراج كنيد.
براي اينكه ارزش اين ابزار مشخص بشه يك سويچ با نام /search به عنوان مثال در اين نسخه وجود داره كه سايت گوگل رو به دنبال كلمه اي كه جلوي اين سويچ وجود داره مي گرده و 5 نتيجه ي اول رو به كاربر نشون ميده.
امكان بعدي كه اضافه شد، ايجاد يك Constant در ابتداي فايل frmMain.frm با نام repeatSafeTerms هست كه مشخص مي كنه كدام عبارات مشكلي ندارند چند بار پشت سر هم تكرار بشن (مثلاً براي /joke ميتونه استفاده بشه). هر عبارت با يك ; جدا ميشه و اول و آخر مقدار اين Constant هم بايد ; داشته باشه.
چند باگ هم برطرف شدن از جمله حذف نشدن افراد از ليست كاربران فعال بعد از اينكه زمان فعاليتشون صفر مي شد.
بر طرف كردن مشكل شكلك ها:در حال حاضر يك Tableجديد با نام Exacts به بانك اطلاعاتي اضافه شده كه قبل از هر گونه پردازشي روي سوال سعي ميشه جواب از اين جدول استخراج بشه. مي تونيد شكلك ها رو در اين جدول با جوابشون تعريف كنيد. در ورژن هاي آينده رويكرد ديگري براي شكلك ها و علامت ها معرفي خواهد شد انشاالله.
آخرين ولي يكي از مهمترين تغييراتي كه در حال حاضر يادم مياد هم اضافه شدن امكان موضوع گيري در بات هست كه در آموزش زير ميگن فايده ي اون چي هست.
فرض كنيد به بات همينطوري بگيد aReh! خوب اين مفهوم خاصي نداره.
حالا فرض كنيد بعد از اينكه بات از من سوال كرد Man ro doost dari? بگم aReh. همونطوري كه ميبينيد اينجا كلمه ي آره مفهوم پيدا مي كنه و به معني من تو را دوست دارم هست.
حالا فرض كنيد در جواب حالت خوب هست بگم آره! در اين صورت معني آره، حالم خوب هست ميشه.
پس يك كلمه ي aReh در جاهاي مختلف با توجه به موضوع بحث معني هاي متفاوتي مي تونه داشته باشه! اينجاست كه مبحث موضوع دادن مطرح ميشه.
اگر به جدول Patterns نگاه كنيد يك تگ جديد معرفي شده با نام <subject>. اين تگ موضوع صحبت رو تغيير مي ده.
براي بهتر فهميدن موضوع يك مثال از حرف زدن من با بات رو ببينيد:
Siavash: Mano doost dari?
Bot: aReh azizam, to mano doost dari?
Siavash: aReh dooste khoobam
Bot: MerC golam Man bishtar dooset daram.
Siavash: Mano doost dari robot?
Bot: aReh azizam, to mano doost dari?
Siavash: Hava chetore?
Bot: Javabamo bede dige, doosam dari? Areh ya na?
Siavash: Na aslan
Bot: Amma man dooset daram
Siavash: Na aslan
Bot: Motevajeh nashodam!
خوب حالا بيايم بررسي كنيم! اول پرسيدم منو دوست داره و بات به ما جواب داده و از ما پرسيده كه آيا ما هم اونو دوست داريم يا نه. اگر در جدول Patterns نگاه كنيد داخل تگ <subject> مقدار TO MANO DOOST DARI قرار گرفته. اين يعني موضوع بحث دوست داشتن روبات هست (چون روبات سوالي با اين موضوع پرسيده).
حالا اگر ادامه ي جدول رو نگاه كنيد سه سطر با TO MANO DOOST DARI به عنوان Subject وجود داره. يعني اين سه سطر جواب هايي هستند كه فقط وقتي موضوع اين هست بايد چك بشن. اين سه سطر مشخص مي كنند كه اگر در پاسخ are موجود بود و موضوع TO MANO DOOST DARI بود يك جواب بخصوص داده بشده اگر na موجود بود جواب ديگري داده بشه و اگر جواب ديگري بود و بات براي اون جوابي نداشت سوالش رو كه من رو دوست داري هست تكرار كنه. دقت كنيد اگر جواب كاربر آره يا نه باشه از تگ جديدي با نامه <subject /> استفاده شده كه معادل <subject></subject> هست. يعني موضوع تهي بشه. چون وقتي كاربر جواب سوال رو يك بار با بله با نه بگه ديگه موضوع منو دوست داري نيست و بايد موضوع خالي بشه.
اگر در گفتگوي من با بات دقت كنيد اين موارد رو ميبينيد.
در ابتدا جواب آره داده شده به سوال بات و بات هم عكس العمل مناسبي نشون داده.
بعد يك بار ديگه سوال پرسيده شده اما اين بار من جواب بي ربطي دادم و بات به سراغ * با اين موضوع رفته و سوال رو تكرار كرده (موضوع همچنان منو دوست داري هست) بعد كه جواب رو نه گفتم بات مجدداً عكس العمل مناسبي داشته. در نهايت من يك بار ديگه نه اصلاً رو تكرار كردم و بات گفته متوجه نمي شم! كه منطقي هم هست. دليلش اين هست كه با جواب نه كه دفعه ي پيش داده شده موضوع تهي شده با تگ <subject />.
موضوع Subject كمي در ابتدا پيچيده هست. اگر جاييش رو متوجه نشديد بگيد تا بيشتر توضيح بدم.
كم كم مي تونيم يك مسابقه ي واقعي بين بات ها داشته باشيم!
در صورتي كه باگ يا مشكلي ديديد داخل نسخه ي جديد حتماً همينجا اطلاع بديد.
NabiKAZ
۰۸-۲۱-۱۳۸۷, ۰۴:۱۵ قبل از ظهر
سلام،
از زحمات آقا سیاوش ممنونم.
راستی چرا سورس رو بر روی مخازن آنلاین قرار نمیدید تا همه در هر لحظه بتونن در توسعه اون کمک کنند و اینطوری خیلی سریعتر کار پیشرفت میکنه و کیفیت بالاتر میره.
موفق باشید
نبی
Siavash
۰۸-۲۱-۱۳۸۷, ۰۷:۲۲ قبل از ظهر
نبي جان من سورس رو روي سورس فرج قرار دادم كه دوستان به راحتي بتونن از SVN استفاده كنند.
آدرس پروژه در سورس فرج:
https://sourceforge.net/projects/yahoo-robot/
آدرس SVN:
https://yahoo-robot.svn.sourceforge.net/svnroot/yahoo-robot
itc_net
۰۸-۲۱-۱۳۸۷, ۰۲:۵۶ بعد از ظهر
با سلام و عرض خسته نباشید
یک مشکلی که روبوت داره این هست که ترافیکش میره بالا دیگه جواب نمی ده مثلا من با یک آیدی که یوز هاش بالا 4000 هست خوب جواب نمی داد تک و توک جواب می داد
کارتون بسیار عالی هست
در آخر به نظر من اگر برای برنامه setup نذارید بهتر هست این طوری بهتر هست سیستم رو هم کمتر درگیر می کنه
Siavash
۰۸-۲۱-۱۳۸۷, ۰۵:۵۹ بعد از ظهر
دوست عزيز،
دريافت نكردن پيام در ترافيك بالا فكر مي كنم بيشتر به سرعت نت بستگي داشته باشه چون هر پكتي كه بات دريافت مي كنه پردازش ميشه و قبل از پردازش هم به ليست پيام هاي دريافت شده اضافه مي شه.
منظورتون از جواب ندادن بات اين هست كه در اون ليست پيام ظاهر مي شه اما جواب فرستاده نمي شه يا اينكه كلاً در ليست پيام هاي دريافتي هم اضافه نميشه؟
در مورد Setup: اون فايل bat كه مي بينيد تنها فايل ها و DLL هاي مورد نياز براي اجراي اين برنامرو در جاي درستش كپي مي كنه و در اكثر كامپيوتر هايي كه VBRuntime روي آنها نصب هست بدون Setup كردن هم مي تونيد برنامرو اجرا كنيد. اون فايل براي افرادي قرار گرفته كه وقتي فايل رو اجرا مي كنند پيام خطا دريافت مي كنند كه نمونش در پست هاي قبلي هست...
masoud-70
۰۸-۲۱-۱۳۸۷, ۱۰:۵۳ بعد از ظهر
با سلام خدمت دوستان و مخصوصا آقا سياوش ممنونم از زحمات شما دوست عزيز.مي خواستم ببينم دستور <repetitive> رو چي جوري بايد خذفش كنم من از خود بات حذف كردم بعد به روباتم يه دستوري دادم به نام جك
وقتي كه مي زني جك چند بار كه ميزنم پشت سر هم ديگه نمي نويسه الان من مي خوام برنامه رو ويرايش كنم كه من مثلا هر چند بار كه پشت سر هم بزنم جك اونم واسم جك نمايش بده اين از اين.بعد مي خواستم ببينم كه مي خوام اينويسيبل به بات اضافه كنم اگه ميشه يكم بيشتر توضيح بديد.بعدش اين دستور جديد /tip اگه امكانش هست يكم در مورد اين توضيح بديد.بعد الان مي خوام يه دستور اضافه كنم به نام /bf و وقتي كسي زد /bf روبات در status مثلا بنويسه بچه ها اين ياروو بي اف مي خواد .اين طوري آره. يا مثلا دستور gf
بگه اين طرف يا دوستمون gf مي خواد.بعدش سوالي كه ديگه داشتم برنمه رو از راه دور مديريت مي كنيد من هر كاري كردم نتونستم آيپي هم دادم چون adsl دارم هر كاري كردم نشد اگه ميشه يكم بيشتر توضيح بديد.
بعدش نحوه كامل براي نوشن پيغام هاي متداول در دستور /help .ممنونم بازم ازتون تشكر مي كنم به خاطره برنامه تون. با تشكر
Siavash
۰۸-۲۲-۱۳۸۷, ۰۸:۴۷ بعد از ظهر
در مورد تكرار من در پستي كه نسخه ي آخر رو در اون قرار دادم توضيح دادم، كافيه /joke رو به ثابت repeatSafeTerms در اول فايل frmMain.frm اضافه كنيد...
در مورد /tip كجاشو توضيح مي خواين؟ كافيه هر جا /tip مي بينيد با /joke مثلاً عوضش كنيد... بعد ليست جك هاتون رو توي جدول Tips قرار بديد. يا همون جدول Tips رو توي Access كپي كنيدش با نام Jokes و هر جا Tips در سورس بود هم با Jokes عوض كنيد.
در مورد /gf و /bf هم ببينيد /status جچوري كار مي كنه... PersonId متغيري هست كه ID كسي كه pm داده توشه. با چند خط (دو خط مثلاً) اضافه كردن به بخش سويچ ها (كه كاملا با كامنت مشخصش كردم) مي تونيد اين كار رو انجام بديد...
در مورد /help مي تونيد هر مجموعه پيامي كه مي خواين بدبد. فايل modSwitchHelp رو باز كنيد...
فكر كنم اگر اين تاپيك رو از ابتدا بخونيد خيلي بيشتر با كد آشنا بشيد...
mohammad_tz
۰۸-۲۲-۱۳۸۷, ۰۹:۰۸ بعد از ظهر
سلام
امیدوارم حال همگی دوستان عزیز خوب باشه.
اول از همه از آقای محمودیان برای ارائه ورژن جدید تشکر می کنم. برنامه نویسی با این سیستم کامنت گذاری خیلی سخته. کلا برنامه نویسی خیلی اعصاب می خواد.
برای این بات یه چند تا پیشنهاد دارم. البته شاید پیاده سازی هاش سخت باشه. اما خوب پیشنهاد دادن که ضرری نداره :) :
1)امکان پاسخ گویی با زمان
مثال:مثلا گفتگوی بین ساعت 11 PM تا 1 AM ، بات: "دیر وقته نمی خوای بخوابی؟"
مثلا گفتگوی بین ساعت 6 AM تا 8 AM ، بات: "صبح به این زودی تو اینترنت چی کار می کنی؟"
مثلا گفتگوی بین ساعات 12 PM تا 2 PM ، بات: "راستی، ناهار خوردی؟ ما که جاتون خالی کباب داشتیم. :)"
2)حس دلتنگی
اگه یوزر مثلا 5 روز با بات چت نداشت، دفعه بعد بات پیغام هایی مثل زیر بدهد :
بات: "کجایی پس؟ میدونی چند روز ازت خبر ندارم؟"
یا
بات: "بابا بی معرفت. مثل اینکه سرت خیلی شلوغه. وقت کردی یه سری هم به ما بزن. دلم خیلی برات تنگ شده."
3)امکان پاسخ اولیه همراه با شوخی و پس از تقاضای مجدد کاربر در رابطه با اون موضوع جواب منطقی. (منظورم جواب Random نیست.)
یوزر:ساعت چنده؟
بات:فروشی نیست:)
یوزر:ای بابا.حالا جدی بگو دیگه.
بات:09:20 AM
4)قابلیت نظرسنجی از افراد برای کارهای آماری برطبق سئوالات مطرح شده Admin بات (می توان دلایل را هم ذخیره کرد.)
بات:"یه سوال. به نظرت IE بهتره یا Firefox ؟
یوزر:"Firefox"
بات:"چرا؟"
یوزر:"خوب تو اینترنت یه سرچ کردم و بررسی ها رو خوندم. اما در کل IE خیلی کند هست و مشکلات زیادی داره."
5)یادآوری مناسبت ها و رویدادهای تاریخی
بات:"راستی محمد اگه گفتی امروز چه روزیه؟"
یوزر:"سه شنبه"
بات:"نه بابا مسخره منظورم اینه که چه مناسبتی هست؟
یوزر:"نمی دونم"
یات:"ای بابا امروز روز معلم هست دیگه"
6)امکان معرفی وب سایت همراه با موضوع
بات:"امروز داشتم تو اینترنت یه چرخی می زدم یه سایت خیلی جالب در رابطه با "هوش مصنوعی" دیدم. اگه به "هوش مصنوعی" علاقه داری لینکش رو بهت بدم."
یوزر:"آره. اتفاقا یه تحقیق در رابطه با هوش مصنوعی دارم.لینکش رو بفرست."
بات:"http://www.artificial.ir"
7)اگر هیچ کسی با بات مثلا 5 دقیقه چت نداشت بات یه وضعیت احساسی از آخرین فرد داشته باشه. مثلا اگه آخرین فرد بات رو ناراحت کرده، بات در اولین چت بعدی با یه شخص دیگه اون وضعیت رو بروز بده.
یوزر:"سلام.خوبی؟"
بات:"سلام.نه"
یوزر:"چرا؟"
بات:"یکی یه حرفی بهم زده خیلی ناراحتم"
8)اگه کاربر یه سئوالی پرسید که بات جوابی برای اون نداشت بتونه کلمات کلیدی اون سئوال رو در بیاره و با حذف اجزای غیر ضروری یه جمله مثل حروف اضافه و علامت سوال و علامت های نگارشی و ... یه جستجو برای یوزر انجام بده و لینک جستجو رو به اون اعلام کنه.
یوزر:"چطوری می شه ویندوز نصب کرد؟" ---(توضیح:جمله تبدیل بشه به "ویندوز نصب")
بات:"یه لحظه صبر کن"
بات:"این رو ببین"---(توضیح:لینک جستجو)
یوزر:"اوه! خیلی ممنونم."
9)عکس العمل در برابر روز تولد یوزر
یه چند تا پیشنهاد فنی :
1)مشکل Add Word و Refresh رو می شه حل کرد. اگه برای دکمه Add Word یه همچین کدی بنویسیم حل می شه و بعد از اضافه شدن رکورد جدید DataGrid بلافاصله Refresh می شه و دیگه نیازی به دکمه Refresh نیست :
Private Sub cAddWord_Click()
adoMessage.Recordset.AddNew "Request", txtRequest.Text
adoMessage.Recordset.Update "Response", txtResponse.Text
End Sub
2)برای داخل تکست باکس tUser که پیش فرض متن "username" دارد می توان از کدهای زیر هم استفاده کرد :
Private Sub tUser_GotFocus()
If tUser.Text = "username" Then tUser.Text = ""
End Sub
Private Sub tUser_LostFocus()
If tUser.Text = "" Then tUser.Text = "username"
End Sub
3)حجم بانک های اطلاعاتی Access بعد از مدتی خود به خود افزایش پیدا می کنه و موجب کند شدن بیش از حد بانک می شه. در این رابطه می شه از کدهایی که کار همان گزینه Compact and Repair داخل خود Access را انجام می ده استفاده کرد. فکر کنم من کدش رو داشته باشم.
4)وقتی کاربر دکمه Sign in رو زد متن و عملکرد این دکمه به Cancel تغییر پیدا کنه.
5)در ضمن یه مشکل دیگه ای که داخل پروژه هست اینه که نمی شه فایل EXE رو ساخت و در موقع Make EXE هشدار می ده.
6)یه امکانی داخل VS.NET هست به نام Dataset . کارش اینه که می تونی مثلا یه Query از نوع Select بزنی و نتایج رو بریزی داخل به Dataset که در واقع مثل یه Table مجازی هست و دقیقا عین یه جدول بانک اطلاعاتی می تونی با سطرها و ستون هاش کار کنی و حتی Query هم بزنی. حسن این کار اینه که در مواقعی که داده ها تغییر آن لاین ندارند می شه کل داده ها رو یه بار خوند و ریخت داخل یه Dataset و برای بیرون کشیدن یه مقداری از اون جدول دیگه نیازی نیست که مجددا بخواهیم به اون بانک وصل بشیم بخصوص وقتی که تعداد مراجعات به بانک خیلی زیاد باشه. این کار توی سرعت خیلی تاثیر می گذاره. فکر کنم توی VS 6.0 و VB 6.0 نباشه. اما فکر کنم بشه با یه ترفندهایی پیاده سازی اش کرد. اگه بشه خیلی خوبه.
همین دیگه. خسته شدم اینا رو تایپ کردم. :)
با آرزوی موفقیت برای دوستان عزیز
mohsen_is
۰۸-۲۲-۱۳۸۷, ۱۰:۰۰ بعد از ظهر
سلام
اول از همه باید تشکر کرد از تمامی دوستان که یه پروژه بزرگی رو شروع کردن.
من یه مشکلی دارم در بوت
من وقتی یه دستوری اضافه کردم
مثلا کسی زد /Help در status یه چیزی بنویسه ولی وقتی می زنه /help خیلی طول می کشه دستور به status بره یا اینکه اگه دستوری دیگه زده باشی که status توش داشته باشه در آن تایم خاص اون رو می فرسته.
چطوری تنظیم کنم تا می زنه سریع به به status.
' Help switch
ElseIf Left(Message, 5) = "/help" Then
statusMessage = PersonId & " Dare Help Mano Mibine!"
Response = helpSwitch(Message)
باتشکر ازشما
Siavash
۰۸-۲۲-۱۳۸۷, ۱۱:۲۹ بعد از ظهر
از دوستمون محمد جان اول از همه تشكر مي كنم بابت پست خيلي مفيدشون.
در نسخه هاي بعدي سعي مي كنم اين موارد رو اضافه كنم... و باگها بر طرف بشن.
در ارتباط با سوال آخر، دليل اينكه تأخيري در تعويض Status قرار دادم به خاطر اين هست كه در غير اين صورت اگر شخصي پشت سر هم /help بزنه مثلاً ياهو به خاطر تعويض هاي مكرر Status بات رو قطع مي كنه. و در ضمن اگر سرعت تعويض Status از يك حدي بيشتر بشه ياهو ديگه قبول نمي كنه Status هاي جديد رو كه اگر در صفحات قبل ببيني اين مشكل توضيح داده شده.
اما اگر مي خواين اين كار رو انجام بديد كافيه از دستور زير استفاده كنيد:
sendData changeStatus(PersonId & " Dare Help Mano Mibine!")
itc_net
۰۸-۲۳-۱۳۸۷, ۱۲:۱۰ قبل از ظهر
سیاوش جان من تازه آخرین نسخه مسنجر رو دانلود کردم Yahoo! Messenger 9.0.0.1912 Final بعد به روبوت هر چقدر پی ام میدم جواب نمی ده بعضی وقت از هر صدتا یکیش رو جواب میده اون هم تو بازده های زمانی مختلف بعد من فکر کردم مشکل از جای دیگه هست اینترنت همه چیز رو بررسی کردم فایده نداشت بعد روبوت های خارجیه هم چک کردم دیدم باز هم همین مشکل رو داشتن بعد آخر متوجه شدم از مسنجر هست پاکش کردم نسخه 8و7 رو نصب کردم مشکل به کل حل شد البته اگر یاهو 9 بتاش هم باشه مشکل نداره فقط مثل این که با این آخری مشکل داره
متشکر
منتظر نظرتون هستم
mohsen_is
۰۸-۲۳-۱۳۸۷, ۰۱:۲۱ قبل از ظهر
در ارتباط با سوال آخر، دليل اينكه تأخيري در تعويض Status قرار دادم به خاطر اين هست كه در غير اين صورت اگر شخصي پشت سر هم /help بزنه مثلاً ياهو به خاطر تعويض هاي مكرر Status بات رو قطع مي كنه. و در ضمن اگر سرعت تعويض Status از يك حدي بيشتر بشه ياهو ديگه قبول نمي كنه Status هاي جديد رو كه اگر در صفحات قبل ببيني اين مشكل توضيح داده شده.
اما اگر مي خواين اين كار رو انجام بديد كافيه از دستور زير استفاده كنيد:
sendData changeStatus(PersonId & " Dare Help Mano Mibine!")
سلام
آقا من کد جدید رو اضافه کردم ولی وقتی اجرا می کنم اررور می ده.
این هم اررور
http://irani-soft.persiangig.ir/1.JPG
' Help switch
ElseIf Left(Message, 5) = "/help" Then
sendData changeStatus(PersonId & " Dare Help Mano Mibine!")
Response = helpSwitch(Message)
تشکر فراوان.
Siavash
۰۸-۲۳-۱۳۸۷, ۰۱:۴۴ قبل از ظهر
فكر كنم يكي از ورودي هاش رو در كد فراموش كردم:
sendData changeStatus(PersonId & " Dare Help Mano Mibine!", false)
اين كد رو امتحان كن...
mohsen_is
۰۸-۲۳-۱۳۸۷, ۱۲:۴۱ بعد از ظهر
سلام
باتشکر از شما سیاوش جان.
درست شد.
یه 2 تا مشکل دیگه دارم
شرمنده که هی سوال می کنم.شاید سوال دوستان دیگه هم باشه.
1- مثلا من می خوام 3 تا Help داشته باشم.
دستورات هم به صورت زیر باشه.
/Help
/Help-2
/Help-3
همه رو درست کردم هم ماژوال ها و هم دستورات و لی وقتی می زنی /Help-2 همون Help اول رو نشون می ده.
2- من می خوام یه قسمت اضافه کنم که هرکی خواست ASL به بات بده و بات هو در دیتابیس ذخیره کنه.
من می خواستم اگه بهشه یه راهنمایی کنید.
من اومدم از طریق همان دستور /Lern درست که خودم هم گیج شدم.
بازهم تشکر فراوان.
Siavash
۰۸-۲۳-۱۳۸۷, ۰۴:۵۸ بعد از ظهر
در مورد /Help ها من حدس مي زنم بعد از دستور Left در قسمتي كه شرط ها رو داريم عدد رو از 5 به مثلا 7 تغيير ندادي... ترتيب هم مهم هست. يعني اول بايد /Help-2 رو قرار بدي و بعد /Help چون در غير اين صورت شرط مي بينه /Help-2 هم 5 كاراكتر سمت چپش Help هست و بقيه ي شرط ها رو چك نمي كنه...
در نهايت كد بايد شبيه كد زير بشه:
' Help2 switch
ElseIf Left(Message, 7) = "/help-2" Then
Response = helpSwitch2(Message)
' Help switch
ElseIf Left(Message, 7) = "/help-1" Then
Response = helpSwitch1(Message)
' Help switch
ElseIf Left(Message, 5) = "/help" Then
Response = helpSwitch(Message)
در مورد /asl هم مي توني برا ساده شدنش اون رو به چند قسمت تقسيم كني... مثلاً طرف /age كه زد يا گفت Man 12 salam hast بات اون رو ذخيره كنه. نمونش در Pattern ها موجود هست در جواب سوال به esmam * hast. خود /asl رو هم شايد در ورژن بعد قرار بدم... البته بايد توجه داشته باشيم كه هدف ما كم كردن سويچ ها هست. و بات بايد از حرف هاي معمولي كاربر اين اطلاعات رو بكشه بيرون...
vBulletin® v3.8.3, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.