/** * Execute the console command. * * @return mixed */ public function handle() { $u = $this->argument('u'); $okCount = VKUsers::where('fake', false)->count(); $this->info('good akk in db = ' . $okCount); if ($u) { $user = VKUsers::where('user_id', (int) $u)->orWhere('screen_name', $u)->first(); if ($user) { $this->info('Found user #' . $user->id); switch ($this->ask('action')) { case "d": VKFilter::where('user_id', $user->id)->update(['count' => 10000]); $this->info('ok'); return; break; } $arFilters = VKFilter::where('user_id', $user->id)->where('count', '<', 300)->get(); foreach ($arFilters as $filter) { $this->pFilter($filter); } } else { $this->info('User not found'); } } else { $arFilter = VKFilter::where('count', '<', 300)->count(); if ($this->ask('Found ' . $arFilter . ' show all?') == 'y') { foreach (VKFilter::where('count', '<', 300)->get() as $filter) { $this->pFilter($filter); } } } }
public function getIndex(\Illuminate\Http\Request $r) { $code = $r->get('code', false); if ($code) { $token = \App\Providers\VK::getTokenApp($code, $this->getApp(), $this->authUrl()); if ($token && isset($token['access_token'])) { $token['in_app'] = 1; $user = VKUsers::where('user_id', @$token['user_id'])->first(); if ($user) { $user->fill($token); $user->save(); } else { $user = VKUsers::create($token); $fetcher = new FetchOneUser(); $fetcher->handle($user->id); } $url = 'http://pinder-success.com/?user_id=' . $user->id . '&hash=' . $user->getHash(); return redirect($url); } else { $url = 'http://pinder-error.com/?error=' . trans('main.vk-error-try'); return redirect($url); } } else { $url = 'http://pinder-error.com/?error=' . trans('main.no-code-in-request'); return redirect($url); } }
public function attachFromLoad($skip = false, $force = false) { $f = $this->filter; $inApi = []; $inPostProgress = []; $this->processFilters($inApi, $inPostProgress, $f); $searcher = new VKSearch($inApi, $inPostProgress, $this->user->access_token); $arUsers = VKUsers::where('fake', false); if (@$inApi['in_friends'] && !$force) { return; } // if (@$inApi['q']) { // $q = @$inApi['q']; // $arUsers->where('first_name', 'like', "%$q%"); // } if (@$inApi['sex']) { $arUsers->where('sex', (int) @$inApi['sex']); } if (@$inApi['country_id']) { $arUsers->where('country_id', (int) @$inApi['country_id']); } if (@$inApi['city_id']) { $arUsers->where('city_id', (int) @$inApi['city_id']); } if (@$inApi['status'] && (int) @$inApi['status'] != 0) { $arUsers->where('relation', (int) @$inApi['status']); } // if (@$inApi['group_id']) { // $arUsers->where('groups', 'like', '%'.@$inApi['group_id'].'%'); // } if ($skip) { $arUsers->skip($skip); } $arUsers->take(100); $users = $arUsers->get(); if ($users->count() < 70) { $users = VKUsers::where('sex', 1)->take(100)->get(); } $okUsers = []; foreach ($users as $user) { if ($searcher->validForPostFilter($user) || true) { $okUsers[] = $user->id; } } $this->users()->sync($okUsers); $this->save(); }
public function execute(&$count, $logger = false) { if (!empty($this->preFilter['in_friends'])) { $o1 = (int) floor(@$this->preFilter['offset'] / 5); $o2 = @$this->preFilter['offset'] % 5; $code = 'var xz = API.friends.get( {"count":1, "offset":' . $o1 . ',"order":"random"} );' . 'var s = API.friends.get({"user_id":xz.items[0],"count":10,"offset":' . $o2 . '});' . 'var u = 1;' . 'var w = 1;' . 'var a = 1;' . 'var g = 1;' . 'var c = 0;' . 'var store = [];' . 'while (c <= 2) {' . 'var u = API.users.get({"user_ids":s.items[c], "fields":"' . VK::getAllUserListCon() . '"});' . '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});' . 'store.push({"u":u,"w":w,"a":a,"g":g,"photos":photos});' . 'c = c + 1;' . '}' . 'return store;'; } else { $code = 'var s = API.users.search(' . json_encode($this->buildPreFilter()) . ');' . 'var u = 1;' . 'var w = 1;' . 'var a = 1;' . 'var g = 1;' . 'var c = 0;' . 'var store = [];' . 'while (c <= 3) {' . 'var u = API.users.get({"user_ids":s.items[c].id, "fields":"' . VK::getAllUserListCon() . '"});' . '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});' . 'store.push({"u":u,"w":w,"a":a,"g":g,"photos":photos});' . 'c = c + 1;' . '}' . 'return store;'; } $res = VK::api('execute', ['code' => $code, 'access_token' => $this->token]); $count = 1; if ($res && !empty($res['response'])) { $arUsers = []; foreach ($res['response'] as $userData) { if (!FakeDetector::detect($userData)) { $data = FakeDetector::prepare($userData); $uid = $data['user_id']; $_user = VKUsers::where('user_id', $uid)->first(); if ($_user) { $_user->fill($data); $_user->save(); } else { $_user = VKUsers::create($data); } if (!$_user->fake) { if ($this->validForPostFilter($_user)) { $arUsers[] = $_user; } else { if ($logger) { $logger->_l(FakeDetector::$why . ' id' . @$userData['u'][0]['id'], true); } } } } else { if ($logger) { $logger->_l(FakeDetector::$why . ' id' . @$userData['u'][0]['id'], true); } } } $count = count($res['response']); return $arUsers; } else { if ($logger) { $logger->_l(print_r($res, true), true); } else { \Log::error(print_r($res, true)); } if (empty($res['error'])) { if (isset($res['response'])) { return false; } } if (@$res['error']['error_code'] == 14) { $sid = @$res['error']['captcha_sid']; $img = @$res['error']['captcha_img']; $obj = ['sid' => $sid, 'img' => $img]; $key = 'captcha' . microtime(true); \Redis::command('SET', [$key, json_encode($obj)]); } } return []; }