JTech Tools : la seule extension derrière JTech Forums (chuchotements, REQ-PM, Dumbcourse, passerelle Telegram, notre thème)

:information_source: Résumé Tout sur JTech Forums repose sur Discourse, via un seul plugin : outils de modération, messages chiffrés à des personnes choisies, REQ-PM, Dumbcourse, un pont Telegram, des listes de vente, une recherche intelligente, des pop-ups et tout notre thème. Chaque élément possède son propre interrupteur.
:hammer_and_wrench: Dépôt GitHub - TripleU613/JtechTools: The plugin behind JTech Forums: moderator tools and whispers, REQ-PM, Dumbcourse for flip phones, a Telegram bridge, sale-thread listings, smart search, pop-ups and the JTech theme. Every module has its own switch. · GitHub
:question: Guide d’installation Comment installer des plugins dans Discourse

Bonjour à tous,

Certaines de ces fonctionnalités ont déjà été évoquées par morceaux sur Meta. Dumbcourse a eu son propre sujet en février, @ars18 a publié Mini-mod en avril, et en août, j’ai publié une longue réponse dans le fil de discussion Dumbcourse listant tout le reste que nous avions intégré dans un seul plugin. Cela méritait mieux que d’être enterré en message #38, voici donc la version appropriée. Avec beaucoup de photos cette fois.

JTech est un forum technologique, principalement consacré aux téléphones, téléphones à clapet, filtres et ROM, et beaucoup de nos membres utilisent volontairement des téléphones à touches. Chaque outil ici existe parce que notre propre forum en avait besoin.

« Pourquoi est-ce un seul plugin ? »

merefield a posé cette question dans le fil de discussion Dumbcourse et c’est une question légitime, voici donc la réponse d’emblée.

  • Chaque module a son propre interrupteur marche/arrêt. Certains sont activés par défaut (Dumbcourse, REQ-PM, les outils de modération), d’autres attendent votre action (Mini-mod, recherche intelligente, Disteleplus, Another SMTP), et certains de ceux qui sont « activés » ne font rien tant que vous ne les avez pas pointés vers une catégorie ou un sujet. Parcourez les onglets après l’installation et désactivez ce que vous ne voulez pas.
  • jtech_enabled arrête tout d’un coup, y compris les modifications de permissions et les tâches en arrière-plan. @satonotdead, vous avez demandé dans le sujet Mini-mod pourquoi Mini-mod continuait de fonctionner après avoir désactivé le bundle. Vous aviez raison, c’était le cas : le code intégré au cœur et les tâches planifiées ne vérifiaient que leur propre interrupteur. C’est corrigé depuis le 24 septembre. Chaque module vérifie désormais également l’interrupteur principal.
  • Désactiver les fonctionnalités ne fuit jamais d’informations. Désactiver les messages chiffrés ne rend pas un message existant public, par exemple.
  • Chaque module est maintenu séparément à l’intérieur : son propre fichier dans sub_plugins/, son propre onglet de paramètres, sa propre page de documentation. Si vous ne voulez qu’une seule chose, faites-en une fourche et séparez-la, allez-y. L’ancien dépôt autonome Mini-mod est archivé, et c’est ici qu’il est maintenu maintenant.

Ce qu’il y a à l’intérieur

Chaque élément est replié, donc ouvrez ce qui semble intéressant. Chaque image est un écran réel de notre forum, sauf indication contraire. Les informations privées (discussion du personnel, coordonnées, notes de modération) sont floutées.

Dumbcourse : tout le forum sur un téléphone à clapet

Tout le forum sur /dumb, pour les téléphones à clapet, KaiOS et les anciens navigateurs Android qui ne peuvent pas exécuter le site normal. Il est piloté par la croix directionnelle et le pavé numérique comme les applications du téléphone lui-même, et fonctionne toujours avec le tactile et une souris.

  • Lecture : Derniers, Nouveaux, Non lus, Top, Chaud, catégories et balises. ↑↓ lit (un long message fait défiler avant que le focus ne se déplace), ←→ change d’onglet, les sujets non lus s’ouvrent à votre premier message non lu, et Retour vous amène exactement là où vous étiez.
  • Action : OK sur un message ouvre les options de j’aime, réaction, réponse, citation, marque-page, modification, signalement, copie du lien, tous les liens du message, les spoilers et ses images. Il y a un éditeur plein écran avec mentions, émojis, téléversements, aperçu et vérification orthographique optionnelle (LanguageTool).
  • Touches : * menu, # recherche, 0 aide, 3 réponse, 5 j’aime, 2/8 page précédente et suivante. Les téléphones qui nomment leurs touches douces de manière étrange peuvent les apprendre dans les Préférences.
  • Connexion sans taper un mot de passe sur un pavé numérique : approuvez le téléphone depuis un appareil sur lequel vous êtes déjà connecté, ou utilisez un lien ou un code envoyé par e-mail. Les connexions sociales et la 2FA fonctionnent aussi.
  • Les anciens navigateurs le trouvent par eux-mêmes. Un navigateur qui ne peut pas exécuter le forum complet est redirigé vers la page Dumbcourse correspondante, y compris depuis les liens dans les e-mails. Les moteurs de recherche ne sont pas redirigés.
  • C’est du ES5 pur, et la CI vérifie qu’il continue de fonctionner sur Chrome 30, Firefox 30 et Android 4.4.

Puisque le nom a été soulevé la dernière fois : le chemin est un paramètre (dumbcourse_base_path), donc /simple ou /lite est à un changement près.

Nous avons aussi une application Android qui encapsule Dumbcourse pour les téléphones à touches, avec des notifications push. Elle est configurée pour notre forum, mais le code est là si vous voulez en construire une pour le vôtre. Nos membres l’ont beaucoup testée dans le fil de discussion de l’application (plus de 450 réponses) et la dernière grande mise à jour.

Outils de modération : messages chiffrés à des personnes choisies, notes privées, alertes du personnel


Le message chiffré et la note de la rangée du milieu proviennent de notre documentation, avec des utilisateurs fictifs. Le reste est l’interface réelle.

Messages chiffrés à des personnes spécifiques. Les gens demandent cela sur Meta depuis des années (laisser l’auteur du message voir un message chiffré, messages chiffrés pour des groupes autres que le personnel). Répondez dans un sujet à quelques utilisateurs seulement, à un groupe, ou à tout le monde détenant un badge. Seul le personnel, l’auteur et ces personnes peuvent le voir. Il n’apparaît nulle part ailleurs : pas dans la recherche, l’activité, les e-mails, les notifications, les aperçus de liens, le RSS, Dumbcourse ou le pont Telegram. Les réponses à un message chiffré restent privées pour les mêmes personnes automatiquement, et un message chiffré ne fait jamais remonter le sujet pour les autres. Le personnel peut transformer un message existant en message chiffré ou l’inverse, et chaque changement est consigné dans le journal du personnel.

Notes privées. Une note réservée au personnel sur un sujet, avec un fil de réponses et une ligne « vu par ». Les nouvelles notes apparaissent dans la cloche et dans un onglet bouclier dans le menu utilisateur, mais seulement pour le personnel qui peut réellement voir ce sujet.

Alertes du personnel. Soyez informé lorsqu’un autre membre du personnel supprime un message, approuve ou rejette un message en file d’attente, ou ajoute une note à un utilisateur ou à un signalement. Chaque type a son propre interrupteur.

Listes de contrôle et outils de sujet. Une liste de contrôle que les nouveaux membres cochent avant leur premier message (avec un journal de qui a accepté quelle version), des listes de contrôle visant des utilisateurs spécifiques ou attachées à un seul sujet, un message de pied de page sous un sujet, un message épinglé copié en bas, l’approbation des réponses pour un seul sujet, une note « avant de poster » par catégorie, et un sélecteur de badge pour ajouter tout le monde avec un badge à un MP.

La règle pour tout cela : les modérateurs ne voient pas tout. Un outil ne montre jamais à un modérateur un MP ou une catégorie restreinte que le cœur ne leur montrerait pas, et les alertes ne vont qu’au personnel qui peut ouvrir ce sur quoi elles pointent.

REQ-PM : coordonnées au lieu de messages privés

Notre forum n’a pas de messages privés, volontairement. Alors comment deux membres entrent-ils en contact ? Ils se demandent mutuellement leurs coordonnées. (Notre fil de lancement, si vous voulez voir comment les membres l’ont accueilli.)

  • Appuyez sur REQ-PM sur la carte utilisateur de quelqu’un, cochez ce que vous aimeriez (téléphone, WhatsApp, e-mail, Telegram, Signal…), et envoyez. Il n’y a pas de zone de texte, donc cela ne peut pas devenir une porte dérobée pour les messages.
  • Ils cochent exactement quels détails vous obtenez. Chacun des deux côtés peut retirer ce qu’il a partagé, à tout moment, silencieusement. Dire non est aussi silencieux : la personne qui a demandé ne voit que « en attente » puis « expiré ».
  • /reqpm contient vos demandes, vos contacts (avec des boutons Appeler / Text / Chat), votre propre carte et avec qui vous avez partagé.
  • Confidentialité : les valeurs sont chiffrées au repos (AES-256-GCM) et ne sont renvoyées qu’à leur propriétaire et aux personnes choisies par le propriétaire. Il n’y a pas d’écran d’administration pour eux, et les points d’accusation refusent les clés API et l’usurpation d’identité.
Format de liste : des fils de vente qui restent ordonnés


Une liste réelle de notre fil de vente téléphones et ordinateurs.

Nous avons un grand fil « téléphones et ordinateurs à vendre », et c’était autrefois un chaos de « toujours disponible ? » et « MP-moi ». Maintenant, dans les sujets que vous choisissez, chaque message doit être une liste dans le format du fil, sinon il est rejeté (avec la raison) avant d’être enregistré.

  • Les membres obtiennent un bouton Créer une liste au lieu de Répondre. Il ouvre un formulaire avec une case pour chaque section (article, quantité, état, spécifications, retrait ou livraison), des choix à cocher pour l’état, et l’éditeur normal pour les images et les notes.
  • Les listes apparaissent comme des cartes comme celle ci-dessus. Le vendeur (ou le personnel) peut marquer une comme vendue, puis elle s’estompe et est barrée.
  • Pas de liens vers d’autres sites. Les numéros de téléphone et les e-mails sont acceptés, et les acheteurs utilisent le bouton REQ-PM du vendeur au lieu de répondre.
  • Le personnel est exempté, et les anciens messages sont laissés tels quels.
Disteleplus : un chat de personnel bridé dans les deux sens avec Telegram

Celui-ci est devenu un vrai truc. Tous nos membres du personnel n’avaient pas (ou ne voulaient pas) WhatsApp, et tout le monde n’avait pas Telegram non plus. Donc : un chat à une seule pièce dans Discourse qui est miroir dans les deux sens avec un groupe Telegram.

  • Dans Discourse : un tiroir ou une page complète avec réponses, modifications, réactions, notes vocales, sondages, fichiers, mentions, recherche, aperçus de liens et indicateurs de frappe. Le texte des messages est chiffré dans la base de données. Il n’a pas besoin du plugin Chat officiel.
  • Dans Telegram : les personnes que vous avez liées postent sous leur compte de forum et les autres apparaissent avec leur nom Telegram. Optionnellement, vous pouvez annoncer les nouveaux messages du forum dans le groupe, et miroir la file de revue dans un sujet Signalements avec des boutons Approuver / Refuser qui fonctionnent pour le personnel directement dans Telegram.
  • La configuration prend environ cinq minutes : créez un bot avec @BotFather, ajoutez-le au groupe en tant qu’administrateur, collez le jeton, appuyez sur Enregistrer le webhook.

Si ce que vous voulez est de relier les canaux Discourse Chat à Telegram, regardez plutôt Discourse-Telegram chat bridge ou Discourse Chat Bridge (Telegram). Le nôtre est une seule salle de personnel, sans Chat.

Le thème JTech (il est livré avec le plugin)

Le thème propre de notre forum est maintenant livré avec le plugin. Une réinstallation l’installe et le maintient à jour, mais il n’est jamais fait par défaut. Vous l’activez vous-même sous Personnaliser → Thèmes.

C’est noir et blanc, avec des bordures fines, des coins arrondis et la police Geist. Clair et sombre sont des opposés exacts, et il y a un JTech Dim plus doux pour ceux qui trouvent le noir OLED trop dur.

  • Cartes de sujet au lieu de lignes de tableau, avec la première image à côté du titre et Coup d’œil pour lire un sujet sans quitter la liste.
  • Un menu de commandes sur ⌘K / Ctrl+K qui saute aux pages, catégories, sujets et personnes, avec les raccourcis clavier listés à côté de chaque commande.
  • Une bannière de page d’accueil avec une planète de points qui tourne, suit votre souris et reste immobile pour ceux qui demandent à leur appareil de réduire le mouvement. Plus une en-tête, une barre latérale, des profils, des cartes utilisateurs, une page de connexion et une page à propos redessinées.
  • Il remplace environ une douzaine de composants de thème que nous utilisions, chacun maintenant un paramètre : mode lecteur, une table des matières pour les guides, un bouton d’impression/PDF, un code QR dans Partager, des messages vocaux depuis l’éditeur, des badges de message, un bouton Copier-en-Markdown, un filtre de réponses, recherche depuis le texte sélectionné, l’avertissement de réponse au sujet fermé, et plus. Notre forum fonctionne maintenant avec zéro composant de thème.
  • Nous avons passé un temps ridicule sur l’accessibilité : contraste WCAG AA sur le texte gris dans les trois palettes, des anneaux de focus que vous pouvez réellement voir sur chaque contrôle, des cibles tactiles plus grandes sur les téléphones, le mode contraste élevé de Windows, les langues de droite à gauche, et des téléphones de 320px de large.
Les plus petits : Mini-mod, Dislike, recherche intelligente, pop-ups, Another SMTP, traducteur


Pop-ups sur ordinateur de bureau (de notre documentation, utilisateurs fictifs).

  • Mini-mod. Quelques droits supplémentaires pour les personnes qui modèrent une catégorie via un groupe : création et modification de catégories, déplacement de sujets, balises. Chaque droit a son propre interrupteur, et aucun d’eux ne va au-delà de ce que cette personne peut déjà voir. Il peut aussi retirer des droits, comme rouvrir des sujets fermés. Le sujet original de @ars18 en dit plus, et voici le type de demande à laquelle il répond.
  • Dislike. Dans les catégories que vous choisissez, les j’aime cessent de compter : pas de notification, pas d’historique « j’aime reçus », et ils ne comptent pas sur le classement. Vous pouvez aussi masquer complètement le bouton là-bas, ou ne laisser que certains groupes aimer.
  • Recherche intelligente. Quand une recherche ne trouve presque rien, elle essaie silencieusement à nouveau avec des synonymes, donc « k8s » trouve « kubernetes » et « js » trouve « javascript ». Il utilise WordNet plus une petite liste de jargon technique, fonctionne en processus sans clés API, conserve tous les filtres et permissions, et revient à la recherche normale si quelque chose va mal.
  • Pop-ups sur ordinateur de bureau. Une petite carte dans le coin quand une notification arrive. Chaque membre opte pour, c’est silencieux pendant Ne pas déranger, et ça fonctionne avec un clavier et un lecteur d’écran.
  • Another SMTP. Envoyer les e-mails du forum via un serveur de messagerie différent de celui dans app.yml, configuré depuis l’administration.
  • Ajustements du traducteur. Pour les sites encore sur l’ancien plugin discourse-translator avec Google : pointez ses requêtes vers votre propre proxy.

Installation

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/TripleU613/JtechTools.git jtech-tools

Gardez le nom du dossier jtech-tools, en minuscules. Discourse construit l’URL de la feuille de style à partir de lui.

Puis reconstruisez et allez à Administration → Plugins → Jtech Tools. Il y a un onglet par module, et la page de documentation de chaque module dit quoi configurer en premier.

Nous suivons main sur Discourse 2026.8 et plus récent, et .discourse-compatibility fixe les versions plus anciennes. Le CHANGELOG dit ce qui a changé et ce qui vaut la peine d’être vérifié après une mise à jour.

Être honnête là-dessus

Nous sommes une équipe d’administration de forum, pas une boutique Discourse. Une grande partie de cela a été construite avec l’aide de l’IA. Ce qui me rend à l’aise pour le partager, ce sont les garde-fous : des règles dans le dépôt que chaque changement doit suivre (permissions d’abord, ne jamais aller au-delà de ce que le cœur permet, rien que le cœur ne fait déjà), environ 1 700 tests répartis sur 119 fichiers de spécification qui s’exécutent sur chaque PR, et la plupart de cela fonctionnant sur notre propre forum tous les jours. Il y aura encore des bugs et des cas limites étranges. Merci de nous le dire quand vous en trouvez un.

Les problèmes et les PR sont très bienvenus sur GitHub. Les problèmes de sécurité passent en privé via SECURITY.md.

Merci à @ars18 et Shalom Karr, qui ont construit une grande partie de cela avec moi, à tout le monde sur JTech qui a signalé des bugs et essayé des choses à moitié finies, et aux personnes dans les fils de discussion Dumbcourse et Mini-mod dont les questions l’ont amélioré.

Amusez-vous bien :lion:

5 « J'aime »