Badges et communautés privées

J’ai examiné les requêtes de badges existantes pour comprendre quelles requêtes ciblent les publications dans la table badge_posts, ou utilisent une autre méthode pour exclure les publications des catégories protégées.

Les badges suivants requêtent des publications spécifiques et ne seront pas attribués pour une activité dans des catégories privées :

  • Éditeur
  • Premier drapeau
  • Premier like
  • Premier lien
  • Premier citation
  • Premier partage
  • Premier emoji
  • Premier mention
  • Premier onebox
  • Premier reply par e-mail
  • Lecteur
  • Éditeur wiki
  • Super partage
  • Bon partage
  • Helpdesk
  • Partage sympa
  • Bienvenue
  • Lien célèbre
  • Super réponse
  • Super sujet
  • Bonne réponse
  • Bon sujet
  • Lien chaud
  • Réponse sympa
  • Sujet sympa
  • Lien populaire

Les badges suivants ne requêtent pas de publications spécifiques et seront attribués pour une activité dans des catégories privées :

  • Licencié
  • Autobiographe
  • Certifié
  • Nouvel utilisateur du mois
  • Lire les directives
  • Admiré
  • Champion
  • Fou amoureux
  • Dévot
  • Empathique
  • Afficionado
  • Anniversaire
  • Campagneur
  • Donne de soi
  • Amour supérieur
  • Respecté
  • Apprécié
  • Enthousiaste
  • Hors de l’amour
  • Promoteur
  • Merci
  • Leader
  • Régulier
  • Basique
  • Membre
  • Personnel
  • Photo de profil

Quelque chose de similaire est déjà couvert par les badges Apprécié (1 like sur 20 publications) et Respecté (2 likes sur 100 publications). Certaines variations de ces requêtes pourraient être ajoutées. Par exemple, 10 likes sur 20 publications. Un badge accordé pour des sujets très aimés pourrait également être une bonne idée — il fonctionnerait comme l’équivalent du badge Super sujets. Par exemple, il pourrait être attribué lorsqu’un utilisateur a créé 10 sujets ayant reçu 10 likes.

Je ne suis pas sûr qu’il soit logique d’ajouter un badge attribué pour une activité sur une seule publication ou un seul sujet qui ne contient pas de lien vers la publication. Par exemple, un badge Premier like alternatif pourrait être créé avec le SQL suivant :

SELECT pa1.user_id, pa1.created_at granted_at
FROM (
  SELECT pa.user_id, min(pa.id) id
  FROM post_actions pa
  JOIN posts p on p.id = pa.post_id
  WHERE post_action_type_id = 2
  GROUP BY pa.user_id
) x
JOIN post_actions pa1 on pa1.id = x.id

Pour que la requête fonctionne, elle doit utiliser le déclencheur « Mettre à jour quotidiennement » au lieu de la requête « Lorsqu’un utilisateur agit sur une publication ». Sur la page Badges, les utilisateurs ayant reçu le badge seront affichés avec l’heure à laquelle le badge a été attribué. Il n’y aura pas de lien vers la publication pour laquelle le badge a été attribué :

Ce genre d’approche a-t-il du sens pour les sites comportant principalement des catégories protégées ? Si oui, cela pourrait être utilisé pour dupliquer certaines des requêtes ciblant actuellement la table badge_posts.

4 « J'aime »