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' });