MrWaloo Posté(e) le 16 mars 2012 Partager Posté(e) le 16 mars 2012 (modifié) Salut, J'ai fait un script en python pour l'indexation partielle (pas une ré-indexation complète) et le nettoyage des entrées obsolètes. Il permet d'ajouter les entrées manquantes, de supprimer les entrées obsolètes et de supprimer les fichiers indexés 2 fois (et plus) par erreur. Il est compatible DSM3.2 et DSM4.0. Il fonctionne nickel chez moi, je n'avais plus besoin de lancer une re-indexation complète qui durait entre 2 et 3 semaines (!!!!) sur mon ancien DS110j. Sur le DS212+ que je possède maintenant, pas de problèmes non plus. Pré-requis variante ipkg Il faut : - installer ipkg - py26-psycopg2 : module pour se connecter à une base PostgreSQL (à installer avec ipkg) : ipkg install py26-psycopg2 Ce qui va installer toutes les dépendances automatiquement. Pré-requis variante paquet Synology Il faut installer Python (la version de Synology, pas celle de SynoCommunity) via le centre de paquets. Dans ce cas, la première ligne du script est à adapter, au lieu de : #!/opt/bin/python2.6[/code] [/color] [color=#333333]Il faut :[/color] [color=#333333] [code]#!/usr/bin/env python[/code] [/color] [color=#333333]Le reste ne change pas.[/color] [u][b]Installation[/b][/u] Le script est téléchargeable ici : . Il faut qu'il soit présent sur le NAS, l'emplacement n'a pas d'importance, l'essentiel étant de savoir le retrouver . [b][u]Utilisation[/u][/b] On peut le lancer en console (telnet ou ssh) sur le Syno : - variante ipkg : [code]python2.6 index_updater.py --help[/code] - variante Synology : [code]python index_updater.py --help[/code] pour voir les options. Il est possible de le rendre exécutable et de la lancer sans "python(2.6)". Pour une utilisation "normale", je propose d'utiliser cette option : [code]python(2.6) index_updater.py -A[/code] Pour mettre à jour un répertoire seulement (et les sous-répertoires) et pas l'ensemble des répertoires indexés, je propose d'utiliser cette option : [CODE]python(2.6) index_updater.py -A -p /volume1/photo/2012/09\ Septembre/Partouze\ du\ 12[/code] A vous de remplacer le répertoire par ce que vous souhaitez mettre à jour. Plusieurs répertoires peuvent être passés en paramètres avec autant de "-p" Pour savoir exactement ce qui est fait, il est possible de rajouter -v 2, ce qui créera un fichier index_updater.log avec le détail des actions effectuées. Afin de [b]tester d'abord[/b] ce qui sera fait il est possible de mettre l'option -t, dans ce cas, RIEN n'est modifié et en combinaison avec -v 2, tout ce qui serait fait est détaillé. [u][b]Commentaire[/b][/u] Comme dit, chez moi il fonctionne... Mais en cas d'erreur, merci de m'en tenir informé... A+ Michel Modifié le 16 septembre 2012 par MrWaloo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 17 mars 2012 Partager Posté(e) le 17 mars 2012 D'apres le log il me semble que le script prend en compte les répertoires "#recycle", extrait: 2012-03-17 17:34:42,743 - DEBUG - Directory treatment on '/volume1/music/#recycle/albums'[/CODE] 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amsonia Posté(e) le 17 mars 2012 Partager Posté(e) le 17 mars 2012 Ah je retrouve enfin le topic Alors, j'ai pris la dernière version de ton script et ai lancé avec -A -t -v 2. Ça me sort 22 Mo de log ! Il semble que le script ait voulu tout ré-indexer. Alors j'ai forcé une reindex globale via le DSM puis refait le test du script => même résultat. Après une réindeaxtion globale demandée via le DSM, le script n'aurait-il du pas me dire que tout était ok ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 17 mars 2012 Auteur Partager Posté(e) le 17 mars 2012 @CoolRaoul: OK, je filtre donc l'arborescence sous #recycle Merci pour ton retour @Amsonia: En effet, le script est dans un état second... Merci pour ta patience, je sens qu'on se rapproche, chez moi la version en cours (pas encore uploadée) fonctionne pas mal, je teste un peu plus et j'upload (j'ai fait pas mal de modif...) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 18 mars 2012 Auteur Partager Posté(e) le 18 mars 2012 Mise à jour testée et uploadée. Nickel chez moi. Bon test 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amsonia Posté(e) le 19 mars 2012 Partager Posté(e) le 19 mars 2012 Mise à jour testée et uploadée. Nickel chez moi. Bon test Bon, pour le dossier 'music' je crois qu'on est bon, bonne détection des nouveaux fichiers. Pour 'video', il a détecté les nouveaux fichiers mais a aussi voulu me re-indexer des fichiers pourtant assez vieux pour avoir été pris en compte par l'indexation du DSM. Lesdits fichiers sont soit des .ogv ou des .VOB de DVD, peut-être est-ce donc normal, peut-être que ces extensions passent mal dans l'indexation officielle. Pour 'photo' par contre, c'est toujours pas ça (chez moi du moins). Il semble que le script ait voulu encore une fois tout ré-indexer ou du moins une grande, grande partie. D'ailleurs, je viens de m'apercevoir que j'avais perdu toutes mes vignettes (gloups vu le temps pour les générer). C'est possible que cela soit lié à ton script ? Je n'ai opéré qu'en -A -t -v 2 ce soir mais j'avais fait un -A -v 2 le jour du log de 22 Mo :s 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 19 mars 2012 Auteur Partager Posté(e) le 19 mars 2012 (modifié) Si le répertoire qui contient les vignettes n'existe pas, l'indexation est re-faite, puisque ça re-génère les vignettes. Ça ne rajoute pas d'entrée dans la BD, ça re-génère juste les vignettes. Les répertoires contenant les vignettes (les fameux @eaDir) étaient mal gérés dans une version précédente, c'est sans doute le script qui les a effacés chez toi (comme chez moi d'ailleurs...). Maintenant la reconnaissance des répertoires @eaDir inutiles (à effacer) est faite différemment et fonctionne bien mieux. Quand aux fichiers vidéo qui sont indexés, il faut que j'explique la procédure de *détection* de fichiers multimédia : Le fichier '/usr/syno/etc/mimetypes.txt' contient les types MIME connus par le (DSM du) NAS, le script le lit pour pouvoir associer les extensions de fichiers au type de fichier. Si la partie avant le "/" du type doit être indexé, alors le fichier est indexé (sauf s'il l'est déjà). Ne sachant pas quels types étaient filtrés (pas indexés, ou pas indexables), je lance l'indexation sur toutes les extensions multimédia, sauf les 'm3u' que j'ai pu identifié comme non indexables. Pour les extensions indexés sur lesquels tu as un doute (je n'ai pas des fichiers de tous les types) tu peux lancer la commande : /usr/syno/pgsql/bin/psql mediaserver admin -c "select path from video where path ~* E'\.vob$';" Dans cette requete, l'extension n'est pas sensible à la casse. Remplace l'extension par ce que tu souhaites tester et dis moi STP. Chez moi les VOB sont indexés et je n'ai pas de OGV pour tester... Sinon tu peux t'économiser le "-v 2" avec "-t", c'est moins verbeux et bien plus compréhensible maintenant.Les options "-A -t" suffisent donc. (Oui, j'ai fait pas mal de modifs...) Tu peux aussi ne tester que les vidéos avec "-A -t -p /volume1/VIDEO". Ou même un sous-répertoire quelconque à tester. Modifié le 19 mars 2012 par MrWaloo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amsonia Posté(e) le 19 mars 2012 Partager Posté(e) le 19 mars 2012 Ok donc certains .VOB étaient bien indexés par l'index officiel mais pas tous, va savoir… Ta commande confirme qu'aucun .ogv n'est présent dans l'index officiel. Ok pour les @eaDir. Le problème c'est que la génération des vignettes ne s'est pas relancée ! J'ai arrêté et relancé le processus de génération, j'ai arrêté/relancé le service "Photo Station" et suis même allé jusqu'à le désinstaller puis le réinstaller mais c'est toujours pareil, je n'obtiens, dans PhotoStation, que des loaders en lieu et place des vignettes et même des photos en taille normale. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 19 mars 2012 Auteur Partager Posté(e) le 19 mars 2012 (modifié) Je n'ai pas installé ni ne connais Photo Station. Je testerai ce soir. Photo Station a sa propre BD, c'est ce que j'ai pu constater, et c'est tout ce que j'en sais. Tu peux vérifier pour une photo si elle est indexée : /usr/syno/pgsql/bin/psql mediaserver admin -c "select path from video where path = '/volume1/PHOTO/chemin/vers/une/photo';" Pour savoir si elle est dans la base multimedia. Dans le répertoire @eaDir, un répertoire avec le même nom que la photo doit exister et contenir les vignettes. Si elle n'y est pas, lance la commande : synoindex -a /volume1/PHOTO/chemin/vers/une/photo Ça va l'indexer (si elle ne l'est pas) et créer les vignettes de toutes les photos du répertoire de la photo si elles n'existent pas (j'espère être clair...). Je te suggère donc de copier un répertoire contenant des photos et d'en garder 5 pour le test, de supprimer le répertoire @eaDir et de vérifier si Photo Station affiche les photos correctement après synoindex, sinon c'est qu'il faut autre chose. edit: D'après tu n'es pas le seul à avoir des soucis avec Photo station, ça ne vient peut être pas de l'indexation. edit2: idem avec la solution, semble-t-il Modifié le 19 mars 2012 par MrWaloo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amsonia Posté(e) le 23 mars 2012 Partager Posté(e) le 23 mars 2012 J'ai trouvé une solution, ma solution, qui fonctionne pour l'instant. J'ai simplement renommé mon dossier 'PHOTO' en 'photo'. Je crois que cela a eu pour effet de non seulement vider/supprimer tous les dossiers @eaDir mais également de supprimer la bdd. Je voyais dans mon /var/log/messages que le processus de génération des vignettes n'arrivait pas/plus à ouvrir le fichier de bdd… C'est en train de regénérer les vignettes là. (en bonus, ton script ne cherche plus à toujours indexer toutes mes photos, tout roule donc) 15000+ photos dont 90% de RAW…je suis parti pour quelque jours de 100% CPU je crois :s J'en ai profité pour renommer tous mes autres dossiers partagés en minuscules. Le programme est le suivant : 1/ attendre que toutes les vignettes soient re-générées 1.1/ reconstruire l'index des fichiers du NAS ainsi que l'index du mediacenter 1.2/ passer un coup de ton script 2/ rebooter 3/ repasser un coup de ton script 4/ tester toutes les méthodes d'ajout de photo (DSM, PhotoStation depuis Poste local, PhotoStation depuis Diskstation, FTP, AFP) 5/ aller aux putes pour fêter ça 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenGamin Posté(e) le 16 avril 2012 Partager Posté(e) le 16 avril 2012 Bonjour et merci pour le script, il fonctionne très bien sur mon syno Une petite question (et je me rends compte que c'est surtout abuser de votre temps, mais bon), j'aimerais que ce script s'exécute quand j'appuie sur le bouton Usbcopy de mon syno (voir ). Cependant je n'ai pas les connaissance pour comprendre comment faire. Puisque le fichier "synousbcopy", quand je l'ouvre sous vi, c'est juste de la boullie numérique. J'ai bien compris qu'il faut demander d'exécuter la commande "python2.6 index_updater.py -A" dans le "synousbcopy", cependant je ne sais pas dans quel "langage" le faire et ne veux pas risquer de faire une erreur. Quelqu'un pourrait-il m'aider ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 19 avril 2012 Auteur Partager Posté(e) le 19 avril 2012 (modifié) Salut, Il faut que le fichier /usr/syno/bin/synousbcopy contienne ceci : #!/bin/sh /opt/bin/python2.6 /chemin/absolu/vers/le/script/index_updater.py -A Et le tour sera joué. A+ Michel Modifié le 19 avril 2012 par MrWaloo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenGamin Posté(e) le 26 avril 2012 Partager Posté(e) le 26 avril 2012 Merci pour le suivie Cependant, problème ! ça n'a pas l'air de fonctionner. J'ai renommé l'ancien synousbcopy en .sav. Créé un nouveau avec les 2 lignes de codes (en mettant bien le chemin absolu vers le script) puis fait un chmod +x. mais lorsque j'appuie sur le bouton usbcopy, le script ne semble pas se lancer, je le suppose car même en -v 2 je n'ai pas de .log. Une idée ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 30 avril 2012 Auteur Partager Posté(e) le 30 avril 2012 Re, désolé pour le retard... Quand tu lances le script /usr/syno/bin/synousbcopy directement, une erreur est retournée ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenGamin Posté(e) le 30 avril 2012 Partager Posté(e) le 30 avril 2012 (modifié) Re, désolé pour le retard... Quand tu lances le script /usr/syno/bin/synousbcopy directement, une erreur est retournée ? Il se lance et pas d'erreur. Edit, je précise un peu plus, le synousbcopy ressemble à ça : #!/bin/sh echo A > /dev/ttyS1 /opt/bin/python2.6 /chemin/absolu/vers/le/script/index_updater.py -A echo B > /dev/ttyS1 le proprio est root; le droits, le même que l'ancien. Le lancement manuel fonctionne, echo A fait clignoter le voyant puis echo B l'éteint quand c'est terminé. J'ai le log si je mets -V 2. En revanche, en appuyant sur le bouton, rien ne se passe. Modifié le 30 avril 2012 par BenGamin 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenGamin Posté(e) le 30 avril 2012 Partager Posté(e) le 30 avril 2012 Bon, en faite c'était tout simple ... bah ... fallait brancher une clé usb pour que ça se lance ... Mais ça m'arrange pas ... parce que il faut une clé branché... du coup je me demandais s'il y avait moyen de faire croire qu'il y en a une même s'il n'y a rien de branché. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 8 mai 2012 Auteur Partager Posté(e) le 8 mai 2012 Je ne sais pas te répondre pour ça... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lapin Posté(e) le 22 mai 2012 Partager Posté(e) le 22 mai 2012 (modifié) Bonjour MrWaloo, Tout d'abord bravo pour ton travail; ton script Python est vraiment excellent !! Cela me fait comprendre que j'ai encore bcq à apprendre sur Python. Sinon, trêve de flatterie . J'ai 2 questions concernant le comportement de la commande synoindex: 1- Si la commande est exécuté manuellement 2x sur le même répertoire, est-ce que les fichiers vont être indexés 2x? ou la commande est assez intelligente pour voir que l’indexation existe déjà et ne va donc pas ajouter de nouvelle entrée dans le DB. 2- Si j'ai bien compris, seul les types définis dans le fichier /usr/syno/etc/mimetypes.txt sont indexés? Par avance, merci !! Modifié le 22 mai 2012 par Lapin 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bud77 Posté(e) le 23 mai 2012 Partager Posté(e) le 23 mai 2012 1) non, il va vérifier si l'entrée existe déjà avant de l'ajouter 2) je sais po 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lapin Posté(e) le 23 mai 2012 Partager Posté(e) le 23 mai 2012 Merci bud77 !! C'était surtout la 1er question qui m'importait. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 11 juin 2012 Auteur Partager Posté(e) le 11 juin 2012 Salut, Désolé pour le temps de réponse, je consulte pas le site souvent... 1) La commande d'ajout sera lancée si le fichier n'est pas déjà réellement indexé, par contre je ne vérifie pas le fichier temporaire qui contient la queue des fichiers en cours d'indexage. --> Ce qui veut dire que si le script est lancé deux fois d'affilé, l'indexage sera fait deux fois... 2) Oui, sachant que les m3u sont spécifiquement ignorés, puisque non pris en charge. A+ Michel 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lapin Posté(e) le 11 juin 2012 Partager Posté(e) le 11 juin 2012 Merci pour tes réponses! Au faite comment as-tu fait un aussi jolie lien vers le téléchargement de ton ficher?? J'ai créé un tuto et j'aimerais pouvoir faire comme toi! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MrWaloo Posté(e) le 12 juin 2012 Auteur Partager Posté(e) le 12 juin 2012 (modifié) Si j'ai bonne mémoire, dans la section "Téléchargements", j'ai uploadé mon fichier et ensuite, j'ai inséré un lien vers ce fichier via le bouton "Mes médias" présent dans l'éditeur de post. edit: 1) La commande d'ajout sera lancée si le fichier n'est pas déjà réellement indexé, par contre je ne vérifie pas le fichier temporaire qui contient la queue des fichiers en cours d'indexage. --> Ce qui veut dire que si le script est lancé deux fois d'affilé, l'indexage sera fait deux fois... En fait les miniatures sont recréées, mais l'entrée dans la BD n'existe qu'une fois. Modifié le 12 juin 2012 par MrWaloo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lapin Posté(e) le 12 juin 2012 Partager Posté(e) le 12 juin 2012 Merci!! Effectivement le bouton "My Media" est ce que je recherchais. Et merci aussi pour la précision concernant l'indexage. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Minimouse Posté(e) le 24 août 2012 Partager Posté(e) le 24 août 2012 Bonjour, Merci pour ce script génial qui semble marcher au poil. J'aimerais toutefois n'utiliser que pour indexer le partage 'video'. (Je souhaite que SABnzbd lance ce script après chaque téléchargement dans le dossier video.) J'ai donc essayé de commenter les lignes suivantes mais ça n'a pas fonctionné : self.configuration = { # 'music': { # 'path': '', # to be determined # 'index_mime': {'audio': True, 'image': False, 'video': False} # }, # 'photo': { # 'path': '', # to be determined # 'index_mime': {'audio': False, 'image': True, 'video': False} # }, 'video': { 'path': '', # to be determined 'index_mime': {'audio': False, 'image': False, 'video': True} }, } Il faut peut-etre aussi modifier la constate : MIME_CORRESPONDANCE = {'audio': 'music', 'image': 'photo', 'video': 'video'} Il serait sympa que le script possède une option pour définir les partages à indexer afin de pouvoir en exclure certains. Si quelqu'un peut m'aider là-dessus, parce que je suis un peu à court d'idée... Mini. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.