Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Graby Laravel Package

j0k3r/graby

Graby extracts article content from web pages using php-readability and site_config patterns. A tested, decoupled fork of Full-Text RSS, it integrates via Composer, supports PHP 8.2+, and uses an HTTP adapter like Guzzle 7.

View on GitHub
Deep Wiki
Context7
2.5.3
  • Fix GHSA-hj75-9vmq-m8hm by @BlkSword e2806c7b326911feb94da6e3e90f8fbb890a579a

Full Changelog: https://github.com/j0k3r/graby/compare/2.5.2...2.5.3

v2.5.0

Tagged a minor version just to warn you that Guzzle 5 support has been dropped.

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.6...v2.5.0

2.4.6

What's Changed

New Contributors

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.5...2.4.6

2.4.5
2.4.4

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.3...2.4.4

2.4.3

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.2...2.4.3

2.4.2

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.4.1...2.4.2

2.4.1

Just an empty release because 2.4.0 was created on the wrong branch (master instead of 2.x). It should be fine by now.

2.4.0

Addition

If you want to extract content from a page you already fetched outside of Graby, you can call setContentAsPrefetched() before calling fetchContent(), e.g.:

use Graby\Graby;
$article = 'http://www.bbc.com/news/entertainment-arts-32547474';
$input = '<html>[...]</html>';
$graby = new Graby();
$graby->setContentAsPrefetched($input);
$result = $graby->fetchContent($article);

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.4.0

2.3.5

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.3.5

2.3.4

What's Changed

New Contributors

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.3...2.3.4

2.3.3

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.2...2.3.3

2.3.2

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.1...2.3.2

2.3.1

What's Changed

Full Changelog: https://github.com/j0k3r/graby/compare/2.3.0...2.3.1

2.3.0
  • Add support of wrap_in #262
  • Update PHP-CS-Fixer to 3.0 #263
2.2.7
  • Use new pdfparser version #259
2.2.6

Kudos to @Simounet for all these PRs 🤝

  • Fix test case with real content (bjori site updated) #257
  • Case where an attribute is empty overriding a filled in value #255
  • Fix wrong URL exception handling #256
2.2.5
  • Fix and refactor makeAbsoluteStr #249
  • Update CS-Fixer #250
  • ContentExtractor: fix handling of data-srcset #248
  • Rebuild siteconfig if host for singlepage is not the same #246
2.2.4
  • Fix CS issues (following PHP CS Fixer update) #243
  • Allow new patch/fix from PDFParser #247
v2.2.3
  • Fix the way to detect a request factory #238
  • Test Guzzle7 #239
  • Ditch Travis to use GitHub Actions #241
  • Improve Composer install in GitHub Actions #242
2.2.2
  • Cast date_parse result #233
  • Use new Scrutinizer engine #234
  • Allow installing smalot/pdfparser newer version #235
2.2.1
  • Add support for Monolog v2 #230
  • Define lowest working deps #231
2.2.0
  • Remove wallabag's fork of tcpdf (it wasn't used) #225
  • Handle error using preg_* function when html is really too big #226
  • Add support for refresh header #227
  • Cleanup Travis #228
  • Allow Symfony 5 installation #229
2.1.1
  • Lock to PHPUnit 7 #220
  • Handle meta refresh url when attributes are reversed #221
2.1.0

Graby got a logo!

🎉 Thanks to @caneco, Graby has a logo! 🎉

Formatted date

This release include a fix for date. Before, we validated a date and if the date wasn't valid, we return null. Now, if the date is valid, we return it as a W3C formatted date: Y-m-d\TH:i:sP.

List of PR merged

  • Fix tests #213
  • Fix typo #215
  • Convert date to a known format #216
  • Add brand new logo to the project #214
  • JSON LD multiple authors #218
  • Improve readme with logo & credits #217
2.0.2
  • Enable inferPrivatePropertyTypeFromConstructor on PHPStan #208
  • Add data-srcset as lazyload attributes #209
2.0.1
  • Applied some changes from Full-Text RSS #206
  • Change the way to merge config for find & replace string #207
2.0.0

:sparkles: Major changes :sparkles:

The 2.0 started almost 2 years ago on an initiative of @aaa2000 :clap: to add support for HTTPlug.

The 1.x was coupled to Guzzle 5 which is quite old now and some people started to complain about how coupled it was. It was obvious that the best solution was to switch to HTTPlug to let the final user decide which HTTP client to use.

The 2.0.0 is tested using these clients:

  • Guzzle 6
  • Guzzle 5
  • cURL

There are many more available HTTP client which should work too.

Other changes are:

  • dropping support PHP < 7.1
  • Tidy extension is now required
  • enable PHPStan level 7
  • open graph & json-ld are fetched first, information from the html overide them

If you want to upgrade, follow these steps.

Finally, huge thanks to @aaa2000 to have started the work 2 years ago. Also thanks to @jtojnar for helping me on that release.

1.20.1
  • Logger infos added for JsonLd parsing #203
1.20.0
  • Fix tests on multipage (clubic) #202
  • Add support of referrerpolicy for img tags #201
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json
refinery29/php-cs-fixer-config
hotmeteor/eco-env
mvaliolahi/hydrate
wearede/tbcpay-php
parsnick/steak
thibaud-dauce/mattermost-php
multilinguals/apollo-client
antaresbr/collection
kr0lik/phpstan-rules