Bon, j’ai finalement trouvé.
En fait, le souci doit remonter à un bon moment. Auparavant, l’arborescence des photos étaient sous la forme rowid[2]/rowid[1]/photo, où rowid est l’id de l’adhérent, sous forme de string. Alors que maintenant, c’est rowid/photo.
Le pire, c’est que j’avais vu ça, car mon script trombinoscope en tenait compte ! Mais je n’avais pas fais gaffe que Dolibarr, lui, n’avait pas migré l’ancienne arborescence vers la nouvelle…
Voici un petit script python 2 pour mouliner ça. Une fois exécuté, si tout est ok, vous pouvez virer tous les dossier 0/ à 9/. Il faut être dans le dossier /var/lib/dolibarr_cpb/documents/adherent/.
import MySQLdb
import shutil
import os
import os.path
request = "SELECT rowid, photo FROM llx_adherent"
conn = MySQLdb.Connect(host="localhost", user="", passwd="", db='dolibarrdb', compress=1, use_unicode=True, charset="utf8")
cursor = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute(request)
adherents = cursor.fetchall()
cursor.close()
conn.close()
for adherent in adherents:
rowid = str(adherent['rowid'])
photo = adherent['photo']
src = "%s/%s/photos/%s" % (rowid[2], rowid[1], photo)
if os.path.isfile(src):
os.mkdir("%s" % rowid)
os.mkdir("%s/photos" % rowid)
os.mkdir("%s/photos/thumbs" % rowid)
dst = "%s/photos/%s" % (rowid, photo)
shutil.copy(src, dst)
src = "%s/%s/photos/thumbs/%s" % (rowid[2], rowid[1], "%s_mini.jpg" % photo[:-4])
dst = "%s/photos/thumbs/%s" % (rowid, "%s_mini.jpg" % photo[:-4])
shutil.copy(src, dst)
src = "%s/%s/photos/thumbs/%s" % (rowid[2], rowid[1], "%s_small.jpg" % photo[:-4])
dst = "%s/photos/thumbs/%s" % (rowid, "%s_small.jpg" % photo[:-4])
shutil.copy(src, dst)