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

Problème avec les Membres #40

Closed EspritOrgue closed 8 years ago

EspritOrgue commented 9 years ago

Bonjour,

J'utilise le code que j'ai trouvé récemment pour prendre les infos sur un forum qui a déjà quelques annnées derrière lui et donc pas mal de membres et de messages.

La partie pour les catégorie est nickel, mais le code coince aux membre avec cette erreur:

Traceback (most recent call last):
File "C:\Users\amir\Desktop\RecuperationNS\LalfVersMatthieu\Lalf-Forumactif-master\forumactif-phpbb.py", line 564, in <module>
    etapes[i]()
  File "C:\Users\amir\Desktop\RecuperationNS\LalfVersMatthieu\Lalf-Forumactif-master\forumactif-phpbb.py", line 318, in get_users
    raise RuntimeError('Forum user page in "import proteced" mode - cannot process users...')
RuntimeError: Forum user page in "import proteced" mode - cannot process users...

Toutefois, j'ai trouvé une autre solution, qui fonctionne, mais j'aimerai continuer à utiliser ce code pour récupérer catégorie et posts/sujets, bbcodes, etc.

Mais ne m'y connaissant pas vraiment en python... Y a-t-il moyen de virer la partie membre et passer directement à la suivante?

Merci d'avance.

Supermanu commented 9 years ago

Salut,

Je te conseille d'utiliser la version 3 qui corrige un nombre important de bugs dont quelques problèmes au niveau des membres.

EspritOrgue commented 9 years ago

Merci pour la réponse rapide. :)

La version 3 ne fonctionne pas, soit elle me dit qu'il y a un souci avec le MdP à cause de caractères spéciaux, soit ça ne reconnaît pas une varable: nb_topics (ou un de ces derivées).

C'est la première version que j'ai essayé!

Supermanu commented 9 years ago

Tu utilises bien python3 ?

EspritOrgue commented 9 years ago

Yep, j'ai bien Python 3 avec pip.

Supermanu commented 9 years ago

Un workaround déguelasse pour passer l'étape des membres (pour la version 2): Tu remplaces la ligne

etapes = [get_stats, get_forums, get_topics, get_users, get_smileys, get_posts]

par

etapes = [get_stats, get_forums, get_topics, get_smileys, get_posts]

Je garantis rien mais je crois que ça devrait fonctionner :p

EspritOrgue commented 9 years ago

Ça a bel et bien sauté l'étape des membres, merci. ^^

Toutefois, maintenant ça foire pour les posts avec cette erreur:

Traceback (most recent call last):
  File "C:\Users\amir\Desktop\RecuperationNS\LalfVersMatthieu\Lalf-Forumactif-master\forumactif-phpbb.py", line 564, in <module>
    etapes[i]()
  File "C:\Users\amir\Desktop\RecuperationNS\LalfVersMatthieu\Lalf-Forumactif-master\forumactif-phpbb.py", line 485, in get_posts
    if month[date[3]] == 2:
KeyError: u'2014

Problèmes sur problèmes. D:

Edit: Pardon, c'est ma faute, j'ai fait sauter deux variables au lieu d'une sans y prêter attention.

Nouvelles erreurs, cette fois-ci, je ne vois pas d'où vient le souci:

Traceback (most recent call last):
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\forumactif-phpbb.py", line 436, in <module>
    etapes[i]()
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\forumactif-phpbb.py", line 337, in get_posts
    d = PyQuery(url=config.rooturl + '/t' + str(topic['id']) + '-a', opener=fa_opener)
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\pyquery\pyquery.py", line 170, in __init__
    html = opener(url, **kwargs)
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\forumactif-phpbb.py", line 119, in fa_opener
    if "charset" in resp.headers['content-type']:
  File "C:\Python27\lib\rfc822.py", line 388, in __getitem__
    return self.dict[name.lower()]
KeyError: 'content-type'
Traceback (most recent call last):
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\forumactif-phpbb.py", line 436, in <module>
    etapes[i]()
  File "C:\Users\amir\Desktop\RecuperationNS\Lalf-Forumactif-master\forumactif-phpbb.py", line 371, in get_posts
    timestamp = time.mktime(datetime.datetime(int(date[3]),month[date[2]],int(date[1]),int(date[5].split(":")[0]),int(date[5].split(":")[1])).timetuple())
ValueError: invalid literal for int() with base 10: 'Localisation'
Supermanu commented 9 years ago

J'ai pas d'idée comme ça… Je peux juste te conseiller de regarder plus en détail le code et d'essayer de comprendre l'erreur par toi même. Le python n'est vraiment pas difficile, surtout si tu as quelques notions de programmation. Si tu arrives à trouver une solution, n'hésite pas à partager. Merci !

EspritOrgue commented 9 years ago

Y a un défaut dans la structure. Ça veut prendre la date, mais ça va chercher les infos du profil du posteur.

Et comme c'est un int = bug. Mais ça bug aussi, car ça met un int sur les dates. (Hier, Aujourd'hui)

Pourtant, j'ai respecté le format demandé dans les pre requis.

Je cherche encore, je vous tiendrai au courant.

Supermanu commented 9 years ago

Juste pour être sûr, c'est quelle version que tu utilises là ? Si c'est la deux, alors c'est python2 que tu dois utiliser. Je n'avais aucun problème avec la version 3, pour le problème d'encodage vérifie bien que tu enregistres ton fichier avec ton mdp en utf8. Pour la version 2, si ton forum est relativement gros, tu risques de devoir relancer le script plusieurs fois.

D'ailleurs je te conseillerai plutôt de débugger la version 3 qui corrige les problèmes de reconnexion. Il y a également un pull request en attente qui doit sûrement régler quelques bugs. Je vais essayer de contacter l'auteur, pour voir ce qu'il en est.

EspritOrgue commented 9 years ago

J'utilisais la version 2 avec Python 2.7, mais ça n'a donné aucun résultat. Ça me met qu'il y a une erreur d'encodage quelques parts.

J'ai essayé d'installer la version 3, en désinstallant Python 2.7 et en installant 3.4.2, j'ai pu dl lalf via pip et créer le fichier config en le plaçant sur le desktop avec gocr049.exe, mais je ne comprends pas la suite du tuto. X.x

Roromis commented 8 years ago

Je ferme ce rapport de bug qui est à propos d'une ancienne version.

Si tu veux toujours exporter ton forum, essaye de suivre la nouvelle documentation.