From 6461a43c2d1144b6d8aeea01b672a0b70f295cdf Mon Sep 17 00:00:00 2001 From: 2ndtl <2ndtlmining@gmail.com> Date: Mon, 23 Feb 2026 07:12:02 +1100 Subject: [PATCH] feat: expand app category keyword coverage from live network audit Iteratively refined appCategories.js by analysing live Flux network image data (stats.runonflux.io) and reclassifying images landing in 'other'. Adds ~60 new keywords across all categories: - Gaming: arkserver, enshrouded, teeworlds, wotlk, pacman, tetris, snake-server, supermario - Communication: element-web, simplexchat, standardnotes - Web: owncloud, onlyoffice, nitter, etherpad, cors-anywhere, yacy, drawio, flame, collabora, writefreely, lingva, flux-calculator, flux-api, libreddit, redlib, rimgo, quetre, grocy, wbo - Blockchain: explorer, wanchain, timpi, osmosis, polkadot, fluxcloud, ipfs, nostr, beldex, bitgert, fusenet, themok, fluxos, fusionbalances, ironfish, sushiswap, liquity, gmx, aave, pangolin, factornode, zelcash, titan - Database: rabbitmq - DevOps: orbit, budibase, webtop, vaultwarden, rustdesk, n8n, keycloak, code-server, kanboard, wekan, meshcentral, jira - Media: owncast, viewtube, yt-dl - VPN: socks5, softether, hiddenonion, vless, trojan, outline, tor-socks, x-ui, 3x-ui, http-proxy, eifa-proxy Co-Authored-By: Claude Sonnet 4.6 --- client/src/main/Gamification/appCategories.js | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/client/src/main/Gamification/appCategories.js b/client/src/main/Gamification/appCategories.js index 89a06ca..06b626b 100644 --- a/client/src/main/Gamification/appCategories.js +++ b/client/src/main/Gamification/appCategories.js @@ -14,9 +14,10 @@ const CATEGORIES = { name: 'Gaming', keywords: [ // Game servers — intentionally specific to avoid false positives with Rust-language apps - 'minecraft', 'valheim', 'terraria', 'ark-server', 'ark-survival', + 'minecraft', 'valheim', 'terraria', 'ark-server', 'ark-survival', 'arkserver', 'satisfactory', 'quake', 'minetest', 'csgo', 'palworld', - 'vintage-story', 'factorio', + 'vintage-story', 'factorio', 'enshrouded', 'teeworlds', 'wotlk', + 'pacman', 'tetris', 'snake-server', 'supermario', ], }, communication: { @@ -24,6 +25,7 @@ const CATEGORIES = { keywords: [ 'conduit', 'teamspeak', 'matrix', 'synapse', 'mumble', 'coturn', 'jitsi', 'rocket.chat', 'mattermost', 'streamr', + 'element-web', 'simplexchat', 'standardnotes', ], }, web: { @@ -32,6 +34,11 @@ const CATEGORIES = { 'wordpress', 'wp-nginx', 'ghost', 'joomla', 'drupal', 'nextcloud', 'wiki', 'nginx', 'apache', 'strapi', 'chaincade', 'webserver', 'whoogle', 'searxng', + 'owncloud', 'onlyoffice', 'nitter', 'etherpad', + 'cors-anywhere', 'yacy', 'drawio', 'flame', + 'collabora', 'writefreely', 'lingva', + 'flux-calculator', 'flux-api', 'libreddit', 'redlib', 'rimgo', 'quetre', 'grocy', + 'wbo', ], }, blockchain: { @@ -41,6 +48,11 @@ const CATEGORIES = { 'monero', 'litecoin', 'dogecoin', 'solana', 'avalanche', 'alephium', 'blockbook', 'flux-dns', 'flux-foundation', 'firoorg', 'firod', 'zcash', 'ravencoin', 'dash-node', + 'explorer', 'wanchain', 'timpi', + 'osmosis', 'polkadot', 'fluxcloud', 'ipfs', + 'nostr', 'beldex', 'bitgert', 'fusenet', 'themok', + 'fluxos', 'fusionbalances', 'ironfish', 'sushiswap', 'liquity', 'gmx', + 'aave', 'pangolin', 'factornode', 'zelcash', 'titan', ], }, database: { @@ -48,13 +60,17 @@ const CATEGORIES = { keywords: [ 'mysql', 'postgres', 'mongo', 'redis', 'mariadb', 'sqlite', 'influxdb', 'cassandra', 'couchdb', 'shared-db', + 'rabbitmq', ], }, devops: { name: 'DevOps / CI', keywords: [ 'github-runner', 'gitea', 'drone', 'jenkins', 'act-runner', - 'gitlab', 'woodpecker', 'concourse', 'watchtower', + 'gitlab', 'woodpecker', 'concourse', 'watchtower', 'orbit', + 'budibase', 'webtop', 'vaultwarden', + 'rustdesk', 'n8n', 'keycloak', 'code-server', 'kanboard', + 'wekan', 'meshcentral', 'jira', ], }, media: { @@ -62,7 +78,7 @@ const CATEGORIES = { // 'plex' alone matches 'simplexchat' — use '/plex' and 'plexinc' instead keywords: [ 'jellyfin', '/plex', 'plexinc', 'emby', 'navidrome', 'airsonic', - 'kodi', 'subsonic', 'funkwhale', + 'kodi', 'subsonic', 'funkwhale', 'owncast', 'viewtube', 'yt-dl', ], }, ai: { @@ -78,6 +94,8 @@ const CATEGORIES = { keywords: [ 'presearch', 'wireguard', 'wg-easy', 'openvpn', 'tailscale', 'shadowsocks', 'v2ray', 'xray', 'sing-box', 'i2p', + 'socks5', 'softether', 'hiddenonion', 'vless', 'trojan', 'outline', + 'tor-socks', 'x-ui', '3x-ui', 'http-proxy', 'eifa-proxy', ], }, monitoring: {