простой ICQ бот на perl!, основным достоинством которого является модульность и легкость добавления новых функций. Бот состоит из основного скрипта, к которому можно подключать плагины на PERL, неограниченно расширяя его функционал. * Администрирование бота осуществляется по ICQ. * Легкость разработки и установки плагинов * Основной скрипт обладает множеством функций для упрощения разработки плагинов, благодаря чему разработка плагина фактически состоит только из написания непосредственно выполняемой им функции * Для добавления нового плагина боту нужно всего лишь поместить файл плагина в папку плагинов и перезапустить бота. * Огромные возможности плагинов * Возможности плагинов ограничены лишь возможностями языка perl для корректной работы необходим ActivePerl или любая ос *nix. в config.ini настройки (формат: имя = значение) : в plugins.ini список плагинов (в формате: команда;файл): написание плагина любой программист может написать свой плагин для бота, придерживаясь спецификации языка программирования perl. бот передает вашему скрипту следующие переменные: * $rs - ответ сервера * $_UIN - номер отправителя * $_MSG - сообщение * @_MESG - масив слов в сообщении (пример: $_MSG = 'hello my name elwaux', тогда @_MESG[1]='hello', @_MESG[2]='my', @_MESG[3]='name', ...) * $admin - номер админа * $uin - номер бота * $password - пароль бота * также можно получить любое значение из config.ini: $CONFIG{имя} (пример: в config.ini: testing == nana, тогда чтоб получить значение имени testing: $CONFIG{'testing'}) также ви можете использовать готовие функции: * saveFile(file, text) - сохранить text в файл file * logIt(file, text) - ввести в лог file текст text * auth(uin, reason) - авторизация на номер uin с причиной reason * send_msg(uin, msg) - отправить сообщение msg на номер uin пример плагина hello_world.pl: (!helloword msg) - оправляет вам обратно текст msg Code: send_msg($_UIN,@_MEST[1]); на команду: !helloworld testing_my_first_plugin бот вам ответит: testing_my_first_plugin вот и все пока.. большая просьба ко всем кто скачал: отпишите здесь о том что вам понравилось или нет у бота, что бы вы хотели еще увидеть в нем, какие недостатки встретили.. и так далее..) рад всем ответам!
тебя ткнули лицом в твой быдлокод и ты до сих пор успокоиться не можешь чтоли?) upd: а может тебя моя фотокарточка раздражает? ^^
просто не мог не поставить +. + и даже 2 0.o ну я не богатый =) ЗЫ, на винде пашет? И возможно его на хосте установить? В этом не шарю, извените за глупые вопросы, учусь..
Ну так что же ты не покажешь всем пример своего православного кода, дабы все восхитились и не обсуждали твое постоянное порицание чужих творений?
Вотйчас просмотрел все твои сообщения которые ты оставил на этом форуме,пришел к выводу, что ты ошибся адресом. У тебя комплексы?В детстве обижали? Человек написал на перле бот,аналогов я еще не видел,а от тебя ниодного полезного сообщения на форуме я не увидел,ты только среш в темах на мой взгляд.Kaimi несколько раз мне помогал,также он помогает новичкам в соответствующих темах, eLWAux тоже не сидит без дела,будь у них быдлокод(как у тебя) онибы не носили цветные ники,и их не уважалибы на античате. В общем eLWAux,Kaimi - как говорят сейчас,респект и уважуха,а ты Ил-2 либо жуй пыль которую оставляют они,либо прояви себя и к тебе потянуться. IMHO + поставил,огромное спс,скорее всего мне это не пригодиться,разве что для экспериментов.
Угу, советую ещё пару примеров japh с перлмонков скопипастить, чтобы показать крутость... Кстати, в твоем коде часто наблюдаю конструкции типа die ... unless .... Как же такой православный кодер как ты может их использовать, если в "библии" пишут: * Just because you *CAN* do something a particular way doesn't mean that you *SHOULD* do it that way. Perl is designed to give you several ways to do anything, so consider picking the most readable one. For instance open(FOO,$foo) || die "Can't open $foo: $!"; is better than die "Can't open $foo: $!" unless open(FOO,$foo);
для запуска на ос windows тебе нужен ActivePerl: www.activestate.com/store/activeperl/download бот не нуждаетса в установке!
Kaimi, чуешь в чём соль-то? Code: #!/usr/bin/perl use strict; use warnings; use Benchmark; my $res = timethese (-10, { 'code1' => sub { open my $f, '<', 'file.txt' or die $!; chomp (my @array = <$f>); close $f }, 'code2' => sub { die $! unless open my $f, '<', 'file.txt'; chomp (my @array = <$f>); close $f } }); Code: Benchmark: running code1, code2 for at least 10 CPU seconds... code1: 13 wallclock secs (10.69 usr + 0.55 sys = 11.24 CPU) @ 97.46/s (n=1095) code2: 11 wallclock secs ( 9.55 usr + 0.56 sys = 10.11 CPU) @ 100.21/s (n=1013) upd: + твоя претензия была не уместна по отношению к тому коду
Не надо тут нам результаты замеров подделывать Code: Benchmark: running code1, code2 for at least 10 CPU seconds... code1: 11 wallclock secs ( 9.84 usr + 0.41 sys = 10.79 CPU) @ 100.10/s (n= 1026) code2: 12 wallclock secs ( 9.69 usr + 0.52 sys = 10.20 CPU) @ 98.40/s (n=1 004)
Да вот сижу и во всю подделываю, кстати если разбить на отдельные файлы то линукс думает так: [root@srv ~]# time perl 1.pl real 0m0.011s user 0m0.001s sys 0m0.010s [root@srv ~]# time perl 2.pl real 0m0.011s user 0m0.000s sys 0m0.011s