Garmin Forum Helper

by Ivo Truxa @ truXoft © 2024

The Garmin Forum Helper extension (further GFH) intends to make the use of the Garmin Forum easier and more comfortable for frequent users and moderators. The main features are as follows:

The GFH comes from an independent developer not affiliated with Garmin in any way, except for using their products. It is not an extension released by Garmin! It was developed with the intent of helping fellow users and moderators of the forum. FGH respects the privacy of its users, does not collect any usage data, and remains a free product, although you are welcome to express your appreciation by sending a donation through Paypal or BuyMeACoffee.


Installation

After installing the GFH extension from the Chrome Web Store, grant it permission to access the site https://forums.garmin.com/, and pin it to the toolbar for easy and quick access to the settings, and for the administration of the extension. Click on the blue G icon of the extension in the toolbar and review the available configuration options.

GFH uses mouse-over tooltips not only over items on its popup window but also over many elements or markup that it injects into the forum pages. You will often get a hint or more detailed data if you hover with the mouse cursor over the element in question.

Feature Overview


Shortcuts for Reply Templates & Bookmarks

You can quickly access sub-forums or other bookmarked links by hitting the key combination Ctrl+Shift+K and then the sequence of three letters as defined in the table on the tab Hotkeys » Bookmarks of the GFH popup window. Similarly, you can insert replies from templates defined on the tab Hotkeys » Reply Templates. And, of course, you can add your own templates and bookmarks.

When you hit the trigger hotkey combination twice instead just once, or when you click the blue hotkey indicator, a table with the list of available shortcuts pops up. If you type a key, the list is automatically filtered on-the-fly, so there will be accordingly less available options with each character. And instead of typing the entire 3 keys sequence, you can simply just click the desired shortcut at any moment.

Please note: On some systems, or with some browsers, the key combination 'Ctrl+Shift+K' may be already used for another purpose. For example Edge uses the combination for duplicating the current tab. In such case, you have to redefine the key combination in the settings, and find one that is still free.

User Badges

The tab "Users" of the GFH popup window lists all users with an already assigned user type (badge). You can change the sorting of the list by clicking the column headers "Nickname" or "Badge". When you click on the header with the symbol 🧑🏻, only users with a custom avatar will be listed.

Clicking on the nickname of a user opens a new page on a separate browser tab with a list of threads in which they participated. After clicking on the badge on the row of a user, you can assign a different user type to the user on the small table with available badges that pops up. If you want to remove the badge entirely, you have to delete the user completely by clicking the bin icon on the right end of the respective row.

You can also assign a different nickname to any user on the Users list. Click the badge of the user in the Users table of the popup window, edit the name, and then save the change by clciking the green button on the right side of the input box.

The third column lists either users' avatars (when the user has a custom avatar assigned) or the number of threads where the user participated. However, in order to avoid the high data load that would be necessary for continuously verifying the counts, the numbers are verified only on demand when you click on that column for a given user. The query takes 1-3 seconds to return the result, and the number then appears in darkgreen color. Numbers in black are counts saved from previous queries. When the users cannot be found (for example, removed by administrators for spam), a dash appears instead of a number. When the query fails for the third time, the respective user is removed from the table. It helps prevent the table from growing too quickly because the number of detected (and later removed) spammers may be important.

You can assign a badge to a user by clicking the name or avatar in the head of the post of the concerned user. Changing the badge type is possible in the same way. The complete removal of a badge from the user is possible by removing the user from the user list on the popup window of the extension (click the "G" icon of the extension in the browser's navbar or on the list of extensions.

Some badges have a special effect. So for example, posts of users with certain types of badges will be highlighted with a different background color (i.e., light blue for "Staff", similar color for "Moderator", or light red for the type "Spammer" or "Spam Suspect"). Posts of users with the badge "Spammer" or "Ignore" will also be hidden by default and visible only after clicking the "Unhide" button.

Keyword Alerts

If you wish to be alerted when someone posts a message containing specific terms, you can enter several keywords, phrases, expressions, or regular expressions (regex) into the Keyword list. When the RSS reader detects a new post matching some of the expressions on the list, a small green counter on the side of the Garmin Forum page will appear, or (if already visible), the number of notifications on it will increment.

If you click on the green counter, a list of pending notifications appears, and you can either directly discard them by clicking the bin icon or you can click the link and open the thread with the concerned post. Opening the page will automatically acknowledge the notification and remove it from the list.

The same list is accessible anytime on the tab "Notifications" of the GFH popup window. The sorting order on the popup window can be changed by clicking the triangle symbol on the respective table column header. The sorting order on the green panel on the side of the page is fixed - oldest notifications at the top.

Spam Detection

A lot of the functionality of the GFH extension is dedicated to the detection of spam and its suppression. Spam is not only annoying, but it can also be dangerous. Spammers often post links to phishing pages, dubious websites containing malware, or just collect views and user data. And they increasingly use AI for posting messages that look like legitimate posts but may contain false information. In any case, replying to these posts is a waste of time, so it is better to know in advance that a post comes from a spammer.

Spammers use a rich palette of techniques for hiding their spam links in the messages so that they are invisible to an ordinary user. GFH uses complicated algorithms to detect and reval the maximum of them.

When a post from a spammer or a post containing a non-whitelisted external link is detected, a red notification counter appears on the side of the Garmin forum page. After clicking on it, a table with details appears. The column "Reason" shows whether the post was tagged as spam suspect because of an external link (may be a legitimate post), because of a link to a blacklisted domain (most likely spam), or because of using a blacklisted spam keyword (probably spam too). You can either directly confirm the post as Spam (and blacklist the user and the link in it) or approve it as non-spam by clicking the respective icons directly on the notification list.

You can also access the list on the "Spam" tab of the GFH popup window, where there are three subtabs with new spam suspects (same as on the notification list), but also lists with confirmed Spam posts, as well as the tab with a list of approved non-spam. Old non-spam notifications are automatically purged from the list after two days. Old confirmed spam notifications are cleared only if the post of the spammer has already been removed by the moderators. At spam posts that stay longer on this list, you may revisit the post, verify whether it is really spam, and if so, you can alert moderators by using the function "Report as abusive" in the "More" menu under the post.

The sorting order on the popup window can be changed by clicking the triangle symbol on the respective table column header. The sorting order on the red notification panel on the side of the page is fixed - oldest notifications at the top.

Moving the mouse cursor over the column "Reason" reveals more details in the mouse-over tooltip, like, for example, the specific domain name of the spam link (if a link is involved), specific spam keyword or expression, or the username of the spammer posting the message.

Options

When changing the settings, please do not forget to save the changes by clicking the blue button Save in the upper right corner, before closing the popup window!

Annoyances

Fix text overlapping the right sidebar
Enabling or disabling the correction of text in messages that overlap the right sightbar with "Related Threads"
Fix non-wrapped, pre-formatted posts
Enabling or disabling the auto-wrapping of non-wrapped posts copied from translators, otherwise requiring annoying endless horizontal scrolling
Remove excessive formatting
You can allow the removal of excessive formatting from posts with the abuse of huge or bold fonts, overuse of colors,...
Reveal hidden text
Spammers often hide keywords, text, and links with various techniques, including white-on-white text, and various CSS directives. If you keep this option enabled, the text will be made visible and highlighted with a light-red transparent background color, helping you identify the spammers and avoid replying to them. Use the standard forum's feature "Report as Abusive" in the "More" menu under the concerned post to report the spam to the moderators instead.
When enabled, all external links not appearing on the "Domain Whitelist", will be highlighted with a red background, and clicking on them will present you with a dialogue allowing you to whitelist the concerned domain, or open the link in a new tab. External links that were also hidden by the author will be highlighted with a darker background and completely disabled. The author will be automatically blacklisted and assigned the badge "Spammer". If the option "Hide posts of confirmed spammers" remains enabled, the post, as well as all other posts of the same user, will be hidden (collapsed to a button for optional unhiding).
Open external links in a new tab
When enabled, all external links, including those to Garmin websites other than to the forum itself, will open in a new browser tab. Such external links, opening in a separate tab, are then marked with a small arrow symbol appended to their end.
Add a confirm dialog to Abuse reports
Posts containing spam or other content violating the forum Terms & Conditions can be reported as abusive, after clicking the option "Report as abusive" in the "More" menu under the respective post. The problem is that the button can be easily clicked or tapped by mistake, and since there is no confirmation dialog, it often leads to unwanted abuse reports. GFH comes to help here too, and adds the missing confirmation dialog. If the option is enabled, the button "Report as abusive" becomes red instead of blue, and when you click it, you are presented with the choice to confirm or cancel the report.
Auto-pause animated GIFs
Some users have animated GIF avatars or post animated memes. If you find them disturing, when you try to read the posts, you can have them auto-paused after a defined number of seconds (default: 2s). The GIF"s animation will still run if you move the mouse cursor over the static image and cease again when you move out.

Enhancements

User badges
Enabling or disabling the appending of labels ("badges"), custom nicknames, and custom avatars to user names at their posts helps you quickly identify who is who, which is sometimes difficult, especially for users with their default numeric names. The GFH already has a predefined set of several dozens of users with assigned badges, especially the staff, some moderators, regular users, experts with knowledgeable posts, Connect IQ developers, and also many, many spammers.
Shortcuts for reply templates
You can activate or deactivate the listening for keyboard shortcuts of predefined Reply Templates and page Bookmarks
Notification Keywords
If enabled, and if you add keywords to the list, a small green notification panel will appear on the side of the page when a new post containing the keyword appears in the RSS feed.

You can edit the list of keywords after clicking the "edit" button on the right side of this option. You can resize the text box for easier editing. You can enter one word, an expression, a whole sentence, or even a "regular expression" (regex).

The upper and lowercase of the expressions are ignored during matching. Aside from this case, plain text expressions will be matched exactly, including white space. For example, the expression "i got this,..." will match a post with "I Got This,..." in it, but it will fail to find "I Got This, ..." (one extra blank inserted)!

For more tolerant matching, you can use "regex". Javascript syntax for regex is being used, and the expression must be enclosed with slashes. There must be no characters before or after the wrapping slashes. There are plenty of resources about regex available on the web, and ChatGPT can help you create one too.

Please note that the total size of the keyword list is limited by Chrome's storage quota to 8 kB, which should still allow for several hundred keywords.

Spam

Identify spam suspects
With this option, you can completely disable all other options for detecting, tagging, and hiding posts suspected of spamming and abuse, for spam post alerts (notifications), as well as for detecting external links, revealing hidden links, and subsequent blocking.
Check whether post was copied from Reddit
When enabled, the RSS feed parser searches for a matching post at Reddit.com, because spammer bots often use them for posting their spam on the forum.
Hide posts from confirmed spammers
When enabled, posts of known and confirmed spammers, both manually and automatically assigned, will be hidden and replaced with a placeholder in the form of a gray button, allowing you to view the post if you click on it.
Search spam in old forum posts
When enabled, the extension will periodically crawl old threads and search for spam posts. It will periodically parse up to 60 threads. The length of the period in minutes can be adjusted. This option is disabled by default, because it can generate an important number of notifications for detected spam. Many of the detected posts may be legitimate messages from users copying their Reddit posts to Garmin Forum (technique also used by spam bots), or using links to external links that were not whitelisted yet. Keeping this option enabled will also slightly increase the background activity of the browser, and will increase the volume of transfered data, since it continually loads old threads in order to parse them. You can control the frequency by changing the period for starting the crawler. Each cycle, the crawler reads up to 60 threads, and the cycle takes up to several tens of seconds. It is not recommended to activate the option if you use a metered network connection (i.e. billed mobile data). The option is intended to help moderators with the detection, removal, or locking of old spam. New spam is detected independently with the help of the RSS parser.
URL of the RSS feed with new posts
The purpose of the RSS reader is explained in the section "RSS Reader". By default, GFH uses the main RSS feed with aggregated posts from all Garmin's forums. However, if you prefer parsing only a single category of the forums, you can replace the main RSS feed with a more restricted one. Some browsers or browser plugins can help you find the right URL for the RSS feed, and technically skilled users can find it in the HTML header of the page of the concerned subforum or forum category.

You can also adjust the period of RSS parsing. By default, the feed is checked every 5 minutes, so when a new post appears, it may take up to 5 minutes before you get a notification if either spam or some of your keywords are detected in it. Also, the RSS feed contains only the last 20 posts, so if there are more than 20 new posts within 5 minutes, the RSS reader will miss some of them. The shortest possible period is 1 minute. If you do not worry about the volume of data that the reader loads from Garmin's server, it is recommended to keep the period short. The data load is estimated to be less than 1 MB/h, when using the period of 1 minute, which is relatively negligible unless you use metered and expensive mobile data. It is also recommended to keep the browser open as much as you can. When you close the browser, the RSS reader can no longer parse any new posts.

Domain Whitelist
GFH verifies and reports the posting of all external links as "spam suspects". More specifically, it checks all links that point to any non-Garmin domain name, except for domain names on this whitelist. Privileged users (those with the badges Staff, Moderator, Regular, CIQ Developer, and Expert) are excluded from the checking too.

Each line may contain either a domain name in plain-text, or (for advanced users) a 'Regular Expression' (regex) which then must be enclosed in a pair of forward slashes, with no characters before the opening /, or after the closing /. All searches are case insensitive.

Please note that the total size of the list is limited by Chrome's storage quota to 8 kB, which should still allow for several hundred whitelisted hosts.

Domain Blacklist
Unlike with the whitelist, detecting a link to a host listed on the blacklist will trigger a spam notification immediately, and the author of the post will be assigned the badge "Spammer" (unless he already has a privileged label) and his post will be hidden (unless the spam-hiding option is disabled).

Otherwise, all that was written about the whitelist applies here too.

Spam Keywords
Practically all that was written about "Keyword Alerts", applies to "Spam Keyword alerts", too. The only difference is that spam keyword alerts trigger spam notifications (red indicator on the side of the page), and you can either confirm them as spam and blacklist the author, or approve the post as a legitimate no-spam message. At plain notification alerts (green indicator on the side of the page), you can only acknowledge (and discard) the notification, with no effect on the author of the message.

RSS Reader

The built-in RSS reader parses the specified RSS feed with new forum messages, detects messages including non-whitelisted external links (potential spam), links to blacklisted dcmains (certain spam), copies of Reddit posts (often used by spammer bots), and checks for banned keywords or expressions from the Spam Keywords list and for keywords from your Alerts Keywords list.

When spam is detected, the post is added to the list of new spam messages on the Spam tab of the GFH popup window. A small red button with the number of new spam posts will appear on the side of the forum page. You can reset the spam counter on the Spam tab of the GFH popup window by confirming the messages as spam or by approving them as legitimate no-spam posts.

You can also activate alerts for specific keywords or expressions. If a new post containing such an expression appears on the RSS feed, you will be alerted by a green button on the side of the forum page. Posts will be removed from the alerts list as soon as you open the respective thread on the page containing the post.

You can access the GFH popup window by clicking the icon of the extension either in the navigation bar of your browser (if you have pinned it there previously, which is highly recommended), or after clicking the Extensions icon on the right of the addressbar of the browser, or through the browser's menu » Extensions » Manage Extensions.

Forum Crawler

While the RSS Reader scans new forum posts and detects potential spam in them, the Forum Crawler visits all old forums and searches for spam suspects there. The RSS reader can miss some of the new messages when the GFH extension is not active, when the browser (or the computer) is closed, or when there are a high number of new posts at a time, and Garmin's RSS news feed reports only the last few of them. The crawler, if enabled, will eventually scan the messages missed by the RSS reader too.

The Forum Crawler is disabled by default for several reasons. Because it scans hundreds of thousands of threads, it needs to work continuously, which increases the data volume consumption, which especially users on a metered Internet connection (i.e., mobile data in roaming mode) would not appreciate. Then, not everyone is interested in seeing a lot of spam reports, which require some attention and processing - either confirming them as spam, reporting the messages as "abusive", or approving the spam notifications as non-spam. And the crawler will necessarily report a lot of copies of posts from Reddit, as well as a lot of posts using external links. Many of them will be legitimate posts, not spam. Also, the crawler sends a large number of queries both to the Garmin Forum and to Reddit, which increases the load on their servers. This feature was designed especially for forum moderators, and for passionate expert users who want to help fight spam.

Reddit Lookups

As mentioned at the Spam - Reddit option above, the plugin verifies whether Opening Posts (OP) of threads were not copied from Reddit, because it is a technique used by spam bots. It works in the following way:

  1. New posts appearing on the RSS newsfeed are queried at Reddit. The first sentences in the post, within the first 50 - 220 characters are used for the query. If the message body is too short, the title is included in the lookup, but otherwise not. If the total is shorter than 50 chars, no lookup is done.
  2. When a thread is visited, GFH checks whether the OP was already looked up previously, and if it was not, an HTTP query is sent to reddit.com from the background worker script. It may take a while before the result is delivered, and even if the result arrives, the frontpage is not updated with the positive or negative result. Currently, the result appears only when the page is reloaded manually after a few seconds. Positive result = colored background and the "Reddit Copy" label at the top; negative result = no Reddit logo at all on the OP. In the case no reply from Reddit was received (yet), there will be the small Reddit button with question mark at the top of the OP, and when you click it a prefilled Reddit search page opens in a new tab.

Privacy Policy

This extension does not collect any user data and does not connect to any remote servers. The code is secure and reviewable by any interested party.

Change Log

All significant changes are listed in the changelog.txt file acessible also directly from the header of the GFH Popup window. The file todo.txt contains a list of planned features, as well as some of the known, not resoved yet bugs.

Credits

GFH does not use any external libraries, it was entirely written in pure JavaScript (no jQuery) by its author, however, some help, advice, and inspiration were needed: