open-graph-scraper
Version:
Node.js scraper module for Open Graph and Twitter Card info
947 lines (946 loc) • 21.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* array of meta tags ogs is looking for
*
* @return {array} array of meta tags
*
*/
const fields = [
{
multiple: false,
property: 'og:title',
fieldName: 'ogTitle',
},
{
multiple: false,
property: 'og:type',
fieldName: 'ogType',
},
{
multiple: false,
property: 'og:logo',
fieldName: 'ogLogo',
},
{
multiple: false,
property: 'og:website',
fieldName: 'ogWebsite',
},
{
multiple: true,
property: 'og:image',
fieldName: 'ogImageProperty',
},
{
multiple: true,
property: 'og:image:url',
fieldName: 'ogImageURL',
},
{
multiple: true,
property: 'og:image:alt',
fieldName: 'ogImageAlt',
},
{
multiple: true,
property: 'og:image:secure_url',
fieldName: 'ogImageSecureURL',
},
{
multiple: true,
property: 'og:image:width',
fieldName: 'ogImageWidth',
},
{
multiple: true,
property: 'og:image:height',
fieldName: 'ogImageHeight',
},
{
multiple: true,
property: 'og:image:type',
fieldName: 'ogImageType',
},
{
multiple: false,
property: 'og:url',
fieldName: 'ogUrl',
},
{
multiple: false,
property: 'og:audio',
fieldName: 'ogAudio',
},
{
multiple: false,
property: 'og:audio:url',
fieldName: 'ogAudioURL',
},
{
multiple: false,
property: 'og:audio:secure_url',
fieldName: 'ogAudioSecureURL',
},
{
multiple: false,
property: 'og:audio:type',
fieldName: 'ogAudioType',
},
{
multiple: false,
property: 'og:description',
fieldName: 'ogDescription',
},
{
multiple: false,
property: 'og:determiner',
fieldName: 'ogDeterminer',
},
{
multiple: false,
property: 'og:locale',
fieldName: 'ogLocale',
},
{
multiple: false,
property: 'og:locale:alternate',
fieldName: 'ogLocaleAlternate',
},
{
multiple: false,
property: 'og:site_name',
fieldName: 'ogSiteName',
},
{
multiple: false,
property: 'og:product:retailer_item_id',
fieldName: 'ogProductRetailerItemId',
},
{
multiple: false,
property: 'og:product:price:amount',
fieldName: 'ogProductPriceAmount',
},
{
multiple: false,
property: 'og:product:price:currency',
fieldName: 'ogProductPriceCurrency',
},
{
multiple: false,
property: 'og:product:availability',
fieldName: 'ogProductAvailability',
},
{
multiple: false,
property: 'og:product:condition',
fieldName: 'ogProductCondition',
},
{
multiple: false,
property: 'og:price:amount',
fieldName: 'ogPriceAmount',
},
{
multiple: false,
property: 'og:price:currency',
fieldName: 'ogPriceCurrency',
},
{
multiple: false,
property: 'og:availability',
fieldName: 'ogAvailability',
},
{
multiple: true,
property: 'og:video',
fieldName: 'ogVideoProperty',
},
{
multiple: true,
property: 'og:video:url', // An alternative to 'og:video'
fieldName: 'ogVideoProperty',
},
{
multiple: false,
property: 'og:video:secure_url',
fieldName: 'ogVideoSecureURL',
},
{
multiple: false,
property: 'og:movie',
fieldName: 'ogMovie',
},
{
multiple: false,
property: 'og:episode',
fieldName: 'ogEpisode',
},
{
multiple: false,
property: 'og:video:actor',
fieldName: 'ogVideoActor',
},
{
multiple: false,
property: 'og:video:actor:id',
fieldName: 'ogVideoActorId',
},
{
multiple: false,
property: 'og:video:actor:role',
fieldName: 'ogVideoActorRole',
},
{
multiple: false,
property: 'og:video:director',
fieldName: 'ogVideoDirector',
},
{
multiple: false,
property: 'og:video:writer',
fieldName: 'ogVideoWriter',
},
{
multiple: false,
property: 'og:video:duration',
fieldName: 'ogVideoDuration',
},
{
multiple: false,
property: 'og:video:release_date',
fieldName: 'ogVideoReleaseDate',
},
{
multiple: false,
property: 'og:video:Tag',
fieldName: 'ogVideoTag',
},
{
multiple: false,
property: 'og:video:series',
fieldName: 'ogVideoSeries',
},
{
multiple: true,
property: 'og:video:width',
fieldName: 'ogVideoWidth',
},
{
multiple: true,
property: 'og:video:height',
fieldName: 'ogVideoHeight',
},
{
multiple: true,
property: 'og:video:type',
fieldName: 'ogVideoType',
},
{
multiple: false,
property: 'og:video:tv_show',
fieldName: 'ogVideoTvShow',
},
{
multiple: false,
property: 'og:video:other',
fieldName: 'ogVideoOther',
},
{
multiple: false,
property: 'twitter:card',
fieldName: 'twitterCard',
},
{
multiple: false,
property: 'twitter:url',
fieldName: 'twitterUrl',
},
{
multiple: false,
property: 'twitter:site',
fieldName: 'twitterSite',
},
{
multiple: false,
property: 'twitter:site:id',
fieldName: 'twitterSiteId',
},
{
multiple: false,
property: 'twitter:creator',
fieldName: 'twitterCreator',
},
{
multiple: false,
property: 'twitter:creator:id',
fieldName: 'twitterCreatorId',
},
{
multiple: false,
property: 'twitter:account',
fieldName: 'twitterAccount',
},
{
multiple: false,
property: 'twitter:title',
fieldName: 'twitterTitle',
},
{
multiple: false,
property: 'twitter:description',
fieldName: 'twitterDescription',
},
{
multiple: true,
property: 'twitter:image',
fieldName: 'twitterImageProperty',
},
{
multiple: true,
property: 'twitter:image:height',
fieldName: 'twitterImageHeight',
},
{
multiple: true,
property: 'twitter:image:width',
fieldName: 'twitterImageWidth',
},
{
multiple: true,
property: 'twitter:image:src',
fieldName: 'twitterImageSrc',
},
{
multiple: true,
property: 'twitter:image:alt',
fieldName: 'twitterImageAlt',
},
{
multiple: true,
property: 'twitter:player',
fieldName: 'twitterPlayerProperty',
},
{
multiple: true,
property: 'twitter:player:width',
fieldName: 'twitterPlayerWidth',
},
{
multiple: true,
property: 'twitter:player:height',
fieldName: 'twitterPlayerHeight',
},
{
multiple: true,
property: 'twitter:player:stream',
fieldName: 'twitterPlayerStream',
},
{
multiple: false,
property: 'twitter:player:stream:content_type',
fieldName: 'twitterPlayerStreamContentType',
},
{
multiple: false,
property: 'twitter:app:name:iphone',
fieldName: 'twitterAppNameiPhone',
},
{
multiple: false,
property: 'twitter:app:id:iphone',
fieldName: 'twitterAppIdiPhone',
},
{
multiple: false,
property: 'twitter:app:url:iphone',
fieldName: 'twitterAppUrliPhone',
},
{
multiple: false,
property: 'twitter:app:name:ipad',
fieldName: 'twitterAppNameiPad',
},
{
multiple: false,
property: 'twitter:app:id:ipad',
fieldName: 'twitterAppIdiPad',
},
{
multiple: false,
property: 'twitter:app:url:ipad',
fieldName: 'twitterAppUrliPad',
},
{
multiple: false,
property: 'twitter:app:name:googleplay',
fieldName: 'twitterAppNameGooglePlay',
},
{
multiple: false,
property: 'twitter:app:id:googleplay',
fieldName: 'twitterAppIdGooglePlay',
},
{
multiple: false,
property: 'twitter:app:url:googleplay',
fieldName: 'twitterAppUrlGooglePlay',
},
{
multiple: false,
property: 'music:playlist',
fieldName: 'musicPlaylist',
},
{
multiple: true,
property: 'music:song',
fieldName: 'musicSongProperty',
},
{
multiple: true,
property: 'music:song:disc',
fieldName: 'musicSongDisc',
},
{
multiple: true,
property: 'music:song:track',
fieldName: 'musicSongTrack',
},
{
multiple: true,
property: 'music:song:url',
fieldName: 'musicSongUrl',
},
{
multiple: false,
property: 'music:musician',
fieldName: 'musicMusician',
},
{
multiple: false,
property: 'music:release_date',
fieldName: 'musicReleaseDate',
},
{
multiple: false,
property: 'music:duration',
fieldName: 'musicDuration',
},
{
multiple: false,
property: 'music:radio_station',
fieldName: 'musicRadioStation',
},
{
multiple: false,
property: 'music:creator',
fieldName: 'musicCreator',
},
{
multiple: false,
property: 'music:album',
fieldName: 'musicAlbum',
},
{
multiple: false,
property: 'music:album:disc',
fieldName: 'musicAlbumDisc',
},
{
multiple: false,
property: 'music:album:track',
fieldName: 'musicAlbumTrack',
},
{
multiple: false,
property: 'music:album:url',
fieldName: 'musicAlbumUrl',
},
{
multiple: false,
property: 'article:published_date',
fieldName: 'articlePublishedDate',
},
{
multiple: false,
property: 'article:published_time',
fieldName: 'articlePublishedTime',
},
{
multiple: false,
property: 'article:modified_date',
fieldName: 'articleModifiedDate',
},
{
multiple: false,
property: 'article:modified_time',
fieldName: 'articleModifiedTime',
},
{
multiple: false,
property: 'article:expiration_time',
fieldName: 'articleExpirationTime',
},
{
multiple: false,
property: 'article:author',
fieldName: 'articleAuthor',
},
{
multiple: false,
property: 'article:section',
fieldName: 'articleSection',
},
{
multiple: false,
property: 'article:tag',
fieldName: 'articleTag',
},
{
multiple: false,
property: 'article:publisher',
fieldName: 'articlePublisher',
},
{
multiple: false,
property: 'og:article:published_time',
fieldName: 'ogArticlePublishedTime',
},
{
multiple: false,
property: 'og:article:modified_time',
fieldName: 'ogArticleModifiedTime',
},
{
multiple: false,
property: 'og:article:expiration_time',
fieldName: 'ogArticleExpirationTime',
},
{
multiple: false,
property: 'og:article:author',
fieldName: 'ogArticleAuthor',
},
{
multiple: false,
property: 'og:article:section',
fieldName: 'ogArticleSection',
},
{
multiple: false,
property: 'og:article:tag',
fieldName: 'ogArticleTag',
},
{
multiple: false,
property: 'og:article:publisher',
fieldName: 'ogArticlePublisher',
},
{
multiple: false,
property: 'books:book',
fieldName: 'booksBook',
},
{
multiple: false,
property: 'book:author',
fieldName: 'bookAuthor',
},
{
multiple: false,
property: 'book:isbn',
fieldName: 'bookIsbn',
},
{
multiple: false,
property: 'book:release_date',
fieldName: 'bookReleaseDate',
},
{
multiple: false,
property: 'book:canonical_name',
fieldName: 'bookCanonicalName',
},
{
multiple: false,
property: 'book:tag',
fieldName: 'bookTag',
},
{
multiple: false,
property: 'books:rating:value',
fieldName: 'booksRatingValue',
},
{
multiple: false,
property: 'books:rating:scale',
fieldName: 'booksRatingScale',
},
{
multiple: false,
property: 'profile:first_name',
fieldName: 'profileFirstName',
},
{
multiple: false,
property: 'profile:last_name',
fieldName: 'profileLastName',
},
{
multiple: false,
property: 'profile:username',
fieldName: 'profileUsername',
},
{
multiple: false,
property: 'profile:gender',
fieldName: 'profileGender',
},
{
multiple: false,
property: 'business:contact_data:street_address',
fieldName: 'businessContactDataStreetAddress',
},
{
multiple: false,
property: 'business:contact_data:locality',
fieldName: 'businessContactDataLocality',
},
{
multiple: false,
property: 'business:contact_data:region',
fieldName: 'businessContactDataRegion',
},
{
multiple: false,
property: 'business:contact_data:postal_code',
fieldName: 'businessContactDataPostalCode',
},
{
multiple: false,
property: 'business:contact_data:country_name',
fieldName: 'businessContactDataCountryName',
},
{
multiple: false,
property: 'restaurant:menu',
fieldName: 'restaurantMenu',
},
{
multiple: false,
property: 'restaurant:restaurant',
fieldName: 'restaurantRestaurant',
},
{
multiple: false,
property: 'restaurant:section',
fieldName: 'restaurantSection',
},
{
multiple: false,
property: 'restaurant:variation:price:amount',
fieldName: 'restaurantVariationPriceAmount',
},
{
multiple: false,
property: 'restaurant:variation:price:currency',
fieldName: 'restaurantVariationPriceCurrency',
},
{
multiple: false,
property: 'restaurant:contact_info:website',
fieldName: 'restaurantContactInfoWebsite',
},
{
multiple: false,
property: 'restaurant:contact_info:street_address',
fieldName: 'restaurantContactInfoStreetAddress',
},
{
multiple: false,
property: 'restaurant:contact_info:locality',
fieldName: 'restaurantContactInfoLocality',
},
{
multiple: false,
property: 'restaurant:contact_info:region',
fieldName: 'restaurantContactInfoRegion',
},
{
multiple: false,
property: 'restaurant:contact_info:postal_code',
fieldName: 'restaurantContactInfoPostalCode',
},
{
multiple: false,
property: 'restaurant:contact_info:country_name',
fieldName: 'restaurantContactInfoCountryName',
},
{
multiple: false,
property: 'restaurant:contact_info:email',
fieldName: 'restaurantContactInfoEmail',
},
{
multiple: false,
property: 'restaurant:contact_info:phone_number',
fieldName: 'restaurantContactInfoPhoneNumber',
},
{
multiple: false,
property: 'place:location:latitude',
fieldName: 'placeLocationLatitude',
},
{
multiple: false,
property: 'place:location:longitude',
fieldName: 'placeLocationLongitude',
},
{
multiple: false,
property: 'og:date',
fieldName: 'ogDate',
},
{
multiple: false,
property: 'author',
fieldName: 'author',
},
{
multiple: false,
property: 'updated_time',
fieldName: 'updatedTime',
},
{
multiple: false,
property: 'modified_time',
fieldName: 'modifiedTime',
},
{
multiple: false,
property: 'published_time',
fieldName: 'publishedTime',
},
{
multiple: false,
property: 'release_date',
fieldName: 'releaseDate',
},
{
multiple: false,
property: 'dc.source',
fieldName: 'dcSource',
},
{
multiple: false,
property: 'dc.subject',
fieldName: 'dcSubject',
},
{
multiple: false,
property: 'dc.title',
fieldName: 'dcTitle',
},
{
multiple: false,
property: 'dc.type',
fieldName: 'dcType',
},
{
multiple: false,
property: 'dc.creator',
fieldName: 'dcCreator',
},
{
multiple: false,
property: 'dc.coverage',
fieldName: 'dcCoverage',
},
{
multiple: false,
property: 'dc.language',
fieldName: 'dcLanguage',
},
{
multiple: false,
property: 'dc.contributor',
fieldName: 'dcContributor',
},
{
multiple: false,
property: 'dc.date',
fieldName: 'dcDate',
},
{
multiple: false,
property: 'dc.date.issued',
fieldName: 'dcDateIssued',
},
{
multiple: false,
property: 'dc.date.created',
fieldName: 'dcDateCreated',
},
{
multiple: false,
property: 'dc.description',
fieldName: 'dcDescription',
},
{
multiple: false,
property: 'dc.identifier',
fieldName: 'dcIdentifier',
},
{
multiple: false,
property: 'dc.publisher',
fieldName: 'dcPublisher',
},
{
multiple: false,
property: 'dc.rights',
fieldName: 'dcRights',
},
{
multiple: false,
property: 'dc.relation',
fieldName: 'dcRelation',
},
{
multiple: false,
property: 'dc.format.media',
fieldName: 'dcFormatMedia',
},
{
multiple: false,
property: 'dc.format.size',
fieldName: 'dcFormatSize',
},
{
multiple: false,
property: 'al:ios:url',
fieldName: 'alIosUrl',
},
{
multiple: false,
property: 'al:ios:app_store_id',
fieldName: 'alIosAppStoreId',
},
{
multiple: false,
property: 'al:ios:app_name',
fieldName: 'alIosAppName',
},
{
multiple: false,
property: 'al:iphone:url',
fieldName: 'alIphoneUrl',
},
{
multiple: false,
property: 'al:iphone:app_store_id',
fieldName: 'alIphoneAppStoreId',
},
{
multiple: false,
property: 'al:iphone:app_name',
fieldName: 'alIphoneAppName',
},
{
multiple: false,
property: 'al:ipad:url',
fieldName: 'alIpadUrl',
},
{
multiple: false,
property: 'al:ipad:app_store_id',
fieldName: 'alIpadAppStoreId',
},
{
multiple: false,
property: 'al:ipad:app_name',
fieldName: 'alIpadAppName',
},
{
multiple: false,
property: 'al:android:url',
fieldName: 'alAndroidUrl',
},
{
multiple: false,
property: 'al:android:package',
fieldName: 'alAndroidPackage',
},
{
multiple: false,
property: 'al:android:class',
fieldName: 'alAndroidClass',
},
{
multiple: false,
property: 'al:android:app_name',
fieldName: 'alAndroidAppName',
},
{
multiple: false,
property: 'al:windows_phone:url',
fieldName: 'alWindowsPhoneUrl',
},
{
multiple: false,
property: 'al:windows_phone:app_id',
fieldName: 'alWindowsPhoneAppId',
},
{
multiple: false,
property: 'al:windows_phone:app_name',
fieldName: 'alWindowsPhoneAppName',
},
{
multiple: false,
property: 'al:windows:url',
fieldName: 'alWindowsUrl',
},
{
multiple: false,
property: 'al:windows:app_id',
fieldName: 'alWindowsAppId',
},
{
multiple: false,
property: 'al:windows:app_name',
fieldName: 'alWindowsAppName',
},
{
multiple: false,
property: 'al:windows_universal:url',
fieldName: 'alWindowsUniversalUrl',
},
{
multiple: false,
property: 'al:windows_universal:app_id',
fieldName: 'alWindowsUniversalAppId',
},
{
multiple: false,
property: 'al:windows_universal:app_name',
fieldName: 'alWindowsUniversalAppName',
},
{
multiple: false,
property: 'al:web:url',
fieldName: 'alWebUrl',
},
{
multiple: false,
property: 'al:web:should_fallback',
fieldName: 'alWebShouldFallback',
},
{
multiple: false,
property: 'fb:app_id',
fieldName: 'fbAppId',
},
];
exports.default = fields;