Sergey Danyushin ([info]destym) wrote,
  • Mood: okay
  • Music: Tori Amos - Wednesday

mlCQ library v0.4

Кто запрашивал сорсы - вот они. Для порядку упомяну, что код пока ещё сыр, и вся ответственность за пользование сего кода лежит на том, кто пользует - а я сам ащще никакой ответственности не несу, и никаких гарантий не даю.

Документации пока нет в принципе, хотя в ближайшем будущем возможно её появление, равно как и сайта для прожекта. Конечно, буду рад любым адекватным комментариям по поводу.

Как можно пользовать:
<?

require("mlICQ.php");

set_time_limit (0);
ignore_user_abort(true);

$mlCQ = new mlCQ();
$mlCQ->start_logging('huge.log');

$mlCQ->create_identity("me"'123456''superduperpassword');
$mlCQ->connect();
$mlCQ->login();

$mlCQ->set_status('ONLINE''DCDISABLED');
$mlCQ->request_offline_messages();
$mlCQ->delete_offline_messages();

// sample send message
$mlCQ->send_message(1991216"It works!");

$still_there true$code '';
while (
$still_there) {
    if (!
is_resource($mlCQ->sock) || feof($mlCQ->sock))
        
$still_there false;
    if (!
$codesleep(1);    // delay if no packet received last time
    
$code $mlCQ->dance_for('me');
    switch (
$code) {
        case 
7:
        
$msg $mlCQ->id['in_messages']['last'];
        
// new message received
        // more code here
            
break;
        case 
8:
        
$msg $mlCQ->id['in_messages']['last'];
        
// offline message received
        // more code here
            
break;
        default:
        
// ...
            
break;
    }
}

?>

Класс лежит тут.

UPD: Чуть подправил пример использования, добив в него очень важную строчку. =)
UPD2: Работоспособнойсть библиотеки восстановлена после изменений в требованиях к клиенту на серверах ICQ.
Tags: icq, im, programming

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    Your reply will be screened

    Your IP address will be recorded 

  • 129 comments
Previous
← Ctrl← Alt
Next
Ctrl →Alt →

[info]shattl

October 25 2006, 19:11:56 UTC 5 years ago

фигасе.. прикольно однако!!!

[info]info_link

December 29 2007, 15:21:08 UTC 4 years ago

хорошо а не прикольно. что прикольного в программном коде ? )

[info]shattl

4 years ago

[info]destym

October 25 2006, 20:38:35 UTC 5 years ago

Работаем. =)

Anonymous

December 3 2006, 18:11:59 UTC 5 years ago

Класс!

Вы молодец, destym. Очень хороший класс. Заслуживает внимания!

[info]destym

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

[info]pc_speaker

October 26 2006, 06:36:33 UTC 5 years ago

Молодец!

Может выложишь в опенсорс на SourceForge? Проект нужный народу =)

[info]destym

October 26 2006, 14:54:18 UTC 5 years ago

Спасибо.

Сайт у проекта будет в любом случае, а делать ли страницу на СорсФордже - я пока не думал. Прежде чем соваться на тот уровень, нужно класс в божеский вид привести, удобоваримую документацию написать, и т.д. В данный момент у меня нет времени этим заниматься, хотя работу я продолжать буду в любом случае.

Так что это пока перспектива. =)

[info]pc_speaker

5 years ago

[info]oless

November 2 2006, 04:58:18 UTC 5 years ago

Очень интересно.

А нет ли у Вас мало-мальской документации к библиотеке?

А то разобраться с некоторыми вещами не могу.

[info]destym

November 2 2006, 08:30:21 UTC 5 years ago

Документации пока нет в принципе

Но если что-то интересует, можно пока спросить так.

[info]vasyathriller

November 7 2006, 12:23:21 UTC 5 years ago

+1

[info]mr_owner

November 8 2006, 09:46:01 UTC 5 years ago

А как бы прикрутить бы подключение через прокси было бы еще хорошо...

[info]destym

November 9 2006, 08:16:56 UTC 5 years ago

Можно, правда задача не из самых приоритетных. В туду добавлено. =)

[info]g7v

November 8 2006, 11:27:47 UTC 5 years ago

Супер! Спасибо!

[info]vasyathriller

November 8 2006, 12:52:14 UTC 5 years ago

Кстати, меня вот что заинтересовало: это реализация протокола OSCAR?

[info]destym

November 9 2006, 08:19:44 UTC 5 years ago

Его, родимого. Причём, реализация ICQ-специфичная, под AIM переделать потенциально возможно, но я не пробовал (ибо не пользуюсь).

[info]g7v

November 9 2006, 02:48:59 UTC 5 years ago

маленький баг

При длительной работе скрипт вываливаеться с ошибкой:
unpack(): Type n: not enough input, need 2, have 0 in /root/icq/mlICQ.php on line 645

[info]destym

November 9 2006, 08:42:43 UTC 5 years ago

Re: маленький баг

Баг связан с получением пустого SNAC'а (хотя такого в принципе не должно быть), вылезал пару раз, когда я запускал скрипт из дома на узком и тесном GPRS-коннекте. Будучи запущен на сервере, скрипт неделями висел в онлайне без нареканий (для продолжительного онлайна там даже client migration реализован, правда, по понятным причинам, не слишком оттестирован).

Здесь я ничего более определённого сказать не могу, т.к. функция, в которой сие происходит, используется много где. Лог ведётся? Хотелось бы на него взглянуть.

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

Anonymous

5 years ago

[info]stalxed

December 10 2006, 11:36:10 UTC 5 years ago

Спасибо за замечательную либу!

Либа просто супер, работает ништяк, большая благодарность автору за либу!!!!!!!!

[info]timmytank

October 9 2008, 16:37:38 UTC 3 years ago

Ru/quote kiper: Вчера видел надпись на терминале: "Терминал РАБОТАЕТ, просто не выдает чеки.

Anonymous

December 12 2006, 09:55:27 UTC 5 years ago

mlICQ

что означает сия ошибка ?
Error: "Authorization failed, error code: 0. For more information try visiting this page" in file /var/www_yuri/www/mlICQ.php at line 213

Anonymous

December 12 2006, 10:01:51 UTC 5 years ago

Re: mlICQ

сори. тормознул. все ок

Anonymous

5 years ago

[info]chromed_bones

December 13 2006, 16:49:18 UTC 5 years ago

отличная штука!

Замечательная вещь, спасибо автору!

[info]gaskoyn

December 14 2006, 08:46:23 UTC 5 years ago

Статус?

Ув. destym, каким образом с помощью этого класса можно узнать статус icq пользователя по $uin, если это возможно? Заранее благодарю за ответ.

Anonymous

December 14 2006, 11:49:56 UTC 5 years ago

Re: Статус?

print_r($icq->id['in_messages']); -- и все сразу станет понятно.

[info]gaskoyn

5 years ago

[info]destym

5 years ago

[info]gaskoyn

5 years ago

[info]maladoy

December 14 2006, 21:51:57 UTC 5 years ago

спасибо, отличный скрипт.
планируется ли доработка?
меня интересует работа с серверным контакт-листом..

[info]destym

December 15 2006, 08:23:31 UTC 5 years ago

Доработка планируется, правда, о сроках ничего конкретного не скажу.
Работа с контакт-листом - в самых первых позициях TODO.

[info]kirsanov_anton

December 17 2006, 18:06:31 UTC 5 years ago

молодец - нет слов просто!!!

Anonymous

December 18 2006, 08:47:30 UTC 5 years ago

username

Класс-супер, работает стабильно, пока не очень разбирался что к чему вопрос можноли по uin определить username контакта.

[info]destym

December 18 2006, 20:02:27 UTC 5 years ago

Re: username

$mlCQ->request_short_userinfo($uin);

Когда функция dance_for вернёт код 9, ник будет храниться здесь:
$mlCQ->id['uinfo']['last']['nickname'];

Anonymous

5 years ago

[info]dfalex

December 18 2006, 18:41:42 UTC 5 years ago

Благодарю. Класс супер ;)

Anonymous

January 9 2007, 17:56:01 UTC 5 years ago

Проблема

Странна. Вот сейчас проверял класс, но бот прожил только ровно час. Что это может быть? думаю это надо что то в конф.ини пхп менять.

[info]destym

January 11 2007, 13:48:24 UTC 5 years ago

Re: Проблема

Это может быть много чего. Например, большинство хостеров периодически "отстреливают" подобные процессы.

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

January 21 2007, 22:19:12 UTC 5 years ago

Спасибо большое! :)

Спасибо большое!
Благодаря этому я терь смогу хоть както обмениваться собщениями с работы :)
залочили сцуки ваще все... вот как приходится извращаццо :)

Anonymous

February 13 2007, 06:47:01 UTC 5 years ago

Помощь...

скажите, как сделать в этом куске кода :


while ($still_there) {
if (!is_resource($mlCQ->sock) || feof($mlCQ->sock))
$still_there = false;
if (!$code) sleep(1); // delay if no packet received last time
$code = $mlCQ->dance_for('me');
switch ($code) {
case 7:
$msg = $mlCQ->id['in_messages']['last'];
тут проверка если пришло сообщение "факми" то на тот номер посылаем "блаблабла"
я пробывал сделать так
if ($msg == "факми")
$mlCQ->send_message(111111, "It works!");

но не получилось так =(... я не силен пхп к сожелению

Anonymous

February 13 2007, 07:17:10 UTC 5 years ago

Re: Помощь...

всё, разобрался, извините...
ученье свет

[info]destym

5 years ago

Anonymous

5 years ago

Anonymous

5 years ago

Anonymous

February 13 2007, 10:51:33 UTC 5 years ago

да там я разобрался
case 7:
$msg = $mlCQ->id['in_messages']['last'];
if($msg['text']== "user"){
$mlCQ->send_message($msg['uin'], "It works2!");
}
=====================================
примерно так.... теперь вы мне скажите как его убить))))) я его заюзал на сервере, файлы пхп удалил с пассом от аськи и теперь он там три часа сидит... а как его тырнуть то? через процессы на сервере? и еще.... много ресурсов жрет незнаешь?

Anonymous

February 16 2007, 20:08:59 UTC 5 years ago

Error: "Authorization failed, error code: 0.

Вот столкнулся с такой проблемой, выдаёт ошибку Error: "Authorization failed, error code: 0. For more information try visiting this page" in file y:\home\icq.loc\www\icq.class.php at line 213
Подскажите, пожалуйста, как это исправить... Спасибо
Моё мыло alldoor@mail.ru , ася 921-50-50

P.S. Привожу полный текст страницы:

Login sequence started @16-02 23:04:21

FLAP Dump (in @ 16-02-07 23:04:21)
2A 01 7E A2 00 04 Channel: 1
Seq. num.: 32418
Data size: 4
00 00 00 01 ....


Sending CLI_IDENT... @16-02 23:04:21

FLAP Dump (out @ 16-02-07 23:04:21)
2A 01 36 B3 00 5B Channel: 1
Seq. num.: 14003
Data size: 91
00 00 00 01 00 01 00 09 34 30 33 34 33 38 31 34
32 00 02 00 08 82 47 FB B3 4A E3 EA A0 00 03 00
08 49 43 51 42 61 73 69 63 00 16 00 02 01 0A 00
17 00 02 00 14 00 18 00 02 00 22 00 19 00 02 00
00 00 1A 00 02 09 11 00 14 00 04 00 00 04 3D 00
0F 00 02 65 6E 00 0E 00 02 75 73 ........40343814
2....‚GыіJгк ...
.ICQBasic.......
..........".....
..............=.
...en....us


Retrieving server response... @16-02 23:04:21

FLAP Dump (in @ 16-02-07 23:04:21)
2A 04 7E A3 00 56 Channel: 4
Seq. num.: 32419
Data size: 86
00 01 00 09 34 30 33 34 33 38 31 34 32 00 04 00
3F 68 74 74 70 3A 2F 2F 77 77 77 2E 61 69 6D 2E
63 6F 6D 2F 65 72 72 6F 72 73 2F 4D 49 53 4D 41
54 43 48 5F 50 41 53 53 57 44 2E 68 74 6D 6C 3F
63 63 6F 64 65 3D 75 73 26 6C 61 6E 67 3D 65 6E
00 08 00 02 00 05 ....403438142...
?http://www.aim.
com/errors/MISMA
TCH_PASSWD.html?
ccode=us&lang=en
......


Closing connection... @16-02 23:04:21

Error: "Authorization failed, error code: 0. For more information try visiting this page" in file y:\home\icq.loc\www\icq.class.php at line 213


Warning: fwrite(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 626
FLAP Dump (out @ 16-02-07 23:04:21)
2A 02 36 B5 00 12 Channel: 2
Seq. num.: 14005
Data size: 18
00 01 00 1E 00 00 00 00 00 07 00 06 00 04 01 00
00 00 ................
..


Sending offline messages request... @16-02 23:04:21


Warning: fwrite(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 626
FLAP Dump (out @ 16-02-07 23:04:21)
2A 02 36 B6 00 18 Channel: 2
Seq. num.: 14006
Data size: 24
00 15 00 02 00 00 00 00 00 0B 00 01 00 0A 08 00
3E FA 0B 18 3C 00 00 00 ................
>ъ..<...


Sending delete offline messages request... @16-02 23:04:21


Warning: fwrite(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 626
FLAP Dump (out @ 16-02-07 23:04:21)
2A 02 36 B7 00 18 Channel: 2
Seq. num.: 14007
Data size: 24
00 15 00 02 00 00 00 00 00 0C 00 01 00 0A 08 00
3E FA 0B 18 3E 00 01 00 ................
>ъ..>...


Warning: fwrite(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 626
FLAP Dump (out @ 16-02-07 23:04:21)
2A 02 36 B8 00 40 Channel: 2
Seq. num.: 14008
Data size: 64
00 04 00 06 00 00 00 00 00 08 00 00 00 00 00 00
00 00 00 01 07 39 32 31 35 30 35 30 00 02 00 1C
05 01 00 02 01 01 01 01 00 12 00 00 00 00 D0 E0
E1 EE F2 E0 E5 F2 21 21 21 20 3A 29 00 06 00 00
................
.....9215050....
..............Ра
ботает!!! :)....



Message for 9215050 has been sent. @16-02 23:04:21


Warning: feof(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 573

Warning: fread(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 575

Warning: fread(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 575

Warning: fwrite(): 5 is not a valid stream resource in y:\home\icq.loc\www\icq.class.php on line 626
FLAP Dump (out @ 16-02-07 23:04:23)
2A 05 36 B9 00 00 Channel: 5
Seq. num.: 14009
Data size: 0


Anonymous

February 16 2007, 21:21:21 UTC 5 years ago

Re: Error: "Authorization failed, error code: 0.

С этой ошибкой более ли менее разобрался: повесил на другой хост, проблема исчезла...
Но вернёмся к нашим баранам о мануале...
Скажите, пожалуйста, хоть как его останавливать?
останавливаю путём остановки самого http-сервера :)))
Класс смотрел, но почти ничего не понял.
Спасибо.
P.S. Хоть какой-нибудь краткий мануальчик типа "Основные функции" мона?
или на мыло alldoor@mail.ru

Anonymous

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

5 years ago

Anonymous

5 years ago

[info]destym

5 years ago

Anonymous

March 7 2007, 07:42:02 UTC 5 years ago

скажи дружище, а как он с рессурсами сервера ладит? много требует?

[info]destym

March 21 2007, 11:26:02 UTC 5 years ago

Не мерял, но хостер не жалуется. ~_^
Относительно немного.

Anonymous

March 19 2007, 13:06:48 UTC 5 years ago

Спасибо автору

Нашел один баг, после того как бот посылает сообщение на icq клиент Jimm(клиент на Jave для мобильных телефонов www.jimm.org), тот вылетает с ошибкой, в чём дело в классе или в клиенте? Для меня очень важно что бы бот работал с джимом, т.к использую его я и мои друзья что бы читать последние сообщения со своего форума

[info]destym

March 21 2007, 11:24:32 UTC 5 years ago

Re: Спасибо автору

А я писал девелоперам, кстати.

В качестве временной меры заведён массив 'no_conf_snac', в который можно добавить джиммовые UIN'ы. Только следите, чтобы туда не попала Миранда. ~_^

Anonymous

5 years ago

Anonymous

4 years ago

[info]terk_t

March 23 2007, 03:02:58 UTC 5 years ago

а получить по UIN имя пользователя и может еще какую-нибудь информацию можно? Напишите пожалуйста как, если реализованно.

Anonymous

March 23 2007, 07:21:31 UTC 5 years ago

читай выше было

Anonymous

3 years ago

Previous
← Ctrl← Alt
Next
Ctrl →Alt →
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…