/**
* Execute the console command.
*
* @return mixed
*/
public function handle($uid = false)
{
if ($uid == false) {
$id = $this->argument('id');
} else {
$id = $uid;
}
$user = VKUsers::findOrFail($id);
$this->_l('Start for user #' . $id);
$execute = 'var u = API.users.get({"user_ids":"' . $user->user_id . '", "fields":"' . implode(',', \App\Providers\VK::getAllUserList()) . '"});' . 'var w = API.wall.get( {"owner_id":u[0].id, "count":100,"filter":"owner"} );' . 'var a = API.audio.get( { "owner_id":u[0].id,"count":1000 } );' . 'var g = API.groups.get({"user_id":u[0].id, "count":1000, "extended":1});' . 'var photos = API.photos.get({"owner_id":u[0].id, "album_id":"profile", "rev":0,"extended":1,"count":20});' . 'return {"u":u,"w":w,"a":a,"g":g,"photos":photos};';
$response = \App\Providers\VK::api('execute', ['code' => $execute, 'access_token' => $user->access_token]);
if ($response && isset($response['response'])) {
$data = \App\Providers\FakeDetector::prepare($response['response']);
$user->fill($data);
if (!\App\Providers\FakeDetector::detect($response['response'])) {
$user->fake = true;
}
$user->save();
} else {
if (@$response['error']['error_code'] == 14) {
$sid = @$response['error']['captcha_sid'];
$img = @$response['error']['captcha_img'];
$obj = ['sid' => $sid, 'img' => $img];
$key = 'captcha' . microtime(true);
\Redis::command('SET', [$key, json_encode($obj)]);
}
$this->_e(get_class($this) . ' No response for user #' . $user->id . ' ' . print_r(array_keys($response), true));
}
$this->_l('ok');
}