En modération, sur le markdown, avec Firefox au moins, il n’est pas possible de taper une correction via Grammelecte avec le caractère 'g' : ce caractère est intercepté, en raison du « retourner en haut de la page en appuyant sur g ou en bas de la page avec G » sur LinuxFr.org.
Suivi — Administration site Nettoyage des 22 ans
(ça n'a aucun rapport avec les 22 ans, mais bon d'ici qu'on le fasse, « nettoyage de printemps » sera hors saison)
Un peu de ménage en base de données ne ferait pas de mal, pour diverses raisons (ça prendrait moins de place, on stocke des choses inutiles, on stocke des données personnelles obsolètes pour rien, etc.).
Commençons par un nettoyage suite au Un an après la mise à jour majeure du site, grand nettoyage dans les comptes utilisateur (…)
Suivi — Commentaires Commentaire d'un compte supprimé non éditable par un admin
Dans app/models/comment.rb
def wikify_body
nofollow = user.account.karma < 50
self.body = wikify(wiki_body, nofollow: nofollow)
end
du coup toute édition (y compris par un admin) d'un commentaire appartenant à un compte supprimé (entrée dans accounts supprimée mais entrée encore présente dans users) échoue :
Completed 500 Internal Server Error in 16ms (ActiveRecord: 1.7ms)
NoMethodError (undefined method `karma' for nil:NilClass):
app/models/comment.rb:42:in `wikify_body'
app/controllers/comments_controller.rb:64:in `update'
A priori s'il n'y a plus (…)
Suivi — Administration site Afficher la date de dernière visite
Corriger les infos visibles (par les admins au moins) pour avoir la date de dernière visite et pas juste de dernière connexion.
Suivi — Étiquettes Mauvaise gestion des tags avec espace
(détection via https://linuxfr.org/users/delgatux/liens/l-autorite-de-la-concurrence-bouge-enfin-sur-l-economie-numerique )
Le lien a été soumis ainsi :
"tags"=>"droit, concurrence, abus de position dominante, marché, facilités essentielles", "commit"=>"Poster le lien"
Les étiquetages créés : "droit", "concurrence", "abus", "marche" (et pas facilites).
Mais les étiquettes incrémentées comprennent notamment "position", "dominante", "facilités" et "essentielles" alors qu'aucun étiquetage n'existe pour ces tags (bref on a créé les étiquettes, mais elles ne correspondent à aucun étiquetage).
Du coup le script de vérification de la base SQL a râlé :
12718 position (…)
Suivi — Dépêches Ne pas afficher le « Aller plus loin » s’il n’y a pas de liens dans une dépêche
Ne pas afficher le « Aller plus loin » s’il n’y a pas de liens dans une dépêche.
(signalement initial : https://linuxfr.org/news/sauver-un-disque-dur-mecanique#comment-1799315)
Suivi — Statistiques Statistiques erronées pour les contenus publiés dans les 3 et 12 derniers mois par les actifs
Sur la page des statistiques sur les utilisateurs, la statistique des contenus produits par les visiteurs actifs dans les 3 et 12 derniers mois est erronée (elle ne peut être que décroissante car les visiteurs ont publié depuis Epoch plus que depuis 12 mois et plus que depuis 3 mois, et elle doit être différente par type de contenu).
Suivi — Comptes utilisateurs Détecter l'adresse de courriel au lieu de l'identifiant
Dans le champ Identifiant de "Se connecter", renvoyer une erreur explicite si l'utilisateur saisit une adresse de courriel (globalement un identifiant ne respectant pas les règles des identifiants).
Suivi — Modération Interdictions temporaires d'écrire et perte de karma
Les interdictions temporaires de pouvoir écrire des commentaires ou sur la tribune ne sont pas assorties d'une perte de karma.
Il serait logique que ça soit le cas. (et que la doc soit mise à jour en conséquence sur
https://linuxfr.org/aide#aide-karma )
Dans app/models/account.rb
def block(nb_days, user_id)
$redis.set("block/#{self.id}", 1)
$redis.expire("block/#{self.id}", nb_days * 86400)
(…)
Suivi — Syntaxe markdown Éviter que le Markdown ne produise de l'HTML invalide
Éviter que le Markdown ne produise de l'HTML invalide
- Hyperlien décrit, mais sans URL
[Description d'un lien mais pas de lien]()
avec href
vide invalide
<a href="">Description d'un lien mais pas de lien</a>
- Tableau mais sans contenu
|Colonne 1|Colonne 2|
|---------|---------|
avec un <tbody>
vide invalide
<table>
<thead>
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
</
(…)
Suivi — Administration système Entrée redis louche "users//diff_karma"
Identifier la source de l'entrée redis louche users//diff_karma
Indices :
- en prod, revient régulièrement si on la vire
- n'existe pas en dév
- contient 20 soit le karma par défaut actuellement
app/models/node.rb: $redis.incrby("users/#{self.user_id}/diff_karma", value)
app/models/account.rb: self.karma += $redis.get("users/#{self.user_id}/diff_karma").to_i
app/models/account.rb: $redis.del("users/#{self.user_id}/diff_karma")
app/models/comment.rb: $redis.incrby("users/#{self.user_id}/diff_karma", value)
Suivi — Administration site Nettoyage redis
Nettoyer redis lors d'une suppression brutale de dépêche en rédaction ou en modération.
Unexpected <news_id> in boards/chans/news/xxxx
Unexpected <link_id> in links/xxxx/*
Unexpected <news_id> in news/xxxx/*
Suivi — Administration système Documenter le schéma redis et nettoyage redis
- documenter le schéma redis (fait, reste à commiter)
- ajouter un test pour vérifier la conformité au schéma (en cours)
- nettoyer ce qui dépasse au lance-flamme sur alpha/prod (en cours)
Suivi — Modération Retirer le drapeau d'urgence après la modération d'une dépêche
Une fois que la modération a accepté ou rejeté une dépêche, on peut faire sauter l'urgence dessus. (Côté redis, le news/urgent
ne va pas tarder à atteindre le millier d'entrées, et ça n'a pas beaucoup d'intérêt)
Suivi — Comptes utilisateurs Retirer le lien site perso sur une fermeture administrative de compte
Si un compte est fermé par quelqu'un d'autre que l'utilisateur lui-même (dont une fermeture administrative), donc principalement le cas de spam, autant virer le lien vers le site perso au passage.