summaryrefslogtreecommitdiff
path: root/packages/backend/src/services/fetch-instance-metadata.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/services/fetch-instance-metadata.ts')
-rw-r--r--packages/backend/src/services/fetch-instance-metadata.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/packages/backend/src/services/fetch-instance-metadata.ts b/packages/backend/src/services/fetch-instance-metadata.ts
index 2c401508a9..95601bfd82 100644
--- a/packages/backend/src/services/fetch-instance-metadata.ts
+++ b/packages/backend/src/services/fetch-instance-metadata.ts
@@ -156,7 +156,8 @@ async function fetchFaviconUrl(instance: Instance, doc: DOMWindow['document'] |
const url = 'https://' + instance.host;
if (doc) {
- const href = doc.querySelector('link[rel="icon"]')?.getAttribute('href');
+ // https://github.com/misskey-dev/misskey/pull/8220#issuecomment-1025104043
+ const href = Array.from(doc.getElementsByTagName('link')).reverse().find(link => link.relList.contains('icon'))?.href;
if (href) {
return (new URL(href, url)).href;
@@ -186,11 +187,16 @@ async function fetchIconUrl(instance: Instance, doc: DOMWindow['document'] | nul
if (doc) {
const url = 'https://' + instance.host;
- const hrefAppleTouchIconPrecomposed = doc.querySelector('link[rel="apple-touch-icon-precomposed"]')?.getAttribute('href');
- const hrefAppleTouchIcon = doc.querySelector('link[rel="apple-touch-icon"]')?.getAttribute('href');
- const hrefIcon = doc.querySelector('link[rel="icon"]')?.getAttribute('href');
-
- const href = hrefAppleTouchIconPrecomposed || hrefAppleTouchIcon || hrefIcon;
+ // https://github.com/misskey-dev/misskey/pull/8220#issuecomment-1025104043
+ const links = Array.from(doc.getElementsByTagName('link')).reverse();
+ // https://github.com/misskey-dev/misskey/pull/8220/files/0ec4eba22a914e31b86874f12448f88b3e58dd5a#r796487559
+ const href =
+ [
+ links.find(link => link.relList.contains('apple-touch-icon-precomposed'))?.href,
+ links.find(link => link.relList.contains('apple-touch-icon'))?.href,
+ links.find(link => link.relList.contains('icon'))?.href,
+ ]
+ .find(href => href);
if (href) {
return (new URL(href, url)).href;