Le ping ne fonctionne pas chez moi

Aucune notification

Le problème exposé dans ce sujet a été résolu.

Bonjour !

J’ai remarqué quelque chose d’étrange et assez embêtant, surtout si je ne suis pas le seul concerné. Les pings qui me sont adressés ne me sont pas notifiés, ce n’est que par coup de chance que je peux les voir.

La toute première fois ça a bien fonctionné, avec ce message du 3 décembre 2018.

Mais depuis, il y a eu ce message le 29 décembre 2018 que j’avais raté, et aujourd’hui (4 février 2019) même chose avec ce message.

De même, je n’ai pas eu de notification pour mes pings dans les récap' communautaires 9 et 11, mais je ne sais pas si la fonctionnalité est activée pour le contenu des articles ?

Voilà, si vous avez des explications ou si vous êtes dans le même cas que moi je vous remercie d’avance ! :)

EDIT : Je viens de voir la réponse de @entwanne qui donne peut-être la bonne explication, mais moi je n’ai même pas de trace dans ma liste de notifications.

+0 -0

De même, je n’ai pas eu de notification pour mes pings dans les récap' communautaires 9 et 11, mais je ne sais pas si la fonctionnalité est activée pour le contenu des articles ?

PG06

Il me semble que pour les contenus il n’y à pas de ping, mais un lien vers la page du profil.

+0 -0

Bonjour à tous,

après plusieurs tests, nous avons la réponse à votre question :

fonctionnement

Afin d’éviter les abus et le flood, on a mis une limitation à 15 ping par messages. Du coup quand vous pingez 16 personnes ou plus seules les 15 premières sont notifiées.
Cette limite est configurable, mais je pense vraiment que 15 c’est déjà énorme.

Est-ce qu’il n’y aurait pas moyen qu’un admin/modo valide l’envoi des notifications (après vérification que ce n’est pas du spam) si un message mentionne plus de 15 personnes?

Berdes

C’est pas s’embêter pour pas grand chose ? Il existe combien de cas raisonnable où il y a besoin de ping plus de 15 personnes ?

Eskimon

Un truc comme ceci par exemple :

@Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon @Eskimon <3

Ok, ca ping 16 fois toi-meme, mais quand meme :)

+0 -0

Alors pour le coup ça m’a ping 0 fois.

Eskimon

Est-ce que ce n’est pas visible quand même dans ta liste de notifications ? Parce que moi pour ce message je n’avais pas été notifié, mais dans ma liste j’ai bien "Heziode vous a mentionné sur Géocaching." Et là pourtant ce n’est pas un problème de nombre de pings.

+0 -0

Alors pour le coup ça m’a ping 0 fois.

Eskimon

Est-ce que ce n’est pas visible quand même dans ta liste de notifications ? Parce que moi pour ce message je n’avais pas été notifié, mais dans ma liste j’ai bien "Heziode vous a mentionné sur Géocaching." Et là pourtant ce n’est pas un problème de nombre de pings.

PG06

ah oui tout a fait.

+0 -0

J’ai un peu exploré le problème et j’ai trouvé le bug : quand on édite un message qui contient des pings, les notifications sont marqués comme lues.

Édition J’ai trouvé la solution, il faut remplacer ces lignes par :

        pinged_usernames_from_new_message = list(filter(lambda user_name: user_name != self.author.username, metadata.get('ping', [])))
        pinged_usernames_from_old_message = list(filter(lambda user_name: user_name != self.author.username, old_metadata.get('ping', [])))

        pinged_usernames_to_notify = list(set(pinged_usernames_from_new_message) - set(pinged_usernames_from_old_message))
        max_ping_count = settings.ZDS_APP['comment']['max_pings']
        pinged_usernames_to_notify = pinged_usernames_to_notify[:max_ping_count]
        pinged_users_to_notify = User.objects.filter(username__in=pinged_usernames_to_notify)
        for pinged_user in pinged_users_to_notify:
            signals.new_content.send(sender=self.__class__, instance=self, user=pinged_user)

        unpinged_usernames = list(set(pinged_usernames_from_old_message) - set(pinged_usernames_from_new_message))
        unpinged_users = User.objects.filter(username__in=list(unpinged_usernames))
        for unpinged_user in unpinged_users:
            signals.unsubscribe.send(self.author, instance=self, user=unpinged_user)

Voir ma PR

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte