From d1ad9efe640399c441dba1caf7dd558b4936c1e7 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 27 Jul 2022 00:55:17 +0000 Subject: [PATCH] Add open graph link titles --- frontend/src/app/services/seo.service.ts | 4 ++-- unfurler/src/index.ts | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/services/seo.service.ts b/frontend/src/app/services/seo.service.ts index af96dc81b..01ed7ae8c 100644 --- a/frontend/src/app/services/seo.service.ts +++ b/frontend/src/app/services/seo.service.ts @@ -20,13 +20,13 @@ export class SeoService { setTitle(newTitle: string): void { this.titleService.setTitle(newTitle + ' - ' + this.getTitle()); this.metaService.updateTag({ property: 'og:title', content: newTitle}); - this.metaService.updateTag({ property: 'twitter:description', content: newTitle}); + this.metaService.updateTag({ property: 'twitter:title', content: newTitle}); } resetTitle(): void { this.titleService.setTitle(this.getTitle()); this.metaService.updateTag({ property: 'og:title', content: this.getTitle()}); - this.metaService.updateTag({ property: 'twitter:description', content: this.getTitle()}); + this.metaService.updateTag({ property: 'twitter:title', content: this.getTitle()}); } setEnterpriseTitle(title: string) { diff --git a/unfurler/src/index.ts b/unfurler/src/index.ts index 31e4d423b..998beb1eb 100644 --- a/unfurler/src/index.ts +++ b/unfurler/src/index.ts @@ -76,6 +76,11 @@ class Server { return page.screenshot(); } break; default: { + try { + await page.waitForSelector('meta[property="og:title"', { timeout: 5000 }) + } catch (e) { + // probably timed out + } return page.content(); } } @@ -96,6 +101,14 @@ class Server { } async renderHTML(req, res) { + // drop requests for static files + const path = req.params[0]; + const match = path.match(/\.[\w]+$/); + if (match?.length && match[0] !== '.html') { + res.status(404).send(); + return + } + try { let html = await this.cluster?.execute({ url: this.mempoolHost + req.params[0], action: 'html' });