Aller au contenu

ARCHIVE FORUM FILMOTECH

)) Retour au nouveau forum ((

INFORMATION IMPORTANTE

Suite à la mise à jour à venir du site (mise en ligne prévue avant la fin du mois), ces forums seront bientôt archivés et il ne sera plus possible d'y contribuer.
Vous devrez vous inscrire sur les nouveaux forums quand ils seront disponibles. Les conversations en cours devront continuer dans le nouveau forum.

Désolé pour ce changement

Vérification de la base de données pour les liens films invalides

Bonsoir et bonnes fêtes !

Je crois avoir bien fouillé le forum, mais sans trouver une fonctionnalité qui me semble importante.
Comment est-il possible de vérifier la base de données en filtrant sur les films sans support, donc dont les liens sont invalides ?

Je m'explique :
si des films sont supprimés dans le dossier de scan, ils restent dispo dans la base de données,
sans qu'il soit possible de filtrer facilement ces manquants (sauf à les faire tous défiler et tenter de les lire ...!)

Un script peut être ?

Merci ! :-)

Réponses

  • OocieniOocieni Member
    Modifié (janvier 2022)
    avec python, on peut parcourir la base de Filmotech (sqlite) et pour chaque film tester si le fichier existe
  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    Bonjour,
    En attendant, le plus simple, enfin..., qd on supprime un film du ou des répertoires de scan, est de le supprimer dans la foulée de la base.
    (Un script avec ScriptEdit, ça ne serait pas adapté).
    Maintenant la parole est à Pascal  ;)@Filmotech ?
  • Merci pour le retour :-)
    un mode d'emploi pour faire ce type de vérif avec python sous Mac ?
    Meilleurs voeux à tout le monde !
  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    @matmp
    Je me permets d'intervenir.
    Python est un langage de programmation, que je ne connaissais pas; mais du fait de ta question et la réponse d'oocieni, je me suis dit : "tiens, je vais jeter un oeil" (sur internet).
    Ça ressemble pas vraiment à ce que j'utilise dans Filmotech ScriptEdit  (assez proche de VB) !
    En plus il faut avoir quelques notions de SQL (on travaille sur des bases qslite), là ça va.
    Bon, après une certaine "acclimatation", je pense commencer à voir ce que pourrait être l'écriture d'un script Python qui supprimerait les fiches dont l'adresse est obsolète.
    Mais il est clair que le script ne peut être intégrer à Filmotech (© Pascal); il faudrait travailler sur une sauvegarde de la base, puis la restaurer.
    Il est plus simple de faire un nouveau scan disque sur les répertoires que l'on souhaite !

    Meilleurs voeux également !

    PS : utilisation de Python sur mac : https://docs.python.org/fr/3/using/mac.html
  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    Bon, le script fonctionne, mais je ne suis pas sur que ça ne va pas plus vite de faire un nouveau scan, plutôt qu'une sauvegarde, appliquer le script (en le "custumisant" sur le bon fichier; et il faut avoir une version de Python opétationnelle), puis de restaurer le data modifié.
    Mais c'est bien de se mettre à un langage orienté objet...
  • OocieniOocieni Member
    Modifié (janvier 2022)
    Bonsoir, tu vas partager ton script ? Tu peux travailler directement sur la base avec python même avec filmotech ouvert afin de mettre à jour celle-ci. J'ai un script pour compléter la base de données en auto et ça fonctionne bien.
  • Le mieux serait que Pascal complète son menu "Films/ Mettre à jour les liens" .... (@Filmotech) (Pascal si tu as l'envie et le temps...)
    @Oocieni, C'est le script de travail commenté ; effectivement on peut travailler sur la base originelle plutôt que sur une sauvegarde (c'est assez facile d'avoir le chemin sur mac).
    Ceci étant, je débute en Python, donc tu auras sans doute des idées pour voir comment on peut le modifier et l'utiliser au mieux.
    https://drive.google.com/file/d/1YAUzayg5SRfPAqPwnsQV6hMmy6AOSrpN/view?usp=sharing
    NB : je suis naturellement intéressé par ton script...
  • @Oocieni , (j'ai réécrit un peu le script, tjrs à la même adresse ci-dessus)
    Je commence à y voir plus clair avec cursor, listes et tuples (et avec IDLE) , ouf...
    Par contre le Delete avec id paramétré et de type str, alors là si tu as une explication !? (je l'ai trouvé en tâtonnant, et apparemment c'est la seule syntaxe qui marche...).


    @matmp,
    En attendant, si je sais si oocieni fera une belle interface ?, tu peux tester le script de manière assez simple.
    Il suffit d'installer la dernière version de Python : https://www.python.org , ça prend peu de place (il y a 2 appli IDLE et Python Launcher, mais c'est surtout IDLE qui sert).
    Le script est un fichier .py (c'est un fichier .txt dans lequel on remplace txt par py).
    Il s'ouvre par défaut avec IDLE (on peut aussi l'ouvrir avec TextEdit).
    Une fois ouvert (avec IDLE), il suffit de faire Run-Run Module pour l'exécuter.
    Avant il faut remplacer chemin par l'adresse de ta base (3e ligne du script)

    On a le chemin de la base dans les préférences de Filmotech, mais on ne peut pas le copier, donc il faut aller dans le bon dossier,
    sur le nom de fichier : option - Menu contextuel, et là on peut copier le chemin.
    En principe ça doit aussi fonctionner sur PC...
  • CarlBernard a dit :
    @Oocieni , (j'ai réécrit un peu le script, tjrs à la même adresse ci-dessus)
    Je commence à y voir plus clair avec cursor, listes et tuples (et avec IDLE) , ouf...
    Par contre le Delete avec id paramétré et de type str, alors là si tu as une explication !? (je l'ai trouvé en tâtonnant, et apparemment c'est la seule syntaxe qui marche...).

    Je crois qu'il faut un paramètre du type "tuple", une sorte de liste si tu remplace n par
     (row[0],) 
    ca devrait fonctionner

    @matmp,
    En attendant, si je sais si oocieni fera une belle interface ?, tu peux tester le script de manière assez simple.
    Il suffit d'installer la dernière version de Python : https://www.python.org , ça prend peu de place (il y a 2 appli IDLE et Python Launcher, mais c'est surtout IDLE qui sert).
    Le script est un fichier .py (c'est un fichier .txt dans lequel on remplace txt par py).
    Il s'ouvre par défaut avec IDLE (on peut aussi l'ouvrir avec TextEdit).
    Une fois ouvert (avec IDLE), il suffit de faire Run-Run Module pour l'exécuter.
    Avant il faut remplacer chemin par l'adresse de ta base (3e ligne du script)

    On a le chemin de la base dans les préférences de Filmotech, mais on ne peut pas le copier, donc il faut aller dans le bon dossier,
    sur le nom de fichier : option - Menu contextuel, et là on peut copier le chemin.
    En principe ça doit aussi fonctionner sur PC...
    Euh, j'ai pas vraiment envie de faire une interface en Python, désolé, je suis pas fan.
  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    Oocieni a dit :
    CarlBernard a dit :
    @Oocieni , (j'ai réécrit un peu le script, tjrs à la même adresse ci-dessus)
    Je commence à y voir plus clair avec cursor, listes et tuples (et avec IDLE) , ouf...
    Par contre le Delete avec id paramétré et de type str, alors là si tu as une explication !? (je l'ai trouvé en tâtonnant, et apparemment c'est la seule syntaxe qui marche...).

    Je crois qu'il faut un paramètre du type "tuple", une sorte de liste si tu remplace n par
     (row[0],) 
    ca devrait fonctionner
    Oui le tuple fonctionne, merci. Je dois dire que ne vois pas vraiment pourquoi, mais...
    Euh, j'ai pas vraiment envie de faire une interface en Python, désolé, je suis pas fan.
    OK,

    @matmp,
    Au fait, pour exécuter le script .py ; menu contextuel : ouvrir avec : python launcher --> exécution immédiate
    (ne pas oublier d'avoir le bon chemin vers ta base dans le script !)
  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    Rappel : Pour une base faite avec "scan disque", le script verif.py, vérifie si chaque "lien vers le film" (adresse) pointe bien vers une fichier existant.
    Sinon, la fiche courante est supprimée de la liste.
    J'ai un peu compacté l'affichage des résultats ; dernière version du script (tjrs à la même adresse) : https://drive.google.com/file/d/1YAUzayg5SRfPAqPwnsQV6hMmy6AOSrpN/view?usp=sharing
    Ex (avec IDLE) (Python version 3), utilisation de la base d'origine (il vaut mieux avoir fait une sauvegarde au préalable).

  • CarlBernardCarlBernard Member
    Modifié (janvier 2022)
    maj verif : tests habituels des erreurs
  • Puisque python permet de gérer les requêtes SQL, on peut faire un script pour harmoniser les séparateurs dans genres, pays ou langues (on a selon les scripts Filmotech soit "/" soit "," comme séparateur).
Connectez-vous ou Inscrivez-vous pour répondre.

© 2004-2023 Pascal PLUCHON

Retour au nouveau forum