unfurled

1.1.5 • Public • Published

Code Climate Scrutinizer Code Quality Codacy Badge David Badge NPM Downloads pledge

Unfurled

So, like, what does unfurl even mean?

Spread out from a rolled or folded state

Source

Install

yarn add unfurled

Usage

unfurled(url [,opts])

url - string of url or object of:

  • uri || url - fully qualified uri or a parsed url object from url.parse()
  • baseUrl - fully qualified uri string used as the base url
  • headers - http headers (default: { 'user-agent': 'facebookexternalhit' })

opts - object of:

  • ogp - get open graph metadata (true || false) (default: true)
  • twitter - get twitter-card metadata (true || false) (default: true)
  • oembed - get oembed metadata (true || false) (default: true)
  • other - get other metadata too (e.g. description and title) (true || false) (default: true)

Examples

var unfurled = require('unfurled')
 
unfurled('http://example.com')
  .then(console.log)
  .catch(console.error)

Or if you're cool and use ES7 async await

var unfurled = require('unfurled')
 
;(async function () {
  let result = await unfurl('https://imgur.com/gallery/fhAIf')
  console.log('result', result)
})().catch(console.error)

Response (from https://imgur.com/gallery/fhAIf)

Note: Discovered metadata keys should be camelCased

{
    other: {
        viewport: 'width=1138',
        robots: 'follow, index',
        keywords: 'images, funny, image host, image sharing, reaction gif, viral images, current events, cute, visual storytelling, gif',
        description: 'Album with topic of No Topic, tagged with  and ; uploaded by kikiistgeil. When I log in to imgur and now I have to fight zombies',
        copyright: 'Copyright 2017 Imgur, Inc.',
        msapplicationTileColor: '#2cd63c',
        msapplicationTileImage: '//s.imgur.com/images/favicon-144.png',
        pDomainVerify: 'a1e7abe8af908cc6dfaf935dd9a20384',
        fbAdmins: '12301369',
        fbAppId: '127621437303857',
        alAndroidUrl: 'imgur://imgur.com/gallery/fhAIf?from=fbreferral',
        alAndroidAppName: 'Imgur',
        alAndroidPackage: 'com.imgur.mobile',
        alIosUrl: 'imgur://imgur.com/gallery/fhAIf?from=fbreferral',
        alIosAppStoreId: '639881495',
        alIosAppName: 'Imgur',
        alWebUrl: 'http://imgur.com/gallery/fhAIf',
        twitterDomain: 'imgur.com',
        author: 'Imgur',
        articleAuthor: 'Imgur',
        articlePublisher: 'https://www.facebook.com/imgur'
    },
    oembed: {
        version: '1.0',
        type: 'rich',
        providerName: 'Imgur',
        providerUrl: 'https://imgur.com',
        width: 540,
        height: 500,
        html: '<blockquote class="imgur-embed-pub" lang="en" data-id="a/fhAIf"><a href="http://imgur.com/a/fhAIf">When I log in to imgur and now I have to fight zombies</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>'
    },
    ogp: {
        ogUrl: 'http://imgur.com/gallery/fhAIf',
        ogSiteName: 'Imgur',
        ogTitle: 'When I log in to imgur and now I have to fight zombies',
        ogType: 'article',
        ogImage: [{
            url: 'http://i.imgur.com/SIarU3i.jpg?fb',
            width: '600',
            height: '315'
        }],
        ogDescription: 'Imgur: The most awesome images on the Internet.'
    },
    twitter: {
        twitterSite: '@imgur',
        twitterAppIdGoogleplay: 'com.imgur.mobile',
        twitterTitle: 'When I log in to imgur and now I have to fight zombies',
        twitterCard: 'summary_large_image',
        twitterImage: [{
            url: 'https://i.imgur.com/SIarU3ih.jpg'
        }],
        twitterDescription: 'Imgur: The most awesome images on the Internet.'
    }
}

Package Sidebar

Install

npm i unfurled

Weekly Downloads

34

Version

1.1.5

License

ISC

Last publish

Collaborators

  • jacktuck