Annonce

#1 2012-01-03 21:23:54

Tanguy
Invité

Nouveau webservice: synchronisation

Bonjour à tous,

J'utilise Piwigo depuis un petit moment maintenant et j'ai récemment fait l'acquisition d'un ReadyNAS.
J'ai migré l'intégralité de mes photos d'origine sur ce serveur et installé Piwigo "à côté".

J'ai écrit un petit script bash pour préparer les miniatures et les photos 'web'.
Le dossier HD étant tout simplement un 'ln-s' vers le dossier d'origine.
C'est l'avantage d'avoir fichiers et serveur sur la même machine.

Pour être plus portable j'ai codé une petite page web permettant de sélectionner un dossier et de lancer la préparation:
0. Calcul d'une miniature à la volée pour décider de garder l'image ou pas.
1. Tags des photos (IPTC)
2. Création d'un dossier spécial Piwigo
Et finalement une requête ajax pour lancer la synchro:

Code:

function synchroPiwigo()
{
  $.ajax({
    url: '/photos/admin.php?page=site_update&site=1',
    type: 'POST',
    data: { sync: 'files',
            display_info: 1,
            privacy_level: 0,
            sync_meta: 'on',
            'subcats-included': 1,
            simulate: 1,// A passer à 0 pour le réel
            submit: 1}
    //TODO: récupérer le résultat dans la page admin Piwigo
  });
}

Parfait pour le lancement, par contre la récupération du résultat n'est pas facile.
D'où ma demande de web service comme ceux déjà proposés permettant de récupérer un tableau JSON avec le résultat.
Le top serait de récupérer les id des galleries créées pour pouvoir ensuite les renommer éventuellement.

Merci

#2 2012-01-03 21:38:30

Tanguy
Invité

Re: Nouveau webservice: synchronisation

Pour alimenter le débat éventuel, voici ma fonction pour renommer une catégorie:

Code:

function changeCatName(nameBefore,nameAfter)
{
  var cat = -1;
  
  //Requête pour récupérer l'id d'une catégorie grâce à son nom 
  $.ajax({
    url: '/photos/ws.php?format=json', //Ne nécessite pas d'authentification
    async: false, // On attend le résultat de cette requête pour continuer
    data: { method: 'pwg.categories.getList',
            tree_output: true},
    success: function(data) {
      status = jQuery.parseJSON(data).stat;
      if (status == "ok") // Si la requête n'a pas échoué
      {
        categories = jQuery.parseJSON(data).result;
        var i = 0;
        while((cat < 0) && (i < categories.length))
        {
          if(categories[i].name == nameBefore)
            cat = categories[i].id;
          i++;
        }
      }}
  });
  
  // Requête pour modifier le nom de la catégorie
  $.ajax({
    url: '/photos/ws.php?format=json',
    type: 'POST',
    data: { method: 'pwg.categories.setInfo',
            category_id: cat,
            name: nameAfter,
            comment: ''},
    success: function(data) {
      status = jQuery.parseJSON(data).stat;
      if (status == "ok") // Si la requête n'a pas échoué
      {
        alert("C'est bon ok");
      }
      else
      {
        alert("Erreur "+jQuery.parseJSON(data).err+": "+jQuery.parseJSON(data).message);
      }}
  });
}

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact