コード例 #1
0
ファイル: HomeController.php プロジェクト: votemike/palette
 /**
  * @param Request $request
  * @return \Illuminate\View\View | \Illuminate\Http\RedirectResponse
  */
 public function site(Request $request)
 {
     $url = $request->input('site');
     if ($this->hasNoHost($url)) {
         return $this->buildNewUrlRedirect($request, 'http://' . $url);
     }
     if ($redirect = $this->getRedirect($url)) {
         return $this->buildNewUrlRedirect($request, $redirect);
     }
     $html = $this->getUrlContents($url);
     if ($html === false) {
         return $this->buildErrorRedirect($url);
     }
     $parts = parse_url($url);
     $baseUrl = $parts['scheme'] . '://' . $parts['host'];
     $files = Scraper::extractCssFiles($html, $baseUrl);
     $css = '';
     foreach ($files as $file) {
         $contents = $this->getUrlContents($file);
         if ($contents == false) {
             return $this->buildErrorRedirect($file);
         }
         $css .= $contents;
     }
     return view('colours')->with('colours', CssParser::extractColours($css));
 }
コード例 #2
0
ファイル: ScraperTest.php プロジェクト: votemike/palette
 public function testExtractingCssFileNames()
 {
     $html = '<head><link rel="stylesheet" type="text/css" href="theme.css"></head>';
     $urls = Scraper::extractCssFiles($html, 'http://localhost');
     $this->assertCount(1, $urls);
     $this->assertSame('http://localhost/theme.css', $urls[0]);
     $html = '<head><link rel="stylesheet" type="text/css" href="directory/theme.css"></head>';
     $urls = Scraper::extractCssFiles($html, 'http://localhost');
     $this->assertCount(1, $urls);
     $this->assertSame('http://localhost/directory/theme.css', $urls[0]);
     $html = '<head><link rel="stylesheet" type="text/css" href="directory/theme.css"><link rel="stylesheet" type="text/css" href="theme.css"></head>';
     $urls = Scraper::extractCssFiles($html, 'http://localhost');
     $this->assertCount(2, $urls);
     $html = '<head><link rel="stylesheet" type="text/css" href="theme.css"><link rel="stylesheet" type="text/css" href="theme.css"></head>';
     $urls = Scraper::extractCssFiles($html, 'http://localhost');
     $this->assertCount(1, $urls);
     $html = '<head><link rel="stylesheet" type="text/css" href="' . url('theme.css') . '"></head>';
     $urls = Scraper::extractCssFiles($html, 'http://localhost');
     $this->assertCount(1, $urls);
     $this->assertSame('http://localhost/theme.css', $urls[0]);
 }