Prime Video
Il s'agit d'un lien d'affiliation avec le site marchand.
Cela vous permet d’aider Filmotech.fr sans que cela vous coûte plus cher.
Merci de votre aide !

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
    2 janv. modifié
    avec python, on peut parcourir la base de Filmotech (sqlite) et pour chaque film tester si le fichier existe
  • CarlBernardCarlBernard Member
    2 janv. modifié
    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 ?
  • matmpmatmp Member
    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
    17 janv. modifié
    @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
    17 janv. modifié
    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
    17 janv. modifié
    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...
  • OocieniOocieni Member
    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
    20 janv. modifié
    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 !)
Connectez-vous ou Inscrivez-vous pour répondre.

Sites Partenaires : | PLUCHON.COM | Xojo | Hébergement IONOS (1&1) | Price Minister | iGraal |

Informations légales | Contact

© 2004-2019 Pascal PLUCHON