File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/ScrapResultController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use Illuminate\Support\Facades\Auth;
class ScrapResultController extends Controller
{
public function __construct(Request $request)
{
$this->middleware('auth');
// $this->middleware(function ($request, $next) {
// $this->user = Auth::user();
// if (Auth::user()->rol->id == 1 || Auth::user()->rol->id == 6) {
// $this->changeDbDefault($request);
// }
// return $next($request);
// });
}
public function scrapForWord(Request $request){
$word = $request->word;
$trunc = $request->trunc;
if(!$word){
return array('r' => false, 'm' => 'No se indico ninguna palabra');
}
// Native execution python script.
exec('cd /var/www/vhosts/venv && python36/bin/scrapy runspider myspider.py -a word=' . $word . ' -a truncate=' . $trunc . ' -a user=' . env('DB_USERNAME_SCRAPER') . ' -a passw=' .env('DB_PASSWORD_SCRAPER') . ' -a host=' . env('DB_HOST_SCRAPER') . ' -a db=' . env('DB_DATABASE_SCRAPER'), $ret, $res);
return array('r' => true, 'm' => 'success:' . env('DB_DATABASE_SCRAPER'));
}
public function getResult($word){
$table = env('TABLE_SCRAPER');
$r = DB::connection('scraper')->table($table)->where('word',$word)->get();
$r = $this->utf8_recursively($r);
return $r;
}
public static function utf8_recursively($dat)
{
if (is_string($dat)) {
return utf8_encode($dat);
} elseif (is_array($dat)) {
$ret = [];
foreach ($dat as $i => $d) $ret[ $i ] = self::utf8_recursively($d);
return $ret;
} elseif (is_object($dat)) {
foreach ($dat as $i => $d) $dat->$i = self::utf8_recursively($d);
return $dat;
} else {
return $dat;
}
}
}