From 3d7a30d4190308a0a0c6b6f5d646d1f0b4a37d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 21 Jul 2019 22:20:44 +0200 Subject: [PATCH] Remove `metascraper-logo-favicon` altogether It's doing http requests which are hard to test and hard to maintain. Therefore let's remove it until we really need it. --- backend/package.json | 1 - backend/src/schema/resolvers/embeds.spec.js | 2 -- .../src/schema/resolvers/embeds/scraper.js | 25 +++++++++---------- backend/src/schema/types/embed.gql | 1 - backend/yarn.lock | 9 ------- 5 files changed, 12 insertions(+), 26 deletions(-) diff --git a/backend/package.json b/backend/package.json index 60553c719..c9cd0181c 100644 --- a/backend/package.json +++ b/backend/package.json @@ -81,7 +81,6 @@ "metascraper-lang": "^4.8.5", "metascraper-lang-detector": "^4.8.5", "metascraper-logo": "^5.5.0", - "metascraper-logo-favicon": "^4.8.5", "metascraper-publisher": "^4.8.5", "metascraper-soundcloud": "^5.5.3", "metascraper-title": "^4.8.5", diff --git a/backend/src/schema/resolvers/embeds.spec.js b/backend/src/schema/resolvers/embeds.spec.js index 2170048ed..6414fbd8f 100644 --- a/backend/src/schema/resolvers/embeds.spec.js +++ b/backend/src/schema/resolvers/embeds.spec.js @@ -58,7 +58,6 @@ describe('Query', () => { audio video lang - logo sources html } @@ -92,7 +91,6 @@ describe('Query', () => { audio: null, video: null, lang: 'de', - logo: 'https://www.youtube.com/favicon.ico', sources: ['resource', 'oembed'], html: '', diff --git a/backend/src/schema/resolvers/embeds/scraper.js b/backend/src/schema/resolvers/embeds/scraper.js index 5a6da8eba..11a70e362 100644 --- a/backend/src/schema/resolvers/embeds/scraper.js +++ b/backend/src/schema/resolvers/embeds/scraper.js @@ -16,7 +16,6 @@ const metascraper = Metascraper([ require('metascraper-lang')(), require('metascraper-lang-detector')(), require('metascraper-logo')(), - require('metascraper-logo-favicon')(), // require('metascraper-clearbit-logo')(), require('metascraper-publisher')(), require('metascraper-title')(), @@ -37,16 +36,16 @@ oEmbedProvidersFile = oEmbedProvidersFile.replace('{format}', 'json') const oEmbedProviders = JSON.parse(oEmbedProvidersFile) -const fetchEmbed = async targetUrl => { +const fetchEmbed = async url => { const provider = oEmbedProviders.find(provider => { - return provider.provider_url.includes(targetUrl.hostname) + return provider.provider_url.includes(url.hostname) }) if (!provider) return {} const { endpoints: [endpoint], } = provider const endpointUrl = new URL(endpoint.url) - endpointUrl.searchParams.append('url', targetUrl) + endpointUrl.searchParams.append('url', url) endpointUrl.searchParams.append('format', 'json') const response = await fetch(endpointUrl) const json = await response.json() @@ -61,26 +60,26 @@ const fetchEmbed = async targetUrl => { return { type, html, author: author_name, date: upload_date, sources } } -const fetchMeta = async targetUrl => { - const response = await fetch(targetUrl) +const fetchMeta = async url => { + const response = await fetch(url) const html = await response.text() - const metadata = await metascraper({ html, url: targetUrl }) + const metadata = await metascraper({ html, url }) return { - sources: ['resource'], type: 'link', + sources: ['resource'], ...metadata, } } -export default async function scrape(targetUrl) { - targetUrl = new URL(targetUrl) - if (targetUrl.hostname === 'youtu.be') { +export default async function scrape(url) { + url = new URL(url) + if (url.hostname === 'youtu.be') { // replace youtu.be to get proper results - targetUrl.hostname = 'youtube.com' + url.hostname = 'youtube.com' } - const [meta, embed] = await Promise.all([fetchMeta(targetUrl), fetchEmbed(targetUrl)]) + const [meta, embed] = await Promise.all([fetchMeta(url), fetchEmbed(url)]) const output = mergeWith(meta, embed, (objValue, srcValue) => { if (isArray(objValue)) { diff --git a/backend/src/schema/types/embed.gql b/backend/src/schema/types/embed.gql index b4090e44f..d59f696b2 100644 --- a/backend/src/schema/types/embed.gql +++ b/backend/src/schema/types/embed.gql @@ -10,7 +10,6 @@ type Embed { audio: String video: String lang: String - logo: String html: String sources: [String] } diff --git a/backend/yarn.lock b/backend/yarn.lock index f7925ebab..e769990a5 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -5691,15 +5691,6 @@ metascraper-lang@^4.8.5: dependencies: "@metascraper/helpers" "^4.10.2" -metascraper-logo-favicon@^4.8.5: - version "4.10.2" - resolved "https://registry.yarnpkg.com/metascraper-logo-favicon/-/metascraper-logo-favicon-4.10.2.tgz#b85176ee72b6d066a398661cc418140b7935deb7" - integrity sha512-CKdeaeIChTqRKQmd9pXSax9Us3bqWGdhKGkU2drgKptrcigsudjEp2rTyv5lDGDeMHLLD21xx7KuYr/R0Ysxtw== - dependencies: - "@metascraper/helpers" "^4.10.2" - got "~9.6.0" - lodash "~4.17.11" - metascraper-logo@^5.5.0: version "5.6.2" resolved "https://registry.yarnpkg.com/metascraper-logo/-/metascraper-logo-5.6.2.tgz#2677d3d00dc716cf8a62741e0b1770e93c201439"