From 9bdcda44086ba4fc7f0d95bbe868c1fb83faf4b8 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Sat, 16 Dec 2017 16:22:28 -0500 Subject: [PATCH 1/5] Use a specific user agent (to avoid the 403 error produced by some sites) --- src/Readers/HttpReader.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Readers/HttpReader.php b/src/Readers/HttpReader.php index 9f88d63..d6cf613 100644 --- a/src/Readers/HttpReader.php +++ b/src/Readers/HttpReader.php @@ -42,6 +42,8 @@ public function __construct($config = null) 'cookies' => $this->jar, 'connect_timeout' => 5 ]; + + $this->config['headers']['User-Agent'] = 'Mozilla/5.0'; } /** From bbd10d1473f73d69d011f4ce9620701978a33976 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Sat, 16 Dec 2017 16:39:33 -0500 Subject: [PATCH 2/5] Change composer.json and README --- README.md | 158 ++------------------------------------------------ composer.json | 10 ++-- 2 files changed, 9 insertions(+), 159 deletions(-) diff --git a/README.md b/README.md index 92d2cf6..7661c16 100644 --- a/README.md +++ b/README.md @@ -1,159 +1,9 @@ # Link Preview -[![Build Status](https://travis-ci.org/dusterio/link-preview.svg)](https://travis-ci.org/dusterio/link-preview) -[![Code Climate](https://codeclimate.com/github/dusterio/link-preview/badges/gpa.svg)](https://codeclimate.com/github/dusterio/link-preview/badges) -[![Test Coverage](https://codeclimate.com/github/dusterio/link-preview/badges/coverage.svg)](https://codeclimate.com/github/dusterio/link-preview/badges) -[![Total Downloads](https://poser.pugx.org/dusterio/link-preview/d/total.svg)](https://packagist.org/packages/dusterio/link-preview) -[![Latest Stable Version](https://poser.pugx.org/dusterio/link-preview/v/stable.svg)](https://packagist.org/packages/dusterio/link-preview) -[![Latest Unstable Version](https://poser.pugx.org/dusterio/link-preview/v/unstable.svg)](https://packagist.org/packages/dusterio/link-preview) -[![License](https://poser.pugx.org/dusterio/link-preview/license.svg)](https://packagist.org/packages/dusterio/link-preview) -A PHP class that consumes an HTTP(S) link and returns an array of preview information. Think of Facebook sharing - -whenever you paste a link, it goes to specified page and fetches some details. +This is my first package published via a VCS (git in this case). -Initially based on [kasp3r/link-preview](https://github.com/kasp3r/link-preview) that seems to be abandoned. +I have added a 1 new line to the [original package][original]. -Includes integrations with: Laravel 5 +This package was created only for my personal use and learning purposes. -## Dependencies - -* PHP >= 5.5 -* Guzzle >= 6.1 -* Symfony DomCrawler >= 3.0 - -## Installation via Composer - -To install simply run: - -``` -composer require dusterio/link-preview -``` - -Or add it to `composer.json` manually: - -```json -{ - "require": { - "dusterio/link-preview": "~1.2" - } -} -``` - -## Direct usage - -```php -use Dusterio\LinkPreview\Client; - -$previewClient = new Client('https://www.boogiecall.com/en/Melbourne'); - -// Get previews from all available parsers -$previews = $previewClient->getPreviews(); - -// Get a preview from specific parser -$preview = $previewClient->getPreview('general'); - -// Convert output to array -$preview = $preview->toArray(); -``` - -**Output** - -``` -array(4) { - ["cover"]=> - string(94) "https://cdn.boogiecall.com/media/images/872398e3d9598c494a2bed72268bf018_1440575488_7314_s.jpg" - ["images"]=> - array(8) { - [0]=> - string(94) "https://cdn.boogiecall.com/media/images/872398e3d9598c494a2bed72268bf018_1440575488_7314_s.jpg" - [1]=> - string(94) "https://cdn.boogiecall.com/media/images/b18970cd4c808f4dcdf7c319779ab9c6_1457347623_2419_s.jpg" - } - ["title"]=> - string(44) "Events, parties & live concerts in Melbourne" - ["description"]=> - string(107) "List of events in Melbourne. Nightlife, best parties and concerts in Melbourne, event listings and reviews." -} -``` - -## Timeouts and errors - -```php -// Default connect timeout is 5 seconds, you can change it to anything you want -$previewClient->getParser('general')->getReader()->config(['connect_timeout' => 3.14]); - -// Default maximum redirect count is 10, but you can change it too -$previewClient->getParser('general')->getReader()->config(['allow_redirects' => ['max' => 10]]); - -// If there is a network error (DNS, connect, etc), we throw ConnectionErrorException -try { - $previews = $previewClient->getPreviews(); -} catch (\Dusterio\LinkPreview\Exceptions\ConnectionErrorException $e) { - echo "Oh no!"; -} -``` - -### YouTube example - -```php -use Dusterio\LinkPreview\Client; - -$previewClient = new LinkPreview('https://www.youtube.com/watch?v=v1uKhwN6FtA'); - -// Only parse YouTube specific information -$preview = $previewClient->getPreview('youtube'); - -var_dump($preview->toArray()); -``` - -**Output** - -``` -array(2) { - ["embed"]=> - string(128) "