98 lines
2.3 KiB
PHP
98 lines
2.3 KiB
PHP
<?php
|
|
|
|
if (php_sapi_name() != "cli")
|
|
{
|
|
die("Only CLI mode allowed!");
|
|
}
|
|
|
|
require_once("class_livesklad.php");
|
|
require_once("class_MysqliDb.php");
|
|
|
|
|
|
$live = new livesklad(API_LOGIN, API_PASSWD);
|
|
$db = new MysqliDb ('localhost', DB_LOGIN, DB_PASSWD, DB_NAME);
|
|
|
|
$pauseBetweenRequests = 7;
|
|
$pauseLong = 5 * 60;
|
|
$dataLimit = 0;
|
|
$maxPageSize = 50;
|
|
$maxQueryLimit = 10000;
|
|
|
|
set_time_limit(0);
|
|
|
|
$params = array (
|
|
"page" => 1,
|
|
"pageSize" => 50
|
|
);
|
|
|
|
|
|
$i = 0;
|
|
//$db->onDuplicate(array("dateClose", "summPrice", "purchasePrice"), "orderId");
|
|
|
|
$remainRequest = 0;
|
|
|
|
do
|
|
{
|
|
$pageSize = ($params["page"] * $params["pageSize"] >= $maxQueryLimit) ? floor( ($maxQueryLimit / ($params["page"] * $maxPageSize)) * $maxPageSize) : $maxPageSize;
|
|
$params["pageSize"] = min($pageSize, $params["pageSize"]);
|
|
|
|
|
|
$results = $live->getCounteragents($params);
|
|
|
|
|
|
|
|
if ( isset($results["error"]) )
|
|
{
|
|
echo "Error: " . $results["error"]["statusCode"] . "\n" . $results["error"]["message"] . "\n";
|
|
echo "Page#: " . $params["page"] . "; pageSize: " . $pageSize . "\n";
|
|
$remainRequest = $results["error"]["remainRequest"];
|
|
}
|
|
else
|
|
{
|
|
foreach($results["data"] as $result)
|
|
{
|
|
if(isset($result["id"]))
|
|
{
|
|
$id = $db->insert ("counteragents", array(
|
|
"id" => $result["id"],
|
|
"name" => $result["name"]
|
|
));
|
|
|
|
if (is_array($result["phones"]) && sizeof($result["phones"]) > 0)
|
|
{
|
|
foreach ($result["phones"] as $phone)
|
|
{
|
|
$id = $db->insert("counteragents_phone", array(
|
|
"counteragent_id" => $result["id"],
|
|
"phone_number" => preg_replace("/[^0-9]/", "", $phone)
|
|
));
|
|
}
|
|
}
|
|
|
|
if(!$id)
|
|
{
|
|
echo "Insert failed: " . $db->getLastError() . "\n";
|
|
}
|
|
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
$remainRequest = $results["remainRequest"];
|
|
|
|
if (!$dataLimit ) $dataLimit = $results["total"];
|
|
|
|
echo "Grabbed: " . $i . "[" . $dataLimit . "]; Page: " . $params["page"] . "[" . $params["pageSize"] . "]\n";
|
|
|
|
|
|
$params["page"]++;
|
|
}
|
|
|
|
echo "Remains: " . $remainRequest ."\n---\n";
|
|
|
|
if ($remainRequest < 4) sleep($pauseLong); else sleep($pauseBetweenRequests);
|
|
}
|
|
while ($remainRequest > 1 && $i < $dataLimit)
|
|
|
|
|
|
?>
|