Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Написание instant messaging Бота на AutoIt

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8

Открыть новую тему     Написать ответ в эту тему

pvnn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По поводу Autoit-Delphi-IcqBot
Задумка и реализация Классная!!! Большой респект vicbox777
Очень Удобно и быстро можно расширить набор функций программы, благодоря AUTOIT.
Сам написал несколько интересных функций, если что, могу выложить. Готов присоединиться к сообществу
 
Но вот что хочется сказать:  ЗАЧЕМ ОГРАНИЧИВАТЬ БОТА ТОЛЬКО ФУНКЦИЯМИ АДМИНИСТРИРОВАНИЯ СИСТЕМЫ???
Уважаемый vicbox777, а можно пересобрать бота таким образом, чтобы он принимал команды от все пользователей, а вод команды удаленного управления принимались бы только от ICQ Админа, прописанного в ini. Чтобы это дало... А вот что. Можно было бы бот снабдить интересными функциями: Погода, которая бы бралась с любого сайта посредством AUTOIT, анекдоты, да хоть ответы к экзаменационным билетам... что угодно
Тогда можно было бы дать номерок бота друзьям или самому, через телефон обращаться к нему, то есть, тем самым повысился бы функционал и аудитория программы.

Всего записей: 3 | Зарегистр. 07-10-2009 | Отправлено: 06:26 08-10-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сам написал несколько интересных функций, если что, могу выложить.

конечно выкладывай, будем только рады

Цитата:
чтобы он принимал команды от все пользователей

думаю можно, но темка что-то под затихла
Так что если есть желание то  
Я только за, хоть у меня и маловато знаний в AUTOIT, но данное предложение поддерживаю

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 22:31 08-10-2009
pvnn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
конечно выкладывай, будем только рады

Обязательно выложу, вот только
1. Как вставить раскрашенный код от AUTOIT
2. Нужна помощь в по Регулярным выражениям на Autoit
Есть строка: 1234567|abcdef
Как при помощи регулярных выражений отделить что находится до символа | и после символа.
второе, есть строка: "!newcommand abcdef    "
Нужно получить строку: abcdef но без пробелов справа и слева
как поправить данную строчку
$sPath=StringRegExpReplace($sMsg,".*!newcommand(\s)*(.*)","\2")
 

Всего записей: 3 | Зарегистр. 07-10-2009 | Отправлено: 07:12 09-10-2009
timsky



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pvnn

Цитата:
Есть строка: 1234567|abcdef
Как при помощи регулярных выражений отделить что находится до символа | и после символа.
второе, есть строка: "!newcommand abcdef    "
Нужно получить строку: abcdef но без пробелов справа и слева  

 
Юзай StringSplit() для таких простых задач. В первом случае разделитель |, а во втором - пробел

Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 07:43 09-10-2009
ynbIpb



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но темка что-то под затихла

Да всё ждём Jabber UDF вот если появится, то там будет свобода полёта.
з.ы. надо бы ещё на русском оф форуме автоита эту темку завести.

Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 09:08 09-10-2009
pvnn



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тоже сделал сначала StringSplit()  
Не правильно это!!!!
Я же написал, мне надо через регулярные выражения
 
История
Бот благодоря исходникам был переписан мной для приема сообщений от всех пользователей!!!
Теперь $sMsg имеет вид: Номер ICQ Разделитель Текст сообщения
например: 1234567|текст сооббщения
Вот я и хотел поделить это сообщение при помощи регулярных выражений.
Почему не StringSplit() а если текст будет такой:  "1234567|текст сооббщения | текст" , - символ разделитель | будет присутствовать в самом тексте сообщения, тогда сообщение обрежется...
Так что вопрос открыт
Кто-нибудь вообще знает регулярные выражения?????????
Хотелось бы именно в разрезе автоита

Всего записей: 3 | Зарегистр. 07-10-2009 | Отправлено: 09:21 09-10-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
з.ы. надо бы ещё на русском оф форуме автоита эту темку завести.

да да это точно

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 21:01 09-10-2009
Gorrr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pvnn

Цитата:
Есть строка: 1234567|abcdef
Как при помощи регулярных выражений отделить что находится до символа | и после символа.
 

 
$sString = "1234567|Некое сообщение с символами | и прочими 1316546"
$aMatches = StringRegExp($sString, '\A[\d]+', 3)
$sICQnumber = $aMatches[0]
$sMessage = StringRegExpReplace($sString, '\A[\d]+\|', "")
 

Цитата:
второе, есть строка: "!newcommand abcdef    "
Нужно получить строку: abcdef но без пробелов справа и слева
как поправить данную строчку
$sPath=StringRegExpReplace($sMsg,".*!newcommand(\s)*(.*)","\2")  

 
$sString = "!newcommand   abcdef    "
$aArray = StringRegExp($sString, "(?<=\!newcommand).+\z", 3)
$sResult = StringStripWS( $aArray[0], 3)

Всего записей: 94 | Зарегистр. 25-10-2004 | Отправлено: 16:57 12-10-2009 | Исправлено: Gorrr, 17:08 12-10-2009
RandRover



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
$aArray = StringRegExp($sString, "(?<=\!newcommand).+\z", 3)

Лучче так(тогда StringStripWS не нужен) -

Код:
$aArray = StringRegExp($sString, "^\!newcommand\s+(.+?)\s+.*$", 3)

 
 

Цитата:
Почему не StringSplit() а если текст будет такой:  "1234567|текст сооббщения | текст" , - символ разделитель | будет присутствовать в самом тексте сообщения, тогда сообщение обрежется...

 
В StringSplit() есть опцион. флаг "1" для разбивки по группе символов, например -

Код:
$text = "1234567[n|s]текст сообщения [n|s] текст."
$array = StringSplit($text, "[n|s]", 1)
 

 
Вероятность появления "[n|s]" в тексте сообщения практически равна нулю...
Ну на крайний случай можно конвертировать в хекс - но тогда трафик в два раза больше будет.

Всего записей: 68 | Зарегистр. 01-10-2009 | Отправлено: 17:44 12-10-2009 | Исправлено: RandRover, 18:08 12-10-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
з.ы. надо бы ещё на русском оф форуме автоита эту темку завести.


Цитата:
да да это точно  

 
А вот и темка
Ссылка

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 22:34 12-10-2009 | Исправлено: araneon, 00:09 13-10-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ркбята, ну у кого есть хоть какие небудь команды, выкладывайте
Лучше Сюда

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 23:53 05-11-2009 | Исправлено: araneon, 13:31 06-11-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если сюда ещё хоть кто нибудь заходит, то подскажите, как сделать комонду !help. Тоесть пишу боту !help а в ответ список поддерживаемых команд? Если кто знает подскажите.

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 19:31 07-11-2009 | Исправлено: araneon, 19:34 07-11-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо ynbIpb, всё теперь работает !help как часики )))

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 10:05 10-11-2009
Nik_rus

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вобщем я с этой темы собрал много полезностей и всякого добра, собрал в один скрипт и...
Идем сюда

Всего записей: 1 | Зарегистр. 07-08-2009 | Отправлено: 14:00 11-11-2009
MoBiRo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему в Autoit-Delphi-IcqBot делфийская exe'шка не сжата? Я сжал её upx'ом и она стала 214кб вместо почти 600кб  =\

Всего записей: 68 | Зарегистр. 11-11-2009 | Отправлено: 08:34 05-12-2009
vicbox777



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Почему в Autoit-Delphi-IcqBot делфийская exe'шка не сжата? Я сжал её upx'ом и она стала 214кб вместо почти 600кб =\

Разница в 400 кб в принципе не так много, но лично я не сжимал, чтоб не ругались некоторые антивирусы...

Всего записей: 165 | Зарегистр. 17-06-2008 | Отправлено: 12:41 05-12-2009 | Исправлено: vicbox777, 12:44 05-12-2009
ynbIpb



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тем кто ещё следит за этой темкой:
Появилась чудная DLL'ка IcqMod DLL, под которую уже создана UDF, работает изумительно.

Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 21:45 18-12-2009
BIOS999

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Появилась идея написать посредник основываясь на PHP с последущей компиляцией в exe. Написать могу, но надо ли?
 
Жду ответа

Всего записей: 30 | Зарегистр. 26-05-2008 | Отправлено: 14:58 30-12-2009
ynbIpb



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В первую очередь чтоб самому было нужно, а там можно и с народом поделиться.
Можно по подробнее о функционале посредника?

Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 15:06 30-12-2009
BIOS999

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Будет exe файл на основе класса c99phpicq, общение через консольное окно, или через файл, пока не разбирался до конца
Полный функционал таков:
 
func - public  - object ICQclient (int uin, string password, string server=login.icq.com, int port=5190) - initialize
func - public  - mixed - _getconst(key1, key2, key3...) - get constants
func - private  - caps_build($array) - build capabilities block
func - private - guid2array($str) - convert com-id to array
func - private  - bool socket_wait(int sec, int usec) - new incoming data exists?
func - private  - bool socket_connect(string server, int port) - establish connection
func - public  - bool connect(string server=defined by func ICQclinet(), int port=defined by func ICQ) - connection to login-server
func - private - bool _connect_migration(string server, int port) - migration to BOS
func - private  - bool set_timeout(string timeout) - set incoming timeout to socket (default is recommended)
func - private  - bool read(int length, int sec, int usec) - read Socket
func - public  - bool                connect_pass - check connection
func - public  - bool                login_pass - check autorization
func - public  - bool login(int uin=defined by func ICQclient, int password=defined by func ICQclient) - autorization
func - public  - bool   setstatus(int status) - set status (online, away...), see $const
func - public  - bool   setstatusflags(array flags) - set status flags (birthday...), see $const
func - public  - bool   updatestatus(bool sub) - send new status and status flags to server (automatic before login)
func - public  - bool   updatesubstatus() - send new substatus to server
func - public  - bool        message_send(int uin, string text, mixed type, mixed flag, bool confirm, bool store) - send message
func - public  - bool        chkinvisible(int uin) - get real status. returns int 1 when UIN online, 0 when offline and FALSE on error
func - public - array         recv_offline_msgs(bool REMOVE=TRUE) - fetch offline-messages
func - public  - array        search_whitepages(array info) - search UIN by details. returns structured array, use var_dump() for learn.
func - public  - array        getinfo(int uin, bool cache?, bool own?) - get UIN-info
func - public  - array        uinreg(string password) - register new UIN
func - public  - bool        listen(bool buf) - listening connection and processing data
func - private  - void        unsetinturn(int position) - remove incoming turn Position
func - private  - array        _FLAP_parse(string FLAP) - parse FLAP-header
func - public - bool ismessage() -  is message last incoming command.
func - public  - array        error_reporting(int errlevel) - set errlevel
func - private - array        recv - recieve packet
func - public - bool        send(string type, string SNAC) - send packet
func - private - string                _FLAP_gen(int channel, int length) - build FLAP-header
func - private - string                _SNAC_gen_header(int family, int subfamily) - generate SNAC-header
func - private - string                _SNAC_gen(string SNAC-type, array args) - generate SNAC
func - private - bool                _SNAC_parse_onlineuserinfo(array TLV) - parse online-info block
func - private - bool                _SNAC_parse_lea(string &p, int num) - parse some string
func - private - bool                _SNAC_parse(string packet) - parse SNAC
func - private - bool                _dbg(string procedure, string file, int line) - display debug-messages
func - private - bool                _specialdbg(string procedure, string file, int line) - special debug channel
func - private - bool                _error(string procedure, string file, int line) - display error-message
func - public  - string                lasterror - last error-message
func - public  - bool                is_uin(int uin) - int is UIN?
func - public  - bool                is_password(string password) - string is password?
func - public  - bool                disconnect() - close connection
func - private  - string        array2TLV(array array, bool reversed=FALSE) - convert array to TLV
func - private - array                TLV2array(string TLV, bool reverse=FALSE, bool limit=FALSE) - TLV to array
func - private - array                TLV2array_numbered(string TLV) - TLV to numbered array
func - public - int -                 http_ratingbyuin(int uin) - get aim-fight rating
func - private  - string        XORencrypt(string plain) - XOR-encrypt data (password)
func - private - string                XORdecrypt(string XORed) - XOR-decrypt data (password)
func - private - string                XORseq(string plain, string XORed) - get XOR-sequence
func - public  - bool                set_event(string event, string php-code) - set event
func - public  - array                get_event(string event) - get event
func - private  - array                exec_event(string event, array params) - execute event
func - private  - string    _gen_uinlist(array array) - generate UIN-list (for ICQ-server)
func - private  - bool                _update_sequence(var &seq) - update sequence
func - private  - int                _newreqid(string cmd, array info) - register request
func - private  - mixed     _setreqidstatus(int reqid, mixed status) - set request status
func - private  - mixed                _getreqidstatus(int reqid) - get request status
func - private  - array                _getreqid(int reqid) - get request info
func - public  - int                defake(int virtual_uin) - convert virtual uin to real
 
написал все возможные, сделаю только нужные

Всего записей: 30 | Зарегистр. 26-05-2008 | Отправлено: 15:14 30-12-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Написание instant messaging Бота на AutoIt


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru