A browser extension that lets you summarize any webpage and ask questions using AI.
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(config): add unsupported extraction rules for various sites

Introduce a comprehensive set of rules in the configuration to handle unsupported extraction scenarios for streaming services, social media, banking sites, and document platforms. Each rule specifies the type of site and provides user-friendly messages to inform users about the limitations of the extension on these platforms.

+188
+188
scripts/config.js
··· 119 119 SHORTCUT: "Ctrl+Shift+U", 120 120 SHORTCUT_MAC: "Cmd+Shift+U", 121 121 }, 122 + 123 + /** 124 + * Popup: pages where summarization is blocked (streaming, banking, in-app UIs). 125 + * First matching rule wins. See `getUnsupportedExtractionInfo` in `popup/popup.js`. 126 + * 127 + * - `url`: match hostname/path (e.g. YouTube watch only). 128 + * - `host`: `hostSuffix` matches exact host or `*.suffix` (e.g. `bsky.app`, `mail.proton.me`). 129 + * - `labeled`: `title` is `${label} isn't supported` per site row `[hostSuffix, label]`. 130 + */ 131 + UNSUPPORTED_EXTRACTION: { 132 + RULES: [ 133 + { 134 + kind: "url", 135 + title: "YouTube videos aren't supported", 136 + message: 137 + "This extension can't extract text from YouTube videos at the moment.", 138 + anyOf: [ 139 + { hostEquals: "youtu.be" }, 140 + { 141 + hostIn: ["youtube.com", "www.youtube.com"], 142 + pathnameEquals: "/watch", 143 + }, 144 + ], 145 + }, 146 + { 147 + kind: "labeled", 148 + message: 149 + "Hopefully 🤞 integration with AT Protocol will allow you to summarize Bluesky posts in the future.", 150 + sites: [ 151 + ["bsky.app", "Bluesky"], 152 + ["witchsky.app", "Bluesky"], 153 + ["deer.social", "Bluesky"], 154 + ["anisota.net", "Bluesky"], 155 + ], 156 + }, 157 + { 158 + kind: "labeled", 159 + message: 160 + "Social media feeds and in-app posts aren't supported at this time.", 161 + sites: [ 162 + ["x.com", "X"], 163 + ["twitter.com", "X"], 164 + ["instagram.com", "Instagram"], 165 + ["facebook.com", "Facebook"], 166 + ["threads.net", "Threads"], 167 + ["tiktok.com", "TikTok"], 168 + ["snapchat.com", "Snapchat"], 169 + ["pinterest.com", "Pinterest"], 170 + ["linkedin.com", "LinkedIn"], 171 + ], 172 + }, 173 + { 174 + kind: "host", 175 + hostSuffix: "nebula.tv", 176 + title: "Nebula isn't supported", 177 + message: 178 + "Video pages don't provide readable article text in the way this extension expects.", 179 + }, 180 + { 181 + kind: "host", 182 + hostSuffix: "vimeo.com", 183 + title: "Vimeo isn't supported", 184 + message: 185 + "Video pages don't provide readable article text in the way this extension expects.", 186 + }, 187 + { 188 + kind: "host", 189 + hostSuffix: "disneyplus.com", 190 + title: "Disney+ isn't supported", 191 + message: 192 + "Streaming apps don't expose summarizable text like a normal webpage.", 193 + }, 194 + { 195 + kind: "host", 196 + hostSuffix: "netflix.com", 197 + title: "Netflix isn't supported", 198 + message: 199 + "Streaming apps don't expose summarizable text like a normal webpage.", 200 + }, 201 + { 202 + kind: "labeled", 203 + message: 204 + "Streaming and media players don't expose readable article text to the browser.", 205 + sites: [ 206 + ["hulu.com", "Hulu"], 207 + ["max.com", "Max"], 208 + ["hbomax.com", "HBO Max"], 209 + ["primevideo.com", "Prime Video"], 210 + ["peacocktv.com", "Peacock"], 211 + ["paramountplus.com", "Paramount+"], 212 + ["crunchyroll.com", "Crunchyroll"], 213 + ["discoveryplus.com", "Discovery+"], 214 + ["tubi.tv", "Tubi"], 215 + ["pluto.tv", "Pluto TV"], 216 + ["mubi.com", "Mubi"], 217 + ["showtime.com", "Showtime"], 218 + ["starz.com", "Starz"], 219 + ["tv.apple.com", "Apple TV"], 220 + ["twitch.tv", "Twitch"], 221 + ["spotify.com", "Spotify"], 222 + ], 223 + }, 224 + { 225 + kind: "host", 226 + hostSuffix: "proton.me", 227 + title: "Proton Mail isn't supported", 228 + message: 229 + "Proton apps are not supported at this time. Sorry!", 230 + }, 231 + { 232 + kind: "labeled", 233 + message: 234 + "Music and audio apps don't expose readable article text to the browser.", 235 + sites: [ 236 + ["music.apple.com", "Apple Music"], 237 + ["music.youtube.com", "YouTube Music"], 238 + ["soundcloud.com", "SoundCloud"], 239 + ["audible.com", "Audible"], 240 + ["audible.co.uk", "Audible"], 241 + ["audible.de", "Audible"], 242 + ["pocketcasts.com", "Pocket Casts"], 243 + ], 244 + }, 245 + { 246 + kind: "labeled", 247 + message: 248 + "This kind of video site doesn't provide summarizable text like a normal article.", 249 + sites: [ 250 + ["dailymotion.com", "Dailymotion"], 251 + ["rumble.com", "Rumble"], 252 + ["odysee.com", "Odysee"], 253 + ], 254 + }, 255 + { 256 + kind: "labeled", 257 + message: 258 + "We hope you don't want to put your banking information into an AI, anyways.", 259 + sites: [ 260 + ["chase.com", "Chase"], 261 + ["bankofamerica.com", "Bank of America"], 262 + ["wellsfargo.com", "Wells Fargo"], 263 + ["citi.com", "Citi"], 264 + ["usbank.com", "U.S. Bank"], 265 + ["capitalone.com", "Capital One"], 266 + ["pnc.com", "PNC"], 267 + ["td.com", "TD Bank"], 268 + ["schwab.com", "Schwab"], 269 + ["fidelity.com", "Fidelity"], 270 + ["barclays.co.uk", "Barclays"], 271 + ["hsbc.co.uk", "HSBC UK"], 272 + ["rbc.com", "RBC"], 273 + ["bmo.com", "BMO"], 274 + ], 275 + }, 276 + { 277 + kind: "labeled", 278 + message: 279 + "Documents and canvases in this app aren't available to summarize like a normal webpage.", 280 + sites: [ 281 + ["docs.google.com", "Google Docs"], 282 + ["sheets.google.com", "Google Sheets"], 283 + ["slides.google.com", "Google Slides"], 284 + ["notion.so", "Notion"], 285 + ["figma.com", "Figma"], 286 + ["miro.com", "Miro"], 287 + ["airtable.com", "Airtable"], 288 + ["coda.io", "Coda"], 289 + ["paper.dropbox.com", "Dropbox Paper"], 290 + ["officeapps.live.com", "Office for the web"], 291 + ], 292 + }, 293 + { 294 + kind: "labeled", 295 + message: 296 + "Video meetings don't provide readable page text for this extension to use. Consider getting a transcript of the meeting and putting into a tool like ChatGPT.", 297 + sites: [ 298 + ["zoom.us", "Zoom"], 299 + ["zoom.com", "Zoom"], 300 + ["meet.google.com", "Google Meet"], 301 + ["teams.microsoft.com", "Microsoft Teams"], 302 + ["teams.live.com", "Microsoft Teams"], 303 + ["webex.com", "Webex"], 304 + ["gotomeeting.com", "GoTo Meeting"], 305 + ["global.gotomeeting.com", "GoTo Meeting"], 306 + ], 307 + }, 308 + ], 309 + }, 122 310 }; 123 311 124 312 // Make available for both Chrome extension contexts and tests