mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-02-14 21:49:36 +00:00
Implement URLHandlerInfoProviderInterface in BuerklinProvider
Added URL handling capabilities to BuerklinProvider.
This commit is contained in:
parent
c2a51e57b7
commit
46c2fe3aad
1 changed files with 32 additions and 1 deletions
|
|
@ -34,7 +34,7 @@ use App\Settings\InfoProviderSystem\BuerklinSettings;
|
||||||
use Psr\Cache\CacheItemPoolInterface;
|
use Psr\Cache\CacheItemPoolInterface;
|
||||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||||
|
|
||||||
class BuerklinProvider implements BatchInfoProviderInterface
|
class BuerklinProvider implements BatchInfoProviderInterface, URLHandlerInfoProviderInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
private const ENDPOINT_URL = 'https://www.buerklin.com/buerklinws/v2/buerklin';
|
private const ENDPOINT_URL = 'https://www.buerklin.com/buerklinws/v2/buerklin';
|
||||||
|
|
@ -636,4 +636,35 @@ class BuerklinProvider implements BatchInfoProviderInterface
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getHandledDomains(): array
|
||||||
|
{
|
||||||
|
return ['buerklin.com'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getIDFromURL(string $url): ?string
|
||||||
|
{
|
||||||
|
//Inputs:
|
||||||
|
//https://www.buerklin.com/de/p/bkl-electronic/niedervoltsteckverbinder/072341-l/40F1332/
|
||||||
|
//https://www.buerklin.com/de/p/40F1332/
|
||||||
|
//https://www.buerklin.com/en/p/bkl-electronic/dc-connectors/072341-l/40F1332/
|
||||||
|
//https://www.buerklin.com/en/p/40F1332/
|
||||||
|
//The ID is the last part after the manufacturer/category/mpn segment and before the final slash
|
||||||
|
//https://www.buerklin.com/de/p/bkl-electronic/niedervoltsteckverbinder/072341-l/40F1332/#download should also work
|
||||||
|
|
||||||
|
$path = parse_url($url, PHP_URL_PATH);
|
||||||
|
|
||||||
|
if (!$path) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure it's actually a product URL
|
||||||
|
if (strpos($path, '/p/') === false) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$id = basename(rtrim($path, '/'));
|
||||||
|
|
||||||
|
return $id !== '' ? $id : null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue