Вернуться   Форум SAPE.RU > Система SAPE.ru > Вопросы по работе системы

-->
Ответ
 
Опции темы
Старый 24.06.2010, 15:01   #1
Специалист
 
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
snooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всем
По умолчанию SLEEP и API

Для борьбы с мигальщиками забираю все слипы через API и разбираюсь самостоятельно.
Возникли неясности: слип по балансу, отличительная черта - date_blocked ... 23:59:59, нет дополнительного маркера в API типа B или M. Это не было бы так принципиально, если бы все слипы отдавались в хронологическом порядке, но сейчас все отдается сумбурно:
лог
PHP код:
дата слипа                 дата проверки
2010
-06-23 22:19:49     2010-06-23 22:30:53
2010
-06-23 22:58:35     2010-06-23 23:00:39
2010
-06-23 23:33:57     2010-06-24 00:00:03
2010
-06-23 23:33:55     2010-06-24 00:00:04
2010
-06-23 23:33:55     2010-06-24 00:00:17
2010
-06-23 23:50:41     2010-06-24 00:00:18
2010
-06-24 00:50:42     2010-06-24 01:00:06
2010
-06-24 00:51:15     2010-06-24 01:01:14
2010
-06-24 02:46:22     2010-06-24 03:00:12
2010
-06-23 23:59:59     2010-06-24 04:30:05
2010
-06-23 23:59:59     2010-06-24 04:30:05
2010
-06-23 23:59:59     2010-06-24 04:30:06
2010
-06-23 23:59:59     2010-06-24 04:30:07 
Хронология явно не соблюдена, слипы по балансу начинают отдаваться после биллинга в 4:00 (почему?), поэтому просьба либо отдавать в нормальном порядке, либо ввести дополнительное поле в API с указанием Balans/Manual
snooker вне форума   Ответить с цитированием
Старый 24.06.2010, 15:02   #2
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1026
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

Цитата:
Сообщение от snooker Посмотреть сообщение
слипы по балансу начинают отдаваться после биллинга в 4:00 (почему?),
Потому что билинг заканчивается
23:59:59 - по моему нормальный отличительный признак, чем не устраивает то?
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 24.06.2010, 15:31   #3
Специалист
 
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
snooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всем
По умолчанию

Цитата:
Сообщение от zhegloff Посмотреть сообщение
23:59:59 - по моему нормальный отличительный признак, чем не устраивает то?
Признак нормальный, не устраивает отсутсвие хронологии.
Это сложно ввести дополнительное поле?
Возникает другой вопрос - если слип проснется до 4:00 - будет ли он зафиксирован?

Добавлено через 23 минуты
Я правильно понял, что 23:59:59 не является истиной, а реальное время слипа 4:00 и 23:59:59 просто маркер?
Просто я предположил, что слип засыпает ровно в 23:59:59 и четыре часа не показывается по каким то причинам. Если это не так, то вопрос исчерпан, буду изменять время слипа на реальное самостоятельно.

Последний раз редактировалось snooker; 24.06.2010 в 15:31. Причина: Добавлено сообщение
snooker вне форума   Ответить с цитированием
Старый 24.06.2010, 15:49   #4
Пожиратель черепашкоВ
 
Аватар для chahlic
 
Регистрация: 24.12.2008
Адрес: Телемелетрямдия
Сообщений: 4,739
Вес репутации: 396
chahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущееchahlic - прекрасное будущее
По умолчанию

Цитата:
Сообщение от snooker Посмотреть сообщение
Возникает другой вопрос - если слип проснется до 4:00 - будет ли он зафиксирован?
Всмысле, уснет и проснется через пару часов? Тогда и за слип считать не надо - деньги начислятся

А так: 23:59:59 - налево, остальные направо, а сортировку (если очень надо) - не сложно потом самому сделать. Так что и добавлять нечего...
__________________
Смотри цены в САПе в своей валюте: плагин "Конвертер Валют" для ФФ.
chahlic вне форума   Ответить с цитированием
Старый 12.07.2010, 16:16   #5
Специалист
 
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
snooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всем
По умолчанию

В процессе работы возник вопрос: у некоторых ссылок в статусе SLEEP нет даты блокировки date_blocked , как это интерпретировать?
Цитата:
[id] => 1418908124
[status] => SLEEP
[page_id] => 285397473
[url] => ************
[txt] => *****************
[price] => 5
[price_new] => 0
[date_placed] => IXR_Date Object
(
[year] => 2010
[month] => 02
[day] => 19
[hour] => 19
[minute] => 19
[second] => 12
)

[flag_context] => 0
[site_id] => 358999
[domain_id] => 4212849
snooker вне форума   Ответить с цитированием
Старый 12.07.2010, 16:28   #6
Администратор
 
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475166
Avelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспорима
По умолчанию

реальное время слипа между 00-00 и концом биллинга, 4-6 утра
Avelon вне форума   Ответить с цитированием
Старый 12.07.2010, 17:01   #7
Специалист
 
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
snooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всем
По умолчанию

Цитата:
Сообщение от Avelon Посмотреть сообщение
реальное время слипа между 00-00 и концом биллинга, 4-6 утра
Это я уже понял, вопрос в том, что у некоторых ссылок нет 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. Причина: Добавлено сообщение
snooker вне форума   Ответить с цитированием
Старый 12.07.2010, 17:55   #8
Администратор
 
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475166
Avelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспоримаAvelon - репутация неоспорима
По умолчанию

Цитата:
Сообщение от snooker Посмотреть сообщение
Это я уже понял, вопрос в том, что у некоторых ссылок нет date_blocked. Это отсутствие неожиданно дало сбой в работе скрипта.

Добавлено через 27 минут
В интерфейсе дата показывается как "(давно)", но ссылки размещены 2010-07-07 12:00:00; 2010-07-06 19:45:19; 2010-07-06 12:42:13; и т.д., то есть явно не "давно".
Баг (или фича?) появился 7 июля.
вот это чето не понял, можно подробно описать в личку?
Avelon вне форума   Ответить с цитированием
Старый 12.07.2010, 18:26   #9
Специалист
 
Регистрация: 13.06.2010
Сообщений: 103
Вес репутации: 172
Horrower скоро станет известен
По умолчанию

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],"&nbsp;")) {
$aTmp = explode("&nbsp;",$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. Причина: Добавлено сообщение
Horrower вне форума   Ответить с цитированием
Старый 12.07.2010, 18:31   #10
Специалист
 
Регистрация: 03.10.2008
Сообщений: 222
Вес репутации: 199
snooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всемsnooker - это имя известно всем
По умолчанию

Horrower, вау, круто! такой геморрой без api! да еще и выдернутый из какого-то класса без остальных функций.

Цитата:
Сообщение от Avelon Посмотреть сообщение
вот это чето не понял, можно подробно описать в личку?
Отписал подробно.
Для остальных поясняю: оптимизатор купил ссылку 2010-07-06 19:45:19, потом уснул, а в интерфейсе дата слипа стоит "давно", в апи в массиве не хватает переменной "date_blocked". Вопрос: как такое произошло, что делать и как определить дату слипа?

Последний раз редактировалось snooker; 12.07.2010 в 18:40.
snooker вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ссылок 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.