shaarli / Shaarli

The personal, minimalist, super-fast, database free, bookmarking service - community repo
https://shaarli.readthedocs.io/
Other
3.39k stars 287 forks source link

External pingback server integration #225

Closed Purexo closed 8 years ago

Purexo commented 9 years ago

It'll be very cool to have a pingback system beetween Shaarli. Like Wordpress. I'm think that the best way to interact beetween shaarlieur.

nicolasdanelon commented 9 years ago

maybe with a plugin, right?

nodiscc commented 9 years ago

@purexo please explain more precisely:

This was previously requested at https://github.com/sebsauvage/Shaarli/issues/75

If you have a proposition for an implementation, please go ahead.

Purexo commented 9 years ago

Je vais parler français, histoire que ce sois plus simple pour moi d'expliquer.

Je pense que pas mal de personnes utilisant Shaarli, utilisent aussi un blog à coté, et pour la plus part utilisent WordPress comme CMS de blog. Wordpress intègre nativement/par défaut un systeme de Pingback.

Le principe est "simple"

  1. Une personne A écris une note contenant le permalink d'une note Shaarli d'une personne B
  2. Le serveur de A va ping B pour lui dire "Hé, regarde je parle de toi ici. (ici = le permalien de la note de A)"
  3. Le serveur B si il accepte, va ajouté dans la section pingback de la page de sa note le liens de A

Ainsi ce systeme à trois avantages majeur :

fbartels commented 9 years ago

As long as its optional and opt-in. why not?

But I don't use shaarli as a blog system and therefore would have not use for it.

nodiscc commented 9 years ago

Thanks for the explanation; en français c'est très bien.

Pingback requires an XML-RPC server to work. For reference, wordpress' XMLRPC server is 6300 LOC, which is almost 3 times shaarli's size - https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-xmlrpc-server.php

The pingback spec can be found at http://www.hixie.ch/specs/pingback/pingback - There is a reference pingback server/proxy at http://software.hixie.ch/utilities/cgi/pingback-proxy/. It should be fairly easy to send POST requests to such a server when saving a link (POST http://your.server.example/utilities/cgi/pingback-proxy/client-proxy?source=$permalink&target=$url) which will take care of notifying the remote server via XMLRPC. If you are able to write a standalone pingback server or use this, we could hook the save function to send it a POST when saving a link (optional).

Shaarli's datastore can only store description linkdate private tags title url fields so there is no way it could save pingbacks from others for an item, so Shaarli can't notify you when you receive one. However we could easily add a <link rel="pingback" href="http://your.server.example/utilities/cgi/pingback-proxy/server-to-get-proxy/http://www.example.net/pingback.cgi"> on permalink pages, which would pass pinbgbacks requests to the proxy, and notify you by mail or other means when someone pingbacks you - See Server Proxy: Mail on http://software.hixie.ch/utilities/cgi/pingback-proxy/.

If you or someone is able to implement a standalone pingback server that can be hooked to Shaarli in some way - the server example mentioned above might also work out of the box (requires testing) - we could add this as an option (integration of a third party pingback server).

Would this be ok? Should I rename the issue to External pingback server integration?

nodiscc commented 9 years ago

Also note that support for integrating an external comments system has been requested at https://github.com/shaarli/Shaarli/issues/181. The issue is about adding support for Isso (http://posativ.org/isso/) comment fields in the linklist. Isso's developer has open an issue about adding Pingback/trackback support to his software - check https://github.com/posativ/isso/issues/19 - so this is another possible way.

ArthurHoaro commented 8 years ago

Closing as it's tagged as wontfix (see @nodiscc explanation). This could be done with 3rd party + plugin.