24.06.2010, 15:01 | #1 |
Специалист
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
|
SLEEP и API
Для борьбы с мигальщиками забираю все слипы через API и разбираюсь самостоятельно.
Возникли неясности: слип по балансу, отличительная черта - date_blocked ... 23:59:59, нет дополнительного маркера в API типа B или M. Это не было бы так принципиально, если бы все слипы отдавались в хронологическом порядке, но сейчас все отдается сумбурно: лог PHP код:
|
24.06.2010, 15:02 | #2 |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1026
|
Потому что билинг заканчивается
23:59:59 - по моему нормальный отличительный признак, чем не устраивает то?
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
24.06.2010, 15:31 | #3 | |
Специалист
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
|
Цитата:
Это сложно ввести дополнительное поле? Возникает другой вопрос - если слип проснется до 4:00 - будет ли он зафиксирован? Добавлено через 23 минуты Я правильно понял, что 23:59:59 не является истиной, а реальное время слипа 4:00 и 23:59:59 просто маркер? Просто я предположил, что слип засыпает ровно в 23:59:59 и четыре часа не показывается по каким то причинам. Если это не так, то вопрос исчерпан, буду изменять время слипа на реальное самостоятельно. Последний раз редактировалось snooker; 24.06.2010 в 15:31. Причина: Добавлено сообщение |
|
24.06.2010, 15:49 | #4 | |
Пожиратель черепашкоВ
Регистрация: 24.12.2008
Адрес: Телемелетрямдия
Сообщений: 4,739
Вес репутации: 396
|
Цитата:
А так: 23:59:59 - налево, остальные направо, а сортировку (если очень надо) - не сложно потом самому сделать. Так что и добавлять нечего...
__________________
|
|
12.07.2010, 16:16 | #5 | |
Специалист
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
|
В процессе работы возник вопрос: у некоторых ссылок в статусе SLEEP нет даты блокировки date_blocked , как это интерпретировать?
Цитата:
|
|
12.07.2010, 17:01 | #7 |
Специалист
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
|
Это я уже понял, вопрос в том, что у некоторых ссылок нет date_blocked. Это отсутствие неожиданно дало сбой в работе скрипта.
Добавлено через 27 минут В интерфейсе дата показывается как "(давно)", но ссылки размещены 2010-07-07 12:00:00; 2010-07-06 19:45:19; 2010-07-06 12:42:13; и т.д., то есть явно не "давно". Баг (или фича?) появился 7 июля. Последний раз редактировалось snooker; 12.07.2010 в 17:01. Причина: Добавлено сообщение |
12.07.2010, 17:55 | #8 | |
Администратор
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475166
|
Цитата:
|
|
12.07.2010, 18:26 | #9 |
Специалист
Регистрация: 13.06.2010
Сообщений: 103
Вес репутации: 172
|
private function __parseSleepPages() {
$aDomains = $this->__getSitesIDs(); // xls with sites $this->Log("<HR> [ <font color=blue>SAPE</font> ] Parsing all SLEEP links from HTML page"); $sURL = 'http://www.sape.ru/site_links.php?status=sleep&ps=-1'; $sHTML = $this->__getUrl($sURL,array(),$iHTTPCODE); // curl $aHTMLparts = explode(iconv("UTF-8","WINDOWS-1251","Отобрано"),$sHTML); $aHTMLparts = explode(iconv("UTF-8","WINDOWS-1251","Действия над выбранными"),$aHTMLparts[1]); $sHTML = $aHTMLparts[0]; unset($aHTMLparts); $sHTML = substr($sHTML,strpos($sHTML,'<table'),strlen($sHTM L)); $sHTML = substr($sHTML,0,strpos($sHTML,'</table>')); $aRows = explode("</tr>",$sHTML); unset($sHTML); array_shift($aRows); array_pop($aRows); $aLinks = array(); $this->total_stat['links'] = 0; foreach($aRows as & $sRow) { $sRow = preg_replace("/[[:space:]]{2,}/","",strip_tags($sRow,"<A><SMALL><TD>")); $aTmp = explode("</td>",$sRow); $sPat = '/href=\"(.*?)\"/si'; preg_match($sPat,strip_tags($aTmp[2],"<A>"),$aMatches); $aHost = parse_url($aMatches[1]); if (false === stripos($aTmp[2],'UNSLEEP')) { $this->total_stat['links'] ++; $sSleep = strip_tags($aTmp[0],"<A><SMALL>"); $sPat = '/href="\/.*\?id=(.*?)\&.*<small>(.*?)<\/small>/si'; preg_match($sPat,$sSleep,$aMatches); if (false !== stripos($aMatches[2]," ")) { $aTmp = explode(" ",$aMatches[2]); } else { // "(davno") without status $aTmp = array('B:','01.01.08'); } $sTimeHTML = $aTmp[1]; $aDate = explode(".",$sTimeHTML); $aDate[2] = substr(date("Y"),0,2).$aDate[2]; $sTimeHTML = implode(".",$aDate); $iTime = strtotime($sTimeHTML); $aLinkData = array('id'=>$aMatches[1],'flag_date'=>$iTime,'flag'=>substr($aTmp[0],0,1)); $aLinks[$aDomains[$aHost['host']]][] = $aLinkData; } } return $aLinks; } на выходе имеем массив с площадками, у которых внутрях накходястя ссылки, и у каждой ссылки есть свойства: id,flag_date,flag. и дальше уже делайте с ними что хотите Добавлено через 45 секунд а, да, $aDomains вида host=>id. у меня это сделано для дальнейшего удобства удаления ссылок Последний раз редактировалось Horrower; 12.07.2010 в 18:26. Причина: Добавлено сообщение |
12.07.2010, 18:31 | #10 |
Специалист
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
|
Horrower, вау, круто! такой геморрой без api! да еще и выдернутый из какого-то класса без остальных функций.
Отписал подробно. Для остальных поясняю: оптимизатор купил ссылку 2010-07-06 19:45:19, потом уснул, а в интерфейсе дата слипа стоит "давно", в апи в массиве не хватает переменной "date_blocked". Вопрос: как такое произошло, что делать и как определить дату слипа? Последний раз редактировалось snooker; 12.07.2010 в 18:40. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод ссылок sleep (М) отдельно от sleep (В) | maldivec | Пожелания пользователей системы | 7 | 30.03.2010 15:56 |
В и М в Sleep | Fhneh | Вопросы по работе системы | 4 | 20.12.2009 13:05 |
SLEEP | grach5 | Вопросы по работе системы | 6 | 01.07.2009 13:18 |
Sleep c 30.12.08 | Jooz | Ошибки при работе с системой | 6 | 10.04.2009 15:29 |
BC при SLEEP-e | Kiparis | Ошибки при работе с системой | 4 | 21.08.2008 11:06 |
Часовой пояс GMT +3, время: 01:10.