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