@@ -18,17 +18,14 @@ class ExtractorFactory
18
18
'snipplr.com ' => Adapters \Snipplr \Extractor::class,
19
19
'play.cadenaser.com ' => Adapters \CadenaSer \Extractor::class,
20
20
'ideone.com ' => Adapters \Ideone \Extractor::class,
21
- 'github.com ' => Adapters \Github \Extractor::class,
22
21
'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,
26
24
'archive.org ' => Adapters \Archive \Extractor::class,
27
25
'sassmeister.com ' => Adapters \Sassmeister \Extractor::class,
28
26
'facebook.com ' => Adapters \Facebook \Extractor::class,
29
27
'instagram.com ' => Adapters \Instagram \Extractor::class,
30
28
'imageshack.com ' => Adapters \ImageShack \Extractor::class,
31
- 'imagizer.imageshack.com ' => Adapters \ImageShack \Extractor::class,
32
29
'youtube.com ' => Adapters \Youtube \Extractor::class,
33
30
'twitch.tv ' => Adapters \Twitch \Extractor::class,
34
31
];
@@ -43,9 +40,13 @@ public function __construct(?array $settings = [])
43
40
public function createExtractor (UriInterface $ uri , RequestInterface $ request , ResponseInterface $ response , Crawler $ crawler ): Extractor
44
41
{
45
42
$ host = $ uri ->getHost ();
46
- $ host = str_replace ( ' www. ' , '' , $ host ) ;
43
+ $ class = $ this -> default ;
47
44
48
- $ class = $ this ->adapters [$ host ] ?? $ this ->default ;
45
+ foreach ($ this ->adapters as $ adapterHost => $ adapter ) {
46
+ if (substr ($ host , -strlen ($ adapterHost )) === $ adapterHost ) {
47
+ $ class = $ adapter ;
48
+ }
49
+ }
49
50
50
51
/** @var Extractor $extractor */
51
52
$ extractor = new $ class ($ uri , $ request , $ response , $ crawler );
0 commit comments