@@ -18,19 +18,17 @@ class ExtractorFactory
1818 'snipplr.com ' => Adapters \Snipplr \Extractor::class,
1919 'play.cadenaser.com ' => Adapters \CadenaSer \Extractor::class,
2020 'ideone.com ' => Adapters \Ideone \Extractor::class,
21- 'github.com ' => Adapters \Github \Extractor::class,
2221 'gist.github.com ' => Adapters \Gist \Extractor::class,
23- 'en.wikipedia.org ' => Adapters \Wikipedia \Extractor::class,
24- 'es.wikipedia.org ' => Adapters \Wikipedia \Extractor::class,
25- 'gl.wikipedia.org ' => Adapters \Wikipedia \Extractor::class,
22+ 'github.com ' => Adapters \Github \Extractor::class,
23+ 'wikipedia.org ' => Adapters \Wikipedia \Extractor::class,
2624 'archive.org ' => Adapters \Archive \Extractor::class,
2725 'sassmeister.com ' => Adapters \Sassmeister \Extractor::class,
2826 'facebook.com ' => Adapters \Facebook \Extractor::class,
2927 'instagram.com ' => Adapters \Instagram \Extractor::class,
3028 'imageshack.com ' => Adapters \ImageShack \Extractor::class,
31- 'imagizer.imageshack.com ' => Adapters \ImageShack \Extractor::class,
3229 'youtube.com ' => Adapters \Youtube \Extractor::class,
3330 'twitch.tv ' => Adapters \Twitch \Extractor::class,
31+ 'bandcamp.com ' => Adapters \Bandcamp \Extractor::class,
3432 ];
3533 private array $ customDetectors = [];
3634 private array $ settings ;
@@ -43,9 +41,13 @@ public function __construct(?array $settings = [])
4341 public function createExtractor (UriInterface $ uri , RequestInterface $ request , ResponseInterface $ response , Crawler $ crawler ): Extractor
4442 {
4543 $ host = $ uri ->getHost ();
46- $ host = str_replace ( ' www. ' , '' , $ host ) ;
44+ $ class = $ this -> default ;
4745
48- $ class = $ this ->adapters [$ host ] ?? $ this ->default ;
46+ foreach ($ this ->adapters as $ adapterHost => $ adapter ) {
47+ if (substr ($ host , -strlen ($ adapterHost )) === $ adapterHost ) {
48+ $ class = $ adapter ;
49+ }
50+ }
4951
5052 /** @var Extractor $extractor */
5153 $ extractor = new $ class ($ uri , $ request , $ response , $ crawler );
0 commit comments