Exemplo n.º 1
0
 /**
  * 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');
 }
Exemplo n.º 2
0
 public function getIndex(Request $r)
 {
     $code = $r->get('code', false);
     $state = $r->get('state', false);
     if ($code && $state) {
         $token = \App\Providers\VK::getToken($code, $state);
         if ($token) {
             $token['app_id'] = $state;
             $_token = VKTokens::where('user_id', @$token['user_id'])->where('app_id', $state)->first();
             if ($_token) {
                 $_token->fill($token);
                 $_token->save();
             } else {
                 VKTokens::create($token);
             }
             return 'ok';
         } else {
             return 'Error when fetching token';
         }
     } else {
         throw new \Exception('code or state not found');
     }
 }
Exemplo n.º 3
0
 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 [];
 }
Exemplo n.º 4
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     //		$country  = \App\Providers\VK::api('database.getCountries', ['need_all'=>'1', 'count'=>1000]);
     //		if ($country['response']) {
     //			file_put_contents(public_path('country.json'), json_encode($country['response']['items']));
     //
     //			$c = $country['response'];
     //			$arCityG = [];
     //			//Андорра
     //			//Аруба
     //			//Афганистан
     //			//Болгария
     //			//Бразилия
     //			$notLoad = [];
     //			$x = 0;
     //			$pack = [];
     //			foreach ($c['items'] as $country) {
     //
     //				$pack[] = $country['id'];
     //
     //				if (count($pack) > 22) {
     //
     //					$code = 'var r = [];';
     //
     //					foreach($pack as $line) {
     //						$code .= 'r.push( {"'.$line.'":API.database.getCities({"country_id":'.$line.',"need_all":0,"count":1000})});';
     //					}
     //					$code .= "return r;";
     //
     //
     //					$data = \App\Providers\VK::api('execute', ['code'=>$code, 'access_token'=>'a797624385417fb062f275cd3330ee53b9f9aaa4987427ffc99dd5ecd25692713d1de6c7cc1664698cbfe']);
     //					if (@$data['response']) {
     //						foreach ($data['response'] as $cityPack) {
     //							foreach($cityPack as $countryId=>$arCity) {
     //								foreach($arCity['items'] as &$city) {
     //									$city['country_id'] = $countryId;
     //								}
     //								$arCityG = array_merge($arCityG, $arCity['items']);
     //								$this->info('Country: '.$countryId);
     //							}
     //						}
     //					} else {
     //						dd($data);
     //					}
     //					$pack = [];
     //					sleep(2);
     //				}
     //
     //			}
     //			file_put_contents(public_path('city.json'), json_encode($arCityG));
     //			dd($notLoad);
     //		} else {
     //			$this->info('fail load country');
     //		}
     $citys = file_get_contents(public_path('city.json'));
     $citys = json_decode($citys, true);
     $arUni = [];
     foreach ($citys as $city) {
         if ($city['country_id'] == 1) {
             $this->info($city['title']);
             $uni = \App\Providers\VK::api('database.getUniversities', ['count' => 10000, 'city_id' => $city['id']]);
             $uni['response']['items'] = array_map(function ($x) use($city) {
                 $x['city_id'] = $city['id'];
                 return $x;
             }, $uni['response']['items']);
             $arUni = array_merge($arUni, $uni['response']['items']);
             sleep(1);
         }
     }
     file_put_contents(public_path('universities.json'), json_encode($arUni));
 }
Exemplo n.º 5
0
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
    return view('welcome');
});
Route::get('/auth', function () {
    return view('auth', ['links' => \App\Providers\VK::getLinks()]);
});
Route::controller('vk', 'VkController');
Route::controller('api/vk', 'API\\VK');
Route::resource('api/filter', 'API\\Filter');
Route::controller('api/user', 'API\\User');
Route::get('/app', function () {
    return view('angular');
});
Exemplo n.º 6
0
 public function getAuthUrl()
 {
     $url = \App\Providers\VK::buildUrl($this->getApp(['friends', 'photos', 'audio', 'video', 'status', 'groups', 'notifications', 'offline']), $this->authUrl());
     return redirect($url);
     //		return response()->json(['url'=>$url]);
 }