DMeloni / shaarlo

Unified Shaarlis Rss
33 stars 9 forks source link

Duplication de flux #1

Closed Leomaradan closed 11 years ago

Leomaradan commented 11 years ago

Hello,

J'ai constaté un petit bug sur le Shaarlo de Shaarli.fr

J'ai ajouté mon Shaarli à la liste des flux. Il est référencé comme "Liens de Léo Maradan" avec l'url httpS://leomaradan.com/liens/?do=rss (en https, donc)

Lors de l'actualisation suivante, un flux "Liens de Léo" avec l'url http://leomaradan.com/liens/?do=rss (sans https) est apparu.

J'ai testé en l'effaçant, et le flux doublon est revenu

Le problème peut aussi venir de mon flux RSS, à voir

DMeloni commented 11 years ago

Bonjour Léo,

donc si je comprends bien ta manip : tu as ajouté un premier lien en https:// tu as fait un reload (ou attendu qu'il se fasse) tu constates que le lien en http:// est apparu dans la liste des propositions (ou pas ? )

donc jusque la, c'est le comportement normal.

quand tu dis "j'ai testé en l'effaçant", ça veut dire ? (désactivation, "supprimer à vie" ?), et quand tu dis "le flux doublon est revenu", ça veut dire que tu le vois à nouveau ? dans les propositions, dans les flux actifs ?

tcitworld commented 11 years ago

Non, c'est juste que si un lien est proposé, il n'est pas vérifié au préalable qu'il n'est pas déjà dans la liste. A priori c'est la même URL, pas de différence https/http. Ce que veut Leomaradan, c'est qu'il peut enlever celui déjà dans la liste, le supprimer à vie, et puis mettre celui qui est suggéré.

tcitworld commented 11 years ago

Il y a vérification pour mettre le nouveau lien dans les liens actifs, mais pas dans les liens proposés. (j'ai pas l'impression que je suis clair ;) )

DMeloni commented 11 years ago

on va finir par se comprendre :-)

DMeloni commented 11 years ago

Hum, je crois comprendre. En gros : a la base on a une url shaarli en https après refresh, l'outil nous propose le même lien mais sans le 's', (donc déjà est ce que c'est normal si toutes les urls sont en https dans les liens proposés par le shaarli)

Donc en gros, le "doublon" c'est qu'il arrive dans la liste des liens proposés en http:// alors que sa version https est déjà présente dans la liste des liens actifs. C'est bien ça ?

DMeloni commented 11 years ago

Ok j'ai trouvé, effectivement si la version http a jamais existé, elle a rien a foutre dans la liste des liens proposés. C'est ce bout de code qui est con (line 161 du refresh.php) : $potentialRssUrl = str_replace('https://', 'http://', $potentialRssUrl);

tcitworld commented 11 years ago

Je suis pas certain pour l'HTTPS, j'ai pas remarqué ce détail, mais ça a de très fortes chances d'être ça. Par contre tu peux pas faire l'hypothèse que toutes tes URL seront en https, donc sans doute faire appel à une regex ici je pense.

Leomaradan commented 11 years ago

Voila, exactement!

(désolé de réponse tardivement)

DMeloni commented 11 years ago

bon, en virant la ligne en question, ça propose plus le lien. Je pense que ça aura un effet de bord tot ou tard dans le sens inverse (des gens proposent à la fois une url shaarli en http et en https).

tcitworld commented 11 years ago

Si tu fais le test suivant sur chaque lien :

Lors de l'ajout ou de la proposition d'un lien :

DMeloni commented 11 years ago

Pas con, je fais ça

tcitworld commented 11 years ago

Ah non, le problème chez moi est autre que lié aux URL en http ou en https. C'est aussi dû au fait que certains ont des sous domaines.

Exemple : Je viens d'avoir http://www.gregory-thibault.com/foualier/?do=rss comme suggestion alors que Fou à lier(http://foualier.gregory-thibault.com/?do=rss) est déjà dans la liste.

Je sais pas trop comment sortir de cette boucle, si ce n'est exhorter tout le monde à utiliser la même URL.

DMeloni commented 11 years ago

Oui j'ai vu ça aussi, le truc c'est qu'à moins de faire l'appel aux deux url pour vérifier que c'est la même donnée au bout, il n'y a pas de solution, et entre vérifier une liste d'url ou vérifier que tous les flux de cette liste ne correspondent pas à ton lien, il y a une perte énorme côté perf, même si le cron limite cette perception

tcitworld commented 11 years ago

Ouais, je ne vois pas de solution non plus.

Draky50110 commented 11 years ago

En plus de ton test de base, vu que tu testes les deux en même temps, pourquoi pas du parsing basic avec les deux RSS ? Si tu testes en même temps, bah... tu auras exactement le même résultats avec X caractères par exemple donc liens identiques donc c'est bon. Idée d'un noob quiche en PHP (mais pas en anglais :p) ;)

DMeloni commented 11 years ago

Car les deux flux rss ne sont pas forcément les mêmes. Ex http://bajazet.fr/shaarli/?do=rss & https://bajazet.fr/shaarli/?do=rss le champ et copyright sont différents.

DMeloni commented 11 years ago

Après, j'ai commité un mod anti doublon hier soir. Même si c'est basique comme façon de faire, ça marche assez bien. (ça se base sur le titre & la description du flux comme clef unique et choisit le flux en https de préférence).