Chris
6 years ago
5 changed files with 88 additions and 21 deletions
@ -0,0 +1,61 @@ |
|||||
|
<?php namespace App; |
||||
|
|
||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||
|
use GuzzleHttp\Client; |
||||
|
use App\Item; |
||||
|
|
||||
|
abstract class Search |
||||
|
{ |
||||
|
|
||||
|
public static function providers() |
||||
|
{ |
||||
|
$providers = self::standardProviders(); |
||||
|
// Need something to add in none standard providers |
||||
|
|
||||
|
return $providers; |
||||
|
} |
||||
|
|
||||
|
public static function providerDetails($provider) |
||||
|
{ |
||||
|
$providers = self::providers(); |
||||
|
return (object)$providers[$provider] ?? false; |
||||
|
} |
||||
|
|
||||
|
public static function standardProviders() |
||||
|
{ |
||||
|
return [ |
||||
|
'google' => [ |
||||
|
'url' => 'https://www.google.com/search', |
||||
|
'var' => 'q', |
||||
|
'method' => 'get', |
||||
|
], |
||||
|
'ddg' => [ |
||||
|
'url' => 'https://duckduckgo.com/', |
||||
|
'var' => 'q', |
||||
|
'method' => 'get', |
||||
|
], |
||||
|
'bing' => [ |
||||
|
'url' => 'https://www.bing.com/search', |
||||
|
'var' => 'q', |
||||
|
'method' => 'get', |
||||
|
], |
||||
|
]; |
||||
|
} |
||||
|
|
||||
|
public static function storeSearchProvider($class, $app) |
||||
|
{ |
||||
|
if(!empty($class)) { |
||||
|
if(($provider = Item::isSearchProvider($class)) !== false) { |
||||
|
$providers = Cache::get('search_providers', []); |
||||
|
$name = Item::nameFromClass($class); |
||||
|
|
||||
|
$search = new $class; |
||||
|
|
||||
|
$providers[strtolower($name)] = [ |
||||
|
'method' => $search->method; |
||||
|
]; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
<?php namespace App; |
||||
|
|
||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||
|
use GuzzleHttp\Client; |
||||
|
|
||||
|
interface SearchInterface |
||||
|
{ |
||||
|
public function getResults(); |
||||
|
|
||||
|
} |
Loading…
Reference in new issue