Crog is a simple Crystal library to parse up the Open Graph meta data for web pages. If you have ever wondered how does sites like Reddit, Facebook etc fetch the relevant images and other metadata from 3rd party sites, this is it.
Special thanks to https://metascraper.js.org/ whose rules i referenced throughout my development.
Add this to your application's shard.yml
:
dependencies:
crog:
github: rishavs/crog
require "crog"
To use the library, simple call the Parse method as;
mdata = Crog::Parse.new(url)
the variable here will hold an object with attributes;
property image : String | Nil = nil
property image_width : Int32 | Nil = nil
property image_height : Int32 | Nil = nil
property url : String | Nil = nil
property description : String | Nil = nil
property title : String | Nil = nil
property author : String | Nil = nil
property date : String | Nil = nil
property logo : String | Nil = nil
property tags = [] of String
A lot of edge cases are not yet picked up. I have left them in the crog.cr file for future reference.
- Fork it (https://github.com/your-github-user/crog/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- Rishav Rishav Sharan - creator, maintainer