Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple self-hosted avatar with Libravatar feature #342

Merged
merged 10 commits into from
Nov 3, 2017

Conversation

bendia-
Copy link

@bendia- bendia- commented Nov 1, 2017

Assez simple là, mais ça expose le nom de domaine de l'email du commentateur.

@remrem
Copy link
Contributor

remrem commented Nov 1, 2017

Pas fan de cette solution... le domaine qui est visible :/

@bendia-
Copy link
Author

bendia- commented Nov 1, 2017

On est d'accord :) Je suis en train de regarder une autre solution qui vérifierait l’existence de l'avatar en cache et le téléchargerait le cas échéant dans inc/them.php afficher_index pour la partie blog, et je ne sais pas encore bien où pour la partie admin.

@remrem
Copy link
Contributor

remrem commented Nov 1, 2017

Ok, je ne pousse pas ton PR en attendant une autre solution.

@bendia-
Copy link
Author

bendia- commented Nov 2, 2017

J'ai poussé un nouveau truc avec chiffrage du nom de domaine, mais ça ne fonctionne pas comme je veux : les avatars ne s'affichent pas systématiquement lors du premier chargement de la page, mais se téléchargent pourtant bien (et s'affichent donc sans soucis après), et je ne comprends pas pourquoi.

Du coup, c'est plus d'une part pour voir si l'idée vaut le coup d'être creusée, et accessoirement pour comprendre pourquoi ça ne va pas (je n'y arrive pas tout seul).

@remrem
Copy link
Contributor

remrem commented Nov 2, 2017

Salut,
l'encryption est overkill pour ce genre de truc ... et il manque inc/encrypt.php ;)

@bendia-
Copy link
Author

bendia- commented Nov 2, 2017

Oups :/

Je l'ai poussé pour voir. Dans l'idée, il y aurait un truc plus léger pour obfusquer le nom de domaine ?

@remrem
Copy link
Contributor

remrem commented Nov 2, 2017

yep la technique du ping, mais pas eu le temps de voir ça ...

@bendia-
Copy link
Author

bendia- commented Nov 2, 2017

Bon, ben je vais te regarder faire, et apprendre alors 😋

@remrem
Copy link
Contributor

remrem commented Nov 2, 2017

L'idée de base est de faire un ping via get_headers() ou autre à la lecture des commentaires vers favatars.php avec exactement la même url que servie en HTML pour le client mais en ajoutant le domaine et un paramètre _GET quelconque.
Puis de modifier favatars.php, pour qu'il renvoie tout de suite des headers, mais qu'il continue le process en "arriére plan" (quand il reçoit le paramètre _GET spécifique) en prenant en compte le domaine, mais en mettant l'avatar en cache sans le domaine.
Pour renvoyer des headers en continuant le process, en début de favatar.php après le boot, un truc dans ce genre doit faire le job :

if (isset($_GET['peu-importe'])) {
    // set header
    header("HTTP/1.1 200 OK");
    header("Content-Length: 0");
    header("Connection: Close");
    // send response
    ob_start();
    ob_end_flush();
    flush();
    // with fastCGI
    fastcgi_finish_request();

Je ne sais pas si je suis très clair ? :S

@remrem
Copy link
Contributor

remrem commented Nov 2, 2017

à moins de trouver mieux ...

@bendia-
Copy link
Author

bendia- commented Nov 3, 2017

J'ai fini par piger et y arriver je crois :)

@remrem
Copy link
Contributor

remrem commented Nov 3, 2017

ça m'a l'air pas mal ;) ça donne quoi (peux pas test pour l'instant) ?

@bendia-
Copy link
Author

bendia- commented Nov 3, 2017

Ben, ça fonctionne, et ça masque bien le domaine. J'avais essayer avec un paramètre genre flag au début, mais les avatars s'affichaient bien sans pour autant se télécharger en cache (pas compris pourquoi). Là, en testant simplement si le domaine est passé, c'est bon :)

Merci encore pour tes conseils ;)

Edit : d'ailleurs, j'ai oublié de l'enlever de get_headers() ce paramètre flag :/

@remrem
Copy link
Contributor

remrem commented Nov 3, 2017

NP ;)
Par contre, si tu pouvez faire un petit clean-up de ton PR

  • inc/encrypt.php à virer
  • themes/default/template/commentaire.html, il manque une " dans le lien pour l'attribut src
    <img class="com-gravatar" width="48" height="48" src="{racine_du_site}/favatar.php?q={commentaire_md5email} alt="avatar" />

Et tu peux t'ajouter au fichier CONTRIBUTORS si tu veux ;)

@bendia-
Copy link
Author

bendia- commented Nov 3, 2017

Fait :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants