Roromis / Lalf-Forumactif

Script permettant de convertir un forum hébergé par Forumactif en forum phpbb.
https://roromis.github.io/Lalf-Forumactif/
GNU General Public License v3.0
21 stars 13 forks source link

Index out of range first_post = self.children[0].children[0] in topics.py #73

Open shadowshd opened 5 years ago

shadowshd commented 5 years ago

Bonjour,

D'abord merci à Roromis et aux contributeurs de ce projet ;)

J'utilise le fork de ChrysMa.

Tout se déroule bien jusqu'à l'importation des forums, juste après l'importation des avatars.

Le message d'erreur suivant s'affiche :

Traceback (most recent call last):
  File "./lalf.py", line 22, in <module>
    main()
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/__init__.py", line 77, in main
    bb.dump(sqlfile)
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  [Previous line repeated 1 more time]
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/node.py", line 146, in dump
    self._dump_(sqlfile)
  File "/Users/Alain/Downloads/phpbb/Lalf-Forumactif-ChrysMa/lalf/topics.py", line 77, in _dump_
    first_post = self.children[0].children[0]
IndexError: list index out of range

Cela fait 2 jours que je relance le script après avoir lu, relu et appliqué tous les conseils donnés ici, sans succès.

Le debug.log : debug.log

Merci pour toute aide ;)

Snowill commented 5 years ago

Je n'apporte pas de solution mais je rencontre exactement le même problème aujourd'hui, j'espère que quelqu'un qui s'y connait traîne encore dans les parages...

imkh commented 5 years ago

Même erreur de mon côté et malgré le fait que la version de mon thème custom est bien phpBB2 (comme demandé dans la documentation), j'ai réussi à la régler en utilisant un thème temporaire.

Renkineko commented 4 years ago

OK, je rencontre le même problème, je viens donc poster mon analyse. Demain j'essayerai de faire des tests complémentaires et de régler le souci, mais ça peut peut-être aider ChrysMa qui a l'air d'avoir repris le projet :

Il semblerait que certains sujets, sans que je n'arrive encore à définir comment ni pourquoi, n'arrivent pas à rediriger vers la bonne page lorsqu'on accède à l'url prévue par Lalf :

Il essaye d'accéder à l'url avec t<identifiant topic>p<num page>-a (exemple : http://mon.forumactif.com/t1057p0-a pour la page 0 du topic 1057).

Après avoir fait quelques tests de mon côté, pour un même forum, certains arrivent à se rediriger et d'autres non :man_shrugging:

On remarque d'ailleurs dans les logs qu'il n'y a que

INFO     : Récupération du sujet x
DEBUG    : Récupération des messages du sujet x (page 0)

Alors que sur une récupération OK, il y a :

INFO     : Récupération du sujet y
DEBUG    : Récupération des messages du sujet y (page 0)
INFO     : Récupération du message a (sujet y)
INFO     : Récupération du message b (sujet y)
INFO     : Récupération du message c (sujet y)

Dans tous les cas, la solution serait peut-être de réussir à slugifier le titre du sujet (je ne sais pas si c'est possible de façon efficace, genre est-ce que le slug change bien avec le titre du post initial ou pas, etc etc). Sinon, il faut changer la façon dont on récupère le lien d'un sujet pour ne pas intégrer juste l'identifiant mais aussi stocker toute url d'accès...

Je vous tiens au courant demain si j'arrive à avoir plus d'info et après avoir fait des tests complémentaires de mon côté.

Renkineko commented 4 years ago

Très bien, pour ceux qui ont toujours le problème et n'ont pas abandonné, j'ai fait un commit (comme je ne suis pas sûr qu'il ne conflicte pas avec celui de ChrysMa, je préfère ne pas le faire sur son repo, faudrait que je le teste après avoir pull ses données, mais là j'ai juste pas le temps ni la tête à ça :) ).

Il est disponible sur mon fork ( https://github.com/Renkineko/Lalf-Forumactif ). Il nécessite par contre de supprimer le fichier save.pickle et de relancer lalf. Avec cela, de nouveaux logs seront disponibles : s'il y a une erreur de format dans l'un de vos sujets, le programme ne plante plus et vous prévient du message erronné ; si vous avez un sujet sans premier post (ce n'est pas possible normalement), il vous l'indique aussi en warning pour vous indiquer que le sujet est irrécupérable en l'état. La récupération des sujets est un peu plus fiable (évite certaines redirections qui ne fonctionnent pas je pense).

Voilààààà, si vous avez toujours un problème n'hésitez pas à me contacter. Et ChrysMa, si tu veux qu'on voit pour synchroniser les deux commits, ça peut être intéressant de tout centraliser sur un projet qui repart d'équerre.

En espérant que ça aidera.

shadowshd commented 4 years ago

Bonjour,

Merci Renkineko, je suis actuellement en train de tester ;)

Pour info si votre forum dispose d'une section au format Petites Annonces, le script échouera avec cette erreur :

KeyError: 'f55'
INFO     : Lalf 3.0a0
DEBUG    : OS : darwin
INFO     : Récupération du forum f18
DEBUG    : Connection au forum
DEBUG    : Récupération du sid
DEBUG    : Récupération du tid
INFO     : Sauvegarde de l'état courant.
ERROR    : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (KeyError('f55')), créez un rapport de bug à l'adresse suivante SI ELLE N'A PAS ENCORE ÉTÉ SIGNALÉE :
https://github.com/Roromis/Lalf-Forumactif/issues
Traceback (most recent call last):
  File "/Users/Alain/Downloads//Lalf-Forumactif-master/lalf/__init__.py", line 58, in main
    bb.export()
  File "/Users/Alain/Downloads//Lalf-Forumactif-master/lalf/node.py", line 116, in export
    child.export()
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 116, in export
    child.export()
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 112, in export
    self._export_()
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/forums.py", line 97, in _export_
    self.forums_node.get_subforums_infos(response.text)
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/forums.py", line 262, in get_subforums_infos
    self.forums[oldid].status = 1 if "verrouillé" in alt else 0

Pour contourner le problème, j'ai modifié la ligne 253 du fichier lalf/forums.py :

if not match:
      continue

Par :

if not match or "f55": #f55 = Petites annonces.
      continue

Dans mon cas le forum numéro 55 correspondant à la section Petites Annonces.

shadowshd commented 4 years ago

Bonjour,

Quelques news sur le sujet : ça avance plutôt pas mal, la jauge de progression affiche enfin 100%, mais j'ai une nouvelle erreur que j'ai du mal à saisir (est-elle liée à mon installation Python sur macOS Catalina ?) :

WARNING  : La propriété "border" du bbcode [table] n'est pas supportée.                                                                                        
[########################################################################################################################################################] 100%Traceback (most recent call last):
  File "./lalf.py", line 22, in <module>
    main()
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/__init__.py", line 77, in main
    bb.dump(sqlfile)
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 149, in dump
    child.dump(sqlfile)
  [Previous line repeated 3 more times]
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/node.py", line 146, in dump
    self._dump_(sqlfile)
  File "/Users/Alain/Downloads/Lalf-Forumactif-master/lalf/posts.py", line 67, in _dump_
    parser.feed(self.text)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/html/parser.py", line 111, in feed
    self.goahead(0)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/html/parser.py", line 171, in goahead
    k = self.parse_starttag(i)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/html/parser.py", line 345, in parse_starttag
    self.handle_starttag(tag, attrs)
  File "/Users/Alain/Downloads/Pinball/Lalf-Forumactif-master/lalf/htmltobbcode.py", line 266, in handle_starttag
    node = handler(tag, attrs)
  File "/Users/Alain/Downloads/Pinball/Lalf-Forumactif-master/lalf/htmltobbcode.py", line 528, in _ol_handler
    return InlineTagNode("list=", attrs["type"], closing_tag="list:o")
KeyError: 'type'

Merci !