From 6c8eabb36f25e1a9fe691c2bfac8758d1375cdfe Mon Sep 17 00:00:00 2001 From: Pionxzh Date: Tue, 1 Aug 2023 01:54:32 +0800 Subject: [PATCH] feat: support notification icon --- packages/userscript/src/main.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/userscript/src/main.ts b/packages/userscript/src/main.ts index dc6ec2f..62b22e6 100644 --- a/packages/userscript/src/main.ts +++ b/packages/userscript/src/main.ts @@ -11,13 +11,16 @@ const twitterGray = 'rgb(231,233,234)' const linkMap: Record = { 'mask-icon': 'https://abs.twimg.com/responsive-web/client-web/icon-svg.168b89da.svg', - 'shortcut icon': '//abs.twimg.com/favicons/twitter.2.ico', + // 'shortcut icon': '//abs.twimg.com/favicons/twitter.2.ico', 'apple-touch-icon': 'https://abs.twimg.com/responsive-web/client-web/icon-ios.b1fc727a.png', } const metaMap: Record = { 'apple-mobile-web-app-title': 'Twitter', } +const twitterFavicon = '//abs.twimg.com/favicons/twitter.2.ico' +const twitterFaviconWithDot = '//abs.twimg.com/favicons/twitter-pip.2.ico' + function main() { waitForElement('body').then(() => { doSyncColorScheme() @@ -109,6 +112,15 @@ function monitorHead() { meta.setAttribute('content', targetValue) } }) + + const shortcut = document.querySelector('link[rel="shortcut icon"]') + if (shortcut) { + const hasNotification = document.querySelector('a[data-testid="AppTabBar_Notifications_Link"] svg ~ div[aria-live="polite"]') + const targetValue = hasNotification ? twitterFaviconWithDot : twitterFavicon + if (shortcut.getAttribute('href') !== targetValue) { + shortcut.setAttribute('href', targetValue) + } + } } sync() window.addEventListener('visibilitychange', sync)