I've had this idea in mind for a few months now. One major issue of Piwigo (or any "self hosted" photo gallery) is the lack of "social" features compared to Flickr for example. Sometimes we want to share our photos within a group of photographers, and get quick visibility on our photos. Last week on IRC, J.Commelin has asked me to write about the idea because he was interested in working on it. So here it comes!
Piwigo Network : ability for a Piwigo gallery to display photos from a list of other Piwigo galleries.
Each Piwigo Network "master" would have several subscribers. Let's take an example : www.worldrailways.com is a Piwigo gallery, www.john.co.uk, www.paul.at and www.sarah.nz are 3 Piwigo galleries (with railways related photos inside...) www.worldrailways.com would be a Piwigo Network Master and the 3 others would subscribe to this Master.
On the Master, we display photos from all subscribers. Each subscribers can tell which photos can be displayed on the Master (all photos, photos tagged "railways"...). The photos are not stored on the Master, we only use hotlinking. To avoid too many HTTP request on subscribers, the Master may keep a "cache" of available content on subscribers galleries.
I think Piwigo Network can be implemented as a plugin. Communication between master and subscribers would use Piwigo web API (certainly with some extra methods).
This is the general overview of the Piwigo Network as I have it in mind. Please ask some questions (or simply give your point of view) so that we can define the technical directions to take.
I'm not the best placed to share idea about this kind of feature : I'm not a social internet user (I don't use twitter, no facebook, no google-truc, ...)
But some rough idea, for technical point of view:
- using a plugin is good idea : it's a good method to see if people are interested or not;
- referenced site can be centralised on a server (an url like http://network.piwigo.org could be a good thing); access to this page from a webbrowser allows user:
* to see how many galleries are referenced (it's public, and it give visibility for non piwigo webmaster's users)
* choose to visit a random choosen referenced gallery
* choose to visit a gallery from country (french, english, japanese, spanish, ...) or keywords
- to be referenced, webmaster install a plugin:
* allows to choose to be referenced or not;
* allows to add small description of the gallery (1500char for example)
* allows to set from 0 to 5 choosen pictures on the gallery (needs to be a public picture !)
* can be referenced only if more than 10 pictures are public
* allows to choose from predefined keywords list (loaded from server, not hard coded) the themes of the gallery (ie: nature, architecture, people, cities, mountains, erotic, wallpaper, astronomy, birds, ....)
=> managed on server, this permit to the webmaster to choose keywords in its own language, but displaying it in the visitor's language
- and the plugin can used just to add "external album"
- I'm not sure, but I think it's possible (with twitter & facebook) to share link using specific url: http://see.piwigo.org/1234578d redirects on the gallery url
- on the server side, implement something doing one time per day :
* check availabilty of url (if url not responding, retry in 1 hour, if not responding, retry in 2 hours, in 4 hours, in 8 hours, in 24 hours, after : disable the gallery from the server (can't be viewed by visitor) and send a mail to the webmaster ; retry 2days, 4 days, 30days : after, definitively remove the gallery from the server)
* retrieve the number of picture (with date of the last picture and number of new pictures from the 7 days)
* do to this, the plugin have to implement webservices
finally I have some ideas ^_^;
probably if I continue to think about it, I could find another stuffs...
Yes, it would be good to have a webservice on piwigo.org to register a master and to fetch a list of masters (matching criteria like "language" or "keyword"). On Piwigo.org side, I think a webservice is enough as first step : the GUI would be in the administration screen of the plugin inside each Piwigo. With such a public list on Piwigo.org, it would be easier for subscribers to know where to subscribe :-)
In a second step, we can create a "master directory" on piwigo.org, visible in a web browser, but in my opinion, this would be just like the "Piwigo Galleries Directory" I would like to implement quite soon : a Piwigo Network Master is just a Piwigo Gallery. In the "Piwigo Galleries Directory", it may have the tag "Network Master" for example. The "Piwigo Galleries Directory" is for another topic. It is related to the "Piwigo Network" because it's related to adding social features in Piwigo, but it's not really the same thing (I'd better open a topic to explain what the "Piwigo Galleries Directory" project is).
The question of "when does the master refreshes its data?" is a key question. You directly say that the Master performs the requests on the subscribers. Well, I'd rather say the opposite. Only the subscribers know when their content is changing, so it would be easier for the subscriber to say "hey Master, I've changed my content!", rather than having obsolete content on the Master every end of the day.