Отправка уведомления по ICQ что скрипт отработал

Авторегистрация аккаунтов, почтовых ящиков, автозаполнение различных веб-форм.
Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 20 фев 2009, 16:34

Было дело, хотел запустить скрипт. Только работать он должен был, по моим расчётам, недельку. В ICQ я- постоянно. Чтоб не лазить на сервер, решил сделать уведомление мне по ICQ.
Особо делать ничего ни пришлось. Просто зашёл в Wiki и спросил OSCAR (так называется протокол ICQ). Собственно, результат:

Код: Выделить всё

<?php
/*
BasICQ - базовый класс для работы с сервисом ICQ.

При распространении скрипта - ссылка на icqbot.ru

Функции класса:

sockets($method) - Способ подключения. Значение true - через socket_create, false - через fsockopen.
connect($uin,$pass) - Подключение и логин с заданными $uin и $pass.
connected() - Возвращает true, если подключение есть, false если нет.
send($uin,$message) - Отсылка сообщения $message на номер $uin.
messages() - Получение новых сообщений с сервера. Возвращает массив, ключ "from" - номер отправителя, "text" - текст сообщения. 
disconnect() - Отключение от сервера.

Пример бота:

<?
include('basicq.php');
$icq=new BasICQ();
$icq->sockets(true); //Установка подключения через socket_create, если не работает, попробуйте $icq->sockets(false);
if ($icq->connect("123456789","abcdefgh")) { //Подключение с номером 123456789 и паролем abcdefgh, смените на свои.
$icq->send("111111111","Сообщение от бота"); //Отсылка сообщения на номер 111111111.
while ($icq->connected()) {  //Работа пока есть соединение с сервером
$msg=$icq->messages(); //Получение сообщения с сервера
$icq->send($msg["from"],$msg["text"]); //Пересылка этого же сообщения отправителю
if ($msg["text"]=="!") $icq->disconnect(); //Если пришла команда !, то отключение от сервера.
sleep(1); //Задержка чтобы разгрузить систему.
}
}
?>

(с) 2007, ICQBOT.RU, http://icqbot.ru
*/
class BasICQ {
function BasICQ() {
$this->method=false;
$this->sequence=rand(1,30000);
}
function sockets($method) {
$this->method=$method;
}
function connect($uin,$pass) {
if ($this->method) {
$this->socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if ($this->socket<0||$this->socket===false) return false;
$result=socket_connect($this->socket,"login.icq.com",80);
if ($result<0||$result===false) return false;
} else {
$this->socket=fsockopen("login.icq.com",80,$errno);
if ($errno!==0) return false;
}
$this->getpacket();
$this->uin=$uin;
$this->body.=$this->setoption('UIN',$uin);
$ar=array(0xF3,0x26,0x81,0xC4,0x39,0x86,0xDB,0x92,0x71,0xA3,0xB9,0xE6,0x53,0x7A,0x95,0x7c);
$hash="";
for ($i=0;$i<strlen($pass);$i++) $hash.=chr($ar[$i]^ord($pass[$i]));
$this->body.=$this->setoption('DATA',$hash);
$this->body.=$this->setoption('CLIENT','HFICQ');
$this->body.=$this->setoption('CLIENT_ID',266,2);
$this->body.=$this->setoption('CLI_MAJOR_VER',20,2);
$this->body.=$this->setoption('CLI_MINOR_VER',34,2);
$this->body.=$this->setoption('CLI_LESSER_VER',0,2);
$this->body.=$this->setoption('CLI_BUILD_NUMBER',2321,2);
$this->body.=$this->setoption('DISTRIB_NUMBER',1085,4);
$this->body.=$this->setoption('CLIENT_LNG','ru');
$this->body.=$this->setoption('CLIENT_COUNTRY','ru');
$this->channel=1;
$pack=$this->prepare();
if ($this->method) socket_write($this->socket,$pack,strlen($pack)); else fwrite($this->socket,$pack);
$this->getpacket();
$this->info=array();
while($this->body!='') {
$arr=unpack('n2',substr($this->body,0,4));
$this->type=$arr[1];
$this->size=$arr[2];
$info=substr($this->body,4,$this->size);
$key=array_search($this->type,$this->types);
if($key) $this->info[$key]=$info;
$this->body=substr($this->body,($this->size+4));
}
$this->body=0x0000;
$pack=$this->prepare();
if ($this->method) socket_write($this->socket,$pack,strlen($pack)); else fwrite($this->socket,$pack);
if ($this->method) socket_close($this->socket); else fclose($this->socket);
$this->socket=false;
if (isset($this->info['RECONECT_HERE'])) {
$url=explode(':',$this->info['RECONECT_HERE']);
if ($this->method) {
$this->socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if ($this->socket<0||$this->socket===false) $res=false;
$result=socket_connect($this->socket,$url[0],$url[1]);
if ($result<0||$result===false) $res=false; else $res=true;
} else {
$this->socket=fsockopen($url[0],$url[1],$errno);
if ($errno!==0) $res=false; else $res=true;
}
if (!$res) {
$this->error=isset($this->info['DISCONECT_REASON'])?$this->info['DISCONECT_REASON']:'Невозможно сменить север';
return false;
}
} else {
$this->error=isset($this->info['DISCONECT_REASON'])?$this->info['DISCONECT_REASON']:'Превышен лимит подключений';
return false;
}
$this->getpacket();
$this->body.=$this->setoption('COOKIE',$this->info['COOKIE']);
$pack=$this->prepare();
if ($this->method) $wr=socket_write($this->socket,$pack,strlen($pack)); else $wr=fwrite($this->socket,$pack);
if (!$wr) {
$this->error='Соединение закрыто';
return false;
}
$this->getpacket();
$this->request_id++;
$this->body=pack('nnnN',1,2,0,$this->request_id);
$this->body.=pack('n*',1,3,272,650);
$this->body.=pack('n*',2,1,272,650);
$this->body.=pack('n*',3,1,272,650);
$this->body.=pack('n*',21,1,272,650);
$this->body.=pack('n*',4,1,272,650);
$this->body.=pack('n*',6,1,272,650);
$this->body.=pack('n*',9,1,272,650);
$this->body.=pack('n*',10,1,272,650);
$pack=$this->prepare();
if ($this->method) $wr=socket_write($this->socket,$pack,strlen($pack)); else $wr=fwrite($this->socket,$pack);
if (!$wr) {
$this->error='Соединение закрыто';
return false;
}
return true;
}
function connected() {
if ($this->socket) return true; else return false;
}
function send($uin,$message) {
$this->request_id++;
$cookie=microtime();
$this->body=pack('nnnNdnca*',4,6,0,$this->request_id,$cookie,2,strlen($uin),$uin);
$capabilities=pack('H*','094613494C7F11D18222444553540000');
$data=pack('nd',0,$cookie).$capabilities;
$data.=pack('nnn',10,2,1);
$data.=pack('nn', 15, 0);
$data.=pack('nnvvddnVn',10001,strlen($message)+62,27,8,0,0,0,3,$this->request_id);
$data.=pack('nndnn',14,$this->request_id,0,0,0);
$data.=pack('ncvnva*',1,0,0,1,(strlen($message)+1),$message);
$data.=pack('H*', '0000000000FFFFFF00');
$this->body.=$this->setoption('RECONECT_HERE',$data);
$this->body.=$this->setoption('CLIENT','');
$pack=$this->prepare();
if ($this->method) $wr=socket_write($this->socket,$pack,strlen($pack)); else $wr=fwrite($this->socket,$pack);
if (!$wr) {
$this->error='Не могу отправить сообщение, сервер закрыл соединение';
return false;
}
if (!$this->makeinfo()) {
$this->request_id++;
$cookie=microtime();
$this->body=pack('nnnNdnca*',4,6,0,$this->request_id,$cookie,1,strlen($uin),$uin);
$data=pack('ccnc',5,1,1,1);
$data.=pack('ccnnna*',1,1,strlen($message)+4,3,0,$message);
$this->body.=$this->setoption('DATA', $data);
$this->body.=$this->setoption('CLIENT','');
$this->body.=$this->setoption('COOKIE','');
$pack=$this->prepare();
if ($this->method) $wr=socket_write($this->socket,$pack,strlen($pack)); else $wr=fwrite($this->socket,$pack);
if (!$wr) {
$this->error='Соединение закрыто';
return false;
}
$this->makeinfo();
return false;
}
return true;
}
function messages() {
while($this->getpacket()) {
$body=$this->body;
if (strlen($body)) {
$msg=unpack('nfamily/nsubtype/nflags/Nrequestid/N2msgid/nchannel/cnamesize',$body);
if ($msg['family']==4&&$msg['subtype']==7) {
$body=substr($body,21);
$from=substr($body,0,$msg['namesize']);
$channel=$msg['channel'];
$body=substr($body,$msg['namesize']);
$msg=unpack('nwarnlevel/nTLVnumber',$body);
$body=substr($body,4);
for ($i=0;$i<=$msg['TLVnumber'];$i++) {
$arr=unpack('n2',substr($body,0,4));
$this->type=$arr[1];
$this->size=$arr[2];
$part=substr($body,4,$this->size);
$body=substr($body,4+$this->size);
if ($channel==1&&$this->type==2) {
while (strlen($part)) {
$frg=unpack('cid/cversion/nsize',substr($part,0,4));
$frg['data']=substr($part,4,$frg['size']);
if ($frg['id']==1&&$frg['version']==1) {
return array('from'=>$from,'text'=>substr($frg['data'],4));
}
$part=substr($part,4+$frg['size']);
}
$message=false;
}
}
}
} else $message=false;
}
return false;
}
function disconnect() {
if ($this->method) socket_close($this->socket); else fclose($this->socket);
$this->socket=false;
}
var $types=array('UIN'=>1,'DATA'=>2,'CLIENT'=>3,'ERROR_URL'=>4,
'RECONECT_HERE'=>5,'COOKIE'=>6,'SNAC_VERSION'=>7,
'ERROR_SUBCODE'=>8,'DISCONECT_REASON'=>9,
'RECONECT_HOST'=>10,
'URL'=>11,'DEBUG_DATA'=>12,'SERVICE'=>13,
'CLIENT_COUNTRY'=>14,'CLIENT_LNG'=>15,
'SCRIPT'=>16,'USER_EMAIL'=>17,'OLD_PASSWORD'=>18,
'REG_STATUS'=>19,'DISTRIB_NUMBER'=>20,
'PERSONAL_TEXT'=>21,'CLIENT_ID'=>22,'CLI_MAJOR_VER'=>23,
'CLI_MINOR_VER'=>24,'CLI_LESSER_VER'=>25,
'CLI_BUILD_NUMBER'=>26);
var $socet,$channel,$sequence,$body,$uin,$type,$size,$error;
function getpacket() {
if ($this->method) {
if($this->socket&&!socket_last_error($this->socket)) {
$header=socket_read($this->socket, 6);
if ($header) {
$header=unpack('c2channel/n2size',$header);
$this->channel=$header['channel2'];
$this->body=socket_read($this->socket,$header['size2']);
return true;
} else return false;
}
} else {
if($this->socket) {
$header=fread($this->socket,6);
if ($header) {
$header=unpack('c2channel/n2size',$header);
$this->channel=$header['channel2'];
$this->body=fread($this->socket,$header['size2']);
return true;
} else return false;
}
}
}
function makeinfo() {
$this->getpacket();
$array=unpack('n3int/Nint',$this->body);
while ($array['int']!=$this->request_id) {
$this->getpacket();
$array=unpack('n3int/Nint',$this->body);
}
$this->error='Неизвестный ответ сервера';
if ($array['int1']==4) {
switch ($array['int2']) {
case 1:  $this->error='Error to sent message'; return false; break;
case 12: return true; break;
}
}
$this->error='Неизвестный ответ сервера';
return false;
}
function setoption($type,$val,$len=false) {
switch ($len) {
case 1: $format='c'; break;
case 2: $format='n'; break;
case 4: $format='N'; break;
default: $format='a*'; break;
}
if ($len===false) $len=strlen($val);
return pack('nn'.$format,$this->types[$type],$len,$val);
}
function prepare() {
$this->sequence++;
$out=pack('ccnn',0x2A,$this->channel,$this->sequence,strlen($this->body)).$this->body;
return $out;
}
}
?>

Kenars
Сообщения: 1
Зарегистрирован: 20 ноя 2010, 23:35

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Kenars » 20 окт 2011, 17:27

Твой код использует сокеты. Тоесть это стандартный php код для выполнения аппачем причем тут Хуман

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение satih » 21 окт 2011, 01:22

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

Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 02 мар 2012, 00:02

satih писал(а):он непользуется браузером, значит хуман нипричем, тем не менее зацепил важную иногда тему - как работать с аськой через пхп, которым также пользуется хуман. в итоге есть пример использования аськи которое можно внедрить в готовый скрипт того же хумана если нужен icq отчет.
Посмотрел первый пост, стало забавно, второй человек почти понял к чему я...

Так вот, я к тому, что скрипты писаные на php используют не только XHE (кстати для первого умника могу предложить задуматься, как php заставляет XHE что- то делать).

Я просто призываю мыслить шире !!!

Кстати, забавно, но однопоточную версию можно заставить делать одновременно совершенно разные задачи !
Заходи тихо, проси мало, уходи быстро...
ebaymails.com реальные продавцы реальных товаров

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение satih » 02 мар 2012, 02:57

Karlson писал(а):Кстати, забавно, но однопоточную версию можно заставить делать одновременно совершенно разные задачи !
в однопоточной можно несколько табов открыть которые будут работать паралельно, может ошибаюсь, но она не потому однопотоком называется. смысл МТ в том что разные хуманы будут иметь отдельные куки и кеш

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение xscripts » 05 мар 2012, 14:17

satih писал(а):
Karlson писал(а):Кстати, забавно, но однопоточную версию можно заставить делать одновременно совершенно разные задачи !
в однопоточной можно несколько табов открыть которые будут работать паралельно, может ошибаюсь, но она не потому однопотоком называется. смысл МТ в том что разные хуманы будут иметь отдельные куки и кеш
если даже несколько табов открыть, то всё равно паралельно работать нельзя с ними. для того что бы в открытом табе выполнялось что либо его нужно сделать активным, используя команду $browser->set_active_browser и тогда команды скрипта будут выполняться только в этом активном табе. То есть одновременно в табах нельзя работать...

Можно конечно Single запускать в несколько копий, но куки и прокси будут одни и теже для всех этих запущенных копий.
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение satih » 05 мар 2012, 20:41

xscripts писал(а):Можно конечно Single запускать в несколько копий, но куки и прокси будут одни и теже для всех этих запущенных копий.
в этом и заключается разница между версиями, разные куки и кеш (и прокси)

Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 14 мар 2012, 13:19

satih писал(а):
xscripts писал(а):Можно конечно Single запускать в несколько копий, но куки и прокси будут одни и теже для всех этих запущенных копий.
в этом и заключается разница между версиями, разные куки и кеш (и прокси)
Всё правильно, просто товарищ xscripts забыл, что больше всего времени занимает загрузка страницы, а загрузка страниц- ассинхронна.
Итого имеем:
1) делаем море табов.
2) поочереди делаем в каждом navigate
3) крутимся по табам и проверяем busy ли он
4) если не busy, то делаем своё дело.

Таким образом можно получить регистрацию на 20 форумах одновременно. Куки и кэш мешать не будут (форумы- то разные).
Итого: на single можно получить скорость в 5-20 раз быстрее, нежели чем при использовании одного таба для целого класса задач под XHE. Забавно ?

Нормально !!! Учимся мыслить шире !!! 8)

P.S. Реально убыстряется регистрация, парсинг под пользователем- вообще сказка (залогинился только под одним табом, а работают все, ведь куки одни и те же). Причём для второй задачи получаем решение, которое быстрей будет работать, нежели несколько MT запустить !
Заходи тихо, проси мало, уходи быстро...
ebaymails.com реальные продавцы реальных товаров

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение xscripts » 16 мар 2012, 01:26

Karlson писал(а):
satih писал(а):
xscripts писал(а):Можно конечно Single запускать в несколько копий, но куки и прокси будут одни и теже для всех этих запущенных копий.
в этом и заключается разница между версиями, разные куки и кеш (и прокси)
Всё правильно, просто товарищ xscripts забыл, что больше всего времени занимает загрузка страницы, а загрузка страниц- ассинхронна.
Итого имеем:
1) делаем море табов.
2) поочереди делаем в каждом navigate
3) крутимся по табам и проверяем busy ли он
4) если не busy, то делаем своё дело.

Таким образом можно получить регистрацию на 20 форумах одновременно. Куки и кэш мешать не будут (форумы- то разные).
Итого: на single можно получить скорость в 5-20 раз быстрее, нежели чем при использовании одного таба для целого класса задач под XHE. Забавно ?

Нормально !!! Учимся мыслить шире !!! 8)

P.S. Реально убыстряется регистрация, парсинг под пользователем- вообще сказка (залогинился только под одним табом, а работают все, ведь куки одни и те же). Причём для второй задачи получаем решение, которое быстрей будет работать, нежели несколько MT запустить !
Всё равно получается, что выполняется в данный момент один поток. Единственная разница, что мы используем время загрузки страницы для выполнения параллельной задачи. Но в последних версиях загрузка страниц в хумане идёт значительно быстрее, та и организовывать прогулку по табам в поисках загрузившегося, для того что бы выполнять для него дальше действие, тоже дело не простое. Это просто если задачи у скриптов одинаковые, а сайты разные. Куда проще тогда уж запускать несколько версий single и выполнять в них разные задачи :)
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 18 мар 2012, 20:32


Всё равно получается, что выполняется в данный момент один поток. Единственная разница, что мы используем время загрузки страницы для выполнения параллельной задачи. Но в последних версиях загрузка страниц в хумане идёт значительно быстрее, та и организовывать прогулку по табам в поисках загрузившегося, для того что бы выполнять для него дальше действие, тоже дело не простое. Это просто если задачи у скриптов одинаковые, а сайты разные. Куда проще тогда уж запускать несколько версий single и выполнять в них разные задачи :)
Не правда !!!
Потоков выполняется ровно столько, сколько загружается страниц плюс один!!! Если откровенно, то гораздо больше.

Приведу пример, весьма абстрактный:
Есть 10 печек от Емелюшки, в каждой печке по пирожку жариться, либо печка пустует.
Задача: как загрузить все печки так, чтобы изжарить максимум пирожков ? Наводка: у каждой печки есть лампочка, которая мигает, когда она всё сделала.

Если у Вас в мозгах "тормоза" и Вы не можете решить простейшую задачу, туда Вам и дорога !!!

P.S. Из- за такого подхода, какой демонстрирует xscripts получается, что лучше денег на MT потратить, нежели научиться думать. Что ж, товарища мама не научила блинчики делать сразу на двух разных сковородках. Мне его жаль. В школе (техникуме/институте/университете, хотя должны были в школе объяснить) ему про оптимизацию работы никто тоже не рассказывал.
Что ж, готовьте бабулесы для xscripts !!!
Заходи тихо, проси мало, уходи быстро...
ebaymails.com реальные продавцы реальных товаров

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение satih » 18 мар 2012, 21:47

лол, не кипятись, кому как удобней. для многих серьезно проще купить МТ и не ебать себе мозг, не буду лгать, я один из них :) хотя МТ покупал когда вкладок еще не было и с запуском от разных пользователей не хотел трахатся.

Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 19 мар 2012, 13:07

satih писал(а):лол, не кипятись, кому как удобней. для многих серьезно проще купить МТ и не ебать себе мозг, не буду лгать, я один из них :) хотя МТ покупал когда вкладок еще не было и с запуском от разных пользователей не хотел трахатся.
Да это я для профилактики ! :D
Просто люди обленились. Когда вкладок не было, то понятно, что выбора не было.
А сейчас получается, что нужно новое покупать, только потому что "модно".
А старое, хотя относительно старое (год и три месяца тому старому)- выкидываем в хлам только потому, что лень подумать.
На самом деле просто хотел заставить людей немного мозгами пошевелить.
Если прикинуть одно к другому (ну к носу другую часть тела), то получается, что за 10 минут размышлений можно использовать на все 100% то, что есть.
Ведь даже MT можно использовать гораздо эффективней, опять же.
Просто чуть- чуть напрячь извилины... :)
Ведь то, что я написал для Single- ПОЛНОСТЬЮ подходит и для MT ! :lol:
Заходи тихо, проси мало, уходи быстро...
ebaymails.com реальные продавцы реальных товаров

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение bigfozzy » 19 мар 2012, 17:47

По поводу МТ и Single сейчас все правильно подмечено. Хотя уже как год они называются Advanced и Standart )) Смысл переименования был в том что многие новые фичи будут добавлены тока в Advanced (например отладчик, профалер, генератор exe из скрипта и т.п). Скоро я эти фичи сделаю, тогда отличий будет больше )) А по поводу работы в мультизакладочном режиме - если есть какие предложения могу этот режим развить (команду мож добавить или еще какое излишество :-) ) ?

Аватара пользователя
Karlson
Сообщения: 31
Зарегистрирован: 27 янв 2009, 16:54

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение Karlson » 19 мар 2012, 21:13

bigfozzy писал(а):По поводу МТ и Single сейчас все правильно подмечено. Хотя уже как год они называются Advanced и Standart )) Смысл переименования был в том что многие новые фичи будут добавлены тока в Advanced (например отладчик, профалер, генератор exe из скрипта и т.п). Скоро я эти фичи сделаю, тогда отличий будет больше )) А по поводу работы в мультизакладочном режиме - если есть какие предложения могу этот режим развить (команду мож добавить или еще какое излишество :-) ) ?
Да в Standart всё есть. Просто никто внимания не обращал на is_busy, да и не заглядовал в исходник wait_for :-)
Просто объектную модель скриптов держите 1:1. Тогда и интерес будет переходить на Advanced, когда всё исчерпалось от Standart, но при переходе не переписывать скрипты.

А так...
Из пожеланий: механизм событий (callback) для таких вещей. Было бы круто !!! Оценили бы единицы, но оценили бы по достоинству !!!

P.S. Вот за три с половиной года никто спасибо и не сказал... :cry:
Заходи тихо, проси мало, уходи быстро...
ebaymails.com реальные продавцы реальных товаров

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Отправка уведомления по ICQ что скрипт отработал

Сообщение bigfozzy » 19 мар 2012, 22:38

Код: Выделить всё

Из пожеланий: механизм событий (callback) для таких вещей. Было бы круто !!! Оценили бы единицы, но оценили бы по достоинству !!!
в 5 есть хуки в полный рост на все события хтмл (как в $raw и $debug), можно будет вмешиваться в модель вызова скриптов и т.п .

Спасибо :-)
Просто объектную модель скриптов держите 1:1
объектная модель будет расширяться и будет везде одинаковая . В адвансед только будет отладчик и больше всякой полезной кухни для удобств работы с дом моделью. Также уже есть прямой выход на работу с интерфейсами DOM. Как закончу 4 думаю к лету успею сделать и 5 в полном объеме что запланировано :-). По объектной модели все таки в 4 еще ее расширю слегка, введу еще пару классов элементов, флш в полный рост и т.п.

Пока первоочередная задача думаю до конца марта баг фикс и стандратизация дом модели, которая ща уже полностью проведена на текущем наборе функций, теперь осталось ее только расширить. Возможно с 4 еще повожусь подольше - будет 4.5 с платой за обновление у кого истек срок обновлений (сейчас присмотрел много хороших компонентов, которые правда стоят нормально денег, но это сильно ускорит разработку)...

PS: И кто активно помогал в поиске и исправлении багов, во первых Большое Спасибо, во вторых обновления получат бесплатно (пока есть 5 кандидатов )) )

Ответить