Open rellik777 opened 4 years ago
Un petit avancement, en désactivant l'export des émoticones, j'arrive déjà à exporter les membres du forum avec quelques déconnexion mais c'est normal :
export_smilies=false
INFO : Lalf 3.0a0
DEBUG : OS : win32
INFO : Récupération des statistiques
DEBUG : Connection au forum
DEBUG : Récupération du sid
DEBUG : Récupération du tid
DEBUG : Messages : 265864
DEBUG : Sujets : 15832
DEBUG : Membres : 1044
INFO : Récupération des émoticones
DEBUG : Récupération des émoticones (page 0)
INFO : Récupération des membres
DEBUG : Récupération des membres (page 0)
INFO : Récupération du membre 1
INFO : Récupération du membre 4
INFO : Récupération du membre 6
INFO : Récupération du membre 7
Mais après, pas de récupération des groupes ni de récupération des forums :
INFO : Récupération des groupes
INFO : Récupération des forums
INFO : Sauvegarde de l'état courant.
ERROR : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (KeyError('f85',)), 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 "c:\miniconda\lib\site-packages\lalf\__init__.py", line 58, in main
bb.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 116, in export
child.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 112, in export
self._export_()
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 238, in _export_
self.get_subforums_infos(response.text)
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 262, in get_subforums_infos
self.forums[oldid].status = 1 if "verrouillé" in alt else 0
KeyError: 'f85'
A voir à quoi ça correspond.
Bon j'avance un peu, mais pas beaucoup, à première l'erreur précédente était due une rubrique petites annonces qui ne pouvait être traitée par lalf. Du coup suppression de la rubrique, j'arrive à ça maintenant :
Récupération des forums
Sauvegarde de l'état courant.
ERROR : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (ValueError("invalid literal for int() with base 10: ''",)), 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 "c:\miniconda\lib\site-packages\lalf\__init__.py", line 58, in main
bb.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 116, in export
child.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 112, in export
self._export_()
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 238, in _export_
self.get_subforums_infos(response.text)
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 270, in get_subforums_infos
self.forums[oldid].num_topics = int(row("td").eq(2).text())
ValueError: invalid literal for int() with base 10: ''
D'après Roromis commented on 15 Apr 2016
Il y a beaucoup d'options pour configurer la page d'accueil, je ne devrais probablement pas l'utiliser pour exporter les forums.... J'essayerai de corriger ça dès que possible. En attendant, si vous avez le même problème, dans le panneau d'administration, ouvrez l'onglet Affichage, cliquez sur le lien Page d'accueil > Structure et hiérarchie dans le menu à gauche, puis sous Séparer les catégories sur l'index, sélectionnez Moyen.
A tester
Bon, l'astuce de Roromis n'a pas fonctionné,
ERROR : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (ValueError('invalid literal for int() with base 10: "Ce site vous offre la possibilité d\'organiser une pêche entre copains, pour cela contactez l\'administrateur afin qu\'il vous donne accès à l\'écriture. Modalités sur demande.\\ncontact@extreme-peche-au-',)), 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 "c:\miniconda\lib\site-packages\lalf\__init__.py", line 58, in main
bb.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 116, in export
child.export()
File "c:\miniconda\lib\site-packages\lalf\node.py", line 112, in export
self._export_()
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 238, in _export_
self.get_subforums_infos(response.text)
File "c:\miniconda\lib\site-packages\lalf\forums.py", line 270, in get_subforums_infos
self.forums[oldid].num_topics = int(row("td").eq(2).text())
ValueError: invalid literal for int() with base 10: "rubrique à accès restreint, contactez l'administrateur afin qu'il vous donne accès à l'écriture. Modalités sur demande.\nemail@contact.com
Je vais tenté de balancer toutes les sous rubriques en rubriques classiques voir ce que ça va donner.
J'avance à tâtons mais j'avance quand même. Alors il semblerait (j'ai bien écrit il semblerait) que le script n'arrive pas à traiter les sous-forums, si je passe les sous-forums en forum classique par catégorie, le script a l'air d'aller un peu plus loin, si je les repasse en sous-forum le script ne va pas plus loin. Je vais faire une tentative en configurant mon forum sans sous-forum d'ici quelques jours et je vous donnerai le résultat.
Encore une petite avancée ce matin ;). J'ai remarqué que le script n'arrivait pas à traiter les forums avec des descriptions exotiques, donc pour réussir l'export les catégories et les forums doivent avoir des descriptions simples voir pas de description du tout ça facilitera encore plus l'export.
Petites nouvelles du jour. A première vue l'export des catégories et messages du forum c'est bien déroulé, j'ai obtenu un save.pickle de plusieurs centaines de Mo et en le consultant avec notepad on constate qu'il y a du contenu qui correspond au contenu du FA. Mais maintenant ça galère sur l'export des emails des membres :
INFO : L'adresse email de l'utilisateur pseudomembre2048 n'a pas pu être exportée.
INFO : Récupération du membre 2048
INFO : L'adresse email de l'utilisateur pseudomembre n'a pas pu être exportée.
INFO : Récupération du membre 2048
INFO : L'adresse email de l'utilisateur pseudomembre n'a pas pu être exportée.
INFO : L'adresse email de l'utilisateur pseudomembre1 n'a pas pu être exportée.
INFO : Récupération du membre 1
DEBUG : Connection au forum
DEBUG : Récupération du sid
DEBUG : Récupération du tid
INFO : L'adresse email de l'utilisateur pseudomembre1 n'a pas pu être exportée.
INFO : Récupération du membre 1
INFO : L'adresse email de l'utilisateur pseudomembre1 n'a pas pu être exportée.
INFO : L'adresse email de l'utilisateur pseudomembre2050 n'a pas pu être exportée.
INFO : Récupération du membre 2050
INFO : L'adresse email de l'utilisateur pseudomembre2050 n'a pas pu être exportée.
Mais comme ça le fait sur toutes les tentatives d'export d'adresse email, je suis bloqué par FA et je ne vois plus les emails des membres, je me retrouve avec des moitiés d'adresse email genre ; emaildumembre*****@hotmail.fr du coup impossible de saisir les adresses emails correctement. Je vais essayer de contourner le blocage de FA en créant un fichier qui recense les emails des membres afin de limiter les recherches sur FA et voir ce que ça va donner, ou bien essayer de passer par un autre compte administrateur. Mais ça ne sera pas pour aujourd'hui du coup.
Test avec un autre compte administrateur, mais même IP, toujours bloqué par FA ; la solution pour l'instant est donc de faire un fichier texte à part contenant les pseudonymes des utilisateurs et leurs emails genre :
pseudo du membre :
emaildu@membre.fr
et de faire des copier/coller dans lalf
Relance du script pour export des email
L'adresse email de l'utilisateur pseudomembre39 n'a pas pu être exportée.
Récupération du membre 39
Sauvegarde de l'état courant.
ERROR : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (KeyboardInterrupt()), 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 "c:\miniconda\lib\site-packages\lalf\__init__.py", line 63, in main
user.confirm_email()
File "c:\miniconda\lib\site-packages\lalf\ocrusers.py", line 212, in confirm_email
self._export_()
File "c:\miniconda\lib\site-packages\lalf\ocrusers.py", line 138, in _export_
response = self.session.get_admin("/admin/index.forum", params=params)
File "c:\miniconda\lib\site-packages\lalf\session.py", line 174, in get_admin
return self.get(path, **kwargs)
File "c:\miniconda\lib\site-packages\lalf\session.py", line 137, in get
response = self._get(path, **kwargs)
File "c:\miniconda\lib\site-packages\lalf\session.py", line 72, in _get
return self.session.get(self.url(path), **kwargs)
File "c:\miniconda\lib\site-packages\requests\sessions.py", line 531, in get
return self.request('GET', url, **kwargs)
File "c:\miniconda\lib\site-packages\requests\sessions.py", line 504, in request
prep = self.prepare_request(req)
File "c:\miniconda\lib\site-packages\requests\sessions.py", line 436, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "c:\miniconda\lib\site-packages\requests\models.py", line 303, in prepare
self.prepare_headers(headers)
File "c:\miniconda\lib\site-packages\requests\models.py", line 439, in prepare_headers
self.headers = CaseInsensitiveDict()
File "c:\miniconda\lib\site-packages\requests\structures.py", line 43, in __init__
self._store = OrderedDict()
File "c:\miniconda\lib\collections\__init__.py", line 56, in __init__
self.__update(*args, **kwds)
File "c:\miniconda\lib\_collections_abc.py", line 576, in update
if isinstance(other, Mapping):
File "c:\miniconda\lib\abc.py", line 184, in __instancecheck__
subtype = type(instance)
KeyboardInterrupt
Je n'ai pas du tout compris pourquoi ça a buggé (KeybordInterrupt()) je faisais juste des copier/coller des adresses email des membres
J'ai fait un test ce matin en créant un tableau avec un tableur type excel dans lequel j'ai mis les pseudonymes des membres du forum ainsi que leurs emails respectifs. Je lance lalf et je copie/colle les emails, c'est fastidieux mais ça fonctionne, sauf que vers la fin de l'export des emails :
ERROR : Une erreur est survenue. Essayez de relancer le script. Si vous rencontrez la même erreur (KeyboardInterrupt())
La rage ! Mais bon je vais nettoyer la liste des membres en supprimant les comptes inactifs histoire d'alléger l'export. Et pour couronner le tout, mon save.pickle s'est retrouvé à 0ko.
Et si par un grand moment d'égarement quelqu'un s'y connait en python et serait capable d'exploiter xlrd ou similaire, afin d'exporter les emails sans passer par la console d'administration de FA ça serait un grand plus. Sachant que l'export des emails sous lalf est actuellement impossible dû aux différents blocage de FA.
Bon export du jour pas réussi, à la création du fichier sql, j'ai l'erreur suivante :
Sauvegarde de l'état courant.
Création du fichier phpbb.sql
[################################################################################################################] 100%> c:\miniconda\lib\site-packages\lalf\topics.py(116)_dump_()
-> self.logger.warning("Le sujet %d est vide, sans un seul post (ce qui n'est pas possible). Sujet irrécupérable.", self.topic_id)
(Pdb)
J'essaie de trouver d'où ça peut venir, mais je ne vois pas.
Toujours pas d'avancement par rapport à la dernière tentative d'export, même erreur et ça ne va pas plus loin :-(
Petit avancement, l'erreur précédente était probablement due par les sujets mis en annonce ou en note, j'ai essayé en repassant les différents sujets en normal et ça a avancé beaucoup plus, j'ai réussi à générer un fichier sql de quelques dizaines de Mo, mais ce dernier est incomplet. L'erreur du jour est la suivante :
WARNING : La propriété "cellspacing" du bbcode [table] n'est pas supportée.
WARNING : La propriété "cellpadding" du bbcode [table] n'est pas supportée.
[################################################################################################################] 100%Traceback (most recent call last):
File "c:\miniconda\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\miniconda\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\miniconda\Scripts\lalf.exe\__main__.py", line 7, in <module>
File "c:\miniconda\lib\site-packages\lalf\__init__.py", line 77, in main
bb.dump(sqlfile)
File "c:\miniconda\lib\site-packages\lalf\node.py", line 149, in dump
child.dump(sqlfile)
File "c:\miniconda\lib\site-packages\lalf\node.py", line 149, in dump
child.dump(sqlfile)
File "c:\miniconda\lib\site-packages\lalf\node.py", line 149, in dump
child.dump(sqlfile)
[Previous line repeated 3 more times]
File "c:\miniconda\lib\site-packages\lalf\node.py", line 146, in dump
self._dump_(sqlfile)
File "c:\miniconda\lib\site-packages\lalf\posts.py", line 67, in _dump_
post = parser.get_post()
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 238, in get_post
self.root_node.get_bbcode(fileobj, self.bb, uid)
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 149, in get_bbcode
child.get_bbcode(fileobj, bb, uid)
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 355, in get_bbcode
Node.get_bbcode(self, fileobj, bb, uid)
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 149, in get_bbcode
child.get_bbcode(fileobj, bb, uid)
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 500, in get_bbcode
url = process_link(bb, self.url)
File "c:\miniconda\lib\site-packages\lalf\htmltobbcode.py", line 80, in process_link
scheme, netloc, path, params, query, fragment = urlparse(url)
File "c:\miniconda\lib\urllib\parse.py", line 373, in urlparse
splitresult = urlsplit(url, scheme, allow_fragments)
File "c:\miniconda\lib\urllib\parse.py", line 440, in urlsplit
raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL
Après analyse des logs et des sujets qui engendrent l'erreur ci-dessus, il semblerait que ça provienne de bbcodes mal utilisés ou de messages mal saisie avec des bouts de code, par exemple un bbcode [img]https://xxx.fr[/img]
qui serait saisit en [img]<a href="https://xxx.fr[/img]
ou bien encore un bbcode [url=]https://xxx.fr[/url]
ce ne sont que des exemples possibles car j'ai corrigé énormément de post sur le forum et je suis entrain de retenter un export complet ; mais en corrigeant quelques messages sur le forum, j'ai multiplié par 5 la taille de mon fichier SQL
Concernant l'erreur Invalid IPv6 URL, il y est fait mention sommairement dans le issues suivant ; https://github.com/Roromis/Lalf-Forumactif/issues/49 ; j'en suis à 98% d'export des messages de mon forum ; je n'ai trouvé que 2 solutions : soit supprimer le message incriminé en erreur, soit le modifier sous FA et refaire un export dans tous les cas.
Le script n'a pas l'air d'apprécié les messages contenant des balises xml aussi par exemple : <?xml version="1.0" encoding="ISO-8859-1"?>
ou bien encore les codes similaire au xml ; je vais tester voir si intégré dans des balises [code] ça fonctionne mieux.
Après correction des messages posant des problèmes sur le forum généralement des balises qui étaient mal fermées par exemple :
[img]https://monserveurimage/img]
[img=https://monserveurimage[/img]
[url=https://monlienerronne.fr/url]https://monlienerronne.fr[/url]
[url=https://monlienerronne[/url].fr
[quote="pseudo"]blablabla blabla/quote]
[quote="pseudo"]blablable [url=monlien.fr]monlien/quote].fr[/url]
j'ai réussi à exporter un fichier sql utilisable, mais j'ai remarqué un petit bug lors de l'importation, il y a une option sur FA qui affiche les premiers messages d'un sujet si ce dernier possède présente plusieurs pages, ce qui engendre des erreurs sql lors de l'importation, des erreurs de duplicate key car les premiers messages sont recopiés sur les pages suivantes, mais l'ID du message ne change pas ; l'option est donc à décocher dans
Panneau d'Administration -> Général -> Messages et emails -> Configuration -> Toujours afficher le premier message dans les sujets : Non
Bonjour,
J'aurai aimé savoir si le logiciel était toujours d'actualité ? Après plusieurs tentatives infructueuses je me posais la question sur la possibilité d'exporter un ForumActif vers un phpbb. debug.log
Peut être est-ce moi qui ai mal fait quelque chose, ce n'est pas impossible, j'ai pourtant bien suivi la documentation.