From 9b8f01716774a960073e944823ab727cc867a8f6 Mon Sep 17 00:00:00 2001 From: MCMXC <16797721+mcmxcdev@users.noreply.github.com> Date: Wed, 26 Jul 2023 06:29:03 -0600 Subject: chore: improve lint setup (#397) - update eslint config to closely mirror the ones from ferdium-app - add .eslintignore - opt in to eslint `reportUnusedDisableDirectives` config option - remove `trailingComma: all` from `prettier` config which is default in `prettier` v3 - autofix or disable a lot of lint issues throughout codebase - add `volta` configuration to `package.json` to autoload correct `node` and `pnpm` versions - upgrade all `eslint` and `prettier` related dependencies to latest - update lint:fix npm script - reformat touched files with prettier - bumped up minor version for all recipes that have changes - introduced injection of 'service.css' where it was missing in many recipes --------- Co-authored-by: Vijay A --- recipes/discord/index.js | 18 +++++++------ recipes/discord/package.json | 2 +- recipes/discord/webview.js | 61 +++++++++++++++++++++++++------------------- 3 files changed, 46 insertions(+), 35 deletions(-) (limited to 'recipes/discord') diff --git a/recipes/discord/index.js b/recipes/discord/index.js index cd65352..e47dd76 100644 --- a/recipes/discord/index.js +++ b/recipes/discord/index.js @@ -1,8 +1,10 @@ -module.exports = Ferdium => class Discord extends Ferdium { - overrideUserAgent() { - return window.navigator.userAgent.replace('(KHTML, like Gecko)', '(KHTML, like Gecko) discord/0.0.250') - .replace('Electron', 'Discord') - .replace('Ferdium', 'Discord') - .replace('Apple Mac OS X', 'Intel Mac OS X'); - } -}; +module.exports = Ferdium => + class Discord extends Ferdium { + overrideUserAgent() { + return window.navigator.userAgent + .replace('(KHTML, like Gecko)', '(KHTML, like Gecko) discord/0.0.250') + .replace('Electron', 'Discord') + .replace('Ferdium', 'Discord') + .replace('Apple Mac OS X', 'Intel Mac OS X'); + } + }; diff --git a/recipes/discord/package.json b/recipes/discord/package.json index 59cf22a..aed5e15 100644 --- a/recipes/discord/package.json +++ b/recipes/discord/package.json @@ -1,7 +1,7 @@ { "id": "discord", "name": "Discord", - "version": "1.7.10", + "version": "1.8.0", "license": "MIT", "config": { "serviceURL": "https://discord.com/login", diff --git a/recipes/discord/webview.js b/recipes/discord/webview.js index c0c764d..ef56336 100644 --- a/recipes/discord/webview.js +++ b/recipes/discord/webview.js @@ -1,9 +1,9 @@ -const _path = _interopRequireDefault(require('path')); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +const _path = _interopRequireDefault(require('path')); + module.exports = (Ferdium, settings) => { const getMessages = () => { let directCount = 0; @@ -27,30 +27,39 @@ module.exports = (Ferdium, settings) => { Ferdium.injectCSS(_path.default.join(__dirname, 'service.css')); // TODO: See how this can be moved into the main ferdium app and sent as an ipc message for opening with a new window or same Ferdium recipe's webview based on user's preferences - document.addEventListener('click', event => { - const link = event.target.closest('a[href^="http"]'); - const button = event.target.closest('button[title^="http"]'); - - if (link || button) { - const url = link ? link.getAttribute('href') : button.getAttribute('title'); - const skipDomains = [/^https:\/\/discordapp\.com\/channels\//i, /^https:\/\/discord\.com\/channels\//i]; - - let stayInsideDiscord; - skipDomains.every(skipDomain => { - stayInsideDiscord = skipDomain.test(url); - return !stayInsideDiscord; - }); - - if (!Ferdium.isImage(link) && !stayInsideDiscord) { - event.preventDefault(); - event.stopPropagation(); - - if (settings.trapLinkClicks === true) { - window.location.href = url; - } else { - Ferdium.openNewWindow(url); + document.addEventListener( + 'click', + event => { + const link = event.target.closest('a[href^="http"]'); + const button = event.target.closest('button[title^="http"]'); + + if (link || button) { + const url = link + ? link.getAttribute('href') + : button.getAttribute('title'); + const skipDomains = [ + /^https:\/\/discordapp\.com\/channels\//i, + /^https:\/\/discord\.com\/channels\//i, + ]; + + let stayInsideDiscord; + skipDomains.every(skipDomain => { + stayInsideDiscord = skipDomain.test(url); + return !stayInsideDiscord; + }); + + if (!Ferdium.isImage(link) && !stayInsideDiscord) { + event.preventDefault(); + event.stopPropagation(); + + if (settings.trapLinkClicks === true) { + window.location.href = url; + } else { + Ferdium.openNewWindow(url); + } } } - } - }, true); + }, + true, + ); }; -- cgit v1.2.3-54-g00ecf