HTML export: $$ITEM_FILEINDIV bug?
HTML export: $$ITEM_FILEINDIV bug?
J'ai découvert ce qui semble bien être un bug avec le champ $$ITEM_FILEINDIV lors de l'export en HTML (avec modèle individuel, of course).
Il semble que $$ITEM_FILEINDIV soit remplacé par le nom du film quand c'est possible, et par un chiffre de 8 digits quand ce ne l'est pas. J'ai par exemple plusieurs films qui portent le même nom, et très intelligemment, AMC crée un des fichiers basé sur le nom du film, et les autres sur le No. Jusque là, c'est parfait.
Le problème est que, lorsque le nom du film est remplacé par le No, le No. du fichier HTML (individuel) et celui qui est inséré dans le fichier global ne correspondent pas, ce qui bien sur provoque des erreurs 404 Not Found. Par exemple, le fichier individuel 23563810.html (correspondant à un de mes films Solaris) est référencé dans le fichier global par: <a href="23562827.html" target="rightfr">Solaris</a>. Et, bien sur, 23562827.html n'existe pas.
Je n'ai aucune idée du pourquoi de la chose. J'ai bien sur utilisé le modèle "template2" histoire d'être sur que ce n'est pas dû à un bug d'un modèle différent, mais il déconne aussi.
J'ai cherché dans ce forum, mais n'ai rien trouvé à propos de ce problème. Suis-je seul à l'avoir? Peut-être est-ce Win7 x64 qui est en cause?
Il semble que $$ITEM_FILEINDIV soit remplacé par le nom du film quand c'est possible, et par un chiffre de 8 digits quand ce ne l'est pas. J'ai par exemple plusieurs films qui portent le même nom, et très intelligemment, AMC crée un des fichiers basé sur le nom du film, et les autres sur le No. Jusque là, c'est parfait.
Le problème est que, lorsque le nom du film est remplacé par le No, le No. du fichier HTML (individuel) et celui qui est inséré dans le fichier global ne correspondent pas, ce qui bien sur provoque des erreurs 404 Not Found. Par exemple, le fichier individuel 23563810.html (correspondant à un de mes films Solaris) est référencé dans le fichier global par: <a href="23562827.html" target="rightfr">Solaris</a>. Et, bien sur, 23562827.html n'existe pas.
Je n'ai aucune idée du pourquoi de la chose. J'ai bien sur utilisé le modèle "template2" histoire d'être sur que ce n'est pas dû à un bug d'un modèle différent, mais il déconne aussi.
J'ai cherché dans ce forum, mais n'ai rien trouvé à propos de ce problème. Suis-je seul à l'avoir? Peut-être est-ce Win7 x64 qui est en cause?
Il s'agit peut-être d'une exportation remplaçant des fichiers existants, et il a mal écrasé les fichiers ?
Si c'est sous Vista/W7, il faut faire gaffe de ne pas utiliser un dossier où le programme n'a pas les droits d'écriture : préférer les dossiers genre "mes documents" aux sous-dossiers de "Program Files". Sinon le fichier est en réalité placé ailleurs (mais Windows fait comme si ce n'était pas le cas) et ça donne parfois des résultats bizarres.
Si c'est sous Vista/W7, il faut faire gaffe de ne pas utiliser un dossier où le programme n'a pas les droits d'écriture : préférer les dossiers genre "mes documents" aux sous-dossiers de "Program Files". Sinon le fichier est en réalité placé ailleurs (mais Windows fait comme si ce n'était pas le cas) et ça donne parfois des résultats bizarres.
Merci pour ta réponse, mais il ne s'agit pas de ça.
Je connais les problèmes de Win7: je suis programmeur (et belge) moi aussi. AMC est installé dans un dossier ou je place tous mes programmes portables, et où aucun problème de droit ne se pose.
J'ai exporté plusieurs fois dans un dossier sur mon bureau. (A propos, la première fois, j'ignorais qu'il fallait faire un nouveau dossier, et je me suis retrouvé avec 1000 fichiers sur mon bureau! Ne serait-il pas possible de créer un sous-directory où seraient placés les fichiers individuels, et ne placer que l'HTML global dans le dossier désigné?) Bref, chaque fois, j'ai vidé le dossier avant de recommencer les tests, et je suis sur de ce que j'avance. Il y a bien un problème. Par contre, j'ai beau y réfléchir, je ne vois pas de quoi un tel problème pourrait dépendre, à part, peut-être, un bug relatif aux processeurs 64 bits.
Comment le No. servant de filename est-il généré? S'agit-il d'un CRC, ou quelque-chose comme ça? Quels champ(s) servent-ils de base? Je suppose que le code qui génère ce No. est utilisé à 2 endroits différents dans ton code: pour le champ $$ITEM_FILEINDIV du fichier global, et pour générer le filename des fichiers individuels. Il y a forcément une différence, soit dans le code, soit dans le contexte. Peux-tu vérifier ça? Je peux bien sur essayer de t'aider. Veux-tu ma BDD? (Si oui, comment puis-je virer les images pour qu'elle ne pèse pas trop lourd?)
Je connais les problèmes de Win7: je suis programmeur (et belge) moi aussi. AMC est installé dans un dossier ou je place tous mes programmes portables, et où aucun problème de droit ne se pose.
J'ai exporté plusieurs fois dans un dossier sur mon bureau. (A propos, la première fois, j'ignorais qu'il fallait faire un nouveau dossier, et je me suis retrouvé avec 1000 fichiers sur mon bureau! Ne serait-il pas possible de créer un sous-directory où seraient placés les fichiers individuels, et ne placer que l'HTML global dans le dossier désigné?) Bref, chaque fois, j'ai vidé le dossier avant de recommencer les tests, et je suis sur de ce que j'avance. Il y a bien un problème. Par contre, j'ai beau y réfléchir, je ne vois pas de quoi un tel problème pourrait dépendre, à part, peut-être, un bug relatif aux processeurs 64 bits.
Comment le No. servant de filename est-il généré? S'agit-il d'un CRC, ou quelque-chose comme ça? Quels champ(s) servent-ils de base? Je suppose que le code qui génère ce No. est utilisé à 2 endroits différents dans ton code: pour le champ $$ITEM_FILEINDIV du fichier global, et pour générer le filename des fichiers individuels. Il y a forcément une différence, soit dans le code, soit dans le contexte. Peux-tu vérifier ça? Je peux bien sur essayer de t'aider. Veux-tu ma BDD? (Si oui, comment puis-je virer les images pour qu'elle ne pèse pas trop lourd?)
Le n° en cas de doublons est généré aléatoirement.
Tu crées bien tous les fichiers en une même étape, et non lors de deux opérations d'export séparées ?
(dans la barre d'outils de la fenêtre d'export, il y a un bouton-menu pour choisir si on génère juste les fichiers sur base du modèle en cours ou les deux (liste complètes + fichiers individuels). Pour que ces n° d'évitement de doublons fonctionne, il faut donc que l'ensemble soit généré en une fois.
Pour le fait qu'il ne crée pas de dossier, en effet c'est un truc que je devrais ajouter. L'export HTML est relativement vieux (toute première version du soft, rafistolé/arrangé au cours des versions suivantes) et mériterait une révision de fond en comble comme j'avais fait pour l'import.
Tu crées bien tous les fichiers en une même étape, et non lors de deux opérations d'export séparées ?
(dans la barre d'outils de la fenêtre d'export, il y a un bouton-menu pour choisir si on génère juste les fichiers sur base du modèle en cours ou les deux (liste complètes + fichiers individuels). Pour que ces n° d'évitement de doublons fonctionne, il faut donc que l'ensemble soit généré en une fois.
Pour le fait qu'il ne crée pas de dossier, en effet c'est un truc que je devrais ajouter. L'export HTML est relativement vieux (toute première version du soft, rafistolé/arrangé au cours des versions suivantes) et mériterait une révision de fond en comble comme j'avais fait pour l'import.
Oui, je génère les 2 étapes en même temps. Mais j'ai aussi essayé séparément, et bien sur, ça ne marche pas mieux (maintenant, je comprends pourquoi!)
Au lieu de générer des nombres aléatoires, ne serait-il pas plus sur de générer un CRC en prenant plusieurs champs comme base, et de le faire suivre du No. du film, histoire d'être sur? Ça permettrait de générer les fichiers en 2 phases séparées. Ou peut-être simplement d'ajouter un No. d'ordre après le titre, un peu comme le fait Windows lors de copies multiples d'un même fichier?
Ne te frappe pas pour le problème du sous-directory. Il suffit de savoir qu'il faut créer un directory avant d'exporter. C'est gênant seulement quand on ne le sait pas! Et je n'utilise AMC que depuis peu. Je dois donc encore un peu essuyer les plâtres! ;-)
[EDIT] Il me semble que le titre est aussi remplacé par un No. dans d'autres cas que les doublons. J'ai vu ça avec pas mal de titres, probablement ceux qui contiennent des caractères illégaux dans un filename. Et je peux dire que dans ces cas aussi, les Nos. ne correspondent pas aux filenames.
Au lieu de générer des nombres aléatoires, ne serait-il pas plus sur de générer un CRC en prenant plusieurs champs comme base, et de le faire suivre du No. du film, histoire d'être sur? Ça permettrait de générer les fichiers en 2 phases séparées. Ou peut-être simplement d'ajouter un No. d'ordre après le titre, un peu comme le fait Windows lors de copies multiples d'un même fichier?
Ne te frappe pas pour le problème du sous-directory. Il suffit de savoir qu'il faut créer un directory avant d'exporter. C'est gênant seulement quand on ne le sait pas! Et je n'utilise AMC que depuis peu. Je dois donc encore un peu essuyer les plâtres! ;-)
[EDIT] Il me semble que le titre est aussi remplacé par un No. dans d'autres cas que les doublons. J'ai vu ça avec pas mal de titres, probablement ceux qui contiennent des caractères illégaux dans un filename. Et je peux dire que dans ces cas aussi, les Nos. ne correspondent pas aux filenames.
Comme j'avais dit, il faudra que je refasse pas mal de trucs dans l'exportation, c'est du vieux code, y a des trucs mal faits.
D'ailleurs là j'ai trouvé un bug, si on modifie les modèles et qu'on les sauve en répondant "oui" à la fermeture de la fenêtre au lieu de le faire manuellement via l'icône "save", il sauve le même contenu dans les deux templates.
Il y a déjà un truc bizarre, c'est qu'il mette parfois juste un nombre. Ça doit correspondre à des films sans titre ? Ou n'ayant du moins pas de titre original ?
Les caractères interdits sont remplacés, ça ne doit pas être ça...
Tu as quelle option dans Tools -> Preferences -> Export -> liste "Individual pages..." ?
Tu as bien la version 3.5.1.2 ? (juste pour être sûr, au cas où )
D'ailleurs là j'ai trouvé un bug, si on modifie les modèles et qu'on les sauve en répondant "oui" à la fermeture de la fenêtre au lieu de le faire manuellement via l'icône "save", il sauve le même contenu dans les deux templates.
Il y a déjà un truc bizarre, c'est qu'il mette parfois juste un nombre. Ça doit correspondre à des films sans titre ? Ou n'ayant du moins pas de titre original ?
Les caractères interdits sont remplacés, ça ne doit pas être ça...
Tu as quelle option dans Tools -> Preferences -> Export -> liste "Individual pages..." ?
Tu as bien la version 3.5.1.2 ? (juste pour être sûr, au cas où )
J'ai "Movie title" comme option (enfin, plutôt "Titre du film" avec la trad. française). Je pense me rappeler que j'ai changé cette option. Je vais vérifier si ça déconne aussi avec d'autres options, et je suppose que non!
L'option Extension à Ajouter est vide. Elle sert à quoi? L'extension HTML est ajoutée automatiquement, il me semble.
Et j'ai bien le titre seul (tout en minuscules) pour la plupart des films, et un chiffre seul pour le reste, plus l'extension bien sur.
Et oui, c'est bien la v3.5.1.2.
[EDIT] Oublié de dire que je n'ai aucun film totalement sans titre, mais il y a certains films dont seul le titre original ou le titre traduit existe. Peut-être est-ce le problème?
L'option Extension à Ajouter est vide. Elle sert à quoi? L'extension HTML est ajoutée automatiquement, il me semble.
Et j'ai bien le titre seul (tout en minuscules) pour la plupart des films, et un chiffre seul pour le reste, plus l'extension bien sur.
Et oui, c'est bien la v3.5.1.2.
[EDIT] Oublié de dire que je n'ai aucun film totalement sans titre, mais il y a certains films dont seul le titre original ou le titre traduit existe. Peut-être est-ce le problème?
C'est pour si on veut forcer une extension particulière, sinon il prend la même extension que la liste principale (le fichier dont on choisit le nom au moment de l'exportation).r0lZ wrote: L'option Extension à Ajouter est vide. Elle sert à quoi? L'extension HTML est ajoutée automatiquement, il me semble.
Peut-être des films sans titre original, faudrait voir le critère pour les films posant problème.r0lZ wrote: [EDIT] Oublié de dire que je n'ai aucun film totalement sans titre, mais il y a certains films dont seul le titre original ou le titre traduit existe. Peut-être est-ce le problème?
Et si aucune explication logique ne peut être trouvée, si tu peux m'envoyer un petit catalogue de quelques films (pas besoin d'envoyer l'ensemble) reproduisant le problème, je peux voir ce qui se passe exactement dans le code.
Je ne pense pas que ce soit nécessaire. J'ai fait quelques découvertes intéressantes.
Tout d'abord, si j'utilise une autre option pour les noms de fichiers, tout se passe bien. Cela dit, je n'utilise pas le No. de catalogue pour mon classement, donc il sont séquentiels, et il n'y a donc pas de doublons possibles. Ça résous le problème pour moi, mais peut-être pas pour ceux qui utilisent l'option permettant d'utiliser plusieurs fois le même No. de catalogue. A vérifier, mais je pense que ça devrait bien fonctionner, au vu des autres tests que j'ai fait.
Avec l'option "Movie Title" (que je trouve plus pratique si on veux retrouver facilement un fichier HTMP précis), j'ai découvert qu'effectivement, seul le titre original est pris en compte. J'ai une vingtaine de films étrangers dont je ne connais que la traduction du titre, et je l'ai donc mis naturellement dans le champ "Titre Traduit", et rien dans le champ "Titre Original". C'est dans ce cas seulement que le programme génère ces chiffres de 8 digits en guise de filename.
J'ai fait l'essai avec Solaris (dont j'ai le film original russe et le remake US). J'avais logiquement mis le titre du film russe dans le champ traduit, et ça déconnait. Je l'ai mis maintenant dans le champ original, et ça fonctionne parfaitement: j'ai "solaris.html" et "solaris (2).html". En fait, le programme fait exactement ce que je suggérais de faire plus haut. Parfait! :-)
Il me semble donc qu'on peut résumer le bug comme ceci:
Si l'option est "Movie Title", alors ça déconne quand le titre original est non défini.
Il suffirait donc de prendre le titre traduit à défaut du titre original pour résoudre le problème. Et si aucun des titres n'existe, alors je propose que tu génères "untitled", "untitled (2)", etc... Ça ne devrait pas être sorcier. :-)
Il reste certainement un bug avec ce chiffre aléatoire de 8 digits, mais je suppose que si tu adoptes la méthode que je propose, le programme ne devrait plus jamais avoir à en générer.
Si tu veux une BDD de test, fais le moi savoir, mais je pense que tu as maintenant toutes les infos nécessaires pour débugger.
Tout d'abord, si j'utilise une autre option pour les noms de fichiers, tout se passe bien. Cela dit, je n'utilise pas le No. de catalogue pour mon classement, donc il sont séquentiels, et il n'y a donc pas de doublons possibles. Ça résous le problème pour moi, mais peut-être pas pour ceux qui utilisent l'option permettant d'utiliser plusieurs fois le même No. de catalogue. A vérifier, mais je pense que ça devrait bien fonctionner, au vu des autres tests que j'ai fait.
Avec l'option "Movie Title" (que je trouve plus pratique si on veux retrouver facilement un fichier HTMP précis), j'ai découvert qu'effectivement, seul le titre original est pris en compte. J'ai une vingtaine de films étrangers dont je ne connais que la traduction du titre, et je l'ai donc mis naturellement dans le champ "Titre Traduit", et rien dans le champ "Titre Original". C'est dans ce cas seulement que le programme génère ces chiffres de 8 digits en guise de filename.
J'ai fait l'essai avec Solaris (dont j'ai le film original russe et le remake US). J'avais logiquement mis le titre du film russe dans le champ traduit, et ça déconnait. Je l'ai mis maintenant dans le champ original, et ça fonctionne parfaitement: j'ai "solaris.html" et "solaris (2).html". En fait, le programme fait exactement ce que je suggérais de faire plus haut. Parfait! :-)
Il me semble donc qu'on peut résumer le bug comme ceci:
Si l'option est "Movie Title", alors ça déconne quand le titre original est non défini.
Il suffirait donc de prendre le titre traduit à défaut du titre original pour résoudre le problème. Et si aucun des titres n'existe, alors je propose que tu génères "untitled", "untitled (2)", etc... Ça ne devrait pas être sorcier. :-)
Il reste certainement un bug avec ce chiffre aléatoire de 8 digits, mais je suppose que si tu adoptes la méthode que je propose, le programme ne devrait plus jamais avoir à en générer.
Si tu veux une BDD de test, fais le moi savoir, mais je pense que tu as maintenant toutes les infos nécessaires pour débugger.
Le numéro aléatoire vient de la fonction ValidateFileName appelé avec un nom vide .En effet ta solution devrait être facile à mettre en place, je ferai ça.
Je ne sais pas d'où sort ce numéro aléatoire, ça doit être un reste d'un ancien code, dans un cas que j'ai oublié de prendre en compte. Bizarre. J'arrangerai ça à l'occasion.
J'ai corrigé le bug comme indiqué plus haut ainsi que quelques autres petits bugs (AMCU 4.0.0 [BETA]).