Closed sebthevenon closed 13 years ago
Dans le fichier forumactif-phpbb.py, à la ligne 254, remplace
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
try:
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
except:
logging.warning("Impossible de récupérer l'id du membre :\n" + e.html())
raise Exception
Et envoie moi le contenu du fichier debug.log après avoir vérifié qu'il ne contient pas de données confidentielles.
Le script ne démarre plus et j'obtiens une erreur ligne 255 id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1)) ^ IndentationError: Expected an indented block
Avant que vous me répondiez, le script avais pu redémarrer sans rien changer, en insistant sur la relance du script jusqu'a:
31/08/2011 22:59:58 - DEBUG : Récupération : membre 6057
31/08/2011 22:59:58 - DEBUG : Récupération : membre 6058
31/08/2011 22:59:58 - DEBUG : Récupération : membre 6059
31/08/2011 22:59:59 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\FA2\forumactif-phpbb.py", line 427, in
Maintenant lorsque je relance il s'arrête toujours au 20ème membre:
31/08/2011 23:46:56 - DEBUG : Récupération : membre 19
31/08/2011 23:46:56 - DEBUG : Récupération : membre 20
31/08/2011 23:46:57 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\FA2\forumactif-phpbb.py", line 427, in
Il doit y avoir deux tabulations devant les lignes try:
et except:
et trois devant les autres.
OK désolé je ne savais pas que les tabulations comptaient.
J'obtiens donc le code suivant:
for page in range(0,pages):
if page >= 1:
d = PyQuery(url=config.rooturl + '/admin/index.forum?part=users_groups&sub=users&extended_admin=1&start=' + str(page*usersperpages) + '&' + tid, opener=fa_opener)
for i in d('tbody tr'):
e = PyQuery(i)
try:
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
except:
logging.warning("Impossible de récupérer l'id du membre :\n" + e.html())
raise Exception
logging.debug('Récupération : membre %d', id)
date = e("td").eq(3).text().split(" ")
date = time.mktime(time.struct_time((int(date[2]),month[date[1]],int(date[0]),0,0,0,0,0,0)))
lastvisit = e("td").eq(4).text()
if lastvisit != "":
lastvisit = lastvisit.split(" ")
lastvisit = time.mktime(time.struct_time((int(lastvisit[2]),month[lastvisit[1]],int(lastvisit[0]),0,0,0,0,0,0)))
else:
lastvisit = 0
save.users.append({'id': id, 'newid': n, 'name': e("td a").eq(0).text(), 'mail': e("td a").eq(1).text(), 'posts': int(e("td").eq(2).text()), 'date': int(date), 'lastvisit': int(lastvisit)})
n += 1
progress.update(n-2)
progress.end()
Au lancement du script j'obtiens l'erreur ligne 255 id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1)) ^ IndentationError: Unindent does not match any outer indentation level
Je viens de jouer avec les tabulations, en fait c'est 3 et 4 tabulations. Le script à redémarré, je tiens au courant de la suite.
for i in d('tbody tr'):
e = PyQuery(i)
try:
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
except:
logging.warning("Impossible de récupérer l'id du membre :\n" + e.html())
raise Exception
logging.debug('Récupération : membre %d', id)
Remplace le fichier forumactif-phpbb.py par celui-là: https://raw.github.com/gist/1186238/fe006388bd9fcda9f96d0bd78a05cdbad4767375/forumactif-phpbb.py
Avec ce nouveau fichier, j'ai bien effectué la sauvegarde des forums et des sujets, puis au moment de sauvegarder les membres:
01/09/2011 16:39:29 - INFO : Migration Forumactif -> PhpBB : Lalf 0.2.1
01/09/2011 16:39:29 - DEBUG : Importation des bibliothèques
01/09/2011 16:39:29 - DEBUG : Importation de la sauvegarde
01/09/2011 16:39:30 - DEBUG : Création de l'urlopener
01/09/2011 16:39:30 - INFO : Connection au forum
01/09/2011 16:39:31 - DEBUG : Récupération du sid
01/09/2011 16:39:31 - DEBUG : Récupération du tid
01/09/2011 16:39:35 - INFO : Récupération des membres
01/09/2011 16:39:36 - DEBUG : Récupération : membre 1
01/09/2011 16:39:36 - DEBUG : Récupération : membre 2
01/09/2011 16:39:36 - DEBUG : Récupération : membre 3
01/09/2011 16:39:36 - DEBUG : Récupération : membre 4
01/09/2011 16:39:36 - DEBUG : Récupération : membre 5
01/09/2011 16:39:36 - DEBUG : Récupération : membre 6
01/09/2011 16:39:36 - DEBUG : Récupération : membre 7
01/09/2011 16:39:36 - DEBUG : Récupération : membre 8
01/09/2011 16:39:36 - DEBUG : Récupération : membre 9
01/09/2011 16:39:36 - DEBUG : Récupération : membre 10
01/09/2011 16:39:36 - DEBUG : Récupération : membre 11
01/09/2011 16:39:36 - DEBUG : Récupération : membre 12
01/09/2011 16:39:36 - DEBUG : Récupération : membre 13
01/09/2011 16:39:36 - DEBUG : Récupération : membre 14
01/09/2011 16:39:36 - DEBUG : Récupération : membre 15
01/09/2011 16:39:36 - DEBUG : Récupération : membre 16
01/09/2011 16:39:36 - DEBUG : Récupération : membre 17
01/09/2011 16:39:36 - DEBUG : Récupération : membre 18
01/09/2011 16:39:36 - DEBUG : Récupération : membre 19
01/09/2011 16:39:36 - DEBUG : Récupération : membre 20
01/09/2011 16:39:38 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\FA2\forumactif-phpbb.py", line 430, in
Ben mince, je viens de remarquer quelque chose: Si je vais dans Gestion des utilisateurs, je vois les 20 premiers membres, mais lorsque je clique sur page 2, je me retrouve à l'accueil de mon panneau d'administration, idem pour les autres pages de la liste des membres. Ca fonctionnait très bien avant.
Forumactif aurait pu détecter le script ?
Je dispose d'un autre forum Forumactif, dans le PA j'ai accès à toutes les pages de la liste des utilisateurs. Je viens de lancer le script, il a réussi très rapidement à exporter la totalité des forums, sujets, membres et smileys.
Le problème viendrais donc de mon PA et non du script ?
Est-ce un problème connu cette impossibilité d'accéder aux pages de la liste des utilisateurs ? Que pourrais-je tenter ou vous communiquer pour trouver la provenance de ce blocage ?
Ce matin j'ai à nouveau accès a ma liste des utilisateurs, c'est donc bien une protection par FA.
Le script échoue toujours après le 20ème membre, on en reviens donc au problème d'origine.
Une belle avancée, j'ai remis le fichier original sans modif, supprimé tous les .pyc, tout relancé, et là j'ai déjà été bien plus loin:
02/09/2011 14:57:37 - DEBUG : Récupération : membre 6056
02/09/2011 14:57:37 - DEBUG : Récupération : membre 6057
02/09/2011 14:57:37 - DEBUG : Récupération : membre 6058
02/09/2011 14:57:37 - DEBUG : Récupération : membre 6059
02/09/2011 14:57:39 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\Python27\FA2\forumactif-phpbb.py", line 427, in
Maintenant chaque fois que je relance, je bloque à nouveau à chaque fois au 21ème membre...
Ci dessus, dans un de le 3ème message, en date du 31/08/2011 à 22:59:58, le script c'était déjà arrêté au même numéro de membre. Une limitation quelque part ? J'ai pas loin de 9000 membres.
Si je retourne dans mon PA, je suis à nouveau bloqué et n'ai plus accès à ma liste des utilisateurs. Je pense qu'au vu du nombre de membres, je suis victime d'un blocage par FA.
Pourrais tu remplacer la ligne 254 par:
try:
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
except:
logging.warning("Impossible de récupérer l'id du membre :\n" + e.html().encode("utf-8"))
raise Exception
Et relancer le script.
Envoie-moi le contenu du fichier debug.log (si ça bloque au 21ème membre et que le message d'erreur ressemble à: 01/09/2011 16:39:38 - WARNING : Impossible de récupérer l'id du membre :
, ce n'est pas la peine de me l'envoyer, patiente un peu et relance le script jusqu'à ce que ça fonctionne).
Bonjour, et merci pour la modification,
J'ai relancé le script et j'obtiens ceci:
03/09/2011 16:26:40 - INFO : Migration Forumactif -> PhpBB : Lalf 0.2.1 03/09/2011 16:26:40 - DEBUG : Importation des bibliothèques 03/09/2011 16:26:40 - DEBUG : Importation de la sauvegarde 03/09/2011 16:26:42 - DEBUG : Création de l'urlopener 03/09/2011 16:26:42 - INFO : Connection au forum 03/09/2011 16:26:43 - DEBUG : Récupération du sid 03/09/2011 16:26:43 - DEBUG : Récupération du tid 03/09/2011 16:26:46 - INFO : Récupération des membres 03/09/2011 16:26:48 - DEBUG : Recuperation membre 1 03/09/2011 16:26:48 - DEBUG : Recuperation membre 2 03/09/2011 16:26:48 - DEBUG : Recuperation membre 3 03/09/2011 16:26:48 - DEBUG : Recuperation membre 4 03/09/2011 16:26:48 - DEBUG : Recuperation membre 5 03/09/2011 16:26:48 - DEBUG : Recuperation membre 6 03/09/2011 16:26:48 - DEBUG : Recuperation membre 7 03/09/2011 16:26:48 - DEBUG : Recuperation membre 8 03/09/2011 16:26:48 - DEBUG : Recuperation membre 9 03/09/2011 16:26:48 - DEBUG : Recuperation membre 10 03/09/2011 16:26:48 - DEBUG : Recuperation membre 11 03/09/2011 16:26:48 - DEBUG : Recuperation membre 12 03/09/2011 16:26:48 - DEBUG : Recuperation membre 13 03/09/2011 16:26:48 - DEBUG : Recuperation membre 14 03/09/2011 16:26:48 - DEBUG : Recuperation membre 15 03/09/2011 16:26:48 - DEBUG : Recuperation membre 16 03/09/2011 16:26:48 - DEBUG : Recuperation membre 17 03/09/2011 16:26:48 - DEBUG : Recuperation membre 18 03/09/2011 16:26:48 - DEBUG : Recuperation membre 19 03/09/2011 16:26:48 - DEBUG : Recuperation membre 20 03/09/2011 16:26:49 - WARNING : Impossible de récupérer l'id du membre :
03/09/2011 16:26:49 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\Python27\FA2\forumactif-phpbb.py", line 431, in
Ok, c'est normal. Essaye de relancer le script pour avoir plus de détails sur l'erreur du membre 6059.
Pour le moment je bloque toujours au 20ème membre à la même erreur que ci-dessus. J'ai comme l'impression qu'il y a un blocage de 24h entre 2 "attaques". Je retenterai demain.
Juste une question, si chaque fois que je bug au 6059ème membre et que FA me bloque suivant un nombre de tentatives, après lesquelles je n'ai plus accès à la liste de mes utilisateurs et reviens chaque fois en page d'accueil du PA, je n'arriverai donc jamais à aller plus loin avec le script si ?
Depuis hier j'essaye de relancer en vain... visiblement chaque jour peu après 17h je peux relancer et j'arrive à dépasser le 20ème membre. Je viens donc de relancer, et toujours pareil, blocage au 6059ème. Une fois cette erreur obtenue je ne peux plus aller consulter la liste des utilisateurs dans mon PA.
04/09/2011 17:26:06 - DEBUG : Recuperation membre 6057 04/09/2011 17:26:06 - DEBUG : Recuperation membre 6058 04/09/2011 17:26:06 - DEBUG : Recuperation membre 6059 04/09/2011 17:26:08 - WARNING : Impossible de récupérer l'id du membre :
04/09/2011 17:26:08 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log.
Traceback (most recent call last):
File "C:\Python27\FA2\forumactif-phpbb.py", line 431, in
Il existe donc bel et bien un blocage par Forumactif, et ne pourrai jamais dépasser 6059 membres.
Est-ce qu'une modification de script pourrais me permettre d'aller reprendre au 6060ème le lendemain histoire de sauvegarder en 2 fois ?
J'imaginais un script qui sauvegarde les 5000 premiers et crée un fichier sql, puis le lendemain un second script commence à 5000 pour prendre les 5000 suivants etc... avec à chaque fois un fichier sql. En important ensuite ces fichiers sql dans PhpBB 3 on retrouverais la totalité des membres dans le bon ordre puisque le numéro d'ID est sauvegardé.
Script relancé une fois les 24 heures de blocage passées, idem que ci-dessus, blocage à 6059 et impossible de relancer le script, blocage au 20ème membre.
Pour me débloquer de la situation et pouvoir avancer dans la sauvegarde de mon forum, j'ai pris la dure décision de supprimer tous les membres qui ne s'étaient pas connectés depuis plus de 630 jours. J'ai ainsi pu supprimer 2400 et quelques membres et donc revenir sous la barre des 6059, cette fois à 6030. J'ai relancé le script et il m'a donc sauvegardé la totalité des membres. Je poursuit avec la sauvegarde des messages et sujets, lancé depuis ce matin 8h, toujours en cours mais ça se passe très bien.
Bonjour, J'essaye de faire un Backup de mon forum forumactif:
Ca se passe très bien jusqu'au moment de sauvegarder les membres. Je sauvegarde les 20 premiers membres, puis au moment de tenter la sauvegarde du 21ème membre j'ai une erreur. J'ai relancé plusieurs fois, idem à chaque fois au même endroit.
J'ai aussi remarqué que le 21ème membre se trouve à la seconde page dans la gestion des utilisateurs dans le panneau d'administration, y a t-il un lien ? Il y a une différence de "&start=20" entre les liens de ces 2 pages, ça joue ou pas ?
Voici l'erreur que j'obtiens:
31/08/2011 22:05:02 - INFO : Migration Forumactif -> PhpBB : Lalf 0.2.1 31/08/2011 22:05:02 - DEBUG : Importation des bibliothèques 31/08/2011 22:05:02 - DEBUG : Importation de la sauvegarde 31/08/2011 22:05:02 - DEBUG : Création de l'urlopener 31/08/2011 22:05:02 - INFO : Connection au forum 31/08/2011 22:05:04 - DEBUG : Récupération du sid 31/08/2011 22:05:04 - DEBUG : Récupération du tid 31/08/2011 22:05:07 - INFO : Récupération des membres 31/08/2011 22:05:08 - DEBUG : Récupération : membre 1 31/08/2011 22:05:08 - DEBUG : Récupération : membre 2 31/08/2011 22:05:08 - DEBUG : Récupération : membre 3 31/08/2011 22:05:08 - DEBUG : Récupération : membre 4 31/08/2011 22:05:08 - DEBUG : Récupération : membre 5 31/08/2011 22:05:08 - DEBUG : Récupération : membre 6 31/08/2011 22:05:08 - DEBUG : Récupération : membre 7 31/08/2011 22:05:08 - DEBUG : Récupération : membre 8 31/08/2011 22:05:08 - DEBUG : Récupération : membre 9 31/08/2011 22:05:08 - DEBUG : Récupération : membre 10 31/08/2011 22:05:08 - DEBUG : Récupération : membre 11 31/08/2011 22:05:08 - DEBUG : Récupération : membre 12 31/08/2011 22:05:08 - DEBUG : Récupération : membre 13 31/08/2011 22:05:08 - DEBUG : Récupération : membre 14 31/08/2011 22:05:08 - DEBUG : Récupération : membre 15 31/08/2011 22:05:08 - DEBUG : Récupération : membre 16 31/08/2011 22:05:08 - DEBUG : Récupération : membre 17 31/08/2011 22:05:08 - DEBUG : Récupération : membre 18 31/08/2011 22:05:08 - DEBUG : Récupération : membre 19 31/08/2011 22:05:08 - DEBUG : Récupération : membre 20 31/08/2011 22:05:10 - ERROR : Une erreur s'est produite. Essayez de relancer le script. Pour plus d'informations, consultez le fichier debug.log. Traceback (most recent call last): File "C:\FA\forumactif-phpbb.py", line 427, in
etapes[i]()
File "C:\FA\forumactif-phpbb.py", line 254, in get_users
id = int(re.search("&u=(\d+)&", e("td a").eq(0).attr("href")).group(1))
AttributeError: 'NoneType' object has no attribute 'group'
31/08/2011 22:05:10 - INFO : Sauvegarde de la progression
Qui saurait m'aider ?
Merci d'avance, Sébastien